RDF では、ステートメントは S、P、および O で表されます。OWL では、owl:ObjectProperty は述語ロジックを表します。
(S) (P) (O)
I like dog
<owl:Class rdf:about="Person" />
<owl:NamedIndividual rdf:about="I">
<rdf:type rdf:resource="Person"/>
<like rdf:resource="Dog"/>
</owl:NamedIndividual>
<owl:Class rdf:about="Pet" />
<owl:NamedIndividual rdf:about="Dog">
<rdf:type rdf:resource="Pet"/>
</owl:NamedIndividual>
<owl:ObjectProperty rdf:about="like">
<rdfs:domain>
<owl:Restriction>
<owl:onProperty rdf:resource="like"/>
<owl:someValuesFrom rdf:resource="Person"/>
</owl:Restriction>
</rdfs:domain>
<rdfs:range>
<owl:Restriction>
<owl:onProperty rdf:resource="like"/>
<owl:someValuesFrom rdf:resource="Pet"/>
</owl:Restriction>
</rdfs:range>
</owl:ObjectProperty>
しかし、犬が好きな「程度」を説明するのはどうですか?プロパティまたは値を述語に与えるにはどうすればよいですか? 私が得た 1 つの解決策は、1 つの (S,P,O) ステートメントを 3 つのステートメントに拡張することです。例えば、
(S) (P) (O)
Person isSrcOf LikeRelation
Pet isTargetOf LikeRelation
LikeRelation hasValue [0~100]
それはうまくいくはずですが、明らかにオントロジーを3倍大きくします:(
提案をいただければ幸いです。