NodeShape
target class: CreativeWork
node kind: IRI
name: CreativeWork
description: The type for [=heritage objects=] ([[DERA]]’s *cultuurhistorisch object*) in this application profile. Some heritage objects fit CreativeWork well, such as paintings, books or musical compositions. Others are a less natural fit, such as fossils, buses or bridges, either because they are not ‘creative works’ in the everyday sense or because they fit somewhere else in Schema.org’s type hierarchy. Nevertheless, CreativeWork serves as the catch-all type for all heritage objects in this application profile, to differentiate them from the other top-level classes (Person, Organization, Place). For more fine-grained typing, [[#CreativeWork-additionalType]] *SHOULD* be used.
property:
  path: name
  datatype: langString
  unique lang: true
  min count: 1
  description: The CreativeWork’s name or title, assigned either by its creator, collection managers or by others.
property:
  path: creator
  or:
    class: Person
  or:
    class: Organization
  or:
    node: NodeShape
      description: If the type of a creator is not known, the type *MAY* be omitted. A name is still *REQUIRED* to identify the creator.
      not:
        path: type
        min count: 1
      property:
        path: name
        datatype: langString
        unique lang: true
        min count: 1
        description: A *REQUIRED* property that indicates the creator’s name in its preferred display form.
  min count: 1
  description: A *REQUIRED* property that identifies the person(s) or organization(s) that had a role in the production of the CreativeWork. If a [=term=] is available, that MUST be referenced. If not, a Person or Organization resource *MUST* be used instead. The type *MAY* be omitted if the dataset publisher does not know whether the creator is a Person or Organization. Even where more specific properties, applicable to CreativeWork’s subtypes, are available in Schema.org, such as [artist](https://schema.org/artist), [composer](https://schema.org/composer) and [director](https://schema.org/director), the creator property *MUST* be used for consistency.
property:
  path: isPartOf
  min count: 1
  severity: Warning
  description: Points to the dataset(s) that the CreativeWork is part of, *REQUIRED* if the CreativeWork is part of one or more datasets. This contextualizes the CreativeWork for consumers, with the [[NDE-DATASETS|dataset’s description]] providing information about properties that are shared between CreativeWorks in the same dataset, such as publisher and license. Note that a CreativeWork may be part of multiple datasets. The dataset *MUST* be typed as a `Dataset`. The `isPartOf` property *MAY* also be used to indicate hierarchical relations between CreativeWorks within the dataset. In that case, the value’s type will be something other than `Dataset`. This usage is out of scope for this document.
property: PropertyShape
  path: associatedMedia
  node: NodeShape
    name: MediaObject
    description: In case of image, video, audio or 3d model objects, in addition to the `MediaObject` class, the relevant subclass *MUST* be used: - ImageObject - VideoObject - AudioObject - 3DModel For other types of media, the generic class MediaObject *MUST* be used by itself.
    property:
      path: license
      node kind: IRI
      min count: 1
      pattern: ^https?://
      description: A REQUIRED property that points to the URI for a license under which the digital reproduction may be used. This concerns the use of the reproduction, not of the heritage object itself. The value *MUST* be the canonical URI of a license. For example, use https://creativecommons.org/licenses/by/4.0/ instead of http://creativecommons.org/licenses/by/4.0/deed.nl. The value *SHOULD* be an open license that allows the media to consumed, for example one of the [Creative Commons](https://creativecommons.org/choose/) licenses.
    property:
      path: contentUrl
      datatype: anyURI
      min count: 1
      pattern: ^https?://
      severity: Warning
      description: Points to the URL of the media object, *REQUIRED* if the MediaObject is published under an open license. For ImageObjects, this *SHOULD* be a high-resolution image to be used in full-screen viewers etc.
    property:
      path: thumbnailUrl
      datatype: anyURI
      min count: 1
      pattern: ^https?://
      severity: Warning
      description: Points to a smaller version of the MediaObject, *REQUIRED* if the MediaObject is published under an open license. For ImageObjects, this *SHOULD* be a small image to be used in lists, search results etc.
    property:
      path: copyrightNotice
      datatype: langString
      min count: 0
      description: An *OPTIONAL* property that indicates the copyright aspects of the MediaObject, particularly useful if the license requires attribution.
    property:
      path: isBasedOn
      node: NodeShape
      min count: 0
      description: If an IIIF Image API for the MediaObject is available, this *MUST* be specified through `isBasedOn` with: - `@id` set to the IIIF base URI, without the `/info.json` suffix - `encodingFormat` set to `application/ld+json;profile='http://iiif.io/api/image/3/context.json'`. Even though full-sized and thumbnail images can be derived by IIIF-compatible consumers, the `contentUrl` and `thumbnailUrl` properties *MUST* still be provided for non-IIIF consumers. A simple formula for building image URLs from an IIIF Image API URL: - Full-size (`contentUrl`): `https://example.com/iiif/image-id/full/max/0/default.jpg` - Thumbnail (`thumbnailUrl`): `https://example.com/iiif/image-id/full/!256,256/0/default.jpg`
  min count: 1
  severity: Warning
  description: One or more media objects that represent the CreativeWork. This property is *REQUIRED* if at least one media object is available. If an IIIF Presentation API manifest is available for the CreativeWork, it *MUST* be included as an additional `associatedMedia` entry of type MediaObject with: - `@id` set to the manifest URI - `encodingFormat` set to `application/ld+json;profile='http://iiif.io/api/presentation/3/context.json'`. See MediaObject for this property’s allowed values.
property: PropertyShape
  path: identifier
  or:
    datatype: string
  or:
    class: PropertyValue
  min count: 0
  description: An *OPTIONAL* property that provides a unique identifier for the CreativeWork, usually an assigned alphanumeric string. The identifier may be useful for referencing the CreativeWork in non-RDF contexts, such as exhibitions. Note that this is different from the CreativeWork’s URI. The value *MUST* be either a string or a [schema:PropertyValue](https://schema.org/PropertyValue).
property: PropertyShape
  path: additionalType
  node kind: IRI
  min count: 0
  description: An *OPTIONAL* property that provides additional types for the CreativeWork. This is useful to add more specific types to your [=metadata record=] that may not be available as a Schema.org [[#subclasses|subclass]]. The value *MUST* reference [=terms=].
property: PropertyShape
  path: description
  datatype: langString
  min count: 0
  description: An *OPTIONAL* property that gives a full description of the CreativeWork.
property: PropertyShape
  path: abstract
  datatype: langString
  min count: 0
  description: Summarizes the CreativeWork in one sentence. The abstract *SHOULD* be free of jargon and abbreviations so it can be understood by others.
property: PropertyShape
  path: text
  datatype: langString
  min count: 0
  description: An *OPTIONAL* property containing the complete textual content of the CreativeWork, primarily used for search indexing and discovery. This includes content such as: - the full text of a written work (e.g. story) - transcribed text from visual media (e.g., inscriptions in photographs). Note that this property contains plain text only, without preserving structural elements like paragraphs, headings or the relationship between text and embedded media.
property: PropertyShape
  path: size
  datatype: string
  min count: 0
  description: Indicates the physical size of the CreativeWork in its preferred display form.
property: PropertyShape
  path: contentLocation
  or:
    node: NodeShape
  or:
    node: NodeShape
  min count: 0
  description: Indicates the location(s) depicted or described in the CreativeWork. For example, the location in a photograph or painting. If available, a term *MUST* be referenced. If not, a Place resource *MUST* be used instead.
property: PropertyShape
  path: temporalCoverage
  datatype: string
  min count: 0
  description: Indicates the period that the content applies to, i.e. that the time period(s) that the CreativeWork describes or depicts. The value *MUST* be either a DateTime or a time period in ISO 8601 time interval format.
property: PropertyShape
  path: locationCreated
  or:
    node: NodeShape
  or:
    node: NodeShape
  min count: 0
  description: Indicates the location(s) where the CreativeWork was created (which may be different from its contentLocation). If available, a term *MUST* be referenced. If not, a Place resource *MUST* be used instead.
property: PropertyShape
  path: dateCreated
  node: NodeShape
  min count: 0
  description: Indicates the date the CreativeWork was created. The value *MUST* be in ISO 8601 format: YYYY, YYYY-MM, or YYYY-MM-DD. Partial dates *MAY* be used if the exact date is unknown.
property: PropertyShape
  path: about
  or:
    node: NodeShape
  or:
    class: CreativeWork
  min count: 0
  description: Indicates the subject-matter of the CreativeWork. For example, which subjects are depicted in a painting or photograph? Or which subjects is a story about? And/or which CreativeWork (e.g. collection object) is this CreativeWork (story) about? The value *MUST* either reference terms or other CreativeWork(s). If the subject is a location, it *MUST* be listed under contentLocation instead.
property: PropertyShape
  path: material
  node: NodeShape
  min count: 0
  description: Indicates the material(s) that the CreativeWork is made from, e.g. leather, wool, cotton, paper. The value *MUST* reference terms.
property: PropertyShape
  path: genre
  node: NodeShape
  min count: 0
  description: Indicates the genre(s) of the CreativeWork, for example art movements or periods. The value *MUST* reference a term.
property: PropertyShape
  path: sdDatePublished
  or:
    datatype: date
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}$
  or:
    datatype: dateTime
    pattern: ^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}(Z|[+-][0-9]{2}:[0-9]{2})?$
  min count: 0
  description: Indicates the date when the [=metadata record=] was last changed. The value *MUST* be in ISO 8601 format: `YYYY-MM-DD` or `YYYY-MM-DDThh:mm:ssZ`.

A language-tagged name
comment: file://examples/CreativeWork-name.jsonld

Van Gogh’s panting The Starry Night
comment: file://examples/CreativeWork-creator.jsonld

A creator with unknown type:
comment: file://examples/CreativeWork-creator-untyped.jsonld

Indicating the dataset that the CreativeWork is part of:
comment: file://examples/CreativeWork-isPartOf.jsonld

An image representation of the Starry Night:
comment: file://examples/CreativeWork-associatedMedia.jsonld

IIIF Image API and Presentation manifest as `associatedMedia`:
comment: file://examples/CreativeWork-IIIF-Presentation.jsonld

A string as identifier:
comment: file://examples/CreativeWork-identifier-string.jsonld

A structured PropertyValue as identifier:
comment: file://examples/CreativeWork-identifier-structured.jsonld

The Starry Night is both a Schema.org Painting and an AAT painting:
comment: file://examples/CreativeWork-additionalType.jsonld

A description of the Starry Night:
comment: file://examples/CreativeWork-description.jsonld

A single-sentence abstract:
comment: file://examples/CreativeWork-abstract.jsonld

A story:
comment: file://examples/CreativeWork-text.jsonld

The dimensions of Van Gogh’s Starry Night
comment: file://examples/CreativeWork-size.jsonld

Van Gogh’s painting The Starry Night:
comment: file://examples/CreativeWork-contentLocation.jsonld

Van Gogh’s painting The Starry Night:
comment: file://examples/CreativeWork-temporalCoverage.jsonld

Van Gogh’s painting The Starry Night:
comment: file://examples/CreativeWork-locationCreated.jsonld

Van Gogh painted The Starry Night in June 1889:
comment: file://examples/CreativeWork-dateCreated.jsonld

The Starry Night depicts ‘starry sky’ and ‘Moon’.
comment: file://examples/CreativeWork-about.jsonld

The Starry Night is made from ‘oil paint’ and ‘canvas’:
comment: file://examples/CreativeWork-material.jsonld

The Starry Night belongs to the Post-Impressionist art movement:
comment: file://examples/CreativeWork-genre.jsonld

NodeShape
class: DefinedTerm
description: A vocabulary term referenced by sameAs. A name and sameAs are *REQUIRED*.
property:
  path: name
  datatype: langString
  unique lang: true
  min count: 1
  description: A *REQUIRED* property that indicates the term’s preferred label.
property:
  path: sameAs
  node kind: IRI
  min count: 1
  description: A *REQUIRED* property that references the term in a controlled vocabulary.

NodeShape
name: Person
target class: Person
description: If a [=metadata record=] is a person, it *MUST* be typed as `Person`. If a [=term=] is available for the person, that *MUST* be [[#reference-terms|referenced]]. If not, the person *MUST* be defined by the required properties listed below. The objective for the Person model is not to fully describe all aspects of a person, but to easily identify and distinguish between similar persons.
property:
  path: name
  datatype: langString
  unique lang: true
  min count: 1
  description: A *REQUIRED* property that indicates the Person’s full name in its preferred display form. The name *MUST NOT* contain information that belongs to other properties, such as birthDate or deathDate.
property:
  path: birthDate
  node: NodeShape
  min count: 0
  max count: 1
  description: An *OPTIONAL* property that indicates the person’s date of birth in ISO 8601 format: `YYYY-MM-DD`. Partial dates *MAY* be used if the exact date is unknown: `YYYY` or `YYYY-MM`.
property:
  path: birthPlace
  or:
    node: NodeShape
  or:
    node: NodeShape
  min count: 0
  max count: 1
  description: An *OPTIONAL* property that references the person’s place of birth. The value *MUST* reference a [=term=]. If no term is available, a custom Place resource *MUST* be used.
property:
  path: deathDate
  node: NodeShape
  min count: 0
  max count: 1
  description: An *OPTIONAL* property that indicates the person’s date of death in ISO 8601 format: `YYYY-MM-DD`. Partial dates *MAY* be used if the exact date is unknown: `YYYY` or `YYYY-MM`.
property:
  path: deathPlace
  or:
    node: NodeShape
  or:
    node: NodeShape
  min count: 0
  max count: 1
  description: An *OPTIONAL* property that references the person’s place of death. The value *MUST* reference a term, or, if no term is available, a custom Place resource *MUST* be used.
property:
  path: hasOccupation
  or:
    node: NodeShape
  or:
    node: NodeShape
      class: Occupation
      description: A Person’s occupation.
      property:
        path: name
        datatype: langString
        unique lang: true
        min count: 1
        description: A *REQUIRED* property that indicates the occupation’s name.
  min count: 0
  description: An *OPTIONAL* property that indicates the person’s occupation(s). If available, a [[#reference-terms|term reference]] *MUST* be included in `sameAs`.

Person with a language-tagged name:
comment: file://examples/Person-name.jsonld

Person with birthPlace:
comment: file://examples/Person-birthPlace.jsonld

Person with deathPlace:
comment: file://examples/Person-deathPlace.jsonld

A carpenter (as a term):
comment: file://examples/Person-hasOccupation-term.jsonld

A sekreetruimer (for which no term is known):
comment: file://examples/Person-hasOccupation.jsonld

NodeShape
target class: Organization
node kind: IRI
name: Organization
description: Each Organization *MUST* be identified by a persistent URI. Blank nodes *MUST NOT* be used for identifying Organizations.
property:
  path: name
  datatype: langString
  unique lang: true
  min count: 1
  description: A *REQUIRED* property that indicates the Organization’s full name in its preferred display form.
property:
  path: location
  min count: 0
  max count: 1
  class: Place
  node: NodeShape
  description: An *OPTIONAL* property that indicates the Organization’s location, useful for distinguishing the organization from others with similar names. See Place for this property’s allowed values.

Organization name:
comment: file://examples/Organization-name.jsonld

Organization with a location:
comment: file://examples/Organization-location.jsonld

CC0 “No Rights Reserved” license on an ImageObject:
comment: file://examples/MediaObject-license.jsonld

Full-sized image representation of the Starry Night.
comment: file://examples/MediaObject-contentUrl.jsonld

Both full-sized image and thumbnail of the Starry Night.
comment: file://examples/MediaObject-thumbnailUrl.jsonld

A MediaObject that may be used only with attribution.
comment: file://examples/MediaObject-copyrightNotice.jsonld

IIIF Image API:
comment: file://examples/MediaObject-IIIF-Image.jsonld

NodeShape
name: Place
target class: Place
description: For properties that reference locations, if no term is available, a custom Place resource *MUST* be used instead.
property:
  path: name
  datatype: langString
  unique lang: true
  min count: 1
  description: A *REQUIRED* property that indicates the name of the place.
property:
  path: address
  class: PostalAddress
  node: NodeShape
    name: PostalAddress
    description: A postal address for an Organization or Place. All properties are *OPTIONAL*.
    property:
      path: streetAddress
      datatype: string
      min count: 0
      max count: 1
      description: An *OPTIONAL* property that indicates the street address, e.g. ‘Street 123’.
    property:
      path: postalCode
      datatype: string
      min count: 0
      max count: 1
      description: An *OPTIONAL* property that indicates the postal code, e.g. ‘1234 AB’.
    property:
      path: addressLocality
      datatype: string
      min count: 0
      max count: 1
      description: An *OPTIONAL* property that indicates the locality (city).
    property:
      path: addressRegion
      datatype: string
      min count: 0
      max count: 1
      description: An *OPTIONAL* property that indicates the region (province or state).
    property:
      path: addressCountry
      datatype: string
      min count: 0
      max count: 1
      description: An *OPTIONAL* property that indicates the country. For countries that have an [ISO 3166-1](https://en.wikipedia.org/wiki/ISO_3166-1) alpha-2 country code (e.g. ‘NL’), that *MUST* be used. For historical countries, their name *MAY* be used instead (e.g. ‘Prussia’).
  min count: 0
  description: A property that indicates the Place’s address, *REQUIRED* if known. See PostalAddress for this property’s allowed values.
property:
  path: geo
  or:
    class: GeoCoordinates
    node: NodeShape
      name: GeoCoordinates
      description: Geographic coordinates for a Place.
      property:
        path: latitude
        datatype: double
        min count: 1
        max count: 1
        description: The latitude of a location. For example 37.42242 (WGS 84).
      property:
        path: longitude
        datatype: double
        min count: 1
        max count: 1
        description: The longitude of a location. For example -122.08585 (WGS 84).
  or:
    class: GeoShape
  min count: 0
  max count: 1
  description: A property that indicates the Place’s [[!WGS84]] geo coordinates, *REQUIRED* if known.

A place with an address:
comment: file://examples/Place-address.jsonld

A place with coordinates:
comment: file://examples/Place-geo.jsonld

NodeShape
or:
  datatype: Date
or:
  datatype: date
pattern: ^[0-9]{4}(-[0-9]{2}(-[0-9]{2})?)?$

pattern: info\.json$

path: encodingFormat
min count: 1
max count: 1
pattern: ^application/ld\+json;profile='http://iiif\.io/api/image/\d+/context\.json'$