# Artifacts
An Artifact
represents all knowledge about a single source of genealogical information -- a book, document, personal story, web site, etc.
Artifacts
can be derived from one or more otherArtifacts
.Artifacts
can be referenced from one another locally (within the XARK file) or at a remote URI.Artifacts
, as already mentioned, are the "containers" or "parents" forSubject
,Claim
,Event
, andNote
entities.Artifacts
are never the "container" or "parent" of otherArtifacts
, though they can be related to otherArtifacts
.
A single XARK file will usually contain many Artifact
nodes. First, it will generally have one Artifact
node for each document of interest, containing information extracted from the document with minimal interpretation (this is consistent with the overall concept of "persona"-based research). Second, the XARK file will generally contain one or more Artifact
nodes representing the genealogist's own synthesis of the data within those documents (i.e., their "conclusions").
A key concept here is that an Artifact
can represent either primary information (transcribed/extracted directly from a source) or secondary information (conclusions reached by some researcher in their own family tree), and as such, a researcher can reference another researcher's conclusions.
Even for a single researcher, it may be beneficial to maintain several Artifact
nodes within a single XARK file, say, one for each family of interest. For example, my wife's family and mine are separate research interests for me, but I would want to maintain them in a single file. I may want to do the same for my maternal and paternal lines.
The Artifact
nodes are where all bibliographic information should be stored.
# Required Properties
# ID
The unique XARK ID.
# RevisionID
The unique XARK ID of this revision of this entity.
# Optional Properties
# Range
When embedding XARK in another document, there may also be multiple Artifact
records -- for example, if multiple PDF files are combined. However, since document joining/editing programs likely won't be aware of XARK locations, it's likely that this will result in Claims
linked to a certain frame will now be referring to the wrong page.
To help alleviate this, an Artifact
may have Range
property, with a 1-based start
and end
number (inclusive) to show which frames are covered by the Subject
, Claims
, and Notes
within that Artifact
record. While general-purpose document editing programs won't adjust these values automatically, this will make it far easier to re-align the associated claims later.
- Software reading XARK should use this to "offset" the frame numbers of locations from
Claims
associated withSubjects
in thatArtifact
. - Software should not normalize these frame numbers when saving again, since this would make it more difficult to split the document. If such functionality is present, it must be chosen by the user on purpose.
- Software should ignore and remove
Artifacts
and theirSubjects
andClaims
if theArtifact
's entire frame range is no longer in the document. This will allow users to use general-purpose document editors to split documents and XARK software will auto-correct to remove the "ghosts" of artifacts no longer present. - Where software detects that a Subject has an out-of-range Location claim, it should flag this for user review, so they can either correct the location or remove the
Subject
and itsClaims
.
# TypeScript Definition for JSON
import { XarkId } from "./ValueTypes"
interface IRecord {
id: XarkId
revisionId: XarkId
}
export { IRecord }
import { ISubject } from "./ISubject"
import { IClaim } from "./IClaim"
import { IEvent } from "./IEvent"
import { IRecord } from "./IRecord"
interface IRange {
start: number
end: number
}
interface IArtifact extends IRecord {
range?: IRange
subjects?: ISubject[]
events?: IEvent[]
}
export { IArtifact, IRange }
# JSON Example
# XMP (XML+RDF) Example
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:xark="https://xark.org/xark"
xmlns:stRange="https://xark.org/xark/1.0/sType/Range#">
<rdf:Description>
<xark:class>https://xark.org/xark#artifact</xark:class>
<xark:id>51664aac-acde-4e67-af44-0176bef3b81b</xark:id>
<xark:revision-id>51664aac-acde-4e67-af44-0176bef3b81b</xark:revision-id>
<xark:range>
<rdf:description>
<stRange:start>1</stRange:start>
<stRange:end>5</stRange:end>
</rdf:description>
</xark:range>
</rdf:Description>
</rdf:RDF>