Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Beim Erstellen eines Modells für eine Graph-Datenbank hilft das Tool Protégé bei Axiomen, Objekt-Eigenschaften, Individuals, Annotationen und Internationalisierung.

...

Nach diesen technischen Grundlagen führte der zweite Teil in die praktische Arbeit mit Ontologien ein, also das Erstellen eines semantischen Datenmodells, wobei als Werkzeug die Software Protégé zum Einsatz kam [2]. Gezeigt wurde, wie Sie mit Protégé Klassen, Eigenschaften, Individuals und Annotationen verwalten, wie Sie Schemata und Klassifizierungen umsetzen, wie Sie Restrictions einsetzen und den Reasoner nutzen und wie Sie Modelle importieren und exportieren. Im vorliegenden dritten Teil geht es nun darum, wie diese Modelle mit einer semantischen Graph-Datenbank synchronisiert und dort für das Wissensmanagement verwendet werden. Er schließt ohne Umschweife an den zweiten Teil an.

Protégé: Ein ausgereiftes Ontology Modellierungs Tool

Protégé ist ein sehr ausgereiftes und eines der am häufigsten eingesetzten freien Tools zum Modellieren von Ontologien. Betreut wird es von der Stanford University, und es ist auf deren Website kostenfrei verfügbar [3]. Die Software hat sich daher als Modellierungs-Tool etabliert, dessen generierte Modelle in ihren verschiedenen Formaten von allen W3C-konformen semantischen Datenbanken unterstützt werden.

...

Protégé positioniert sich somit klar als technisches, UI-orientiertes Modellierungswerkzeug und überlässt sowohl den operativen Betrieb als auch das programmatische Datenmanagement den Datenbank- und App-Herstellern.

...

Während Dateneigenschaften konkrete Werte verschiedener Datentypen, sogenannte Literale, für Individuals enthalten

...

referenzieren Objekteigenschaften (Object Properties) andere Individuals. Sie sind die Basis für die Beziehungen zwischen den Individuals in einem Graphen, beispielsweise die Relation zwischen einer Rechnung und dem dazugehörigen Kunden.

...

Die Objekteigenschaft hasCustomer verbindet hier die Rech-nung A mit dem Kunden B. Zum Anlegen einer solchen Eigenschaft klicken Sie im Protégé-UI unten auf das Register Object properties. Wie die Dateneigenschaften stammen in OWL alle Objekteigenschaften von owl:topObjectProperty ab. Selektieren Sie owl:topObjectProperty und klicken Sie den Button Add sub property an. Protégé fordert Sie auf, den Namen der Objekteigenschaft einzugeben (Bild 1)..

...

Wie bei den IRIs für die Klassen setzt Protégé per Vorgabe den IRI der Eigenschaft aus dem Ontologie-IRI, dem Trennzeichen # und dem eingegebenen Bezeichner zusammen. Das ist international eindeutig und in Abfragen gut lesbar.

...

Während mit traditionellen Schemata zum Beispiel gesagt wird: „Eine Person hat einen Namen“, wird dies in Onto- ▶

...

...

logien Ontologien ausgedrückt mit: „Eine Person ist eine Unterklasse aller Dinge, die einen Namen haben“. Diese Ausdrucksweise stammt aus der Description Logic (DL), hört sich etwas ver-wirrend verwirrend an, meint aber im Prinzip das Gleiche. Da es keine konkrete Klasse Ding mit einem Namen gibt, handelt es sich technisch um die Vererbung von einer sogenannten anonymen Klasse. Weil Mehrfachvererbung integraler Bestandteil von OWL ist, ist auch die Definition mehrerer Eigenschaften pro Klasse nach diesem Konzept nicht nur kein Problem, sondern beabsichtigte und etablierte Modellierungspraxis.

Bild 2 zeigt die Klasse Product mit ihren Dateneigenschaften. Entsprechend der genannten DL-/OWL-Konventionen sind diese nicht etwa bei den Eigenschaften, sondern im Bereich SubClass Of zu finden.

...

