Rdf OWL中等价类和子类的混合
我很好奇在类描述中混合SubClassOf和EquivalentClass,以及推理器的行为 具体地说,如果我对同一个类同时有一个EquivalentClass和一个SubClassOf断言,那么需要同时满足EquivalentClass和SubClassOf条件才能将个人归类到该类中,还是只满足EquivalentClass 或者这是一种不好的做法 例如(省略声明): 我想确保在以下情况下,Rdf OWL中等价类和子类的混合,rdf,owl,description-logic,Rdf,Owl,Description Logic,我很好奇在类描述中混合SubClassOf和EquivalentClass,以及推理器的行为 具体地说,如果我对同一个类同时有一个EquivalentClass和一个SubClassOf断言,那么需要同时满足EquivalentClass和SubClassOf条件才能将个人归类到该类中,还是只满足EquivalentClass 或者这是一种不好的做法 例如(省略声明): 我想确保在以下情况下,:x被分类为:Foo,因为同时满足等价类和子类断言: ClassAssertion(:x :Sna) O
:x
被分类为:Foo
,因为同时满足等价类和子类断言:
ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)
ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)
但是:y
不是,因为子类不满足:
ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)
ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)
谢谢
乔纳森我不完全理解你的问题,但我会尽力澄清一些事情。首先,以下公理似乎与您的问题无关(第二个公理是多余的,因为
owl:Thing
是任何属性的范围):
另一件事是,等价类
-公理可以被看作是子类
-公理的语法糖,例如
EquivalentClasses(C1 C2)
逻辑上等同于
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)
这意味着: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))
从等效类
-axiom开始