用限制性OWL类型推断(OWL type inference with a restriction)

2019-08-31 07:12发布

我使用的事实++和琐碎的本体论研究的OWL限制的概念与门徒4。 假设我有一个单独的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.

为什么我不能从中推断xSomethingElse (通过事实foo是一个Something )? 我可以使它工作的唯一方法是,如果rangehasBar定义:

:hasBar a owl:ObjectProperty;
        rdfs:range :Something.

但我想避免这种情况,因为它穿什么都可以的主题约束hasBar (这使我进一步的麻烦)。

Answer 1:

我认为这是简单的道理在现实的例子,让我们考虑一下下面的知识库:

: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 ,最后xJohn

现在你想推断, John是个Vegetarian (= xSomethingElse )。

这是有道理的,它不与工作owl:allValuesFrom 。 你所想说的是, 素食的所有实例,如果他们有一个属性,他们必须在范围内蔬菜。 所以从这一点,你可以推断出, carrot是例如蔬菜,假设你就会知道,约翰是摆在首位素食主义者。

这使得在自然语言太感:在你的本体,你只知道约翰吃胡萝卜,这不会自动使他成为一个素食主义者(非素食的人也吃胡萝卜)。

你可以使用一个owl:someValuesFrom ,而不是owl:allValuesFrom 。 这样一来,你就定义每一个素食主义者有别人,吃一些蔬菜。 在这种情况下,如果我们知道约翰吃胡萝卜,因此他将被推理分为素食主义者,根据您的概念素食的定义。

通用( allValuesFrom )和存在( someValuesFrom )的限制是复杂的理解,往往会有不正确或错误的解决方案,它主要取决于你想要达到的目标。



文章来源: OWL type inference with a restriction