@Override public void meet(StatementPattern sp) { antecedentStatementPatterns.add(sp.clone()); } }
@Override protected void meetSP(final StatementPattern node) throws Exception { final StatementPattern currentNode = node.clone(); final Var subVar = node.getSubjectVar(); final Var predVar = node.getPredicateVar();
@Override protected void meetSP(final StatementPattern node) throws Exception { final StatementPattern sp = node.clone(); final Var predVar = sp.getPredicateVar(); final IRI pred = (IRI) predVar.getValue(); final String predNamespace = pred.getNamespace(); final Var objVar = sp.getObjectVar(); final Var cntxtVar = sp.getContextVar(); if (objVar != null && !RDF.NAMESPACE.equals(predNamespace) && !SESAME.NAMESPACE.equals(predNamespace) && !RDFS.NAMESPACE.equals(predNamespace) && !EXPANDED.equals(cntxtVar)) { final IRI transPropIri = (IRI) predVar.getValue(); if (inferenceEngine.isTransitiveProperty(transPropIri)) { node.replaceWith(new TransitivePropertySP(sp.getSubjectVar(), sp.getPredicateVar(), sp.getObjectVar(), sp.getContextVar())); } } } }
@Override protected void meetSP(final StatementPattern node) throws Exception { final StatementPattern sp = node.clone(); final Var predVar = sp.getPredicateVar();
@Override protected void meetSP(final StatementPattern node) throws Exception { final StatementPattern sp = node.clone(); final Var predVar = sp.getPredicateVar();
@Override protected void meetSP(StatementPattern node) throws Exception { StatementPattern sp = node.clone();
if (sufficientValues.size() > 0) { final Var valueVar = new Var("v-" + UUID.randomUUID()); TupleExpr currentNode = node.clone(); for (IRI property : sufficientValues.keySet()) { final Var propVar = new Var(property.toString(), property); final TupleExpr typeSP = new DoNotExpandSP(subjVar, rdfTypeVar, typeVar); final FixedStatementPattern typeToValue = new FixedStatementPattern(typeVar, hasValueVar, objVar); final TupleExpr directValueSP = node.clone(); for (Resource type : impliedValues.keySet()) {
@Override protected void meetSP(StatementPattern node) throws Exception { StatementPattern sp = node.clone(); final Var predVar = sp.getPredicateVar();
@Override protected void meetSP(final StatementPattern node) throws Exception { final StatementPattern sp = node.clone(); final Var predVar = sp.getPredicateVar(); final Var objVar = sp.getObjectVar();
node.replaceWith(new InferUnion(node.clone(), avfInferenceQuery));
node.replaceWith(new InferUnion(node.clone(), svfInferenceQuery));
/** * Check whether any solution for the {@link StatementPattern} could be derived from * reflexive property inference, and if so, replace the pattern with a union of itself and the * reflexive solution. */ @Override protected void meetSP(StatementPattern node) throws Exception { // Only applies when the predicate is defined and reflexive final Var predVar = node.getPredicateVar(); if (predVar.getValue() != null && inferenceEngine.isReflexiveProperty((IRI) predVar.getValue())) { final StatementPattern originalSP = node.clone(); // The reflexive solution is a ZeroLengthPath between subject and // object: they can be matched to one another, whether constants or // variables. final Var subjVar = node.getSubjectVar(); final Var objVar = node.getObjectVar(); final ZeroLengthPath reflexiveSolution = new ZeroLengthPath(subjVar, objVar); node.replaceWith(new InferUnion(originalSP, reflexiveSolution)); } } }
final IRI inferredType = (IRI) objVar.getValue(); TupleExpr currentNode = node.clone();
@Override protected void meetSP(StatementPattern node) throws Exception { StatementPattern sp = node.clone(); final Var predVar = sp.getPredicateVar();
for (final Value replacementVal : replacements) { if (replacementsInner.isEmpty()) { final StatementPattern transformed = stmt.clone(); if (transformed.getSubjectVar().equals(replaceVar)) { transformed.setSubjectVar(new Var(replaceVar, replacementVal)); final StatementPattern transformed = stmt.clone(); if (transformed.getSubjectVar().equals(replaceVar)) { transformed.setSubjectVar(new Var(replaceVar, replacementVal));
final StatementPattern clone = node.clone(); if (RDF.TYPE.equals(pred) && obj.isConstant()) {