1. Introduction
1.1. Goal
This document prescribes the SCHEMA-AP-NDE generic data model to be used when publishing linked data in the Dutch heritage network (NDE). The model consists of a minimal set of classes and properties. It is based on:
-
the current state of datasets in the heritage network, as observed in the Dataset Knowledge Graph, particularly its property partitions analysis;
-
the needs of service platform builders for understanding, processing and presenting data, especially across datasets and publishers.
By adhering to this model, dataset publishers ensure that their data can be:
-
discovered, understood and combined with other datasets in the network;
-
used in service platforms to build applications and visualisations.
1.2. Scope
The document is restricted in four ways:
-
it applies to the Dutch heritage network (NDE), which implements the National Digital Heritage Strategy and Digital Reference Heritage Architecture;
-
it applies to the way published data is expressed, not how it is stored or managed internally;
-
it prescribes a generic data model and leaves the use of domain data models up to dataset publishers;
-
it bears upon datasets, not their descriptions; for the latter see [NDE-DATASETS].
1.3. Examples
RDF examples in this document are in the RECOMMENDED JSON-LD § 3.5 Serialization format.
2. Definitions
- Data model
-
Set of classes and their properties that defines how data is expressed.
- Generic data model
-
A simple, shared data model; the scope of this document. Can be used alongside domain data models.
- Domain data model
-
A domain-specific data model, such as CIDOC-CRM, Linked Art, RiC-O or RDA. Can be used alongside a generic data model. Adds precision at the cost of complexity. Out of this document’s scope.
- Metadata record
-
An RDF resource that expresses one of the top-level classes in the § 4 Data model. Description of a heritage object.
- Term
-
A word, name, acronym, phrase or other symbol with a formal definition, available in the Network of Terms.
3. General considerations
3.1. Generic and domain data models
The purpose of generic data models is to integrate data in the heritage network and make it more visible. Domain models are usually more richly populated and provide consumers with more possibilities for further processing, for example in service platforms.
This document is limited to a set of classes and properties that together form the generic data model. For most datasets, the generic data model expresses only a subset of data properties that are available. This document’s purpose, therefore, is not a complete and correct expression of the source data, but an easily understandable and usable one.
If done well, the generic data invites consumers to explore the data in more depth using the domain data models. So to facilitate further exploration, publishers MAY use domain data models of their choosing alongside the generic data model. Examples are:
-
CIDOC-CRM and its derivative Linked Art for museum collections and catalogues;
-
RiC-O for archives;
-
PiCo for biographical data;
-
RDA for libraries.
3.2. Vocabulary
The generic data model presented in this document is designed as a [SCHEMA-ORG] application profile. Schema.org is a widely adopted cross-domain metadata standard. It is, therefore, well-suited for the heritage network, which spans datasets from the library, archive, museum and other domains.
While the Schema.org website considers “both 'https://schema.org' and 'http://schema.org' (...) fine”, mixing the namespaces makes it harder to consume datasets.
Therefore, Publishers MUST use the https://schema.org/
(HTTPS) namespace for Schema.org; not http://schema.org/
(HTTP).
3.3. Language
For all name and description values, their language MUST be specified. The language MUST be expressed as a well-formed language tag according to [BCP47], such as ‘nl’ (language only) or ‘nl-NL’ (including region).
name
property:
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/1" , "@type" : "CreativeWork" , "name" : [ { "@language" : "nl" , "@value" : "De Sterrennacht" }, { "@language" : "en" , "@value" : "The Starry Night" } ] }
Even if only one language is available, the language MUST be specified.
{ "@context" : "https://schema.org" , "name" : { "@language" : "nl" , "@value" : "De Sterrennacht" } }
Each language MUST occur only once, so only a single value per language is allowed.
{ "@context" : "https://schema.org" , "name" : [ { "@language" : "en" , "@value" : "The Starry Night" }, { "@language" : "en" , "@value" : "Repeated English name while only one is allowed" } ] }
3.4. Reference terms
When referencing terms, publishers MUST use the term’s URI.
The term MUST be typed as DefinedTerm
so it is clear to consumers that the term can be looked up through the Network of Terms.
Publishers SHOULD add the term’s name in any language(s) they know about for readability:
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "creator" : { "@id" : "https://data.rkd.nl/artists/32439" , "@type" : [ "Person" , "DefinedTerm" ], "name" : { "@language" : "nl" , "@value" : "Vincent van Gogh" } } }
3.5. Serialization
Servers MUST provide at least one RDF serialization format. Supporting multiple formats using content negotiation is RECOMMENDED.
The following formats are RECOMMENDED:
-
[JSON-LD] when serving an individual resource at its URI, because of its accessibility to web platform builders;
-
[N-QUADS] for RDF dumps containing multiple resources, because of its efficiency.
3.6. Publication method
3.6.1. Publication levels
In the heritage network, SCHEMA-AP-NDE data MUST be available on two levels:
-
resolvable URIs for individual resources
-
data dumps for datasets
It MAY additionally be available through a:
-
SPARQL endpoint.
If the generic data model is used alongside domain data models, there are two methods for doing so:
Publishers MUST support at least one of these methods.
Combined | Separate profiles | |
Resolvable URI | ✅ | ✅ |
Data dump | ✅ | ✅ |
SPARQL endpoint | ❌ | ✅ |
3.6.2. Combined
With RDF, it’s perfectly fine to express the same data in multiple ways. Therefore, the generic and domain data models MAY coexist in the same information resource.
{ "@context" : { "schema" : "https://schema.org/" , "rdfs" : "http://www.w3.org/2000/01/rdf-schema#" , "dcterms" : "http://purl.org/dc/terms/" }, "@id" : "https://literatuurmuseum.nl/id/123456789" , "@type" : [ "schema:CreativeWork" , "schema:VisualArtwork" ], "schema:name" : "Het fluitketeltje en andere versjes" , "rdfs:label" : "Het fluitketeltje en andere versjes" , "schema:creator" : { "@type" : "schema:Person" , "@id" : "http://data.rkd.nl/artists/8342" }, "dcterms:creator" : { "@type" : "dcterms:Agent" , "@id" : "http://data.rkd.nl/artists/8342" } }
3.6.3. Separate profiles
Alternatively, publishers MAY separate the generic data model by using profile-based content negotiation (see [DX-PROF-CONNEG]).
To do so, publish a profile with URI https://netwerk-digitaal-erfgoed.github.io/schema-profile/
.
Note: While still a draft, [DX-PROF-CONNEG] has already been implemented, for example by the Rijksmuseum.
# Get the list of profiles.GET /resource/a?profile=alt HTTP / 1.1 # Server responds with a list of profiles that includes the NDE generic data model. HTTP/1.1 200 OK Content-Type: application/json { "resource": "http://example.org/resource/a", "profiles": [ { "token": "nde", "uri": "https://netwerk-digitaal-erfgoed.github.io/schema-profile/", "media_types": ["application/ld+json", "text/turtle"] }, ... ] }
It is then possible to request the metadata record in the generic data model using the Accept-Profile
HTTP header:
GET /resource/a HTTP / 1.1 Accept : application/ld+json Accept-Profile : <https://netwerk-digitaal-erfgoed.github.io/schema-profile/> # Server responds with a SCHEMA-AP-NDE representation of the metadata record. HTTP/1.1200 OK Content-Type : application/ld+json ...
4. Data model
This section describes the classes and properties that MUST be used to publish metadata records in the heritage network.
Each record MUST be typed as one of the following classes:
For each of these classes, the sections below list the REQUIRED and OPTIONAL properties.
4.1. Class diagram
4.2. CreativeWork
The most generic kind of item created by humans, i.e. heritage objects.
CreativeWork candidate properties [Issue #3]
4.2.1. Subclasses
Publishers SHOULD use more fine-grained classes alongside the top-level class CreativeWork
.
Examples include:
-
ArchiveComponent for archival items and collections;
-
Book;
-
Message for letters;
-
MusicComposition, MusicRecording and MusicAlbum for musical items and collections;
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/1" , "@type" : [ "CreativeWork" , "Painting" ] }
Even though the superclass can be derived from its subclasses using RDF inferencing (in this example, CreativeWork from Painting), the superclass MUST be provided explicitly to help users understand the data.
4.2.2. URI (required)
Each CreativeWork MUST be identified by a persistent URI. Blank nodes MUST NOT be used for identifying CreativeWorks.
@id
property:
{ "@context" : "https://schema.org" , "@id" : "https://example.com/dataset1/resource1" , "@type" : "CreativeWork" }
4.2.3. name (required)
A REQUIRED property to indicate the CreativeWork’s name or title, assigned either by its creator, collection managers or by others.
The name MUST be a language-tagged string:
{ "@context" : "https://schema.org" , "@id" : "https://example.com/dataset1/resource1" , "@type" : "CreativeWork" , "name" : [ { "@language" : "nl" , "@value" : "De Sterrennacht" }, { "@language" : "en" , "@value" : "The Starry Night" } ] }
4.2.4. creator (required)
A REQUIRED property that identifies the person(s) or organization(s) that created the CreativeWork. If a term is available, that MUST be referenced. If not, a Person or Organization resource MUST be used instead.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : [ "CreativeWork" , "Painting" ], "creator" : { "@id" : "https://data.rkd.nl/artists/32439" , "@type" : [ "Person" , "DefinedTerm" ], "name" : { "@language" : "nl" , "@value" : "Vincent van Gogh" } } }
Even where more specific properties, applicable to CreativeWork’s subtypes, are available in Schema.org,
such as artist, composer and director,
the creator
property MUST be used for consistency.
4.2.5. isPartOf (required)
A REQUIRED property that points to the dataset(s) that the CreativeWork is part of.
IF is part of datasets.
This contextualizes the CreativeWork for consumers, with the 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
.
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/1" , "@type" : "CreativeWork" , "isPartOf" : { "@id" : "https://organization.com/dataset1" , "@type" : "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.
4.2.6. associatedMedia (required)
Or use specialized properties schema:image, schema:video, schema:audio alongside or without schema:associatedMedia?
One or more media objects that represent the CreativeWork. This property is REQUIRED if at least one media object is available.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "associatedMedia" : { "@type" : "ImageObject" , ...} }
See MediaObject for this property’s allowed values.
4.2.7. identifier
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.
4.2.8. additionalType
An OPTIONAL property that provides additional types for the CreativeWork.
The value MUST reference terms.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : [ "CreativeWork" , "Painting" ], "additionalType" : { "@id" : "https://vocab.getty.edu/aat/300033618" } }
4.2.9. description
An OPTIONAL property that gives a full description of the CreativeWork.
The value MUST be a language-tagged string.
{ "@context" : "https://schema.org" , "@id" : "https://example.com/dataset1/resource1" , "@type" : "CreativeWork" , "description" : [ { "@language" : "nl" , "@value" : "Olieverfschilderij van het uitzicht uit Van Goghs ziekenhuiskamer in Saint-Rémy-de-Provence, vlak voor zonsopkomst." }, { "@language" : "en" , "@value" : "Oil-on-canvas painting depicting the view from his asylum room at Saint-Rémy-de-Provence, just before sunrise." } ] }
4.2.10. abstract
An OPTIONAL property that summarizes the CreativeWork in one sentence.
The abstract SHOULD be free of jargon and abbreviations so it can be understood by others.
The value MUST be a language-tagged string.
{ "@context" : "https://schema.org" , "@id" : "https://example.com/dataset1/resource1" , "@type" : "CreativeWork" , "abstract" : [ { "@language" : "nl" , "@value" : "Het schilderij is een nachttafereel met gele sterren boven een kleine stad met heuvels. Het is een uitzicht vanuit een denkbeeldig punt over een dorp met kerktoren, met links een vlammende cipres en rechts olijfbomen tegen de heuvels op." } ] }
4.2.11. text
An OPTIONAL property that provides the full textual content of the CreativeWork, for example the story content.
The value MUST be a language-tagged string.
{ "@context" : "https://schema.org" , "@id" : "https://example.com/dataset1/resource1" , "@type" : [ "CreativeWork" , "Article" ], "text" : [ { "@language" : "nl" , "@value" : "Lorem ipsum dolor sit amet, consectetur adipiscing elit. In a dignissim enim, in hendrerit ipsum. Sed accumsan purus id erat hendrerit rutrum. Nullam luctus, erat luctus fringilla semper, arcu erat gravida mi, vel molestie ex odio et orci. Phasellus vestibulum tristique pulvinar. Aliquam erat volutpat." } ] }
4.2.12. size
An OPTIONAL property that indicates the physical size of the CreativeWork in its preferred display form.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "size" : "74 × 92 cm" } }
4.2.13. contentLocation
An OPTIONAL property that 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.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "contentLocation" : { "@id" : "http://www.wikidata.org/entity/Q221507" , "@type" : [ "Place" , "DefinedTerm" ], "name" : { "@language" : "fr" , "@value" : "Saint-Rémy-de-Provence" } } }
4.2.14. temporalCoverage
An OPTIONAL property that 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.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "temporalCoverage" : "1889-06/07" }
4.2.15. locationCreated
An OPTIONAL property that 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.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "locationCreated" : { "@id" : "http://www.wikidata.org/entity/Q221507" , "@type" : [ "Place" , "DefinedTerm" ], "name" : { "@language" : "fr" , "@value" : "Saint-Rémy-de-Provence" } } }
4.2.16. dateCreated
An OPTIONAL property that indicates the date the CreativeWork was created.
The value MUST be in [ISO8601] format. Partial dates MAY be used if the exact date is unknown.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "dateCreated" : "1889-06" }
4.2.17. about
An OPTIONAL property to indicate the subject-matter of the CreativeWork. For example, which subjects are depicted in a painting or photograph? Or which subjects is a story about?
The value MUST reference terms.
If the subject is a location, it MUST be listed under contentLocation instead.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "about" : [ { "@id" : "http://www.wikidata.org/entity/Q149908" , "@type" : "DefinedTerm" , "name" : { "@language" : "en" , "@value" : "starry sky" } }, { "@id" : "http://www.wikidata.org/entity/Q405" , "@type" : "DefinedTerm" , "name" : { "@language" : "en" , "@value" : "Moon" } } ] }
4.2.18. material
An OPTIONAL property that indicates the material(s) that the CreativeWork is made from, e.g. leather, wool, cotton, paper. The value MUST reference terms.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "material" : [ { "@id" : "http://vocab.getty.edu/aat/300015050" , "@type" : "DefinedTerm" , "name" : { "@language" : "en" , "@value" : "oil paint (paint)" } }, { "@id" : "http://vocab.getty.edu/aat/300014078" , "@type" : "DefinedTerm" , "name" : { "@language" : "en" , "@value" : "canvas (textile material)" } } ] }
4.2.19. genre
An OPTIONAL property that indicates the genre(s) of the CreativeWork, for example art movements or periods.
The value MUST reference a term.
{ "@context" : "https://schema.org" , "@id" : "http://www.wikidata.org/entity/Q45585" , "@type" : "CreativeWork" , "genre" : { "@id" : "http://vocab.getty.edu/aat/300021508" , "@type" : "DefinedTerm" , "name" : { "@language" : "en" , "@value" : "Post-Impressionist" } } }
4.3. Person
If a metadata record is a person, it MUST be typed as Person
.
If a term is available for the person, that MUST be 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.
Person candidate properties [Issue #12]
4.3.1. name (required)
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.
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/2" , "@type" : "Person" , "name" : { "@language" : "nl" , "@value" : "Pluk van de Petteflat" } }
4.3.2. birthDate
An OPTIONAL property that indicates the person’s date of birth in [ISO8601] format.
4.3.3. birthPlace
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.
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/2" , "@type" : "Person" , "birthPlace" : { "@id" : "https://sws.geonames.org/2745912/" , "@type" : "Place" } }
4.3.4. deathDate
An OPTIONAL property that indicates the person’s date of death in [ISO8601] format.
4.3.5. deathPlace
An OPTIONAL property that references the person’s place of death. The value MUST reference a term. If no term is available, a custom Place resource MUST be used.
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/2" , "@type" : "Person" , "deathPlace" : { "@id" : "http://www.wikidata.org/entity/Q131153786" , "@type" : "Place" } }
4.3.6. hasOccupation
An OPTIONAL property that indicates the person’s occupation(s). The value MUST reference a term.
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/2" , "@type" : "Person" , "hasOccupation" : { "@id" : "http://vocab.getty.edu/aat/300025008" , "@type" : "Occupation" } }
4.4. Organization
Each Organization MUST be identified by a persistent URI.
Blank nodes MUST NOT be used for identifying Organizations.
4.4.1. name (required)
A REQUIRED property that indicates the Organization’s full name in its preferred display form.
4.4.2. address
An OPTIONAL property that indicates the Organization’s address(es), useful for distinguishing the organization from others with similar names.
{ "@context" : "https://schema.org" , "@id" : "https://n2t.net/ark:/123456/3" , "@type" : "Organization" , "name" : "Example Museum" , "address" : { "@type" : "PostalAddress" , "streetAddress" : "Street 123" , "postalCode" : "1234 AB" , "addressLocality" : "City" , "addressRegion" : "Noord-Holland" , "addressCountry" : "NL" } }
4.5. MediaObject
In case of image, video, audio or 3d model objects, the relevant subclass MUST be used:
-
ImageObject
-
VideoObject
-
AudioObject
-
3DModel
For other types of media, the generic class MediaObject MUST be used.
4.5.1. license (required)
A REQUIRED property that points to the URI for a license under which the media object may be used.
An open license is RECOMMENDED.
{ "@context" : "https://schema.org" , "@type" : "MediaObject" , "license" : "https://creativecommons.org/public-domain/cc0/" }
4.5.2. contentUrl (required)
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.
{ "@context" : "https://schema.org" , "@type" : "ImageObject" , "contentUrl" : "https://demo.limb-gallery.com/i/?IIIF=/7b/2e/bc/4c/7b2ebc4c-1a55-4d5d-a154-8b590764caa6/iiif/Van_Gogh_-_Starry_Night_-_Google_Art_Project.tif/full/max/0/default.jpg" }
4.5.3. thumbnailUrl (required)
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.
{ "@context" : "https://schema.org" , "@type" : "ImageObject" , "contentUrl" : "https://demo.limb-gallery.com/i/?IIIF=/7b/2e/bc/4c/7b2ebc4c-1a55-4d5d-a154-8b590764caa6/iiif/Van_Gogh_-_Starry_Night_-_Google_Art_Project.tif/full/max/0/default.jpg" , "thumbnailUrl" : "https://demo.limb-gallery.com/i/?IIIF=/7b/2e/bc/4c/7b2ebc4c-1a55-4d5d-a154-8b590764caa6/iiif/Van_Gogh_-_Starry_Night_-_Google_Art_Project.tif/full/^!256,256/0/default.jpg" }
4.5.4. copyrightNotice
An OPTIONAL property that indicates the copyright aspects of the MediaObject, particularly useful if the § 4.5.1 license (required) requires attribution.
The value MUST be a language-tagged string:
{ "@context" : "https://schema.org" , "@type" : "MediaObject" , "license" : "https://creativecommons.org/licenses/by-sa/4.0/" , "copyrightNotice" : { "@language" : "en" , "@value" : "© 2025 Example Museum, with permission from Ph. Otographer" } }
4.5.5. IIIF
If an IIIF Image API for the MediaObject is available,
this MUST be specified through isBasedOn
,
with property encodingFormat
set to application/ld+json;profile='http://iiif.io/api/image/3/context.json'
.
If an IIIF Presentation API for the MediaObject is available,
this MUST be specified through isBasedOn
,
with property encodingFormat
set to application/ld+json;profile='http://iiif.io/api/presentation/3/context.json'
.
{ "@context" : "https://schema.org" , "@type" : "ImageObject" , "contentUrl" : "https://demo.limb-gallery.com/i/?IIIF=/7b/2e/bc/4c/7b2ebc4c-1a55-4d5d-a154-8b590764caa6/iiif/Van_Gogh_-_Starry_Night_-_Google_Art_Project.tif/full/max/0/default.jpg" , "thumbnailUrl" : "https://demo.limb-gallery.com/i/?IIIF=/7b/2e/bc/4c/7b2ebc4c-1a55-4d5d-a154-8b590764caa6/iiif/Van_Gogh_-_Starry_Night_-_Google_Art_Project.tif/full/^!256,256/0/default.jpg" , "isBasedOn" : [ { "@type" : "CreativeWork" , "@id" : "https://demo.limb-gallery.com/i/?IIIF=/7b/2e/bc/4c/7b2ebc4c-1a55-4d5d-a154-8b590764caa6/iiif/Van_Gogh_-_Starry_Night_-_Google_Art_Project.tif/info.json" , "encodingFormat" : "application/ld+json;profile='http://iiif.io/api/image/3/context.json'" }, { "@type" : "CreativeWork" , "@id" : "https://demo.limb-gallery.com/iiif/25290/manifest" , "encodingFormat" : "application/ld+json;profile='http://iiif.io/api/presentation/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
4.6. Place
For properties that reference locations, if no term is available, a custom Place resource MUST be used instead.
4.6.1. address (required)
A property that indicates the Place’s address, REQUIRED if known.
REQUIRED address properties are:
-
streetAddress
-
postalCode
-
addressLocality
(city) -
addressRegion
(province) -
addressCountry
(MUST be in [ISO3166-1] format).
{ "@context" : "https://schema.org" , "@id" : "https://example.com/dataset/place" , "@type" : "Place" , "address" : { "@type" : "PostalAddress" , "streetAddress" : "Street 123" , "postalCode" : "1234 AB" , "addressLocality" : "City" , "addressRegion" : "Noord-Holland" , "addressCountry" : "NL" } }
4.6.2. geo (required)
A property that indicates the Place’s [WGS84] geo coordinates, REQUIRED if known.
{ "@context" : "https://schema.org" , "@type" : "Place" , "@id" : "https://example.com/dataset/place" , "geo" : { "@type" : "GeoCoordinates" , "latitude" : "37.42242" , "longitude" : "-122.08585" } }
5. Full examples
Some full examples of metadata records.
5.1. Painting
TODO
5.2. Story
{ "@context" : "https://schema.org" , "@id" : "https://www.bhic.nl/ontdekken/verhalen/vincent-van-gogh-op-kostschool" , "@type" : [ "CreativeWork" , "Article" ], "name" : "Vincent van Gogh op kostschool" , "creator" : { "@type" : "Person" , "name" : { "@language" : "nl" , "@value" : "Cor Kerstens" } }, "isPartOf" : { "@id" : "https://www.bhic.nl/ontdekken/verhalen" , "@type" : "Dataset" }, "associatedMedia" : { "@id" : "https://www.bhic.nl/memorix/images/search/detail/31c4cc62-45fb-11e3-8624-e7bda1721fcf/media/26097b4e-deca-d99c-4c2d-2598d67b61a0" , "@type" : "ImageObject" , "contentUrl" : "https://webservices.memorix.nl/mediabank/media/31c4cc62-45fb-11e3-8624-e7bda1721fcf/downloadoriginal/26097b4e-deca-d99c-4c2d-2598d67b61a0?apiKey=24c66d08-da4a-4d60-917f-5942681dcaa1" , "caption" : { "@language" : "nl" , "@value" : "De voormalige kostschool, Stationsstraat 16 in Zevenbergen" }, "copyrightNotice" : { "@language" : "nl" , "@value" : "BHIC" } }, "description" : { "@language" : "nl" , "@value" : "Van 1 oktober 1864 tot 31 augustus 1866 verbleef Vincent van Gogh op de kostschool van Jan Provily in Zevenbergen. Vincent zelf vertelt er in drie brieven kort iets over. Hieruit blijkt dat hij zich hier niet zo gelukkig heeft gevoeld." }, "abstract" : { "@language" : "nl" , "@value" : "Van 1 oktober 1864 tot 31 augustus 1866 verbleef Vincent van Gogh op de kostschool van Jan Provily in Zevenbergen." }, "text" : { "@language" : "nl" , "@value" : "Domineeszoon Vincent van Gogh werd op 30 maart 1853 in het Brabantse grensdorp Zundert geboren. Tot zijn 8ste jaar kreeg hij les van zijn vader (…)" }, "contentLocation" : { "@id" : "https://data.rkd.nl/artists/32439" , "@type" : [ "Place" , "DefinedTerm" ], "name" : { "@language" : "nl" , "@value" : "Zevenbergen" } }, "temporalCoverage" : "1864/1866" , "dateCreated" : "2019-04-25" , "about" : [ { "@id" : "https://data.rkd.nl/artists/32439" , "@type" : [ "Person" , "DefinedTerm" ], "name" : { "@language" : "nl" , "@value" : "Vincent van Gogh" } }, { "@id" : "https://data.cultureelerfgoed.nl/term/id/cht/596dac9d-868f-461e-bbf9-6baae4fb5a12" , "@type" : [ "DefinedTerm" ], "name" : { "@language" : "nl" , "@value" : "kostscholen" } } ], "genre" : { "@id" : "http://vocab.getty.edu/aat/300080102" , "@type" : [ "URL" , "DefinedTerm" ], "name" : { "@language" : "nl" , "@value" : "biografieën" } } }
6. Formal definition
This SHACL file does not yet reflect all changes in the text above.
@prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> . @prefix schema: <https://schema.org/> . @prefix sh: <http://www.w3.org/ns/shacl#> . @prefix xsd: <http://www.w3.org/2001/XMLSchema#> . _ : CreativeWorkShape a sh : NodeShape ; sh : targetClass schema : CreativeWork ; sh : property _ : NameProperty , _ : DescriptionProperty , _ : CreatorProperty . _ : NameProperty a sh : PropertyShape ; sh : path schema : name ; sh : datatype rdf : langString ; sh : minCount 1 . _ : DescriptionProperty a sh : PropertyShape ; sh : path schema : description ; sh : datatype rdf : langString ; sh : minCount 1 . _ : ImageProperty a sh : PropertyShape ; sh : path schema : image ; sh : class schema : ImageObject ; sh : minCount 0 . _ : CreatorProperty a sh : PropertyShape ; sh : path schema : creator ; sh : or ( [ sh : datatype schema : Person ] [ sh : datatype schema : Organization ] ) ; sh : minCount 1 . _ : GeoCoordinatesShape a sh : NodeShape ; sh : targetClass schema : GeoCoordinates ; sh : property [ sh : path schema : latitude ; sh : datatype xsd : float ; sh : minCount 1 ; sh : maxCount 1 ; ] , [ sh : path schema : longitude ; sh : datatype xsd : float ; sh : minCount 1 ; sh : maxCount 1 ; ] . _ : PlaceShape a sh : NodeShape ; sh : targetClass schema : Place ; sh : property [ sh : path schema : geo ; sh : or ( [ sh : class schema : GeoCoordinates ] [ sh : class schema : GeoShape ] ) ; sh : minCount 0 ; sh : maxCount 1 ; ] .