Persons in Context
type: Ontology
publisher: CBG|Centre for family history
creator: Jeroen Balkenende
creator: Bob Coret
creator: Mark Lindeman
creator: Pieter Woltjer
creator: Ivo Zandhuis
contributor: Rick Companje
contributor: Rick Mourits
contributor: Micon Schorsij
contributor: Richard Zijdeman
created: 2023-09-21
modified: 2026-02-17
license: https://creativecommons.org/licenses/by-sa/4.0/
rights: CBG|Centre for family history
preferred namespace prefix: picom
version info: 1.1.0
prior version: 1.0.0
definition: Persons in Context, abbreviated as PiCo, is a knowledge model for annotating and publishing person observations from historical sources. A main characteristic of PiCo is the distinction between Person observations (person data as found on a Source) and Person reconstructions (groupings of Person observations, created by the process of matching Person observations). PiCo makes use of existing ontologies where possible and adds its own classes and properties when required.
history note: Persons in Context is developed by the CBG|Center for family history as a successor of the XML standard A2A for annotating historical person data. Cultural heritage institutions in the Netherlands are encouraged to move to PiCo. PiCo was developed in collaboration with technical and domain experts. The first version of PiCo was reviewed by a selected group of Dutch archivists and scientists. PiCo is maintained by the PiCo Maintenance Group.
code repository: https://github.com/CBG-Centrum-voor-familiegeschiedenis/PiCo/
work example: Model overview
  type: MediaObject
  type: Scan
  order: 0
  caption: Schematic overview
  description: Schematic overview of the model.
  encoding format: image/svg+xml
  sd date published: 2026-02-17
  license: http://creativecommons.org/licenses/by/4.0/deed.nl

Activity
type: Class
definition: The Activity that generated a PersonReconstruction
scope note: A Person Reconstruction can either be created by a human researcher or by a software algorithm. In case of a human-made reconstruction, provide information about the time, place and knowledge- input. In case of a software algorithm, provide information about the name, version and configuration settings of the program.

Agent
type: Class
definition: The agent (person or organisation) that is responsible for the creation of a person reconstruction.
work example: Example of an Agent responsible for an Activity
  type: TextObject
  order: 0
  encoding format: text/turtle
  text: cbg:reconstruction_activity_01 a prov:Activity ; prov:wasAssociatedWith cbg:reconstruction_agent_01 ; prov:startedAtTime "2024-05-24T00:00:00"^^xsd:dateTime ; prov:endedAtTime "2024-05-24T00:00:00"^^xsd:dateTime . cbg:reconstruction_agent_01 a prov:Agent ; sdo:name "CBG|Center for Family History"@en ; sdo:url "https://cbg.nl"^^xsd:anyURI .

Person
type: Class
definition: A Person is a human being whose individual existence can somehow be documented.
scope note: Container class for Person observation and Person reconstruction. Not to be used directly in PiCo resources.
subclass of: Person
subclass of: Entity

PersonObservation
type: Class
definition: A Person observation is a person that can be observed on a Source
scope note: A person observation represents how a person is recorded on a Source. Therefore, it must always be related to a source. Person observations closely reflect data as it appears in the source, that is, with the age, occupation, and spelling of the person's name recorded as in the record. A notable exception are dates where the creator of the person observation is encouraged to write down the date according to the YMD ISO 8601 date standard (for example: '1802-07-29'), even though the source probably lists the date in a DMY or MDY format or another calendar entirely. Information on the original entry can be stored using an optional triple.
subclass of: Person
work example: PersonObservation overview
  type: MediaObject
  type: Scan
  order: 0
  caption: Schematic overview of a PersonObservation
  description: Schematic overview of a person observation.
  encoding format: image/svg+xml
  sd date published: 2026-02-17
