@Override public void meet(ProjectionElemList node) throws RDFHandlerException { Resource elemListBNode = valueFactory.createBNode(); handler.handleStatement( valueFactory.createStatement(subject, SP.RESULT_VARIABLES_PROPERTY, elemListBNode)); ListContext ctx = newList(elemListBNode); super.meet(node); endList(ctx); }
@Override public void meet(Sample node) throws RDFHandlerException { handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.SAMPLE_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(Not node) throws RDFHandlerException { if (node.getArg() instanceof Exists) { super.meet(node); } else { Resource currentSubj = subject; flushPendingStatement(); handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.NOT)); predicate = SP.ARG1_PROPERTY; node.getArg().visit(this); subject = currentSubj; predicate = null; } }
@Override public void meet(Max node) throws RDFHandlerException { handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.MAX_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(Sum node) throws RDFHandlerException { handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.SUM_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(Avg node) throws RDFHandlerException { handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.AVG_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(Count node) throws RDFHandlerException { handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.COUNT_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(Min node) throws RDFHandlerException { handler.handleStatement(valueFactory.createStatement(subject, RDF.TYPE, SP.MIN_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(GroupConcat node) throws RDFHandlerException { handler.handleStatement( valueFactory.createStatement(subject, RDF.TYPE, SP.GROUP_CONCAT_CLASS)); if (node.isDistinct()) { handler.handleStatement( valueFactory.createStatement(subject, SP.DISTINCT_PROPERTY, BooleanLiteral.TRUE)); } Resource oldSubject = subject; super.meet(node); handler.handleStatement( valueFactory.createStatement(oldSubject, SP.EXPRESSION_PROPERTY, subject)); subject = oldSubject; }
@Override public void meet(Join node) throws RDFHandlerException { boolean isGroupGraphPattern = (node.getRightArg() instanceof Join); if (!isGroupGraphPattern) { super.meet(node); } else { listEntry(); ListContext leftGroupCtx = newList(subject); node.getLeftArg().visit(this); endList(leftGroupCtx); listEntry(); ListContext rightGroupCtx = newList(subject); node.getRightArg().visit(this); endList(rightGroupCtx); } }