ActivityShape
type: NodeShape
target class: Activity
property:
  path: label
  datatype: langString
  unique lang: true
  min count: 0
  message: An Activity should have a label (and language tag).
property:
  path: wasAssociatedWith
  class: Agent
  min count: 1
  message: An Activity must be associated with an Agent.
property:
  path: startedAtTime
  datatype: dateTime
  min count: 1
  message: An Activity must have a starttime.
property:
  path: endedAtTime
  datatype: dateTime
  min count: 0
  message: An Activity may have an end time.

AgentShape
type: NodeShape
target class: Agent
property:
  path: name
  min count: 1
  message: An Agent must have a name.
property:
  path: name
  datatype: langString
  unique lang: true
  severity: Warning
  message: An Agent name should have a language tag.
property:
  path: url
  node kind: IRI
  min count: 0
  pattern: ^https?://
  message: An Agent should have a URL.

PersonReconstructionShape
type: NodeShape
target class: PersonReconstruction
property:
  path: wasDerivedFrom
  class: PersonObservation
  min count: 1
  message: A person reconstruction must always refer to one or more person observations via prov:wasDerivedFrom.
  message: Bij een persoonsreconstructie moet altijd verwezen worden naar een of meerdere persoonsobservaties via prov:wasDerivedFrom. @nl
property:
  path: wasGeneratedBy
  class: Activity
  min count: 1
  message: Information about the creation of a person reconstruction should be documented via prov:wasGeneratedBy.
  message: Informatie over het maken van een persoonsreconstructie moet worden gedocumenteerd via prov:wasGeneratedBy. @nl

PersonObservationShape
type: NodeShape
target class: PersonObservation
property:
  path: hasAge
  or:
    datatype: decimal
  or:
    datatype: string
  max count: 1
  message: A PersonObservation can have only one age, must be a literal or decimal.
property:
  path: hadPrimarySource
  class: ArchiveComponent
  min count: 1
  message: A PersonObservation must refer to its primary source (an ArchiveComponent) via prov:hadPrimarySource.
  message: Een persoonsobservatie moet via prov:hadPrimarySource verwijzen naar de primaire bron (een ArchiveComponent). @nl

ScanShape
type: NodeShape
target class: ImageObject
property:
  path: position
  datatype: integer
  max count: 1
  message: A scan can have a position within a set, must be an integer.
  message: Een scan kan een positie binnen een set hebben, dit moet een geheel getal zijn. @nl
property:
  path: thumbnailUrl
  or:
    node kind: IRI
  or:
    datatype: anyURI
  message: A scan can have a thumbnail, must be an IRI.
  message: Een scan kan een miniatuur hebben, dit moet een IRI zijn. @nl
property:
  path: contentUrl
  or:
    node kind: IRI
  or:
    datatype: anyURI
  message: A scan can have an URL, must be an IRI.
  message: Een scan kan een URL hebben, dit moet een IRI zijn. @nl
property:
  path: embedUrl
  or:
    node kind: IRI
  or:
    datatype: anyURI
  message: A scan can have an embed URL, must be an IRI.
  message: Een scan kan een embed-URL hebben, dit moet een IRI zijn. @nl

LifeEventShape
type: NodeShape
target class: LifeEvent
property:
  path: eventType
  node kind: IRI
  min count: 1
  message: A LifeEvent must have an eventType, referencing a thesaurus term (IRI).
  message: Een LifeEvent moet een eventType hebben dat verwijst naar een thesaurusterm (IRI). @nl
property:
  path: eventDate
  or:
    datatype: date
  or:
    datatype: gYear
  or:
    datatype: gYearMonth
  or:
    datatype: string
  message: A LifeEvent date must be a date, gYear, gYearMonth or string.
  message: Een LifeEvent-datum moet een date, gYear, gYearMonth of string zijn. @nl
property:
  path: eventPlace
  or:
    datatype: string
  or:
    node kind: IRI
  or:
    class: Place
  message: A LifeEvent place must be a string, an IRI or an sdo:Place.
  message: Een LifeEvent-plaats moet een string, een IRI of een sdo:Place zijn. @nl

PersonNameShape
type: NodeShape
target class: PersonName
property:
  path: literalName
  datatype: langString
  severity: Warning
  message: pnv:literalName should be a language-tagged literal (rdf:langString).
property:
  path: givenName
  datatype: langString
  severity: Warning
  message: pnv:givenName should be a language-tagged literal (rdf:langString).
property:
  path: familyName
  datatype: langString
  severity: Warning
  message: sdo:familyName should be a language-tagged literal (rdf:langString).
property:
  path: surnamePrefix
  datatype: langString
  severity: Warning
  message: pnv:surnamePrefix should be a language-tagged literal (rdf:langString).
property:
  path: patronym
  datatype: langString
  severity: Warning
  message: pnv:patronym should be a language-tagged literal (rdf:langString).
property:
  path: initials
  datatype: langString
  severity: Warning
  message: pnv:initials should be a language-tagged literal (rdf:langString).
property:
  path: baseSurname
  datatype: langString
  severity: Warning
  message: pnv:baseSurname should be a language-tagged literal (rdf:langString).

SourceShape
type: NodeShape
target class: ArchiveComponent
property:
  path: additionalType
  or:
    datatype: langString
  or:
    node kind: IRI
  message: An source can have an additional type, can be a language-tagged literal or an IRI.
  message: Een bron kan een extra type hebben, dit moet een taalgelabelde letterlijke waarde of een IRI zijn. @nl
property:
  path: associatedMedia
  class: ImageObject
  message: An source can have associated media, must be an image object.
  message: Een bron kan bijbehorende media hebben, dit moet een afbeeldingsobject zijn. @nl
property:
  path: contentLocation
  or:
    datatype: langString
  or:
    datatype: anyURI
  message: An source can have a content location, can be a language-tagged literal or an IRI.
  message: Een bron kan een inhoudslocatie hebben, dit moet een taalgelabelde letterlijke waarde of een IRI zijn. @nl
property:
  path: dateCreated
  or:
    datatype: date
  or:
    datatype: gYear
  message: An source can have a creation date, must be in ISO 8601 date format.
  message: Een bron kan een aanmaakdatum hebben, dit moet in het ISO 8601-datumformaat zijn. @nl
property:
  path: holdingArchive
  node kind: IRI
  pattern: ^https?://
  message: An source can have an URL for the holding archive, must be an IRI.
  message: Een bron kan een URL hebben voor het archief waarin het zich bevindt, dit moet een IRI zijn. @nl
property:
  path: name
  min count: 1
  message: An ArchiveComponent must have a name.
property:
  path: name
  datatype: langString
  unique lang: true
  severity: Warning
  message: An ArchiveComponent name should have a language tag.

PersonShape
type: NodeShape
target class: PersonObservation
target class: PersonReconstruction
property:
  path: gender
  in: Male
  in: Female
  max count: 1
  message: Gender must be sdo:Male or sdo:Female.
  message: Geslacht moet sdo:Male of sdo:Female zijn. @nl
property:
  path: birthDate
  or:
    datatype: date
  or:
    datatype: gYear
  or:
    datatype: gYearMonth
  or:
    datatype: string
  message: A birth date must be a date, gYear, gYearMonth or string.
  message: Een geboortedatum moet een date, gYear, gYearMonth of string zijn. @nl
property:
  path: deathDate
  or:
    datatype: date
  or:
    datatype: gYear
  or:
    datatype: gYearMonth
  or:
    datatype: string
  message: A death date must be a date, gYear, gYearMonth or string.
  message: Een overlijdensdatum moet een date, gYear, gYearMonth of string zijn. @nl