work example: Person observation example
  type: TextObject
  description: Example of two Person Observations from the same source
  encoding format: text/turtle
  text: afr:geboorteregister_1858_po_1 a picom:PersonObservation, sdo:Person ; prov:hadPrimarySource afr:geboorteregister_1858 ; sdo:name "Abe Bos"@nl ; sdo:familyName "Bos" ; sdo:givenName "Abe" ; sdo:birthDate "21 Junij 1858"^^xsd:string ; sdo:birthDate "1858-06-21"^^xsd:date ; sdo:birthPlace "Joure" ; sdo:gender sdo:Male ; picom:hasRole picot_roles:575 ; # child sdo:parent afr:geboorteregister_1858_po_2, afr:geboorteregister_1858_po_3 . afr:geboorteregister_1858_po_2 a picom:PersonObservation, sdo:Person ; prov:hadPrimarySource afr:geboorteregister_1858 ; sdo:name "Sjouke Abes Bos"@nl ; sdo:familyName "Bos" ; sdo:givenName "Sjouke" ; picom:hasAge "30"^^xsd:decimal ; sdo:hasOccupation "klokmakersknecht" ; sdo:address "Joure" ; sdo:gender sdo:Male ; sdo:spouse afr:geboorteregister_1858_po_3 ; sdo:children afr:geboorteregister_1858_po_1 ; picom:hasRole picot_roles:489 . # declarant

PersonReconstruction
type: Class
definition: A Person reconstruction is the result of modelling one or multiple PersonObservation(s) into a single resource.
scope note: A Person reconstruction must always refer to one or more Person observations. For this, the prov:wasDerivedFrom property is used. Information about the creation should be documented with the prov:wasGeneratedBy property. Information about updates of a Person reconstruction should be documented with prov:wasRevisionOf
subclass of: Person
work example: PersonReconstruction overview
  type: MediaObject
  type: Scan
  order: 0
  caption: Schematic overview of a person reconstruction
  description: Schematic overview of a person reconstruction.
  encoding format: image/svg+xml
  sd date published: 2026-02-17
work example: Person Reconstruction example
  type: TextObject
  description: Example of a Person Reconstruction
  encoding format: text/turtle
  text: cbg:person_reconstruction_2 a picom:PersonReconstruction, sdo:Person ; sdo:name "Anna Maria Koppen"@nl ; sdo:familyName "Koppen" ; sdo:givenName "Anna" ; sdo:gender sdo:Female ; sdo:birthPlace "Haarlem" ; sdo:birthDate "1860-03-31"^^xsd:date ; sdo:deathPlace "Detroit, VSA" ; sdo:deathDate "1926"^^xsd:gYear ; prov:wasDerivedFrom nha:huwelijksakte_1885_321_po_1, cbg:NL-HaCBG_1755_0341_142_po_1 ; prov:wasGeneratedBy cbg:reconstruction_activity_01 . cbg:reconstruction_activity_01 a prov:Activity ; prov:wasAssociatedWith cbg:reconstruction_agent_01 ; prov:startedAtTime "2015-08-07T00:00:00"^^xsd:dateTime ; prov:endedAtTime "2020-01-08T00:00:00"^^xsd:dateTime .

Source
type: Class
subclass of: CreativeWork
definition: An intangible type to be applied to any archive content, carrying with it a set of properties required to describe archival items and collections.
scope note: Person observations can appear on many types of historical documents. The PiCo model does not aim to describe these sources, as excellent data models, such as Records in Contexts and Dublin Core, already exist within the heritage domain. In order to model person observations, we require that institutions describe their sources at least with a single name property that combines identifying information about the source like its title and creation date. For example, a Marriage Certificate is then described as follows: "BS Marriage Haarlem, November 11, 1885, certificate number 321". As long as this description consists of various elements that identify the source, heritage institutions are free to use any authoritative domain-specific standard to describe their historical person records.
work example: Source
  type: MediaObject
  type: Scan
  order: 0
  caption: Schematic overview of a Source
  description: Schematic overview of a Source.
  encoding format: image/svg+xml
  sd date published: 2026-02-17
