1

我正在编写一个规则文件(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')

4

0 回答 0