Die Datentypen werden angegeben als sogenannte Data-Restrictions (Bild 3), eine Art Type- und Value-Constraints. Die Angaben zur Kardinalität (der erlaubten Anzahl) der Eigenschaften ist ein zusätzliches Merkmal von OWL. Wichtig sind hier zwei Aspekte:

  • Zum einen werden die Restrictions – im Gegensatz zu den Domain- und Range-Axiomen – auf Klassenebene und nicht auf Ebene der Eigenschaften appliziert. Sie gelten daher nicht global, sondern nur für die entsprechende Klasse.

  • Zum anderen führen Restrictions nicht wie die Axiome zu einer automatischen Klassifizierung der Individuals der Klasse. Sie haben vorrangig deskriptiven Charakter, erzeugen keine neuen Tripel, werden aber vom Reasoner bei den Konsistenz-Checks berücksichtigt.

...

Aufgrund der Open World Assumption ist dies ist aber nicht gänzlich mit einem Validierungsschema vergleichbar. Ist im Beispiel eine minimale Kardinalität mit 1 angegeben und verfügt ein Individual nicht über eine entsprechende Eigenschaft, so wird der Reasoner dies nicht als Verletzung erkennen, denn die OWA besagt ja, dass alles, was nicht explizit angegeben ist, schlicht unbekannt, aber nicht zwangsläufig falsch ist. Das Tripel für die unbekannte Eigenschaft könnte sich ja in einer anderen Ontologie oder Datenbank befinden. Hier hilft SHACL [4]; dazu in einem Folgeartikel mehr.

...

Die Klassen mit ihren Restrictions sind angelegt, nun kommen die Individuals an die Reihe, die eigentlichen Datensätze in der Ontologie. In Protégé wechseln Sie dazu zum Register Individuals by class und unten links in den Bereich Direct Instances. Er zeigt alle bereits vorhandenen Individuals der oben ausgewählten Klasse, in Bild 4 am Beispiel von Product.

...

Beachten Sie, dass in der dotnetpro-Beispiel-Ontologie zu diesem Artikel [5] alle Produkte mit Labels versehen sind und

...

image-20240726-084916.pngImage Removed

 

...

der Protégé-Renderer im Screenshot die Labels anzeigt. Schwebt der Mauszeiger über einem Artikel, zeigt der Tooltipp seinen vollständigen IRI.

...

Zum Anlegen eines neuen Individuals klicken Sie auf den Add-Button oberhalb der Liste und dann auf New Entity Options. Protégé bietet einen Assistenten, mit dem sich die Vergabe des IRI konfigurieren lässt (Bild 5).

...

Wählen Sie als Nächstes die Option Autogenerated ID und geben Sie weiter unten das gewünschte Präfix für den IRI ein, hier Product_. Sobald Sie dann einen Namen für das neue Individual eingeben (Bild 6), erstellt Protégé mit jedem getippten Buchstaben eine neue UUID und hängt sie an das gewählte Präfix an.

...

Wie im Screenshot zu sehen ist, erstellt Protégé in diesem Fall automatisch ein Label für das betreffen- de Produkt und stellt dieses auch entsprechend in der Nutzeroberfläche dar. Mit dieser Technik sind also sowohl die weltweite Eindeutigkeit von Individuals wie auch die Lesbarkeit für den Administrator gewährleistet.

...

Um eine Annotation für eine Entität anzulegen, selektieren Sie Letztere im linken Bereich des Protégé-UI. Rechts erscheinen dann deren Annotationen im gleichnamig benannten Tab. Bild 7 zeigt ein Beispiel für die Dateneigenschaft purchasePrice, für die schon zwei label- und zwei comment-Annotationen jeweils in deutscher und englischer Sprache angelegt wurden.

...

Um eine Annotation neu anzulegen, klicken Sie den Add- Button; um eine bestehende zu ändern, nutzen Sie den Edit-Button hinter der betreffenden Annotation. Protégé fordert Sie auf, den Typ der Annotation und deren Wert einzugeben. In Bild 8 sehen Sie die Eingabe einer Dokumentation in englischer Sprache für die Eigenschaft purchasePrice in Form einer comment-Annotation.

...

Das Beispiel macht deutlich, dass in Ontologien direkt eingebundene Metadaten nicht nur deren kulturübergreifen-                                                           

...

 

...

de kulturübergreifende Dokumentation für Entwickler vereinfachen, sondern auch die Wartung von Inhalten für internationale Zielgruppen. OWL erlaubt es zudem, beliebige weitere und ebenso internationalisierbare Annotation-Typen anzulegen.                                                           

Kollaboration und I18N für Ontologien

...

Zur Konfiguration des Renderers wählen Sie im Hauptmenü von Protégé unter dem Menüpunkt Preferences den Tab Renderer und dort die Option Render by annotation proper- typroperty. Den Einstellungsdialog zeigt Bild 9..

