@Override public Quad createQuad(Node graph, Node subject, Node predicate, Node object) { return Quad.create(graph, subject, predicate, object) ; }
@Override public Quad apply(Triple triple) { Quad result = Quad.create(g, triple); return result; }
@Override public void triple(Triple triple) { super.quad(Quad.create(graphName, triple)); }
default Stream<Quad> findInUnionGraph(final Node s, final Node p, final Node o) { final Set<Triple> seen = new HashSet<>(); return find(ANY, s, p, o).sequential() .filter(q -> !q.isDefaultGraph()) .map(Quad::asTriple) .filter(seen::add) .map(t -> Quad.create(Quad.unionGraph, t)); } }
@Override protected void addToNamedGraph(final Node g, final Node s, final Node p, final Node o) { mutate(quadsIndex()::add, Quad.create(g, s, p, o)); }
@Override protected void deleteFromNamedGraph(final Node g, final Node s, final Node p, final Node o) { mutate(quadsIndex()::delete, Quad.create(g, s, p, o)); }
private static Quad exampleFrom(final Set<TupleSlot> pattern) { return Quad.create(pattern.contains(GRAPH) ? sampleNode : ANY, pattern.contains(SUBJECT) ? sampleNode : ANY, pattern.contains(PREDICATE) ? sampleNode : ANY, pattern.contains(OBJECT) ? sampleNode : ANY); }
@Override public org.apache.jena.sparql.core.Quad asJenaQuad() { final JenaRDF factory = new JenaRDF(); if (quad == null) { quad = org.apache.jena.sparql.core.Quad.create( graphName.map(factory::asJenaNode).orElse(Quad.defaultGraphIRI), factory.asJenaNode(subject), factory.asJenaNode(predicate), factory.asJenaNode(object)); } return quad; }
@Override public void derive(Node s, Node p, Node o) { if ( isTriple ) output.triple(Triple.create(s,p,o)) ; else output.quad(Quad.create(g,s,p,o)) ; } } ;
@Override public void quad(Quad quad) { Node obj = quad.getObject(); Node obj2 = function.apply(obj); if ( obj != obj2 ) { quad = Quad.create(quad.getGraph(), quad.getSubject(), quad.getPredicate(), obj2); } super.quad(quad); } }
@Override public void add(final BlankNodeOrIRI graphName, final BlankNodeOrIRI subject, final IRI predicate, final RDFTerm object) { datasetGraph.add(org.apache.jena.sparql.core.Quad.create(factory.asJenaNode(graphName), factory.asJenaNode(subject), factory.asJenaNode(predicate), factory.asJenaNode(object))); }
private void readObject(java.io.ObjectInputStream in) throws IOException { TProtocol protocol = TRDF.protocol(in); RDF_Term tterm = new RDF_Term(); Node g = SerializerRDF.read(protocol, tterm); Node s = SerializerRDF.read(protocol, tterm); Node p = SerializerRDF.read(protocol, tterm); Node o = SerializerRDF.read(protocol, tterm); quad = Quad.create(g, s, p, o); }
@Test public void find_union_01() { List<Quad> x = toList(dsg.find(Quad.unionGraph, null, null, null)) ; assertEquals(3, x.size()) ; x.stream().allMatch(q->q.getGraph().equals(Quad.unionGraph)) ; List<Triple> z = x.stream().map(Quad::asTriple).collect(Collectors.toList()) ; assertTrue(z.contains(q4.asTriple())) ; assertTrue(z.contains(q5.asTriple())) ; Quad qx = Quad.create(Quad.unionGraph, q4.asTriple()) ; assertTrue(x.contains(qx)) ; Quad qz = Quad.create(Quad.unionGraph, q2.asTriple()) ; assertFalse(x.contains(qz)) ; }
private Quad transform(Quad q) { Node g = q.getGraph() ; Node g1 = transform(g) ; Node s = q.getSubject() ; Node s1 = transform(s) ; Node p = q.getPredicate() ; Node p1 = transform(p) ; Node o = q.getObject() ; Node o1 = transform(o) ; if ( g == g1 && s == s1 && p == p1 && o == o1 ) return q ; return Quad.create(g1, s1, p1, o1) ; }
public static Quad convert(RDF_Quad rq, PrefixMap pmap) { Node g = (rq.isSetG() ? convert(rq.getG(), pmap) : null ) ; Node s = convert(rq.getS(), pmap) ; Node p = convert(rq.getP(), pmap) ; Node o = convert(rq.getO(), pmap) ; return Quad.create(g, s, p, o) ; }
@Test public void defaultGraphIRI() throws Exception { final Quad jenaQuad = Quad.create(Quad.defaultGraphIRI, exampleJena, exampleJena, exampleJena); final JenaQuad q = rdf.asQuad(jenaQuad); assertFalse(q.getGraphName().isPresent()); assertTrue(q.asJenaQuad().isDefaultGraph()); }
@Test public void unionGraph() throws Exception { // unionGraph shouldn't really appear as a quad except // in a pattern final Quad jenaQuad = Quad.create(Quad.unionGraph, exampleJena, exampleJena, exampleJena); final JenaQuad q = rdf.asQuad(jenaQuad); // But at least we can agree it is NOT (necessarily) in the // default graph assertFalse(q.asJenaQuad().isDefaultGraph()); assertTrue(q.getGraphName().isPresent()); } }
@Test public void defaultGraphNodeGenerated() throws Exception { // <urn:x-arq:DefaultGraphNode> might appear in parser output final Quad jenaQuad = Quad.create(Quad.defaultGraphNodeGenerated, exampleJena, exampleJena, exampleJena); final JenaQuad q = rdf.asQuad(jenaQuad); assertFalse(q.getGraphName().isPresent()); assertTrue(q.asJenaQuad().isDefaultGraph()); // Preserves <urn:x-arq:DefaultGraphNode> assertEquals(Quad.defaultGraphNodeGenerated, q.asJenaQuad().getGraph()); }
@Test public void graph_txn_3() { Node gn = SSE.parseNode(":gn"); Graph g = dsg.getGraph(gn); Triple t = SSE.parseTriple("(:S :P :O)"); Quad q = Quad.create(gn, t); g.getTransactionHandler().execute(()->g.add(t)); g.getTransactionHandler().execute(()->{ Assert.assertTrue(g.contains(t)); dsg.contains(q); }); } }
@Test public void graph_txn_3() { Node gn = SSE.parseNode(":gn"); Graph g = dsg.getGraph(gn); Triple t = SSE.parseTriple("(:S :P :O)"); Quad q = Quad.create(gn, t); g.getTransactionHandler().execute(()->g.add(t)); g.getTransactionHandler().execute(()->{ Assert.assertTrue(g.contains(t)); dsg.contains(q); }); } }