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
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
undE1
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.