Ressourcen

entityXML umfasst als Werkzeugkasten zahlreiche Komponenten und Ressourcen, die sich im offiziellen GitLab Repository befinden:

Schema

Im Verzeichnis schema/ befindet sich das Herzstück von entityXML: Das RNG-Validierungsschema entityXML.rng.

Version 0.3.2 als 'Untermieter'
Offiziell aus Gründen der Abwärtskompatibilität (inoffiziell aus dem einfachen Grund, dass sich entityXML noch in der ALPHA-Phase befindet) "schlummert" hier noch die "ältere Schwester" (v.0.3.2) der aktuellen Version. Nach Abschluss der ALPHA Phase wird sie ausziehen.

Das Validierungsscheme ist in der XML Syntax von RELAX NG (kurz: RNG) implementiert. RNG ist eine XML Validerungssprache, mit deren Hilfe XML-Modelle, also ein definiertes Set von Elementen, Attributen zzgl. ihrer Inhaltsmodelle, erstellt werden können. RNG sorgt also vorallem dafür, dass die Struktur einer entityXML Ressource klar definiert ist: Welches Element darf welche anderen Elemente enthalten? Welche Attribute können in welchen Elementen gesetzt werden? Welche Werte können in einem Attribut benutzte werden? Alles Fragen, die im Rahmen des RNG-Schemas beantwortet werden.

Das RNG-Schema enthält zusätzlich Schematron, eine weitere Validierungssprache für XML Dateien, die im Rahmen von entityXML der erweiterten Qualitätssicherung dient: sog. "Business Rules", also kleine in Schematron definierte Regeln, sorgen für eine feingliedrigere Überprüfung von entityXML Daten als es allein mit RNG möglich wäre. Als Beispiel für eine konkrete Schematron Regel in entityXML wäre hier die Überprüfung der obligatorischen Vorzugsbenennung für Entitäten zu nennen, sofern diese nicht bereits durch einen GND-URI (@gndo:uri) mit einem Normdateneintrag in der GND identifiziert wurden. Die hinterliegende "Businessrule" wäre etwa: "Wie in der GND, ist jede Entität durch eine bevorzugte Namensform benannt."

Erweiterungen

RNG ermöglicht es, verhältnismäßig einfach Erweiterungen zu einem existierenden Schema zu implementieren. Im Verzeichnis schema/extensions befinden sich bereits zwei Erweiterungen zum entityXML Schema, die spezifische Anwendungsfälle abbilden.

entityXML.bibframe.rng implementiert einen bf:Instance Eintrag, wobei es sich um eine an Bibframe orientierte Klasse handelt, mit der Instanziierungen von Werken beschrieben werden können, und die nun stellvertretend für manifestation und expression Einträge verwendet werden kann.

entityXML.project.rng hingegen implementiert ein project Element, das im Rahmen des Workflows der Text+ GND Agentur benutzt wird, um Metadaten zu Projekten zu erfassen, und das, unabhängig von gelieferten Datensammlungen.

Skripte

Im Verzeichnis scripts/ befinden sich verschiedene Verarbeitungsskripte für entityXML Daten. Die Masse ist in XSL oder XQuery geschrieben. Dabei soll es aber nicht bleiben.

Die Spezifikation einer XML-Grammatik wie entityXML ist eine Sache. Die Verarbeitung von Daten, die dieser Grammatik folgen, eine Andere. Und genau dieser zweite Aspekt, also die Verarbeitung von entityXML Daten und die Erzeugung von Informationen auf Grundlage dieser Daten durch (automatisierte) Informationsprozesse ist der Ausgangspunkt für die Skripte in diesem Verzeichnis.

Nehmen wir beispielsweise folgendes Szenario: Projekt X erschließt Entitäten mit entityXML. Die projektspezifische Datenbank ist allerdings keine XML Datenbank, sondern eine JSON-Datenbank. Was tun? entityXML ist zwar nicht entityJSON, aber lässt sich über entityxml2json.xsl einfach in JSON konvertieren.

Betrachten wir ein zweites Szenario: Forschergruppe Y arbeitet an einer spezifischen Personendatenbank mit projektspezifischen Daten, möchte aber Informationen aus der GND in ihre eigenen Bestände nachladen (und nicht per copy-paste in ihre Einträge händisch kopieren). enrich-records.lobid.xquery reichert alle Einträge mit Daten aus LOBID an, die mit @enrich="true" markiert sind und GND-URIs verzeichnen.

Ein abschließendes drittes Szenario: Ein langfristiges Ziel der Text+ GND Agentur ist die (halb)automatisierte Einspeisung von entityXML Daten in die GND. Die GND (konkreter meine ich hier das Informationssystem der GND) kennt allerdings kein entityXML, genausowenig wie Microsoft Excel oder Microsoft Word (oder andere Formate, die gerne ins Land gefürt werden, um Daten an die GND zwecks Austausch zu senden). Aber was im Rahmen des GND Workflows für den Austausch von Daten eine Rolle spielt, ist MARC (siehe auch hier bei der DNB). MARC kennen nun allerdings die wenigsten Nutzer und Nutzerinnen der GND … ein Dilemma zeichnet sich ab. Long story short: Für dieses Problem gibt es entityxml2marcxml.xsl, um aus einer entityXML Ressource ein Format - nämlich MARC-XML - zu erzeugen, dass sich in die GND einspielen lässt.

Im Kapitel "Serialisierungen" findet sich eine kleine Auflistung bereits existierender Konversionsroutinen.

Assets

Im Verzeichnis assets/ sind zusätzliche Dateien untergebracht, die bei der Verarbeitung von entityXML verwendet werden (können).

Die wohl prominentesten Dateien in diesem Verzeichnis, genauer in assets/author sind die CSS Dateien, die das Rendering von entityXML Dateien im Rahmen des Author Modes von oXygen XML definieren.