在 OWL 中混合等效类和子类
我很好奇在类描述中混合 SubClassOf 和 EquivalentClass 以及推理机的行为方式。
具体来说,如果我对同一类同时具有 EquivalentClass 和 SubClassOf 断言,那么要将个体分类到该类中,是否需要同时满足 EquivalentClass 和 SubClassOf 条件,还是只满足 EquivalentClass?
或者这是一个不好的做法?
例如(声明省略):
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)
谢谢,
乔纳森
I'm curious about mixing SubClassOf and EquivalentClass in a Class description, and how a reasoner would behave.
Specifically, if I have both an EquivalentClass and a SubClassOf assertion for the same Class, do both the EquivalentClass AND the SubClassOf conditions need to be satisfied for an individual to be classified in that Class, or only the EquivalentClass?
Or is this a bad practice?
For example (Declarations omitted):
ObjectPropertyRange(:format :Bar)
ObjectPropertyRange(:format owl:Thing)
EquivalentClass(:Foo ObjectSomeValuesFrom(:format :Bar))
SubClassOf(:Foo :Sna)
I want to ensure that in the case below, :x
is classified as :Foo
, because both the EquivalentClass and SubClassOf assertions are satisfied:
ClassAssertion(:x :Sna)
ObjectPropertyAssertion(:format :x :someBar)
But :y
is not, because the SubClassOf is not satisfied:
ClassAssertion(:y :NotASna)
ObjectPropertyAssertion(:format :y :someOtherBar)
Thanks,
Jonathan
我不完全理解你的问题,但我会尽力澄清一些事情。首先,以下公理似乎与您的问题无关(无论如何,第二个公理都是多余的,因为
owl:Thing
是任何属性的范围):另一件事是
EquivalentClasses
-axioms 可以被视为SubClassOf
-axioms 的语法糖,例如在逻辑上等同于
因此您可以将您的
EquivalentClasses
重写为:这可能会简化对您的含义的理解本体论使得。
现在,如果您说:
我假设您想说:
这意味着
:x
既是:Foo
又是:Sna
,这这当然是可能的,因为:Foo
是:Sna
的子类。当您说
我假设您的意思是:
这是逻辑上的不一致,因为
:y
必然是:Foo
(它是:Sna< 的子类) /code>),但同时
:y
被断言位于与:Sna
不相交的类中。知识。
另请注意,我们没有使用从 EquivalentClasses 公理中得出的
I don't completely understand your question but I'll try to clarify some things. First of all, the following axioms seem irrelevant for your question (and the second is redundant anyway because
owl:Thing
is any property's range):The other thing is that the
EquivalentClasses
-axioms can be seen as a syntactic sugar forSubClassOf
-axioms, e.g.is logically equivalent to
So you can rewrite your
EquivalentClasses
as:This would maybe simplify understanding of what entailments your ontology makes.
Now, if you say:
I am assuming that you want to say:
This entails that
:x
is both:Foo
and:Sna
, which is certainly possible because:Foo
is a subclass of:Sna
.When you say
I assume that you mean:
This is a logical inconsistency because
:y
is entailed to be a:Foo
(which is a subclass of:Sna
), but at the same time:y
is asserted to be in a class that is disjoint from:Sna
.Note also that we didn't use the knowledge that
which followed from the
EquivalentClasses
-axiom.