work example: Source with a linked Scan
  type: TextObject
  description: Example of a Source with a linked Scan
  encoding format: text/turtle
  text: afr:geboorteregister_1858 a sdo:ArchiveComponent ; sdo:additionalType picot_sourcetypes:551 ; # civil registry: birth sdo:name "Geboorteregister 1858, archiefnummer 30-16, Burgerlijke Stand Haskerland - Tresoar, inventarisnummer 1020, blad 051"@nl ; sdo:holdingArchive <https://www.tresoar.nl/> ; sdo:url "https://allefriezen.nl/zoeken/deeds/f7e82c08-47c5-de67-c636-26aa1603f6c9" ; sdo:dateCreated "1885"^^xs:gYear ; sdo:locationCreated "Haskerland" ; sdo:associatedMedia [ a sdo:MediaObject, sdo:ImageObject ; sdo:position 51 ; sdo:contentUrl "https://tresoar-images.memorix.nl/frl/download/fullsize/3a9b2d6a-f225-a14e-ab85-3581be7d4d04.jpg" ; sdo:thumbnailUrl "https://tresoar-images.memorix.nl/frl/thumb/250x250/3a9b2d6a-f225-a14e-ab85-3581be7d4d04.jpg" ; ] .

Scan
type: Class
subclass of: CreativeWork
definition: An image file.
scope note: A link to the location of the scan at the HoldingArchive. A link to scan as it can be displayed online and a link to a thumbnail (for search results) should be provided. Preferably a link to a IIIF manifest.

PersonName
type: Class
definition: Name of a person, expressed in Person Name Vocabulary (PNV)
scope note: In the Person Name Vocabulary, a name is considered to be a a resource type in its own right. A PersonName can consist of many different parts. The most common ones are mentioned here. See the full specification of the Person Name Vocabulary for more details. Additionally to a pnv:PersonName, the properties sdo:literalName or sdo:givenName and sdo:familyName should be used.

LifeEvent
type: Class
definition: A main biographical event in the life of a person
scope note: Life events in PiCo are used for modelling important events in the life of a Person, such as baptism, marriage or burial. Events are primarily used to identify a Person or provide a date and/or a location for a specific milestone in a Persons life. Modelling Events by itself is not a goal of PiCo, and therefore the picom:LifeEvent only has a limited set of properties.
work example: LifeEvent example
  type: TextObject
  description: Example of LifeEvent
  encoding format: text/turtle
  text: nha:huwelijksakte_1885_321_po_1 a picom:PersonObservation, sdo:Person ; prov:hadPrimarySource nha:huwelijksakte_1885_321 ; sdo:name "Abe Bos"@nl ; sdo:familyName "Bos" ; sdo:givenName "Abe" ; picom:hasAge "27"^^xsd:decimal ; sdo:birthPlace "Joure" ; sdo:hasOccupation "agent van politie" ; sdo:gender sdo:Male ; picom:hasRole picot_roles:574 ; # spouse sdo:spouse nha:huwelijksakte_1885_321_po_2 ; picom:hasLifeEvent [ a picom:LifeEvent ; picom:eventType picot_eventtypes:83 ; # marriage picom:eventDate "1885-11-11"^^xsd:date ; picom:eventPlace "Haarlem" ; ]

address
type: DatatypeProperty
definition: Physical address of the Person.
scope note: Address of a Person as mentioned on the Source.
domain includes: PersonObservation
range includes: Text

baseSurname
type: DatatypeProperty
definition: A Base surname is a family name without any prefixes, if those prefixes need to be ignored in sorting. If the family name is e.g. 'de Vries' and it needs to be sorted under 'V', the Base surname is 'Vries'. Base surname is equivalent to BioDes:geslachtsnaam.
domain includes: PersonName
range includes: string

