0

クラスの説明に SubClassOf と EquivalentClass を混在させること、および推論器がどのように動作するかについて興味があります。

具体的には、同じクラスに対して EquivalentClass と SubClassOf アサーションの両方がある場合、個人がそのクラスに分類されるためには、EquivalentClass と SubClassOf の両方の条件が満たされる必要がありますか?

それともこれは悪い習慣ですか?

例 (宣言は省略):

ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)
EquivalentClass(:Foo ObjectSomeValuesFrom(:format :Bar))
SubClassOf(:Foo :Sna)

以下のケースでは、EquivalentClass と SubClassOf の両方のアサーションが満たされているため、:xが として分類されるようにしたいと思います。:Foo

ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)

SubClassOf:yが満たされていないため、そうではありません。

ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)

ありがとう、

ジョナサン

4

1 に答える 1

2

私はあなたの質問を完全には理解していませんが、いくつかのことを明確にしようとします。まず第一に、次の公理はあなたの質問には関係ないようです (そして、owl:Thingプロパティの範囲であるため、2 番目の公理はとにかく冗長です):

ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)

もう 1 つのことは、EquivalentClasses公理は公理の構文糖衣と見なすことができるということSubClassOfです。たとえば、

EquivalentClasses(C1 C2)

論理的に同等です

SubClassOf(C1 C2)
SubClassOf(C2 C1)

したがって、次のように書き換えることができますEquivalentClasses

SubClassOf(ObjectSomeValuesFrom(:format :Bar) :Foo)
SubClassOf(:Foo ObjectSomeValuesFrom(:format :Bar))

これにより、オントロジーが作成する含意の理解が容易になる可能性があります。

さて、あなたが言うなら:

ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)

あなたが言いたいことを想定しています:

ClassAssertion(:x :Sna)
ClassAssertion(:someBar :Bar)
ObjectPropertyAssertion(:format :x :someBar)

これは、:xが と の両方:Fooであることを伴います。これは、 が のサブクラスで:Snaあるため、確かに可能です。:Foo:Sna

あなたが言う時

ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)

私はあなたが意味すると仮定します:

ClassAssertion(:y :NotASna)
ClassAssertion(:someOtherBar :Bar)
DisjointClasses(:NotASna :Sna)
ObjectPropertyAssertion(:format :y :someOtherBar)

は( のサブクラスである) で:yある必要があるため、これは論理的な矛盾です。:Foo:Sna:y:Sna

という知識を使用しなかったことにも注意してください。

SubClassOf(:Foo ObjectSomeValuesFrom(:format :Bar))

-公理から続いたEquivalentClasses

于 2010-12-21T14:42:17.093 に答える