オントロジーで制約を指定しようとしています。クラス A、B、C とオブジェクト プロパティ "A hasB B" と "B hasC C" があるとします。A のすべての個体 'a' が C の少なくとも 1 つに間接的に関連しているという制約を指定したいと思います。つまり、"a hasB b" および "b hasC c" という b,c が存在します。
OWLでこれを行うことは可能ですか? いいえの場合、この種の検証を可能にするテクノロジーについてアドバイスいただけますか?
あなたが行おうとしているように見えるように、すぐに制約言語として OWL を使用することはできません。OWL にはOWA (Open World Assumption) があり、制約の表現が非常に難しくなります。Pellet のIntegrity Constraintsなどのシステムがあり、世界を閉じてセマンティクスをわずかに変更することで、OWL を制約言語として使用できます。
クラスの同等性を使用するだけです。
A equivalentTo (hasB some B)
B equivalentTo (hasC some C)
これは、AのすべてのaがBのbに存在することを示しています:a hasB b、BのすべてのbはCのcに存在します:bhasCc。
次のことができます (Turtle 構文で):
:A rdfs:subClassOf [
a owl:Restriction;
owl:onProperty :hasB;
owl:someValuesFrom [
a owl:Restriction;
owl:onProperty :hasC;
owl:someValuesFrom :C
]
] .
私はマンチェスターの構文についてあまり詳しくありませんが、次のようなものでなければなりません。
A subClassOf (hasB some ( hasC some C ))
繰り返しますが、他の人が指摘しているように、個人の存在は、そのような個人がデータのどこかに言及されていることを意味するものではありません。