[英]Mixing EquivalentClass and SubClass in OWL
我很想知道在Class描述中混合SubClassOf和EquivalentClass,以及推理器的行為方式。
具體來說,如果同時為同一個類同時擁有一個EquivalentClass和一個SubClassOf斷言,那么對於要在該類中分類的個體,還是只有EquivalentClass,才需要滿足EquivalentClass和SubClassOf條件?
或者這是一個不好的做法?
例如(省略聲明):
ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)
EquivalentClass(:Foo ObjectSomeValuesFrom(:format :Bar))
SubClassOf(:Foo :Sna)
我想確保在以下情況下, :x
被歸類為:Foo
,因為同時滿足EquivalentClass和SubClassOf斷言:
ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)
但是:y
不是,因為SubClassOf不滿意:
ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)
謝謝,
喬納森
我不完全理解您的問題,但我會嘗試澄清一些問題。 首先,下面的公理似乎與你的問題無關(而第二個是無用的,因為owl:Thing
是任何財產的范圍):
ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)
另一件事是, EquivalentClasses
-axioms可以被視為SubClassOf
-axioms的語法糖,例如
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
-axiom。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.