/** node used for the RDF merge of named graphs */ // public static boolean isQuadUnionGraph(Node node) // { // return node.equals(unionGraph) ; // } // public boolean isUnionGraph() { return isUnionGraph(graph) ; }
/** Is this quad pattern explicitly naming the union graph? */ public boolean isUnionGraph() { return Quad.isUnionGraph(graphNode) ; }
@Override public boolean containsGraph(Node graphNode) { if ( Quad.isDefaultGraph(graphNode) || Quad.isUnionGraph(graphNode) ) return true; return graphs.containsKey(graphNode); }
@Override public boolean containsGraph(Node graphNode) { // Hide empty graphs. if ( Quad.isDefaultGraph(graphNode) ) return true; if ( Quad.isUnionGraph(graphNode) ) return true; Graph g = graphs.get(graphNode); return g != null && !g.isEmpty(); }
@Override public Graph getGraph(Node graphNode) { if ( Quad.isDefaultGraph(graphNode) ) return dftGraph; if ( Quad.isUnionGraph(graphNode) ) return getUnionGraph(); return null; }
@Override public boolean containsGraph(Node graphNode) { if ( Quad.isDefaultGraph(graphNode) ) return true; if ( Quad.isUnionGraph(graphNode) ) return true; return contains(graphNode, Node.ANY, Node.ANY, Node.ANY); }
/** Check whether a dataset contains a named graph of the given name. * Graph with special names (union and default) return true. */ public static boolean containsGraph(DatasetGraph dsg, Node gn) { if ( Quad.isDefaultGraph(gn) || Quad.isUnionGraph(gn) ) return true ; return dsg.containsGraph(gn) ; }
private Iterator<Quad> quadsFinder(final Node g, final Node s, final Node p, final Node o) { if (isUnionGraph(g)) return findInUnionGraph$(s, p, o); return quadsIndex().find(g, s, p, o).iterator(); }
@Override public Graph getGraph(Node graphNode) { if ( Quad.isUnionGraph(graphNode)) return getUnionGraph(); Graph g = GraphView.createNamedGraph(this, graphNode); return new GraphReadOnly(g); }
@Override public Graph getGraph(Node graphNode) { if ( isDefaultGraph(graphNode) ) return getDefaultGraph(); if ( Quad.isUnionGraph(graphNode) ) return getUnionGraph(); return null; }
@Override // Empty graphs don't "exist" public boolean containsGraph(Node graphNode) { checkNotClosed() ; if ( Quad.isDefaultGraphExplicit(graphNode) || Quad.isUnionGraph(graphNode) ) return true ; return _containsGraph(graphNode) ; }
@Override public void quad(Quad quad) { if ( quad.isTriple() || quad.isDefaultGraph() || quad.isUnionGraph() ) { triple(quad.asTriple()) ; } }
@Override protected ExtendedIterator<Triple> graphBaseFind(Node s, Node p, Node o) { if ( Quad.isUnionGraph(gn) ) return graphUnionFind(s, p, o) ; Node g = graphNode(gn) ; Iterator<Triple> iter = GLib.quads2triples(dsg.find(g, s, p, o)) ; return WrappedIterator.createNoRemove(iter) ; }
@Override protected PrefixMapping createPrefixMapping() { Node gn = super.getGraphName(); if ( gn == Quad.defaultGraphNodeGenerated ) gn = null; if ( Quad.isUnionGraph(gn) ) { // Read-only wrapper would be better than a copy. PrefixMapping pmap = new PrefixMappingImpl(); pmap.setNsPrefixes(prefixMapping(null)); return pmap; } return prefixMapping(gn); }
@Override public void performAdd( Triple t ) { Node g = graphNode(gn) ; if ( Quad.isUnionGraph(g) ) throw new AddDeniedException("Can't update the union graph of a dataset") ; Node s = t.getSubject() ; Node p = t.getPredicate() ; Node o = t.getObject() ; dsg.add(g, s, p, o) ; }
@Override public void performDelete( Triple t ) { Node g = graphNode(gn) ; if ( Quad.isUnionGraph(g) ) throw new DeleteDeniedException("Can't update the union graph of a dataset") ; Node s = t.getSubject() ; Node p = t.getPredicate() ; Node o = t.getObject() ; dsg.delete(g, s, p, o) ; }
@Override public Iterator<Quad> findNG(Node g, Node s, Node p , Node o) { Iterator<Quad> qIter ; if ( Quad.isUnionGraph(g)) qIter = findQuadsInUnionGraph(s, p, o) ; else if ( isWildcard(g) ) qIter = findInAnyNamedGraphs(s, p, o) ; else if ( Quad.isDefaultGraph(g) ) qIter = findInDftGraph(s, p, o) ; else // Not wildcard, not union graph, not default graph. qIter = findInSpecificNamedGraph(g, s, p, o) ; if ( qIter == null ) return Iter.nullIterator() ; return qIter ; }
private String chooseGraphURI(ExecutionContext execCxt) { // use the graph information in the text index if possible String graphURI = null; Graph activeGraph = execCxt.getActiveGraph(); if (textIndex.getDocDef().getGraphField() != null && activeGraph instanceof NamedGraph) { NamedGraph namedGraph = (NamedGraph)activeGraph ; if (!Quad.isUnionGraph(namedGraph.getGraphName())) { graphURI = namedGraph.getGraphName() != null ? TextQueryFuncs.graphNodeToString(namedGraph.getGraphName()) : Quad.defaultGraphNodeGenerated.getURI() ; } } return graphURI; }
private String chooseGraphURI(ExecutionContext execCxt) { // use the graph information in the text index if possible String graphURI = null; Graph activeGraph = execCxt.getActiveGraph(); if (textIndex.getDocDef().getGraphField() != null && activeGraph instanceof NamedGraph) { NamedGraph namedGraph = (NamedGraph)activeGraph ; if (!Quad.isUnionGraph(namedGraph.getGraphName())) { graphURI = namedGraph.getGraphName() != null ? TextQueryFuncs.graphNodeToString(namedGraph.getGraphName()) : Quad.defaultGraphNodeGenerated.getURI() ; } } return graphURI; }
protected void classify(QuadBlock quadBlock, Collection<Node> constants, Collection<Var>vars) { for ( Quad quad : quadBlock ) { // Some constants are only markers and are not stored in the database. if ( ! Quad.isDefaultGraph(quad.getGraph()) && ! quad.isUnionGraph() ) // quad.isDefaultGraph ARQ 2.8.4 and later acc(constants, vars, quad.getGraph()) ; acc(constants, vars, quad.getSubject()) ; acc(constants, vars, quad.getPredicate()) ; acc(constants, vars, quad.getObject()) ; } }