public String getComment() { if (this.model != null && this.resource != null) { Node p = model.getProperty(SpdxRdfConstants.RDFS_NAMESPACE, SpdxRdfConstants.RDFS_PROP_COMMENT).asNode(); Triple m = Triple.createMatch(this.resource.asNode(), p, null); ExtendedIterator<Triple> tripleIter = model.getGraph().find(m); while (tripleIter.hasNext()) { this.comment = tripleIter.next().getObject().toString(false); } } return this.comment; }
public List<SpdxPackage> findAllPackages() throws InvalidSPDXAnalysisException { Node rdfTypePredicate = model.getProperty(SpdxRdfConstants.RDF_NAMESPACE, SpdxRdfConstants.RDF_PROP_TYPE).asNode(); Node packageTypeObject = model.createResource(SPDX_NAMESPACE + CLASS_SPDX_PACKAGE).asNode(); Triple m = Triple.createMatch(null, rdfTypePredicate, packageTypeObject); List<SpdxPackage> retval = Lists.newArrayList(); ExtendedIterator<Triple> tripleIter = model.getGraph().find(m); while (tripleIter.hasNext()) { retval.add((SpdxPackage)SpdxElementFactory.createElementFromModel(this, tripleIter.next().getSubject())); } return retval; }
@Override public ExtendedIterator<Triple> find( Node s, Node p, Node o ) { return SimpleEventManager.notifyingRemove( this, base.find( s, p, o ).filterDrop( t -> t.getSubject().isLiteral() || t.getPredicate().isBlank() || t.getPredicate().isLiteral() ) ); }
static GraphTraversal<?, ?> transform(final Triple triple) { final GraphTraversal<Vertex, ?> matchTraversal = __.as(triple.getSubject().getName()); final Node predicate = triple.getPredicate(); final String uri = predicate.getURI(); final String uriValue = Prefixes.getURIValue(uri); final String prefix = Prefixes.getPrefix(uri); switch (prefix) { case "edge": return matchTraversal.out(uriValue).as(triple.getObject().getName()); case "property": return matchProperty(matchTraversal, uriValue, PropertyType.PROPERTY, triple.getObject()); case "value": return matchProperty(matchTraversal, uriValue, PropertyType.VALUE, triple.getObject()); default: throw new IllegalStateException(String.format("Unexpected predicate: %s", predicate)); } }
@Override public void triple(Triple triple) { Node obj = triple.getObject(); Node obj2 = function.apply(obj); if ( obj != obj2 ) { triple = Triple.create(triple.getSubject(), triple.getPredicate(), obj2); } super.triple(triple); }
@Override protected ExtendedIterator<Triple> graphBaseFind(Triple m) { if ( m == null ) m = Triple.ANY ; Node s = m.getMatchSubject() ; Node p = m.getMatchPredicate() ; Node o = m.getMatchObject() ; return graphBaseFind(s, p, o) ; }
@Override public SecuredModel add(final Resource s, final Property p, final String lex, final RDFDatatype datatype) throws UpdateDeniedException, AddDeniedException, AuthenticationRequiredException { checkUpdate(); checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createLiteral(lex, datatype))); holder.getBaseItem().add(s, p, lex, datatype); return holder.getSecuredItem(); }
@Test public void rdfjson_escapes() { Graph g = GraphFactory.createGraphMem(); Node s = NodeFactory.createBlankNode(); Node p = NodeFactory.createURI("http://predicate"); g.add(new Triple(s, p, NodeFactory.createLiteral("quote \" character"))); g.add(new Triple(s, p, NodeFactory.createLiteral("new \n\r lines"))); g.add(new Triple(s, p, NodeFactory.createLiteral("tab \t character"))); test(g); }
private static Stream<Triple> getComplexTriples() { final Node sub = createURI("trellis:data/resource"); final Node bn = createBlankNode(); return of( create(sub, title.asNode(), createLiteral("A title")), create(sub, subject.asNode(), bn), create(bn, title.asNode(), createLiteral("Other title")), create(sub, spatial.asNode(), createURI("http://sws.geonames.org/4929022/")), create(sub, type, Text.asNode())) .map(rdf::asTriple); }
/** * Test case for a bug in retrieving a value like 3.00 from * a probe like 3.0 */ public void testDecimalFind() { RDFDatatype dt = XSDDatatype.XSDdecimal; Node ns = NodeFactory.createURI("x") ; Node np = NodeFactory.createURI("p") ; Node nx1 = NodeFactory.createLiteral("0.50", dt) ; Node nx2 = NodeFactory.createLiteral("0.500", dt) ; Graph graph = Factory.createDefaultGraph() ; graph.add(new Triple(ns, np, nx1)) ; assertTrue( graph.find(Node.ANY, Node.ANY, nx2).hasNext() ); }
@Test public void binaryThrift() { Triple t = Triple.create(n(":s"), n(":p"), NodeFactory.createBlankNode("ABCD")); Node obj = t.getObject(); Graph graph = Factory.createDefaultGraph(); graph.add(t); ByteArrayOutputStream bout = new ByteArrayOutputStream(); RDFDataMgr.write(bout, graph, Lang.RDFTHRIFT); ByteArrayInputStream bin = new ByteArrayInputStream(bout.toByteArray()); Graph graph1 = Factory.createDefaultGraph(); RDFDataMgr.read(graph1, bin, Lang.RDFTHRIFT); Node obj1 = graph1.find().next().getObject(); assertEquals(obj, obj1); assertTrue(obj1.isBlank()); assertEquals(obj.getBlankNodeLabel(), obj1.getBlankNodeLabel()); }
@Override public void accept(Triple item) { Node node = item.getSubject(); if (node.isURI()) addPrefix2Ctx(node.getURI()); node = item.getPredicate() ; addPrefix2Ctx(node.getURI()); node = item.getObject() ; if (node.isURI()) addPrefix2Ctx(node.getURI()); }
@Override public SecuredSeq getSeq(final String uri) throws ReadDeniedException, AuthenticationRequiredException { checkRead(); checkRead(new Triple(NodeFactory.createURI(uri), RDF.type.asNode(), RDF.Seq.asNode())); return SecuredSeqImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem().getSeq(uri)); }
/** * Rewrite a triple. * @param t The triple to rewrite. * @return The rewritten triple. */ protected final Triple rewrite(Triple t) { return new Triple(changeNode(t.getSubject()), changeNode(t.getPredicate()), changeNode(t.getObject())); }
private Node getSkolem(Node x, Node y) { String rules = "[r1: (?n p ?x) (?n q ?y) makeSkolem(?s ?x ?y) -> (?n s ?s)]"; Graph data = Factory.createGraphMem(); data.add(new Triple(n1, p, x)); data.add(new Triple(n1, q, y)); InfGraph infgraph = createInfGraph(rules, data); return infgraph.find(n1, s, Node.ANY).next().getObject(); }
@Override public void addGraph(Node gn, Graph g) { // Convert to quads. //super.addGraph(gn, g) ; ExtendedIterator<Triple> iter = g.find(Node.ANY, Node.ANY, Node.ANY) ; for ( ; iter.hasNext(); ) { Triple t = iter.next() ; add(gn, t.getSubject(), t.getPredicate(), t.getObject()) ; } }
@Override public ExtendedIterator<Triple> find(Node subject, Node predicate, Node object) { List<Triple> nbTripList = new ArrayList<Triple>(); ExtendedIterator<Triple> triples = graph.find(subject, predicate, object); while (triples.hasNext()) { Triple triple = triples.next(); if (!triple.getSubject().isBlank() && !triple.getObject().isBlank()) { nbTripList.add(triple); } } return WrappedIterator.create(nbTripList.iterator()); }
private void testStatsWithConcreteTriple( int expect, String triple, String graph ) { Graph g = getGraphWith( graph ); GraphStatisticsHandler h = g.getStatisticsHandler(); Triple t = triple( triple ); assertEquals( expect, h.getStatistic( t.getSubject(), t.getPredicate(), t.getObject() ) ); }
@Override public SecuredStatement createStatement(final Resource s, final Property p, final String o) throws UpdateDeniedException, AddDeniedException, AuthenticationRequiredException { checkUpdate(); checkCreate(new Triple(s.asNode(), p.asNode(), NodeFactory.createURI(o))); return SecuredStatementImpl.getInstance(holder.getSecuredItem(), holder.getBaseItem().createStatement(s, p, o)); }