2010-12-21 10 views
0

クラスの説明でSubClassOfとEquivalentClassを混在させるのは興味深いです。OWLの等価クラスとサブクラスの混合

具体的には、同じクラスのEquivalentClassとSubClassOfの両方のアサーションがある場合、EquivalentClassとSubClassOfの両方の条件を満たす必要がありますか?

これは悪い習慣ですか?例えば

(宣言は省略):

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

Iの両方equivalentClassのとsubClassOfのアサーションが満たされているので、以下の場合には、:xは、:Fooとして分類されていることを確認する:

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

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

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

おかげで、

ジョナサン

答えて

2

は、私は完全にあなたの質問を理解していないが、私はいくつかのことを明確にしようとするでしょう。まず、以下の公理は、あなたの質問には無関係に見える(とowl:Thingはどんな財産の範囲であるため、2番目はとにかく冗長である):

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

他の事はEquivalentClasses -axiomsがシンタックスシュガーとして見ることができるということですSubClassOf -axioms、例えば

EquivalentClasses(C1 C2) 

ですから、としてあなたEquivalentClassesを書き換えることができます

SubClassOf(C1 C2) 
SubClassOf(C2 C1) 

と論理的に等価である:これは多分あなたのオントロジーを作る帰結何の理解を単純化する

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) 

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

あなたは

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

を言うとき、私はあなたが意味することを前提としています:yは(:Snaのサブクラスである):Fooであることを伴うされているため、これは論理的な矛盾である

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

が、同じ時刻に:yは、:Snaから離れたクラスにあると主張される。 EquivalentClasses -axiomから続く

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

ことを私たちは知識を使用していないことも

は注意してください。