Skip to main content
DMS is designed to work with existing archival and semantic web standards. Every field maps to a recognised vocabulary, and three machine-readable schema formats make it possible to consume DMS records with standard tooling in any language or platform.
DMS is fully compatible with Dublin Core — the most widely used metadata standard for digital heritage and library resources. Every DMS field maps directly to a Dublin Core element or term, allowing DMS records to be harvested, indexed, and exchanged by any system that understands Dublin Core.

Dublin Core field mapping

All 15 DMS fields map to a dc: or dcterms: property. Fields with no equivalent Dublin Core term use a dms: or schema: extension property.
DMS fieldDublin Core / extension mappingNamespace
iddc:identifierDublin Core Elements
titledc:titleDublin Core Elements
typedc:typeDublin Core Elements
descriptiondc:descriptionDublin Core Elements
languagedc:languageDublin Core Elements
creatordc:creatorDublin Core Elements
datedc:dateDublin Core Elements
date.createddcterms:createdDublin Core Terms
date.modifieddcterms:modifiedDublin Core Terms
date.event_datedcterms:dateDublin Core Terms
subjectdc:subjectDublin Core Elements
locationdcterms:spatialDublin Core Terms
location.latitudegeo:latW3C Geo
location.longitudegeo:longW3C Geo
location.areadms:campAreaDMS extension
rightsdc:rightsDublin Core Elements
rights.licensedcterms:licenseDublin Core Terms
rights.holderdcterms:rightsHolderDublin Core Terms
rights.access_leveldms:accessLevelDMS extension
sourcedc:sourceDublin Core Elements
source.contributordcterms:contributorDublin Core Terms
source.collectionbibo:CollectionBIBO
source.original_formatdms:originalFormatDMS extension
formatdc:formatDublin Core Elements
relationdc:relationDublin Core Elements
coveragedc:coverageDublin Core Elements
coverage.start_dateschema:startDateSchema.org
coverage.end_dateschema:endDateSchema.org
coverage.perioddcterms:temporalDublin Core Terms
schema_versionschema:schemaVersionSchema.org

Vocabulary mappings

The dms.jsonld context declares prefix mappings for six external vocabularies. These mappings enable DMS records to be published as Linked Data and consumed by RDF-aware systems.
VocabularyPrefixURIUsed for
Dublin Coredc:, dcterms:http://purl.org/dc/elements/1.1/, http://purl.org/dc/terms/Core metadata fields: title, creator, subject, rights, etc.
FOAFfoaf:http://xmlns.com/foaf/0.1/Person and agent descriptions (foaf:name, foaf:Person, foaf:Image)
BIBObibo:http://purl.org/ontology/bibo/Bibliographic roles (bibo:editor, bibo:translator, bibo:interviewer)
Schema.orgschema:https://schema.org/Creative works, places, events, and affiliations
W3C Geogeo:http://www.w3.org/2003/01/geo/wgs84_pos#Geographic coordinates (geo:lat, geo:long)
SKOSskos:http://www.w3.org/2004/02/skos/core#Subject vocabularies and concept schemes

JSON-LD context

The file schema/dms.jsonld provides a JSON-LD 1.1 context that transforms any DMS JSON record into a valid RDF document. Loading the context alongside a record expands each field key into a fully qualified URI.

Context prefix declarations

schema/dms.jsonld (prefixes)
{
  "@context": {
    "@version": 1.1,
    "dms": "https://github.com/Dzaleka-Connect/Dzaleka-Metadata-Standard/schema#",
    "dc": "http://purl.org/dc/elements/1.1/",
    "dcterms": "http://purl.org/dc/terms/",
    "schema": "https://schema.org/",
    "foaf": "http://xmlns.com/foaf/0.1/",
    "bibo": "http://purl.org/ontology/bibo/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "geo": "http://www.w3.org/2003/01/geo/wgs84_pos#",
    "skos": "http://www.w3.org/2004/02/skos/core#"
  }
}

Type mappings in JSON-LD

Each value of the type enum is mapped to one or more Schema.org, FOAF, and BIBO classes in the @graph section of dms.jsonld.
type valuePrimary classAdditional classes
storyschema:Articlefoaf:Document, bibo:Document
photoschema:Photographfoaf:Image
documentschema:DigitalDocumentfoaf:Document, bibo:Document
audioschema:AudioObjectbibo:AudioDocument
videoschema:VideoObjectbibo:AudioVisualDocument
eventschema:Eventbibo:Event
mapschema:Mapfoaf:Document
artworkschema:VisualArtworkfoaf:Image
siteschema:Placeschema:LandmarksOrHistoricalBuildings
poemschema:CreativeWorkbibo:Document

Example: record as JSON-LD

The following shows examples/story.json as it would be interpreted when expanded with the DMS JSON-LD context. Field keys resolve to their full URI equivalents.
story-as-jsonld.json
{
  "@context": "https://github.com/Dzaleka-Connect/Dzaleka-Metadata-Standard/schema/dms.jsonld",
  "@type": "dms:HeritageRecord",
  "dc:identifier": "b3e7c8a1-4d5f-6e7a-8b9c-0d1e2f3a4b5c",
  "dc:title": "Journey to Dzaleka: A Story of Hope",
  "dc:type": "story",
  "dc:description": "An oral history account of a Congolese family's journey from Bukavu to Dzaleka Refugee Camp in 2015.",
  "dc:language": "en",
  "dc:creator": [
    {
      "foaf:name": "Marie Consolée",
      "dms:creatorRole": "narrator"
    },
    {
      "foaf:name": "Jean-Baptiste Mushimiyimana",
      "dms:creatorRole": "interviewer",
      "schema:affiliation": "Dzaleka Digital Heritage Project"
    }
  ],
  "dc:date": {
    "dcterms:created": "2024-03-15",
    "dcterms:date": "2015-08-22"
  },
  "dc:subject": ["oral history", "displacement", "Congo", "journey", "resilience"],
  "dcterms:spatial": {
    "foaf:name": "Dzaleka Refugee Camp",
    "dms:campArea": "Community Center",
    "geo:lat": -13.7833,
    "geo:long": 33.9833
  },
  "dc:rights": {
    "dcterms:license": "CC-BY-NC-4.0",
    "dms:accessLevel": "public",
    "dcterms:rightsHolder": "Marie Consolée"
  },
  "dc:source": {
    "dcterms:contributor": "Dzaleka Digital Heritage Project",
    "bibo:Collection": "Oral Histories 2024",
    "dms:originalFormat": "audio interview (transcribed)"
  },
  "dc:coverage": {
    "schema:startDate": "2015-01-01",
    "schema:endDate": "2015-12-31",
    "dcterms:temporal": "2015 displacement and arrival"
  },
  "schema:schemaVersion": "1.0.0"
}
To export a DMS record as JSON-LD using the CLI:
dms export examples/story.json

CSV format

DMS supports importing and exporting records in CSV format for spreadsheet-based workflows. The CSV format uses the same field names as the JSON schema, with nested objects represented as flattened dot-notation columns.
Convert a CSV batch file to individual JSON records:
dms convert csv2json examples/batch.csv
Each row in the CSV becomes a separate JSON record file. Nested fields such as location.name, rights.license, and creator.0.name are expanded into their corresponding object structures.

JSON Schema validation

The schema/dms.json file is a valid JSON Schema Draft 2020-12 document. Any JSON Schema validator can use it to validate DMS records in any language or platform.
dms validate examples/story.json
The dms validate command supports single files and entire directories. Use dms validate --dir records/ to validate all JSON files in a collection at once.