这个问题与 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))))
}
是否有另一种方法来实现约束?