如何使用jena fuseki推理机计算三重数?

如何使用jena fuseki推理机计算三重数?,jena,fuseki,jena-rules,reasoner,Jena,Fuseki,Jena Rules,Reasoner,我正在编写一个规则文件(Fuseki-Generic-Reasoner),希望计算某个主题的rdf对象数,这样我就可以使用这个数来决定是否创建一个新的三元组。然而,我找不到一个可行的办法来处理它 使用sparql,很容易计算对象 select (count(?object) as ?c) where {foo:bar foo:p ?object}. 但对我来说,用规则文件实现操作似乎很困难 以下是rdf turtle文件: @prefix foo: <http://example/>

我正在编写一个规则文件(Fuseki-Generic-Reasoner),希望计算某个主题的rdf对象数,这样我就可以使用这个数来决定是否创建一个新的三元组。然而,我找不到一个可行的办法来处理它

使用sparql,很容易计算对象

select (count(?object) as ?c) where {foo:bar foo:p ?object}.
但对我来说,用规则文件实现操作似乎很困难

以下是rdf turtle文件:

@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 .
@前缀foo:
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:为'true')引用源代码CountLiteralValues,这可能会有所帮助。引用源代码CountLiteralValues,这可能会有所帮助。
[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)]