2017-01-28 11 views
2

Ich verwende OWLAPI für ein Projekt, und ich muss zwei Ontologien für Unterschiede zwischen ihnen vergleichen. Dies würde leere Knoten ignorieren, so dass ich zum Beispiel feststellen kann, ob dieselben OWL-Einschränkungen in beiden Ontologien vorhanden sind. Ich muss nicht nur wissen, ob es Unterschiede gibt, sondern ich muss herausfinden, was diese Unterschiede sind. Gibt es solche Funktionalität in der OWLAPI, oz gibt es eine relativ einfache Möglichkeit, dies zu tun?Ontologievergleich in owlapi

Antwort

2

Die Gleichheit zwischen anonymen Klassenausdrücken basiert nicht auf dem leeren Knoten ids - anonyme Klassenausdrücke haben nur leere Knoten in der Textausgabe, im Speicher werden die IDs ignoriert. Wenn Sie also prüfen, ob ein Axiom in einer Ontologie vorhanden ist, werden Ausdrücke standardmäßig korrekt für Ihr Diff abgeglichen.

Dies gilt nicht für Einzelpersonen - anonyme Personen werden über Ontologien nicht die gleichen gefunden, und dies ist nach Spezifikationen. Eine anonyme Person in einer Ontologie kann nicht in einer anderen gefunden werden, da die anonymen individuellen IDs auf die enthaltene Ontologie beschränkt sind.

Hinweis: Die Komponententests für OWLAPI müssen eine sehr ähnliche Aufgabe ausführen, um zu überprüfen, ob eine Ontologie erneut geparst, geschrieben und analysiert werden kann (dh zwischen Eingabe- und Ausgabesyntax abgerundet) Code, den Sie betrachten können, um sich inspirieren zu lassen. Weitere Details finden Sie unter TestBase.java - equal() method. Dies beinhaltet Code, um mit verschiedenen IDs für anonyme Personen umzugehen.

+0

Im Vergleich von Ontologien verstehe ich, dass anonyme Personen keine ID haben (also interne IDs sind hier nicht signifikant). Meine Absicht wäre also, die Struktur anonymer Knoten zu vergleichen. Zum Beispiel, eine Einschränkung im Zusammenhang mit seiner benannten Unterklasse: Angesichts einer benannten Unterklasse, die in beiden Ontologien erscheint, ist in jeder Ontologie die Klasse eine Unterklasse einer Einschränkung, wobei die Einschränkung das Thema derselben Tripel (Eigenschaft und Objekt) in ist beide Fälle. Das muss ich feststellen. –

+0

In Ihrem Fall sind die Axiome der Unterklasse .equals() zueinander. Sie können also ein Axiom aus der ersten Ontologie nehmen und prüfen, ob die zweite Ontologie es enthält. – Ignazio

Verwandte Themen