具有限制的OWL类型推断

时间:2013-04-15 18:39:42

标签: type-inference ontology owl restriction protege4

我正在研究使用FaCT ++和一个简单的本体论对Protege 4进行OWL限制的概念。假设我有一个foo个人Something

:Something a owl:Class.
:foo a :Something, owl:NamedIndividual.

和另一个根据对hasBar属性的限制定义的类:

:hasBar a owl:ObjectProperty.
:SomethingElse owl:equivalentClass [a owl:Restriction;
                                    owl:onProperty :hasBar;
                                    owl:allValuesFrom :Something].

如果我断言:

:x :hasBar :foo.

为什么我不能推断xSomethingElsefooSomething)?我能使其发挥作用的唯一方法是定义range的{​​{1}}:

hasBar

但是我想避免这种情况,因为它限制了:hasBar a owl:ObjectProperty; rdfs:range :Something. 的主题(导致我进一步麻烦)。

1 个答案:

答案 0 :(得分:2)

我认为通过实例来推理更简单,让我们考虑以下知识库:

: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 .

您与示例有一些等价关系:hasBareatsVegetarianSomethingElseVegetableSomething,{{1 } {是foo,最后carrotx

现在,您要推断JohnJohn(= Vegetarianx)。

有意义的是,它不适用于SomethingElse。你在这里说的是素食主义者的所有实例,如果他们有财产,他们必须有范围内的蔬菜。因此你可以推断出owl:allValuesFrom是蔬菜,例如,假设你首先知道John是素食主义者。

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

您可以使用carrot代替owl:someValuesFrom。通过这种方式,您可以定义每个素食主义者都会吃一些蔬菜。在这种情况下,如果我们知道John吃了一根胡萝卜,那么根据你对素食 这个概念的定义,他会被推理者归类为素食者。

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