Skip to main content
The Dzaleka Metadata Standard (DMS) schema describes a single heritage item from Dzaleka Refugee Camp. It is based on Dublin Core with community-specific extensions and is available in three machine-readable formats.

Schema details

PropertyValue
Version1.0.0
Base specificationJSON Schema Draft 2020-12
Dublin Core alignmentFull — all 15 fields map to dc: or dcterms:
Additional propertiesNot allowed (additionalProperties: false)

Available formats

JSON Schema

schema/dms.json — Draft 2020-12. Use for programmatic validation in any language or CI pipeline.

YAML Schema

schema/dms.yaml — Identical to dms.json, useful for human-readable review and YAML-based tooling.

JSON-LD Context

schema/dms.jsonld — RDF/Linked Data context. Enables semantic web publishing with vocabulary mappings to Dublin Core, FOAF, BIBO, Schema.org, and W3C Geo.

Field tiers

The schema defines 15 fields across three tiers. The required array in dms.json enforces the five fields every valid record must include.
FieldTierTypeDublin Core mapping
idRequiredstring (UUID v4)dc:identifier
titleRequiredstring (1–500 chars)dc:title
typeRequiredenum (10 values)dc:type
descriptionRequiredstringdc:description
languageRequiredstring (BCP 47)dc:language
creatorRecommendedarray of Creator objectsdc:creator
dateRecommendedDateInfo objectdc:date / dcterms:created / dcterms:modified
subjectRecommendedarray of stringsdc:subject
locationRecommendedLocation objectdcterms:spatial
rightsRecommendedRights objectdc:rights
sourceOptionalSource objectdc:source
formatOptionalstring (MIME type)dc:format
relationOptionalarray of UUIDsdc:relation
coverageOptionalCoverage objectdc:coverage
schema_versionOptionalconst "1.0.0"schema:schemaVersion
Recommended fields are not enforced by the JSON Schema validator, but including them significantly improves discoverability, interoperability, and archival completeness. The dms stats command reports field completion rates across a collection.

Minimal valid record

A record that passes schema validation must include only the five required fields.
minimal-record.json
{
  "id": "b3e7c8a1-4d5f-6e7a-8b9c-0d1e2f3a4b5c",
  "title": "Journey to Dzaleka: A Story of Hope",
  "type": "story",
  "description": "An oral history account of a Congolese family's journey from Bukavu to Dzaleka Refugee Camp in 2015.",
  "language": "en"
}
A minimal record passes validation but lacks rights information, creator attribution, and location context. Use it only as a starting point — complete the recommended fields before publishing.

Fully populated record

The example below is taken directly from examples/story.json. It demonstrates all available field groups.
examples/story.json
{
  "id": "b3e7c8a1-4d5f-6e7a-8b9c-0d1e2f3a4b5c",
  "title": "Journey to Dzaleka: A Story of Hope",
  "type": "story",
  "description": "An oral history account of a Congolese family's journey from Bukavu to Dzaleka Refugee Camp in 2015. The narrator describes the challenges of displacement, the experience of crossing borders, and the sense of community found upon arrival at Dzaleka. This story captures themes of resilience, loss, and rebuilding life in a new place.",
  "language": "en",
  "creator": [
    {
      "name": "Marie Consolée",
      "role": "narrator"
    },
    {
      "name": "Jean-Baptiste Mushimiyimana",
      "role": "interviewer",
      "affiliation": "Dzaleka Digital Heritage Project"
    }
  ],
  "date": {
    "created": "2024-03-15",
    "event_date": "2015-08-22"
  },
  "subject": [
    "oral history",
    "displacement",
    "Congo",
    "journey",
    "resilience",
    "community",
    "arrival"
  ],
  "location": {
    "name": "Dzaleka Refugee Camp",
    "area": "Community Center",
    "latitude": -13.7833,
    "longitude": 33.9833
  },
  "format": "text/plain",
  "rights": {
    "license": "CC-BY-NC-4.0",
    "access_level": "public",
    "holder": "Marie Consolée"
  },
  "source": {
    "contributor": "Dzaleka Digital Heritage Project",
    "collection": "Oral Histories 2024",
    "original_format": "audio interview (transcribed)"
  },
  "coverage": {
    "start_date": "2015-01-01",
    "end_date": "2015-12-31",
    "period": "2015 displacement and arrival"
  },
  "schema_version": "1.0.0"
}

Next steps

Field guide

Detailed definitions, constraints, and examples for all 15 fields.

Heritage item types

Descriptions and examples for each of the 10 valid type values.

Interoperability

Dublin Core mapping, JSON-LD context, and vocabulary alignment tables.