...

Mit einem Klick auf Configure … können Sie dann bestimmen, welcher Annotation-Typ zum Darstellen der Oberfläche und welche Sprache ver- wendet werden sollen (Bild 10).

...

So lässt sich dann die Ontologie leicht auf die gewünschte Sprache „umstellen“, was die Wartung von Ontologien auch kulturübergreifend sehr einfach macht. Bild 11 zeigt exemplarisch, wie die Taxonomie nun in Deutsch gerendert wird.

...

Da die meisten Bezeichner für Klassen und Eigenschaften in Ihrer Ontologie wahrscheinlich ohnehin in Englisch erfasst werden, mag der Einsatz und die Wartung von Labels für jede Entität zunächst umständlich erscheinen. Spätestens aber, wenn Sie eine Vielzahl an Individuals in Protégé verwalten, werden Sie die Labels schnell zu schätzen wissen. Denken Sie etwa an IRIs mit UUIDs für Produkte wie das folgende:

...

Blu-ray Player, HD, inklusive Kabel 

Was in Protégé noch manuell erfolgt, lässt sich in Applikationen leicht automatisieren. Eine gute Praxis ist, für jede Klasse eine Vorlage festzulegen, anhand der die Labels automatisch aus bestimmten Feldern der jeweiligen Individuals zusammengesetzt werden, für ein Produkt zum Beispiel aus den Feldern productCode und productName. Hierzu mehr in einem späteren Artikel, wenn es um die Programmierung mit Ontologien und semantischen Graph-Datenbanken geht.

...

Da der Name von Individuals üblicherweise willkürlich und daher weder semantisch noch relational relevant ist, stellt sich die Frage, ob für derartige Angaben nicht grundsätzlich Annotationen statt Dateneigenschaften verwendet werden .

...

                                

...

sollten. Da Werte für Annotationen in SPARQL-Abfragen ­Abfragen technisch ähnlich ermit-telt ermittelt werden können wie die von Dateneigenschaften, erscheint dies legitim, insbesondere um unnötige Redundanzen zu vermeiden.

Und für überwiegend statische und manuell gepflegte Lookup-Listen oder Enumerationen ist dies auch durchaus vertretbar. Für dynamische Datenbestände kalkulieren Sie jedoch den manuellen Aufwand beim Erstellen gemischter Abfragen aus Annotationen und Eigenschaften. Außerdem unterliegen Annotationen keinerlei Einschränkungen – weder zu ihren Werten noch zu ihrer Kardinalität (Anzahl), was letztlich die Validierungsoptionen der Apps einschränkt und das Risiko von Mehrdeutigkeiten oder Inkonsistenzen erhöht.

...

und ebenfalls konfigurierbare Reasoner. So kann Protégé der

Abfragen gegen Individuals von rein auf Eigenschaften basierenden Klassen hingegen lassen sich leicht programmatisch programma-tisch und somit automatisch generieren. Individuals können programmatisch gegen die Property Constraints validiert und basierend darauf sogar SHACL-Shapes automatisch erzeugt werden. Hier eröffnet sich ein enormes Potenzial für Automatisierungen und Produktivitätssteigerungen, die ein Folgeartikel noch genauer beleuchten wird.

...

Protégé ist ein ausgereiftes Werkzeug zum Modellieren von Ontologien und ein unverzichtbarer Assistent beim Erstellen und Warten von W3C-konformen semantischen Datenmodelle und Ontologien. Es bietet nützliche Funktionen, um KlassenKlasse, Taxonomien, Eigenschaften und Constraints in einem für Entwickler komfortablen und konfigurierbaren UI zu verwalten, ohne sich um die darunterliegenden RDF-, RDFS- und OWL-Tripel und ihre vielfältigen Repräsentationen in den diversen Dateiformaten kümmern zu müssen.
Geschrieben ist Protégé in Java, es läuft somit auf allen Plattformen. Zur Seite stehen eine Vielzahl von Plug-ins, inklusive solche für SPARQL, SHACL sowie unterschiedliche und ebenfalls konfigurierbare Reasoner. So kann Protégé der umfangreichen Palette von Anforderungen an die Entwick-lung Entwicklung einer Ontologie gerecht werden, einschließlich Annota-tionen Annotationen und Präfixen, IRI-Automatik und Internationalisierung bis hin zum Zusammenführen mehrerer Ontologien in Katalogen zum Aufbau umfangreicher Knowledge-Graphen.

...