我正在尝试了解由于在Protege中使用通用量化而发生空洞蕴涵的情况。也就是说,形式的公理:
A
这是我的设置:
我创建了一个本体论(或多或少)遵循本发明文章中描述的本体:
http://ontogenesis.knowledgeblog.org/1260
它由A rel *only* B
关系和两个高级别的不相交类组成:owns
和person
。
在宠物类下,我有三个原始的不相交类:pet
,dog
和elephant
。
在person类下面,我有一个已定义的类newt
,定义如下:
pet owner
最后,我创建了一个名为'pet owner' equivalent_to person and (owns only pet)
的个人,并没有任何宠物。
通用量化:
我对普遍量化的理解是person 1
量词描述那些只与特定类别的个体有关系的个体。这需要通过普遍量化来描述与另一个人没有任何关系的个人。
在我的示例中,我认为only
会被推断为person 1
,因为pet owner
不person 1
任何own
或其他任何其他pets
关系。但是,当我运行推理器(HermiT和Pellet)时,情况并非如此。 Person 1
未被推断为pet owner
的成员。
所以,似乎我不理解普遍量化。有人可以帮助我吗?
答案 0 :(得分:2)
这里的问题是你没有考虑开放世界假设(OWA)。通过OWA,本体只包含已知的事实;可能还有其他事实。如果你对person 1
拥有的东西一无所知,那并不意味着它什么都没有。它可能拥有其他不属于本体的东西。因此,您的普遍限制可以阻止某人成为宠物主人(如果他们拥有非宠物的东西,并且相应的公理在本体中)。要让某人成为宠物主人,您可能会关闭'有关它的信息,例如说已知的宠物是人们拥有的唯一东西。为此,您可以使用owns only {pet1, pet2, pet3}
构造。