gpt4 book ai didi

rdf - 为什么这个 DL-Query 没有返回任何个人?

转载 作者:行者123 更新时间:2023-12-04 18:09:51 25 4
gpt4 key购买 nike

此 DL-Query 不返回任何个人:

  • 查询(Protégé 语法):hasPet exactly 1 DomesticAnimal

  • 这是本体的一部分:
    :hasPet a           owl:ObjectProperty;
    rdfs:domain :Human;
    rdfs:range :DomesticAnimal;
    owl:inverseOf : petOf;


    :Joe a :Human;
    hasPet :Lassy.

    :Bob a :Human;
    hasPet :Sparkey, Lucky.

    查询:
  • petOf value Bob返回 SparkeyLucky
  • petOf value Joe返回 Lassy
  • hasPet exactly 1什么都不返回。

  • 为什么最后一个查询没有返回 Joe ?
    我已经在 Protégé 中使用 Pellet、HermiT 和 FaCT++ 进行了尝试,但没有奏效。

    最佳答案

    类表达式 hasPet exactly 1 DomesticAnimal作为实例,正是那些与属性 hasPet 相关的个体。正好一个 DomesticAnimal .正好一意味着至少一且不超过一。基于三元组

    :Joe :hasPet :Lassy .
    :Bob :hasPet :Sparkey ;
    :hasPet :Lucky .

    我们知道乔和鲍勃每个人至少有一只宠物,但我们不知道他们可能有多少只。 Joe 可能有 Lassy 以外的宠物,所以我们不知道 Joe 只养了一只宠物。 Sparkey 和 Lucky 可能是同一个人,所以 Bob 至少有一只宠物,但我们没有 Bob 拥有宠物数量的上限。

    OWL 和 RDF 共同构成了 open world assumption ,这意味着 OWL 不假设所提供的数据是对世界上所有真实事物的详尽列举。如果是这样,推理就没有意义了。没有 s p o 的断言并不意味着 NOT( s p o ) ,而只是对 s p o 还没有判断.

    不过,您可以向数据中添加更多知识以获得所需的结论。你用以下描述乔:
    Joe a Human ;
    hasPet Lassy ;
    hasPet only { Lassy } .

    Lassy a DomesticAnimal .

    由此你将能够推断出
    Joe a (hasPet exactly 1 DomesticAnimal) .

    对于 Bob,您似乎认为 Sparkey 和 Lucky 是不同的动物,因此您需要 owl:differentFrom :
    Bob a Human ;
    hasPet Sparkey, Lucky .

    Sparkey a DomesticAnimal .

    Lucky a DomesticAnimal ;
    owl:differentFrom Sparkey .

    我没有包括 Bob hasPet only { Sparkey, Lucky }在这些公理中,因为它们不需要推断 Bob 有不止一只宠物,但您可以包括它。我还只包含了 owl:differentFrom 中的一个本来可以做出的断言。现在已知 Bob 有两只不同的宠物,因此已知它不是 hasPet exactly 1 DomesticAnimal .将此数据加载到 Protégé 后,DL 查询 hasPet exactly 1 DomesticAnimal按预期工作:

    enter image description here

    示例本体

    如果您希望能够快速将此结构加载到 Protégé 中,这里有一个如上所述的包含个人、属性(property)和公理的本体。我没有定义 petOf属性,但您仍然可以将前两个查询作为 inverse hasPet value Joe 运行和 inverse hasPet value Bob并得到预期的结果。

    @prefix :        <http://www.example.com/owa#> .
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix owl: <http://www.w3.org/2002/07/owl#> .
    @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix owa: <http://www.example.com/owa#> .

    owa:Bob
    a owl:NamedIndividual , owa:Human ;
    owa:hasPet owa:Sparkey , owa:Lucky .

    owa:Sparkey
    a owl:NamedIndividual , owa:DomesticAnimal .

    owa:Lassy
    a owl:NamedIndividual , owa:DomesticAnimal .

    [] a owl:AllDifferent ;
    owl:distinctMembers (owa:Lucky owa:Sparkey) .

    owa:Joe
    a owl:NamedIndividual , owa:Human ;
    a [ a owl:Restriction ;
    owl:allValuesFrom
    [ a owl:Class ;
    owl:oneOf (owa:Lassy)
    ] ;
    owl:onProperty owa:hasPet
    ] ;
    owa:hasPet owa:Lassy .

    <http://www.example.com/owa>
    a owl:Ontology .

    owa:Lucky
    a owl:NamedIndividual , owa:DomesticAnimal .

    owa:Human
    a owl:Class .

    owa:hasPet
    a owl:ObjectProperty .

    owa:DomesticAnimal
    a owl:Class .

    关于rdf - 为什么这个 DL-Query 没有返回任何个人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16841335/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com