首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推理者不检查基数和/或限制?

推理者不检查基数和/或限制?
EN

Stack Overflow用户
提问于 2015-04-24 14:51:42
回答 2查看 293关注 0票数 2

我试图创建可能最简单的本体,包括两个类(A,B)和两个类之间的关系(R)。我还想指出,每个A的个人必须有一个关系R与其他个别的

代码语言:javascript
复制
:R rdf:type owl:ObjectProperty ;
   rdfs:domain :A ;
   rdfs:range :B .

:A rdf:type owl:Class ;
   rdfs:subClassOf owl:Thing ,
                   [ rdf:type owl:Restriction ;
                     owl:onProperty :R ;
                     owl:someValuesFrom :B
                   ] ;
   owl:disjointWith :B .

:B rdf:type owl:Class ;
   rdfs:subClassOf owl:Thing .

现在有些人:

代码语言:javascript
复制
:a1 rdf:type :A , owl:NamedIndividual ; :R :b1 .
:a2 rdf:type :A , owl:NamedIndividual .
:b1 rdf:type :B , owl:NamedIndividual .

但推理者并没有抱怨a2没有亲属关系。为什么?

(注:我在Protégé创建了本体;我尝试了FacT++和HermiT推理器)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-04-24 21:28:20

我还想指出,每个A的个体都必须与其他个体有一个关系R。

你做得对。当你继续断言

A1RDF:类型:A,owl:NamedIndividual;:R :b1。A2 rdf:类型:A,owl:NamedIndividual。B1 rdf:类型:B,owl:NamedIndividual。

推理者将正确地推断出有一些值,让我们称之为X,这样:a2 :R X rdf:type :B。OWL推理使用开放世界假设。这意味着,如果某物没有明确声明为真或假,则不假定为假或真,而是未知。例如,你可以正确地断言

⊑/T1587-1993工业用商品

也就是说,每个人都有一些人作为母亲。如果我这么说

∈/T1581-1988商品商品价格比较产品DanielWebster∈人

这就是我要说的,我并没有产生任何矛盾。有些事情是真的,我们还不知道。我们知道DanielWebster有一个母亲,但我们不知道她是谁。

如果你想关闭这个世界,你可以做一些事情,但结果可能不是你想要的。首先,可以使B成为枚举类。也就是说,您可以显式列出B的个人:

≡/T1581-1988准商品转制机B≡{≡}

但这实际上不会导致不一致。事实上,推理者将推断,既然a2必须与某些B相关,而唯一的B是b1,则a2是由R关联到b1的。

票数 2
EN

Stack Overflow用户

发布于 2015-04-24 17:46:55

您也可以使用等效的。

::owl:等效类rdf:类型owl:限制;owl:onProperty :R;owl:someValuesFrom owl:Thing;

您不需要为R编写域约束,等价物会处理它。您仍然需要编写范围约束。

但推理者并没有抱怨a2没有亲属关系。为什么?

为了回答这个问题。你需要理解开放世界假设。语义网是开放世界的假设。有一些研究论文,我在下面的评论中已经说过,提出了一些概念或角色作为封闭的世界假设。例如,在您的示例中,如果将R设为闭包谓词。你会得到你要求的错误。这完全是一个理论上的想法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29850672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档