如何使用耶拿·弗鲁基推理机计算三重数?

时间:2019-06-25 05:34:38

标签: jena fuseki jena-rules reasoner

我正在编写一个规则文件(Fuseki Generic Reasoner),希望对某个主题的rdf对象数进行计数,因此我可以使用该数字来确定是否要制作新的三元组。但是,我找不到解决该问题的可行方法。

使用sparql,很容易计算对象数。

select (count(?object) as ?c) where {foo:bar foo:p ?object}.

但是我似乎很难用规则文件来实现该操作。

这是rdf乌龟文件:

@prefix foo: <http://example/>
foo:bar1 foo:p foo:obj_A .
foo:bar1 foo:p foo:obj_B .
foo:bar1 foo:p foo:obj_C .
foo:bar2 foo:p foo:obj_A .
foo:bar2 foo:p foo:obj_B .

我所期望的(伪代码):

[rule1: (?s foo:is 'true') <- (count ?s foo:p ?o number as ?c), greaterThan(?c, 2)]       
[rule2: (?s foo:is 'false') <- (count ?s foo:p ?o number as ?c), le(?c, 2)]

所以我可以得到三元组(foo:bar1 foo:is'true')和(foo:bar2 foo:is'false')

0 个答案:

没有答案