同等のクラスに似た、別のプロパティの制限であるプロパティを定義する明確な 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>