我正在以 Allegrograph 为例熟悉 RDF 商店。我感兴趣的部分之一是推理。我从这里举了一个例子:https ://franz.com/agraph/support/documentation/6.4.3/agraph-introduction.html并试图让它工作。从图中看来,它似乎遵循逻辑链:
- “有宠物”谓词适用于“哺乳动物”对象。例如,如果有一个三元谓词,则会推断出另一个三元 rdf:type。它由三重 rdfs:range 定义
- “Has Pet”谓词是“Owns”的子属性。例如,如果有一个三元组,就会推断出另一个三元组。它由三重 rdfs:subPropertyOf 定义
- “拥有”谓词适用于“人类”对象。例如,如果有一个三元组,就会推断出另一个三元组 rdf:type。它由三重 rdfs:domain 定义
所以我创建了一个显示在 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"
我希望从这些数据中至少可以推断出两个事实:
- 罗比是哺乳动物
- 扬斯是人
但事情并没有发展到那个地步。我不能说推理根本不起作用。至少我看到了:
- 简斯有宠物罗比
- 詹斯拥有罗比
- MrAasman 有宠物 Robbie
- 奥斯曼先生拥有罗比
- 狗是一种动物
为什么它不推断类型?这是预期的行为吗?