Systemarchitektur

Technik

  • Webserver (nginx)
  • Triple-Store (Fuseki)
  • Skripte in Python und NodeJS
  • Docker

Workflow

Der gesamte Prozess zur Integration von Daten in den Knowledge Graphen beinhaltet besteht aus mehreren Schritten. Zur Datenannahme, Prüfung und Bereinigung siehe https://github.com/nfdi4objects/n4o-graph-importer. Dort findet sich unter anderem das offizielle XML-Schema für LIDO-Daten.

LIDO

LIDO-XML-Daten werden mit Hilfe von X3ML ins RDF-Format konvertiert.

Anreicherung

Warnung

Dieses Kapitel ist nichtmehr aktuell!

Expansion der Klassenhierarchie

Da Property-Graphen im Gegensatz zu RDF keine Inferenz-Regeln beinhalten und weil Inferenz-Regeln sowieso umständlich sind, werden die Daten im Property-Graphen expandiert. Grundlage ist ein eigener Property-Graph mit der Klassenhierarchie des CIDOC-CRM Datenmodell samt zwischenzeitlich umbenannter oder veralteter Klassen in der Datei crm-classes.pg (siehe SVG-Diagram). Der Graph aller Klassen enthält Informationen darüber welche Klassen sich aus einer anderen ergeben, z.B.

  • E22_Man_Made_Object => E22_Human_Made_Object (renamedTo)
  • E50_Date => E41_Appellation (replacedBy)
  • E7_Activity=> E5_Event (superClass)

Aus diesen Daten wird die Expansionstabelle crm-expand.txt erzeugt, z.B.:

  • E22_Human_Made_Object => E22, E71, E70, E24 E77 und E1

Zum Ausführen der Expansion:

./pg-expand-labels.py [Neo4j login file] < crm-expand.txt

Ohne Konfigurationsdatei für Neo4J werden Cypher-Kommandos ausgegeben. Mit Konfiguration wird die Expansion in der betreffenden Neo4J-Datenbank ausgeführt.

Nach der Expansion ist die Abfrage nach allen Knoten mit einem bestimmten Label wie z.B. E22_Human_Made_Object möglich oder nach allen Knoten, die direkt oder indirekt er Klasse E22 angehören.

Die Expansion ist auf gleiche Weise für andere Ontologien möglich, sofern diese auf CRM gemappt wurden.