Skip to content

Content Representation

Turning archival items into machine-usable content: structured, connected through a Knowledge Graph, and embedded so the engine can reason about meaning, not just text.

A memorial archive holds rich human artifacts: diaries, testimonies, photographs, artworks, maps, audio and video. To software they start as opaque material with only basic metadata and few links between them. This area builds three complementary views so the engine can find content by knowledge and by resonance, and explain why:

  • Structure: title, text, media, place, time. The plain facts.
  • Knowledge: items connected through people, places, and events, using a shared ontology and the WO2 and VHA controlled vocabularies.
  • Meaning: a numeric fingerprint of what an item is about, so items on the same theme sit close together even when their words differ.

HNP corpora and the Knowledge Graph

The starting point is the raw corpus of Heritage related to Nazi Persecution (HNP): unprocessed material gathered from many memorials and partners. It is historically valuable but fragmented, each item arriving with only basic metadata and few explicit links to the people, places, and events it touches. The data spans modalities:

  • Text: digitised diaries, testimonies, archival records.
  • Images: photographs, artwork, historical maps.
  • Audio and video: interviews and survivor testimonies.

The Knowledge Graph is the structured layer built on top. It reads each item and connects it into a network of entities (people, places, events, organisations, objects) joined by meaningful relationships, for example "Person was deported to Camp" or "Event occurred at Location". This turns isolated artifacts into an integrated resource where the engine can travel from a diary to the place it describes to other testimonies of the same event.

flowchart LR
    text["Text source"] --> ner["NER<br/>detect mentions"]
    ner --> el["Entity Linking<br/>resolve to URI"]
    el --> voc["Controlled vocabularies<br/>WO2 NIOD ยท VHA"]
    voc --> kg[("Knowledge Graph")]
    classDef st fill:#EFEAE0,stroke:#A8895B,color:#423D34;
    class kg st;

Populating the graph relies on NLP pipelines plus manual curation:

  1. NER detects mentions of persons, places, organisations, events, and temporal expressions.
  2. Entity Linking resolves each mention to a unique authoritative identifier (URI).
  3. Controlled vocabularies supply the stable identifiers, synonyms, multilingual labels, and hierarchy: the NIOD WO2 Thesaurus gives archival precision (camps, ghettos, organisations, events), and the VHA vocabulary adds experiential categories such as "Deportation/Transport" or "Life in Ghettos". Example: a diary mentioning "Westerbork" is recognised as a location and linked to the WO2 URI for the Westerbork transit camp.

The KG uses two groups of ontology classes (full spec: MEMORISE Ontology):

Group Classes
Historical (past realities) Person (life events), Event (time, persons, places), Location (camps, ghettos, cities, geo-coordinates), Physical Object (artefacts, photos, maps)
Historiographic (how history is recorded) Document (diaries, letters, testimonies, records), Media Item, Archive / Collection

The engine consumes the KG as the symbolic grounding signal in hybrid scoring, connecting related people, places, and events across sources.

What you will find here

  • Tag system (taxonomy)


    The facet:label tags that describe content and visitors, and how raw tags are classified.

  • Vector embeddings & store


    The semantic space where proximity means similar meaning, and the Qdrant store that holds embeddings and metadata together for fast, filtered, geospatial retrieval.

  • Omeka collection


    The curated source of truth and how items are pulled into the pipeline.

API for this area

Content is written into the store by the content-engine service. See the interactive Content Manager API (POST /ingest, POST /sync/omeka).

The MEMORISE ontology connecting historical and historiographic classes

The MEMORISE ontology: historical classes (Person, Place, Event, Object) and historiographic classes (Document, Media Item, Archive) that connect fragmented sources into one graph.