[英]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.