这个问题与Blazegraph Java样本有关。我想创建一个带有SPARQL NOT EXISTS
子句的规则。 This Blazegraph rule sample提供了一个检查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))))
}
是否有其他方法可以实现约束?