birthDate
type: DatatypeProperty
definition: The birth date of a persoon.
scope note: The birth date of a person. A date value in ISO 8601 format should be used. Incomplete dates are allowed, but only when truncated from small to large. For example: "1970-08-15", "1970-08" and "1970" are all allowed, but "1970-00-15" or "08-15" are not. Sometimes, you may want use a string as birthDate. For example if you want to or have to record the date exactly as it was written on the Source. If possible use both the string format and the xsd:date format in this case.
domain includes: Person
range includes: date
range includes: string

birthPlace
type: DatatypeProperty
definition: The place where a person was born.
scope note: Preferably, use a link to an existing thesaurus like geonames or wikidata. If desired, both the literal place, as mentioned on the Source can be used together with the reconciled version.
work example: Example of a sdo:birthPlace
  type: TextObject
  order: 0
  encoding format: text/turtle
  text: sdo:birthPlace [ a sdo:Place ; sdo:name "Beeck, Berg bij Uberghen (L van Kleef)"@nl ; # (literal from Source) sdo:sameAs gn:234345, gg:854 ; sdo:address [ a sdo:PostalAddress ; sdo:name "Beek"@nl ; # (toponiem) sdo:addressLocality "Berg en Dal"@nl ; # (municipality) sdo:addressRegion "Gelderland"@nl ; # (province / state) sdo:extendedAddress "Land van Kleef"@nl ; # (region) sdo:addressCountry "Nederland"@nl # (country) ] ] ] ;
domain includes: Person
range includes: string
range includes: Place
range includes: anyURI

contentLocation
type: DatatypeProperty
definition: The location depicted or described in the content. For example, the geographic coverage of an archival record. Or the location in a photograph or painting.
domain includes: Source
range includes: string
range includes: anyURI

dateCreated
type: DatatypeProperty
definition: The date on which the Source was created.
domain includes: Source
range includes: date

deathDate
type: DatatypeProperty
definition: Date of death.
scope note: The death date of a person. A date value in ISO 8601 format should be used. Incomplete dates are allowed, but only when truncated from small to large. For example: "1970-08-15", "1970-08" and "1970" are all allowed, but "1970-00-15" or "08-15" are not. When the date of death is not known, but is known that a person is deceased, the property :deceased can be used. Sometimes, you may want to use a string as deathDate. For example if you want to or have to record the date exactly as it was written on the Source. If possible use both the string format and the xsd:date format in this case.
domain includes: Person
range includes: date
range includes: string

deathPlace
type: DatatypeProperty
definition: The place where the person died.
scope note: Preferably, use a link to an existing thesaurus like geonames or wikidata. If desired, both the literal place, as mentioned on the Source can be used together with the reconciled version.
domain includes: Person
range includes: string
range includes: Place
range includes: anyURI

deceased
type: DatatypeProperty
definition: Indication if a person is deceased.
scope note: Indication if a person is still alive or not at time of the source of the observation. Only used when deathDate is unknown. A person without a deathDate and without the property deceased set to true, will be considered alive. This will have consequences for the publication of the person record and of any linked media items.
domain includes: PersonObservation
range includes: boolean

endedAtTime
type: DatatypeProperty
definition: The end time of the activity that generated a Person Reconstruction.
domain includes: Activity
range includes: dateTime

familyName
type: DatatypeProperty
definition: Family name. For Dutch names, this is the last name of a person.
scope note: The use of sdo:givenName and sdo:familyName is the most straightforward method for describing person names. Use pnv:PersonName for more extensive name annotations.
domain includes: Person
range includes: string

literalName
type: DatatypeProperty
definition: Literal name designates a full personal name. This property may only be left blank if a person's name was unknown or if a person was unnamed (e.g. a child that died shortly after being born), in which cases the property pnv:nameSpecification should state "unknown" or "unnamed".
domain includes: PersonName
range includes: string

gender
type: DatatypeProperty
definition: Gender of a Person.
scope note: Use one of: sdo:Male or sdo:Female.
domain includes: Person
range includes: GenderType

givenName (pnv)
type: DatatypeProperty
definition: The given name of a pnv:PersonName. Designates the name(s) given to someone at birth or any other name-giving event.
domain includes: PersonName
range includes: string

givenName (schema)
type: DatatypeProperty
definition: Given name. For Dutch names, this could be multiple given names of a person.
scope note: The use of sdo:givenName and sdo:familyName is the preferred method for describing person names. Use pnv:PersonName for more extensive name annotations.
domain includes: Person
range includes: string

hasAge
type: DatatypeProperty
definition: The age of a person.
scope note: Only used for Person observations, in case the birth date is not known, but the age is. In combination with de date of the Source, a birth date range can be derived, which can be used in the process of creating a Person reconstruction. The age is considered to be in years, unless otherwise mentioned. So an age of "4" is considered to be 4 years, where "4 months" is interpreted as 4 months. Numerical ages ("4") are preferred above ages in text ("four").
domain includes: PersonObservation
range includes: string

hasOccupation
type: DatatypeProperty
definition: The occupational title related to a person in an observation.
scope note: Occupation as mentioned on the Source
domain includes: PersonObservation
range includes: string
range includes: anyURI

hasReligion
type: DatatypeProperty
definition: Religious conviction related to a person in an observation.
scope note: Religion as mentioned on the Source. Preferably, use a concept from a public thesaurus to annotate religion. The Taxonomy of Religions as maintained by the IISG is recommended. It is available in the Dutch Netwerk of Terms by the NDE.
domain includes: Person
range includes: string
range includes: anyURI

initials
type: DatatypeProperty
definition: An initial is the first letter of a person's given name (or sometimes a combination of letters). The Initials property can be used to separately record the initial(s) of a person's given name(s). Each initial should be followed by a dot. It is recommended to always use the Initials property to record initials, but if only the initials of a given name are known, they may also be recorded using pnv:givenName (or pnv:firstName). Example 1: "Peter R. de Vries" would be modelled using pnv:initials "P.R." and pnv:givenName "Peter R.". Example 2: "C.Joh. Kieviet" would ideally be modelled using pnv:initials "C.Joh.", but pnv:givenName "C.Joh." is also possible. Example 3: "H.A.F.M.O. (Hans) van Mierlo" would be modelled using pnv:initials "H.A.F.M.O." and pnv:givenName "Hans".
domain includes: PersonName
range includes: string

name
type: DatatypeProperty
definition: The name of a Person or a Source.
scope note: For Persons: Use full name if the name can't be split into given name and family name. Otherwise use sdo:givenNamen and sdo:fullName or the more extensive pnv:PersonName.
scope note: For Sources: Use a user-friendly name to identify the source. Depending on the Source type, this may contain a combination of it's name, year of creation, creator, et cetera.
domain includes: Person
domain includes: Source
range includes: string

patronym
type: DatatypeProperty
definition: A Patronym is a name element based on the given name of one's father or grandfather. This is also the preferred property for a matronym (i.e. a name element based on the given name of one's mother or grandmother).
domain includes: PersonName
range includes: string

