2016-05-10 20 views
2

Nehmen wir an, wir haben zwei Klassen namens People und Disease. Diese Klassen sind durch die Objekteigenschaft has verknüpft.OWL: Wie Vererbung von Eigentumsbeziehungen zwischen zwei Klassen von Superklassen erhalten?

:People :has :Disease 

People hat Subklasse (oder einzelnen) John und Disease hat Subklasse (oder einzelnen) Cancer.

:John a :People 
:Cancer a :Disease 

Wie können wir die Beziehung zwischen diesen Unterklassen durch Folgerung erhalten?

:John :has :Cancer 
+0

Willst du damit sagen, dass John Krebs hat, weil John ein Volk und Menschen Krankheiten hat? Das macht keinen Sinn, daher ist es vielleicht eine gute Idee, ein wenig klarer zu sein, welche Fakten Sie haben und was Sie daraus ableiten wollen. (Und Singular Nomen sind besser für Klassennamen - dh ': Person' anstelle von ': People'. – scotthenninger

Antwort

2

Bevor Sie zu einer Antwort gelangen, gibt es eine Reihe von Missverständnissen, die Sie lösen müssen.

Erstens, Unterklasse und Individuum sind sehr unterschiedliche Konzepte. Einzelpersonen (Instanzen) sind Mitglieder von Klassen. Subklasse bezeichnet eine Klasse ist eine Teilmenge einer anderen Klasse, was bedeutet, dass eine Implikation (über Inferenz) bedeutet, dass alle Mitglieder einer Unterklasse Mitglieder der (Super-) Klasse sind. (Nur als Referenz: Es gibt kein Konzept der Vererbung in OWL.)

Zweite Eigenschaften auf Klassenebene, wie :People :has :Disease, haben keine Bedeutung für Einzelpersonen der Klasse. Um die Beziehungen einer Eigenschaft zu Klassen zu definieren, legen Sie die Domäne und den Bereich der Eigenschaft fest. (Nur mit :has als Eigenschaftsnamen ein breites Spektrum von Missverständnisse geben, möglicherweise von anderen Arten von Sprachen.) Also ich würde den Namen :hasDisease und die Behauptungen vorschlagen:

:hasDisease rdfs:domain :People . 
:hasDisease rdfs:range :Disease . 

Drittens können Sie behaupten, dass :John :hasDisease :Cancer und folgern, dass John eine Krankheit hat, vorausgesetzt, dass :Cancer eine Unterklasse von :Disease ist. Dies erfordert einen Standard-RDFS-Reasoner. Angesichts der obigen Domänen- und Bereichsdefinitionen und einer Assertion :Joy :hasDisease :Gout wird ein RDFS-Reasoner außerdem folgern, dass :Joy a :Person und :Gout a :Disease.

Es gibt ein paar OWL-Primer, die Sie über Google finden können. Ich würde vorschlagen, einige davon zu überdenken, um ein grundlegendes Verständnis dafür zu bekommen, wie OWL- und Argumentationsprofile funktionieren.

+0

Danke für Ihren Vorschlag. Ich lese [diese Grundierung] (https://www.w3.org/TR/owl2-primer /), und ich frage mich, ob mein Verständnis richtig ist: Der Primer sagt, technisch gesehen ist die Unterklassenbeziehung zwischen Klassen transitiv, das heißt, eine Klasse 'Person' hat die Eigenschaft' hasTwoLegs', dann ihre Unterklasse 'John' hat auch die gleiche Eigenschaft Beziehung.Jedoch, wenn 'John' eine Einzelperson ist, dann hat es nicht die Eigenschaft' hasTwoLegs'. Warum? sollte es nicht die Eigenschaft haben, weil es ein MITGLIED der Klasse 'Person' ist? und ich frage mich, ob es eine Möglichkeit gibt, dieses Inferenzergebnis zu erhalten. " –

+1

Ja, die Unterklassenbeziehung ist transitiv. Aber die einzige Bedeutung für die Unterklasse in RDFS ist die Klassenzugehörigkeit. Ein Mitglied einer Unterklasse ist ein Mitglied der Klasse. Nichts anderes. Daher Eigenschaften werden nicht von den Instanzen oder Unterklassen "geerbt". Auch hier beziehen sich die Eigenschaften auf c Mädels über Domain und Range mit den oben genannten Implikationen. Nichts anderes. Es ist verwirrend, da es keine OO-Prinzipien verwendet. Stellen Sie sich eine OWL-Klasse als einen Satz vor, und das könnte ein besseres Prinzip sein, um damit zu beginnen. Ein "Individuum" ist auch ein Mitglied einer Klasse (auch "Instanz" genannt). – scotthenninger