首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有约束的OWL类型推断

带有约束的OWL类型推断
EN

Stack Overflow用户
提问于 2013-04-16 02:39:42
回答 1查看 932关注 0票数 2

我正在使用FaCT++和一个简单的本体研究Protege4中OWL限制的概念。假设我有一个Something类的foo

代码语言:javascript
复制
:Something a owl:Class.
:foo a :Something, owl:NamedIndividual.

hasBar属性的限制中定义的另一个类:

代码语言:javascript
复制
:hasBar a owl:ObjectProperty.
:SomethingElse owl:equivalentClass [a owl:Restriction;
                                    owl:onProperty :hasBar;
                                    owl:allValuesFrom :Something].

如果我断言:

代码语言:javascript
复制
:x :hasBar :foo.

为什么我不能从它推断出x是一个SomethingElse (通过foo是一个Something的事实)?我能让它工作的唯一方法是定义hasBarrange

代码语言:javascript
复制
:hasBar a owl:ObjectProperty;
        rdfs:range :Something.

但我想避免这种情况,因为它限制了hasBar的主题(这给我带来了更多的麻烦)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 17:08:04

我认为通过真实的例子进行推理会更简单,让我们考虑以下知识库:

代码语言:javascript
复制
:eats rdf:type owl:ObjectProperty .

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

:Vegetarian rdf:type owl:Class ;
        owl:equivalentClass [ rdf:type owl:Restriction ;
                              owl:onProperty :eats ;
                              owl:allValuesFrom :Vegetable
                            ] .

:Carrot rdf:type :Vegetable ,
             owl:NamedIndividual .

:John rdf:type owl:NamedIndividual , owl:Thing ;
      :eats :carrot .

与您的示例有一些等价物:hasBareatsVegetarianSomethingElseVegetableSomethingfoocarrot,最后x是<代码>D10。

现在,您可以推断John是一个Vegetarian (= x is SomethingElse)。

它不能与owl:allValuesFrom一起工作,这是有道理的。你在这里所说的是,所有素食的实例,如果他们有一个属性,他们必须在范围内有蔬菜。例如,假设你一开始就知道carrot是素食者,你就可以推断他是素食者。

这在自然语言中也是有道理的:在你的本体论中,你只知道John吃胡萝卜,这不会自动使他成为素食者(非素食者也吃胡萝卜)。

您可以使用owl:someValuesFrom而不是owl:allValuesFrom。这样,你就可以定义每个素食者都有一个吃蔬菜的人。在这种情况下,如果我们知道John吃胡萝卜,那么根据你对素食概念的定义,他会被推理者归类为素食者。

通用(allValuesFrom)和存在(someValuesFrom)限制很难理解,通常没有正确或错误的解决方案,这主要取决于您想要实现什么。

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

https://stackoverflow.com/questions/16022450

复制
相关文章

相似问题

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