position
type: DatatypeProperty
definition: The position of the scan in the order of a set of scans
scope note: The position defines the order in which scans are presented on the web. This feature is required when a Source has multiple scans.
domain includes: Scan
range includes: int

startedAtTime
type: DatatypeProperty
definition: The start time of the activity that generated a Person Reconstruction.
domain includes: Activity
range includes: dateTime

surnamePrefix
type: DatatypeProperty
definition: A Surname prefix is a name part prefixing the surname (e.g. 'van' or 'van den').
scope note: A2A:PersonNamePrefixLastName
domain includes: PersonName
range includes: string

wasAssociatedWith
type: DatatypeProperty
definition: Assignment of responsibility to an agent for the activity of creating a person reconstruction.
domain includes: Activity
range includes: Agent

eventDate
type: DatatypeProperty
definition: The date of a life event.
scope note: The date of an event. A date value in ISO 8601 format should be used. Incomplete dates are allowed, but only when truncated from small to large. For example: "1970-08-15", "1970-08" and "1970" are all allowed, but "1970-00-15" or "08-15" are not. Sometimes, you may want use a string as eventDate. For example if you want to or have to record the date exactly as it was written on the Source. If possible use both the string format and the xsd:date format in this case.
domain includes: LifeEvent
range includes: string
range includes: anyURI

