Why it matters
A plain DMS JSON record uses field names likecreator and title. A JSON-LD export maps those same fields to precise URIs from established vocabularies:
creator→http://purl.org/dc/elements/1.1/creatortitle→http://purl.org/dc/elements/1.1/titlename(on a creator) →http://xmlns.com/foaf/0.1/name
Exporting a single record
.jsonld extension:
--output to choose a different path:
Exporting an entire collection
Pass--dir to export every .json file in a directory as a single JSON-LD @graph document:
collection.jsonld file into the directory. Each record becomes a node in the @graph array, sharing a single top-level @context block:
Vocabulary mappings
DMS maps its fields to six linked data vocabularies defined inschema/dms.jsonld:
Dublin Core (dc / dcterms)
Dublin Core (dc / dcterms)
The core bibliographic vocabulary. Used for the fundamental descriptive fields:
| DMS field | Mapped to |
|---|---|
id | dc:identifier |
title | dc:title |
description | dc:description |
type | dc:type |
language | dc:language |
format | dc:format |
subject | dc:subject |
rights | dc:rights |
source | dc:source |
date.created | dcterms:created |
date.event_date | dcterms:date |
rights.license | dcterms:license |
rights.holder | dcterms:rightsHolder |
location | dcterms:spatial |
FOAF (Friend of a Friend)
FOAF (Friend of a Friend)
Used to describe people involved in creating or contributing to a record:
Role mappings to FOAF include
| DMS field | Mapped to |
|---|---|
creator[].name | foaf:name |
| each creator node | @type: foaf:Person |
author → foaf:maker.BIBO (Bibliographic Ontology)
BIBO (Bibliographic Ontology)
Provides document-type classifications and roles specific to bibliographic resources:
Creator roles include
| DMS type | BIBO mapping |
|---|---|
story, document, poem | bibo:Document |
audio | bibo:AudioDocument |
video | bibo:AudioVisualDocument |
event | bibo:Event |
interviewer → bibo:interviewer, editor → bibo:editor, translator → bibo:translator.| DMS field | Mapped to |
|---|---|
source.collection | bibo:Collection |
Schema.org
Schema.org
Provides rich type mappings recognised by Google, Bing, and major catalogues:
Additional field mappings:
| DMS type | Schema.org @type |
|---|---|
story | schema:Article |
photo | schema:Photograph |
document | schema:DigitalDocument |
audio | schema:AudioObject |
video | schema:VideoObject |
event | schema:Event |
map | schema:Map |
artwork | schema:VisualArtwork |
site | schema:Place |
poem | schema:CreativeWork |
creator[].affiliation → schema:affiliation, coverage.start_date → schema:startDate, coverage.end_date → schema:endDate.W3C Geo
W3C Geo
Used for geographic coordinates on the
location object:| DMS field | Mapped to |
|---|---|
location.latitude | geo:lat |
location.longitude | geo:long |
SKOS (Simple Knowledge Organization System)
SKOS (Simple Knowledge Organization System)
The SKOS namespace is included in the context for future use in classifying subject tags as concept scheme entries, enabling interoperability with controlled vocabulary systems and thesauri.
Example JSON-LD output
The following shows what theexamples/story.json record looks like after export. The @context block is sourced directly from schema/dms.jsonld:
story_b3e7c8a1.jsonld
@contextdeclares all vocabulary prefix bindings@typeis set to bothdms:HeritageRecordand the appropriate Schema.org type (schema:Articlefor a story)@idis aurn:dms:URI derived from the record’s UUIDidis preserved asdc:identifier- Each creator gets
"@type": "foaf:Person" - The
locationobject gets"@type": "schema:Place"
Use cases
Library catalogues
Dublin Core and BIBO mappings make DMS records directly importable into library management systems such as DSpace, Omeka, and Koha.
Linked open data portals
Publish a
collection.jsonld graph document to a SPARQL endpoint or a static open data portal for query by the wider research community.Search engine indexing
Schema.org
@type values allow Google Knowledge Graph and Bing to index heritage records as structured data, improving discoverability.Interoperability
Shared vocabulary URIs mean DMS records can be joined with datasets from other institutions that use Dublin Core or FOAF without custom data-mapping work.