1

这个问题与 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))))
}

是否有另一种方法来实现约束?

4

0 回答 0