2016-04-05 20 views
1

Ich brauche etwas Hilfe in Bezug auf OWL-Syntax. Ich habe eine synthetische Bevölkerungsgruppe namens "Person". Person enthält Bevölkerungsinformationen und PersonWithinAdminRegion ist eine weitere Klasse, die die Untergruppe der Personenklasse darstellt. Zum Beispiel enthält die Klasse "Person" Informationen über alle Personen in den USA. FloridaPerson oder MiamiPerson können ein Beispiel für PersonWithinAdminRegion sein. Grundsätzlich ist PersonWithinAdminRegion eine Untergruppe der Supergroup-Person. Es ist keine Unterklasse, weil die Unterklasse Eigenschaften der Oberklasse erbt und weitere hinzufügt. Das ist in meiner Situation nicht der Fall. Meine Frage ist, wie Untergruppe einer Supergruppe in OWL-Syntax angezeigt wird?Untergruppe und Super-Gruppe (Klasse/Unterklasse) Relation in OWL

Person a owl:Class. 
PersonWithinAdminRegion ? ? 
+0

Sind Sie sich Ihrer Modellierungsperspektive sicher? Sind MiamiPerson und FloridaPerson nicht auch Personen (was ist eine Abstraktion aller USA in Ihrem Kontext)? Könnten Sie bitte mehr klären, indem Sie ein Beispiel für eine Eigenschaft geben, die Person hat, aber MiamiPerson zum Beispiel nicht? –

Antwort

3

Es gibt keine Vererbung in OWL. Daher werden keine Eigenschaften von Unterklassen geerbt. Die Unterklassenhierarchie ist eine Art von Subsumtionshierarchie mit nur einer Semantik: Ein Mitglied einer Unterklasse ist ein Mitglied der (Super-) Klasse. Ein Beispiel:

:Person a owl:Class . 
:PersonWithinAdminRegion a owl:Class . 
:PersonWithinAdminRegion rdfs:subClassOf :Person . 
:FloridaPerson a :PersonWithinAdminRegion . 

Daraus kann man folgern:

:FloridaPerson a :Person . 

Und das ist alles. Keine anderen Eigenschaften oder Werte werden abgeleitet. Z.B. Die Semantik von RDFS und OWL ähnelt mehr der Mengenlehre (Klassifikation) als der objektorientierten Klassendefinition.

So scheint es das oben genannte wird Ihnen die Semantik, die Sie wollen. Wenn Sie tiefer in die Subsumtion Hierarchie gehen wollte, sagen wir mal:

:PersonInFloridaRegion rdfs:subClassOf :PersonWithinAdminRegion . 
:p1 a :PersonInFloridaRegion . 

... dann werden Sie in der Lage sein zu folgern:

:p1 a :PersonWithinAdminRegion . 
:p1 a :Person . 

... und so weiter.

+1

Es ist nicht genau die Frage hier, aber es gibt einen Sinn, in dem Eigenschaften von ** super ** Klassen "geerbt" werden. Z.B.Wenn A eine Superklasse von B ist und die Domäne der Eigenschaft p B ist, dann ist A auch eine Domäne von p. (Da "die Domäne von p ist B" bedeutet, dass "wenn p (x, y) dann x ist ein B", und "B ist eine Unterklasse von A" bedeutet "wenn x ist ein B, dann ist x ein A" , dann impliziert "p (x, y)" auch, dass "x ein A" ist.) Also sind Domänen und Bereiche "in umgekehrter Richtung" vererbt. –

+0

Immer noch nicht objektorientierte Vererbung. Es sind nur Konsequenzen der Schlussfolgerung in Standard-RDFS-Argumentationsprofilen. Um es "Vererbung" zu nennen, verwirrt es nur diejenigen, die nach OO-Verhalten suchen. – scotthenninger

+0

Definitiv nicht das Gleiche. Ich habe es nur aufgezeigt, weil es nach meiner Erfahrung zu den eher überraschenden Aspekten für Menschen gehört, wenn sie abgeleitete Bereiche und Bereiche betrachten, gerade weil es das Gegenteil von dem ist, was man mit objektorientierter Vererbung erhält Leute verschmelzen OWL-Eigenschaften und Felder/Methoden in OO-Sprachen). –

1

Auch wenn ich bin immer noch nicht sicher, Ihre Modellierungsperspektive, und ob es einige Eigenschaften gibt, die Person hat, aber PersonWithinAdminRegion, nicht. Hier ist eine Idee zur Lösung.

Sie können eine generische Klasse Person und eine subclass davon USAPerson, erstellen dann eine PersonWithinAdminRegion, die auch eine subclass von Persons ist und ein Geschwister von PersonWithinAdminRegion. Also:

  1. Sowohl USAPerosn und PersonWithinAdminRegion sind Person;
  2. Persons wird enthalten USAPersons, so wenn Sie eine Teilmenge von Person Sie können immer noch die Kontrolle über USAPerosn;
  3. PersonWithinAdminRegion kann immer noch keine Eigenschaften haben, die USAPerson haben.

    Person a owl:Class 
    USAPerson a owl:Class 
    PersonWithinAdminRegion a owl:Class 
    
    USAPerson rdfs:subClassOf Peron 
    PersonWithinAdminRegion rdfs:subClassOf Peron 
    

Hoffnung, das hilft.