eventPlace
type: DatatypeProperty
definition: The place where a life event occurred.
scope note: Preferably, use a link to an existing thesaurus like geonames or wikidata. If desired, both the literal place, as mentioned on the Source can be used together with the reconciled version.
domain includes: LifeEvent
range includes: string
range includes: anyURI
range includes: Place

thumbnailUrl
type: DatatypeProperty
definition: Thumbnail image of the Scan.
domain includes: Scan
range includes: URL

url
type: DatatypeProperty
definition: URL of the Source.
scope note: For Sources: a link to the Source at the holding archive. Preferably a permalink.
domain includes: Source
range includes: URL

contentUrl
type: DatatypeProperty
definition: URL of the Scan.
scope note: A link to the scan of the Source at the holding archive. Preferably a link to a IIIF manifest.
domain includes: Scan
range includes: URL

additionalName
type: ObjectProperty
definition: The name of a Person, annotated according to the Person Name Vocabulary.
domain includes: Person
range includes: PersonName

additionalType
type: CodedProperty
type: ObjectProperty
code list: Persons in Context sourceType thesaurus
definition: The type of the Source.
scope note: Use a term from the PiCo thesaurus for Source types: https://terms.personsincontext.org/sourcetypes
domain includes: Source

associatedMedia
type: ObjectProperty
definition: A media object, usually a scan, that encodes the Source of a Person observation.
scope note: todo
domain includes: Source
range includes: Scan

children
type: ObjectProperty
definition: A child of a person.
scope note: For Person observations, the child should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the child should refer to another Person reconstruction.
sub property of: relatedTo
sub property of: hasDescendant
domain includes: Person
range includes: Person
inverse of: parent

embedUrl
type: ObjectProperty
definition: A URL pointing to a viewer for a specific scan.
domain includes: Scan
range includes: URL

hadPrimarySource
type: ObjectProperty
definition: A primary source for a topic refers to something produced by some agent with direct experience and knowledge about the topic, at the time of the topic's study, without benefit from hindsight. Because of the directness of primary sources, they 'speak for themselves' in ways that cannot be captured through the filter of secondary sources. As such, it is important for secondary sources to reference those primary sources from which they were derived, so that their reliability can be investigated. A primary source relation is a particular case of derivation of secondary materials from their primary sources. It is recognized that the determination of primary sources can be up to interpretation, and should be done according to conventions accepted within the application's domain.
scope note: Linking a Source with the hadPrimarySource property is required for Person Observations.
domain includes: PersonObservation
range includes: Source

hasLifeEvent
type: ObjectProperty
definition: Relates a person to a life event that occurred in his biography.
domain: Person
range: LifeEvent

hasAncestor
type: ObjectProperty
type: TransitiveProperty
scope note: hasAncestor is not meant to be used as a property for PersonObservations or PersonReconstructions. It is a superproperty of sdo:parent. Since hasAncestor is a owl:TransitiveProperty, this will make the parent of your parent into your ancestor.
sub property of: relatedTo
inverse of: hasDescendant
domain: Person
range: Person

hasDescendant
type: ObjectProperty
type: TransitiveProperty
scope note: hasDescendant is not meant to be used as a property for PersonObservations or PersonReconstructions. It is a superproperty of sdo:children. Since hasDescendant is a owl:TransitiveProperty, this will make the children of your children into your descendants.
sub property of: relatedTo
inverse of: hasAncestor
domain: Person
range: Person

