在Jena中使用自定义规则将个人分配到类型

时间:2014-02-28 16:40:15

标签: java rdf jena jena-rules

是否可以在Jena中添加一个定义个人类型的规则?

例如

String r;
r = "[rule1: (?a example:drives ?b), (?b rdf:type example:Truck) -> 
        (?a rdf:type example:TruckDriver)]";
//then parse and send to reasoner...etc

我在网上找到的所有示例和文档都使用自定义规则来指定个人之间的关系(对象属性),而不是用于将个人分配给某个类的规则。

1 个答案:

答案 0 :(得分:0)

  

我在网上找到的所有示例和文档都使用自定义规则来指定个人之间的关系(对象属性),而不是用于将个人分配给某个类的规则。

实际上,文档Reasoners and rule engines: Jena inference support给出了一些规则的示例,这些规则引入了属性为rdf:type的三元组。例如。 (来自该文档),RDFS推理的规则是,“当?x?y的属性?p与域?c相关时,{{1类型?X:“

  

[rdfs2 :(?x?p?y),(?p rdfs:domain?c) - > (?x rdf:type?c)]

在同一个示例块中,还有两个规则,其头部使用?c

具有三元组
  

[rdfs3 :(?x?p?y),(?p rdfs:range?c) - > (?rdf:type?c)]
  [rdfs9:(?x rdfs:subClassOf?y),(?a rdf:type?x) - > (?a rdf:type?y)]