2

同等のクラスに似た、別のプロパティの制限であるプロパティを定義する明確な OWL ソリューションを探しています。制限は、ドメインまたは範囲のデータ プロパティに基づいています。制限付きプロパティは間違いなくサブプロパティであり、推測する必要があります。

"kid","mother","father" は Person の Father.gender = "male" データプロパティ mother.gender = "female" です。

(Male subclassOf Person = 同等のクラス "性別値"male")

父 親の子 ' オブジェクト関係 母 親の子 ' オブジェクト関係

parentOfと父親の性別に基づいて、fatherOfプロパティを定義する方法は? 明らかにそれはparentOfのサブプロパティです。

ただし、Protégé の同等のオブジェクト プロパティ エディターでは、プロパティ クエリを設定できません。これがプロパティ チェーンで解決できるかどうかはわかりません。

この家族の例は、より複雑なシナリオの単純化されすぎた状況であるため、fatherOf をサブプロパティとして定義し、(手動で) parentOf の代わりに FatherOf を設定することはオプションではありません。

<Declaration>
    <Class IRI="#Person"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#fatherOf"/>
</Declaration>
<Declaration>
    <ObjectProperty IRI="#parentOf"/>
</Declaration>
<Declaration>
    <DataProperty IRI="#gender"/>
</Declaration>
<Declaration>
    <NamedIndividual IRI="#father"/>
</Declaration>
<Declaration>
    <NamedIndividual IRI="#kid"/>
</Declaration>
<Declaration>
    <NamedIndividual IRI="#mother"/>
</Declaration>
<ClassAssertion>
    <Class IRI="#Person"/>
    <NamedIndividual IRI="#father"/>
</ClassAssertion>
<ClassAssertion>
    <Class IRI="#Person"/>
    <NamedIndividual IRI="#kid"/>
</ClassAssertion>
<ClassAssertion>
    <Class IRI="#Person"/>
    <NamedIndividual IRI="#mother"/>
</ClassAssertion>
<ObjectPropertyAssertion>
    <ObjectProperty IRI="#parentOf"/>
    <NamedIndividual IRI="#father"/>
    <NamedIndividual IRI="#kid"/>
</ObjectPropertyAssertion>
<ObjectPropertyAssertion>
    <ObjectProperty IRI="#parentOf"/>
    <NamedIndividual IRI="#mother"/>
    <NamedIndividual IRI="#kid"/>
</ObjectPropertyAssertion>
<DataPropertyAssertion>
    <DataProperty IRI="#gender"/>
    <NamedIndividual IRI="#father"/>
    <Literal datatypeIRI="&rdf;PlainLiteral">male</Literal>
</DataPropertyAssertion>
<DataPropertyAssertion>
    <DataProperty IRI="#gender"/>
    <NamedIndividual IRI="#mother"/>
    <Literal datatypeIRI="&rdf;PlainLiteral">female</Literal>
</DataPropertyAssertion>
<SubObjectPropertyOf>
    <ObjectProperty IRI="#fatherOf"/>
    <ObjectProperty IRI="#parentOf"/>
</SubObjectPropertyOf>
<DataPropertyDomain>
    <DataProperty IRI="#gender"/>
    <Class IRI="#Person"/>
</DataPropertyDomain>
<DataPropertyRange>
    <DataProperty IRI="#gender"/>
    <Datatype abbreviatedIRI="xsd:string"/>
</DataPropertyRange>
4

1 に答える 1

7

したがって、データには次のようなものがあります。

:x  :parentOf  :y .
:x  :gender  "male" .

そして、あなたはそれを推測したいと思います:

:x  :fatherOf  :y .

残念ながら、OWL ではこれを行うことはできません。このようなケースでは、SWRL、SPIN などのルール言語に依存したい場合があります。ただし、父、母などの特定のケースでは、次のようにすることができます。

  • :hasParentの逆として定義し:parentOfます。
  • のカーディナリティ:hasParentを 2 に制限します。
  • :hasFatherの逆として定義し:fatherOfます。
  • 作る; :hasFather_owl:FunctionalProperty
  • :hasMotherの逆として定義し:motherOfます。
  • 作る; :hasMother_owl:FunctionalProperty
  • :Man男性のクラスを定義します。
  • :Woman女性のクラスを定義します。
  • :Manばらばらにする:Woman;
  • の範囲を に設定:hasFather:Manます。
  • の範囲を:hasMotherに設定します:Woman

したがって、オントロジーは次のようになります (私は OWL/XML に慣れていないため、Turtle で):

:Person  a  owl:Class;
  rdfs:subClassOf  [
    a  owl:Restriction;
    owl:onProperty  :hasParent;
    owl:cardinality  2
  ] .
:Man  a  owl:Class;
  owl:equivalentclass  [
    a  owl:Class;
    owl:intersectionOf (
      :Person
      [
         a  owl:Restriction;
         owl:onProperty  :gender;
         owl:hasValue  "male";
      ]
    )
  ] .
:Woman  a  owl:Class;
  owl:equivalentclass  [
    a  owl:Class;
    owl:intersectionOf (
      :Person
      [
         a  owl:Restriction;
         owl:onProperty  :gender;
         owl:hasValue  "female";
      ]
    )
  ] .
:gender  a  owl:DatatypeProperty, owl:FunctionalProperty .
:hasParent  a  owl:ObjectProperty;
  owl:inverseOf  :parentOf;
  rdfs:domain  :Person;
  rdfs:range  :Person .
:hasFather  a  owl:ObjectProperty, owl:FunctionalProperty;
  rdfs:subPropertyOf  :hasParent;
  rdfs:range  :Man .
:hasMother  a  owl:ObjectProperty, owl:FunctionalProperty;
  rdfs:subPropertyOf  :hasParent;
  rdfs:range  :Woman .

これでうまくいくはずですが、これは非常に複雑なオントロジーであり、推論が非常に遅くなる可能性があります。

編集:機能する必要があると付け加えました:gender。そうしないと、父親であると同時に母親がいる可能性があり、機能しません!

于 2012-03-10T21:25:43.650 に答える