hasChild-in-law
type: ObjectProperty
scope note: For Person observations, the hasChild-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasChild-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasParent-in-law

hasCousin
type: SymmetricProperty
type: ObjectProperty
scope note: For Person observations, the hasCousin property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasCousin property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

hasCousin-in-law
type: SymmetricProperty
type: ObjectProperty
scope note: For Person observations, the hasCousin-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasCousin-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

hasFosterChild
type: ObjectProperty
scope note: For Person observations, the hasFosterChild property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasFosterChild property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasFosterParent

hasFosterParent
type: ObjectProperty
scope note: For Person observations, the hasFosterParen property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasFosterParen property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasFosterChild

hasGodchild
type: ObjectProperty
scope note: For Person observations, the hasGodchild property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGodchild property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGodparent

hasGodparent
type: ObjectProperty
scope note: For Person observations, the hasGodparent property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGodparent property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGodchild

hasGrandchild
type: ObjectProperty
scope note: For Person observations, the hasGrandchild property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGrandchild property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGrandparent

hasGrandchild-in-law
type: ObjectProperty
scope note: For Person observations, the hasGrandchild-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGrandchild-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGrandparent-in-law

hasGrandparent
type: ObjectProperty
scope note: For Person observations, the hasGrandparent property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGrandparent property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGrandchild

hasGrandparent-in-law
type: ObjectProperty
scope note: For Person observations, the hasGrandparent-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGrandparent-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGrandchild-in-law

hasGreat-grandchild
type: ObjectProperty
scope note: For Person observations, the hasGreat-grandchild property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGreat-grandchild property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGreat-grandparent

hasGreat-grandparent
type: ObjectProperty
scope note: For Person observations, the hasGreat-grandparent property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasGreat-grandparent property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasGreat-grandchild

hasHalf-sibling
type: SymmetricProperty
type: ObjectProperty
scope note: For Person observations, the hasHalf-sibling property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasHalf-sibling property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

hasLegitimizedChild
type: ObjectProperty
scope note: For Person observations, the hasLegitimizedChild property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasLegitimizedChild property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: isLegitimizedChildOf

isLegitimizedChildOf
type: ObjectProperty
scope note: For Person observations, the isLegitimizedChildOf property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the isLegitimizedChildOf property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasLegitimizedChild

hasNephew-in-law/Niece-in-law
type: ObjectProperty
scope note: For Person observations, the hasNephew_Niece-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasNephew_Niece-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasUncle/Aunt-in-law

hasNephew/Niece
type: ObjectProperty
scope note: For Person observations, the hasNephew_Niece property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasNephew_Niece property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasUncle/Aunt

hasParent-in-law
type: ObjectProperty
scope note: For Person observations, the hasNephew_Niece property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasNephew_Niece property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasChild-in-law

hasPreviousPartner
type: SymmetricProperty
type: ObjectProperty
scope note: For Person observations, the hasPreviousPartner property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasPreviousPartner property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

hasSibling-in-law
type: SymmetricProperty
type: ObjectProperty
scope note: For Person observations, the hasSibling-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasSibling-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

hasStepchild
type: ObjectProperty
scope note: For Person observations, the hasStepchild property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasStepchild property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasStepparent

hasStepchild-in-law
type: ObjectProperty
scope note: For Person observations, the hasStepchild-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasStepchild-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasStepparent-in-law

hasStepparent
type: ObjectProperty
scope note: For Person observations, the hasStepparent property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasStepparent property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasStepchild

hasStepparent-in-law
type: ObjectProperty
scope note: For Person observations, the hasStepparent-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasStepparent-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasStepchild-in-law

hasStepsibling
type: ObjectProperty
type: SymmetricProperty
scope note: For Person observations, the hasStepsibling property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasStepsibling property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

hasUncle/Aunt
type: ObjectProperty
scope note: For Person observations, the hasUncle_Aunt property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasUncle_Aunt property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasNephew/Niece

