这个问题与 Blazegraph Java 示例有关。我想创建一个带有 SPARQLNOT EXISTS
子句的规则。此 Blazegraph 规则示例提供了一个约束子句,用于检查IsLiteral()
. 我想实现一个提供以下功能的规则:
?a rdf:type xyz:T .
filter(not exits(?a xyz:p ?o)) .
->
?a xyz:q xyz:T
我在以下位置检查了合适的类:com.bigdata.rdf.internal.constraints
,但找不到BOp
支持EXIST
(和MINUS
)的类。我找到了一个NOT
接线员NotBOp()
。
这是我想用虚构ExistsBOp
函数创建的约束:
new IConstraint[] { // constraints
// you can use SPARQL value expression bops in inference by wrapping them with an InferenceBVE
Constraint.wrap(new InferenceBVE(new NotBOp(new ExistsBOp(var("a"), vocab.getConstant(XYZ.q), vocab.getConstant(XYZ.T))))
}
是否有另一种方法来实现约束?