Allegrograph推理

时间:2018-10-17 09:47:30

标签: rdf reasoning allegrograph

我对Allegrograph的示例熟悉RDF商店。我感兴趣的部分之一就是推理。我从此处举了一个示例:https://franz.com/agraph/support/documentation/6.4.3/agraph-introduction.html,并试图使其正常运行。 从图中看来,逻辑链如下:

  1. “具有宠物”谓词适用于“哺乳动物”对象。例如。如果存在三元谓词,则将推断出另一个三元rdf:type。它由三重rdfs:range
  2. 定义
  3. “拥有宠物”谓词是“个人”的子属性。例如。如果有一个三元组,就会推断出另一个三元组。它由三重rdfs:subPropertyOf
  4. 定义
  5. “拥有”谓词适用于“人类”对象。例如。如果有一个三元组,则会推断出另一个三元组rdf:type。它由三重rdfs:domain
  6. 定义

因此,我创建了一个在Franz网页上显示的图形。

s,p,o 
"test://Animal","rdf:type","rdf:class"
"test://Mammal","rdfs:subClassOf","test://Animal" 
"test://Dog","rdfs:subClassOf","test://Mammal" 
"test://hasPet","rdfs:range","test://Mammal" 
"test://hasPet","rdfs:subPropertyOf","test://owns" 
"test://owns","rdfs:domain","test://Human" 
"test://owns","rdf:type","rdf:Property"  
"test://petOf","owl:inverseOf","test://hasPet"
"test://Robbie","test://petOf","test://Jans" 
"test://MrAasman","owl:sameAs","test://Jans"

我希望从这些数据中至少可以推断出两个事实:

  1. 罗比是哺乳动物
  2. Jan是人类

但是并没有做到这一点。我不能说推理根本没有用。至少我看到了:

  • Jan养了宠物Robbie
  • Jan拥有Robbie
  • MrAasman养了宠物Robbie
  • MrAasman拥有Robbie
  • 狗是动物

为什么不推断类型?这是预期的行为吗?

1 个答案:

答案 0 :(得分:1)

这不是预期的行为。 AllegroGraph的动态RDFS ++推理程序似乎缺少通过遵循子属性和逆链可以做出的一些推断。

我已向Franz提交了一个错误(bug25588),并且正在研究将在v6.5.0中显示的修复程序。

同时,您可以使用Materializer查找所有推断出的三元组。您可以在AGWebView或通过客户端API之一来执行此操作。如果您还有其他问题,最好的方法是发送电子邮件至allegrograph-support@franz.com,以便我们创建支持记录。

我们无法将这些修复程序添加到AllegroGraph v6.4.5中。如果您向我们提出支持请求,我们可以确保在发布v6.5.0时通知您。