protege v 3.4.8不承认传递财产

时间:2016-08-05 19:00:35

标签: sparql rdf owl protege

我创建了对象属性hasSibling,其中A hasSibling B,B hasSibling C.I使这个属性具有传递性和对称性, 但在推断的实例中,它没有显示A hasSibling C。

这在protege v4.3中正确显示,但我使用的是protege v3.4.8 在我的项目中,我必须使用传递和对称的对象属性。 我也尝试过Sparql查询,但它显示的是对称的结果而不是传递。

    PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX uni:<http://www.owl-ontologies.com/aa.owl#>
select * where { 
  ?x uni:hasSibling  ?y .
}

这给出了结果: Where in inferred tab nothing came 请建议如何克服这个问题。

1 个答案:

答案 0 :(得分:0)

鉴于查询:

<form action='' method='POST'>
        <input type='submit' name='my_submit' value="New"/>
        <input type='submit' name='my_submit' value="Used"/>
        <input type='submit' name='my_submit' value="Outdated" />
</form>

你需要有一个能够理解uni:hasSibling关系语义的推理,这种关系很可能在URI标识的本体中描述:http://www.owl-ontologies.com/aa.owl#

如果您使用的是Virtuoso,则需要以下内容:

  1. 来自的推导和推理规则 http://www.owl-ontologies.com/aa.owl#
  2. 使用pragma执行查询以调用推理规则 在第一步中创建加上另一个用于加载数据的pragma (由uni连接的主题和对象的集合:hasSibling 关系类型)
  3. 我在我的post中提供了一个类似的示例,演示了推理&amp;推断使用英国皇室关系类型。另请注意最近的follow-on post,其中显示了如何创建自己的自定义推理规则。