首页 文章

Punning推理似乎在graphdb中不起作用

提问于
浏览
1

我在GraphDB的存储库中加载了以下语句:

@prefix foo: <http://fopo.com#> .
@prefix bar: <http://dd.com#> .

foo:Car a owl:Class .

foo:Animal a owl:Class ;
owl:disjointWith foo:Car .

foo:isEndangered a owl:ObjectProperty ;
rdf:domain foo:Animal ;
rdf:range bar:SomeSpecies .

foo:Ape a owl:Class ;
foo:isEndangered bar:SomeSpecies .

如果我没有错,由于OWL2引入了punning(即,对于个人进行元模型使用类的相同IRI),应推断出以下语句:

foo:Ape a foo:Animal .

但它不会发生 . 我没有运气也尝试了不同的存储库设置 .

有没有办法得到那种推论或我做错了什么?

1 回答

  • 3

    您应该只替换此语句:

    foo:isEndangered rdf:domain foo:Animal .
    

    有了这个:

    foo:isEndangered rdfs:domain foo:Animal .
    

    更换后,应推断 foo:Ape a foo:Animal

    在SPARQL模式下,请确保 >> 图标中的第二个 > 未点缀,否则单击图标 .

    它适用于RDFS和OWL-Max规则集,我还没有检查过其他规则集 .


    正如@Ignazio所说,OWL 2 DL的惩罚不会给予推论,但是惩罚的目的恰恰相反 . OWL 2 DL惩罚允许实体同时成为类和个体而不考虑本体不一致(即,充满推论)或无效 .

    OWL双关语只占RDF总数的一小部分freedom

    RDFS不会将Universe划分为不相似的类,属性和个体 . 宇宙中的任何东西都可以用作类或属性,或两者兼有,同时保持其作为个体的状态,可以在类中并具有属性 . 因此,RDFS允许包含其他类,属性类,类属性等的类 .

    实际上,您需要的推断是由rdfs2 RDFS蕴涵模式授予的 .


    我希望下面的助记符表会有所帮助 . 它显示RDFS词汇表中提到的哪个术语是哪个前缀 .

    +--------------------+----------------+
    |       rdfs:        |      rdf:      |
    +--------------------+----------------+
    |                Classes              |
    +--------------------+----------------+
    | rdfs:Resource      | rdf:Property   |
    | rdfs:Class         | rdf:langString |
    | rdfs:Literal       | rdf:HTML       |
    | rdfs:Datatype      | rdf:XMLLiteral |
    +--------------------+----------------+
    |               Properties            |
    +--------------------+----------------+
    | rdfs:range         | rdf:type       |
    | rdfs:domain        |                |
    | rdfs:subClassOf    |                |
    | rdfs:subPropertyOf |                |
    | rdfs:label         |                |
    | rdfs:comment       |                |
    +--------------------+----------------+
    |             Other Vocabulary        |
    +--------------------+----------------+
    | rdfs:Container     | rdf:Bag        |
    | rdfs:member        | rdf:Seq        |
    | rdfs:seeAlso       | rdf:Alt        |
    | rdfs:isdDefinedBy  | rdf:List       |
    |                    | rdf:first      |
    |                    | rdf:rest       |
    |                    | rdf:nil        |
    |                    | rdf:_1         |
    |                    | rdf:Statement  |
    |                    | rdf:subject    |
    |                    | rdf:predicate  |
    |                    | rdf:object     |
    |                    | rdf:value      |
    +--------------------+----------------+
    

    附:即使您没有推断出您需要的陈述,这也是not a bug

    例如,虽然RDF词汇表可以声明author属性用于指示作为Person类实例的资源,但它没有说明应用程序在处理该范围信息时是否应该或如何操作 . 不同的应用程序将以不同的方式使用此信息 . 例如,数据检查工具可能使用它来帮助发现某些数据集中的错误,交互式编辑器可能会建议适当的值,而推理应用程序可能会使用它来从实例数据中推断出其他信息 .

    :-)

相关问题