次のようなクラス階層があります。
Thing
- ClassA
-ClassC
-ClassD
- ClassB
-ClassC
-ClassE
クラス C は ClassA と ClassB の両方のサブクラスですが、ClassD と ClassE は ClassA または ClassB のサブクラスにすぎません
ここで、ClassA と ClassB のサブクラスの交差に相当するクラスを指定したいと思います。以下は機能しません。
NamedClass a owl:Class
NamedClass owl:equivalentClass (ClassA and ClassB)
その理由は、この種の規則が個人を分類するために推論者によって使用されるためです。つまり、タイプ ClassA および ClassB の個人 Ind1 があった場合、タイプ NamedClass にも分類されます。これは私が欲しいものではありません。ClassC 自体を NamedClass のサブクラスにしたい。
これはルール (SPIN など) を使用して達成できることはわかっていますが、ルールなしで実行できますか?