hasUncle/Aunt-in-law
type: ObjectProperty
scope note: For Person observations, the hasUncle_Aunt-in-law property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the hasUncle_Aunt-in-law property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person
inverse of: hasNephew-in-law/Niece-in-law

holdingArchive
type: ObjectProperty
definition: Organization that holds, keeps or maintains the ArchiveComponent.
domain includes: Source
range includes: anyURI

isWidow/WidowerOf
type: ObjectProperty
scope note: For Person observations, the isWidOf property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the isWidOf property should refer to another Person reconstruction.
sub property of: relatedTo
domain: Person
range: Person

parent
type: ObjectProperty
definition: A parent of a person.
scope note: For Person observations, the parent property should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the parent property should refer to another Person reconstruction.
sub property of: relatedTo
sub property of: hasAncestor
domain includes: Person
range includes: Person
inverse of: children

sibling
type: ObjectProperty
type: SymmetricProperty
definition: A person's brother or sister.
scope note: For Person observations, the sibling should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the sibling should refer to the Person reconstruction of the spouse.
sub property of: relatedTo
domain includes: Person
range includes: Person

spouse
type: ObjectProperty
type: SymmetricProperty
definition: The person's spouse.
scope note: For Person observations, the spouse should always refer to another Person observation on the same Source.
scope note: For Person reconstructions, the spouse should refer to the Person reconstruction of the spouse. A spouse relation may have a start date and an end date. The start date may be redundant to the date of a marriage event. The marriage event provides information when the marriage took place and is primarily used for Person Observations. The spouse relation can provide additional information about the duration of the relation, which is useful for Person Reconstructions, especially when a Person is married more than once.
work example: Example of a spouse relation with start and end date
  type: TextObject
  order: 0
  encoding format: text/turtle
  text: cbg:person_reconstruction_01 a picom:PersonReconstruction, sdo:Person ; sdo:name "Abraham Woltjer"@nl ... sdo:spouse [ rdf:value cbg:person_reconstruction_2 ; sdo:startDate "1885-11-11"^^xsd:date ; sdo:endDate "1926"^^xsd:gYear ; ] .
sub property of: relatedTo
domain includes: Person
range includes: Person

hasRole
type: CodedProperty
type: ObjectProperty
code list: Persons in Context role thesaurus
definition: The role of a Person observation on the Source.
scope note: Use a term from the PiCo Roles thesaurus: https://terms.personsincontext.org/roles
domain includes: PersonObservation

eventType
type: CodedProperty
type: ObjectProperty
code list: Persons in Context eventType thesaurus
definition: The type of life event.
scope note: Use a term from the PiCo Event Types thesaurus: https://terms.personsincontext.org/eventtypes
domain includes: LifeEvent

wasDerivedFrom
type: ObjectProperty
definition: A derivation is a combination of one or more Person observations in a Person reconstruction
scope note: A PersonReconstruction is always derived from one or more PersonObservations. The wasDerivedFrom property is therefore required for PersonReconstructions.
domain includes: PersonReconstruction
range includes: PersonObservation

wasGeneratedBy
type: ObjectProperty
definition: Generation is the completion of production of a new Person reconstruction by an activity. This Person reconstruction did not exist before generation and becomes available for usage after this generation.
scope note: Required for PersonReconstructions.
domain includes: PersonReconstruction
range includes: Activity

wasRevisionOf
type: ObjectProperty
definition: A revision is a derivation for which the resulting entity is a revised version of some original.
scope note: The wasRevisionOf property is used for modifications made on Person reconstructions. It can be qualified with a prov:Revision.
domain includes: PersonReconstruction
range includes: PersonReconstruction

Persons in Context role thesaurus
type: ConceptScheme

Persons in Context sourceType thesaurus
type: ConceptScheme

Persons in Context eventType thesaurus
type: ConceptScheme