List of usage examples for org.apache.commons.rdf.api Dataset getGraph
Optional<Graph> getGraph(BlankNodeOrIRI graphName);
From source file:org.trellisldp.audit.DefaultAuditServiceTest.java
@Test public void testAuditCreation() { final Dataset dataset = rdf.createDataset(); final AuditService svc = new DefaultAuditService() { };//from w ww. j a v a 2 s . com svc.creation(subject, mockSession).forEach(dataset::add); assertTrue( dataset.getGraph(Trellis.PreferAudit).filter(graph -> graph.size() == dataset.size()).isPresent(), "Graph and dataset sizes don't match for creation event!"); assertTrue(dataset.contains(null, null, type, AS.Create), "as:Create type not in create dataset!"); assertAll("Event property check", checkEventProperties(dataset)); }
From source file:org.trellisldp.audit.DefaultAuditServiceTest.java
@Test public void testAuditDeletion() { final Dataset dataset = rdf.createDataset(); final AuditService svc = new DefaultAuditService() { };/*from w ww. ja v a2s. com*/ svc.deletion(subject, mockSession).forEach(dataset::add); assertTrue( dataset.getGraph(Trellis.PreferAudit).filter(graph -> graph.size() == dataset.size()).isPresent(), "Graph and dataset sizes don't match for deletion event!"); assertTrue(dataset.contains(null, null, type, AS.Delete), "as:Delete type not in delete dataset!"); assertAll("Event property check", checkEventProperties(dataset)); }
From source file:org.trellisldp.audit.DefaultAuditServiceTest.java
@Test public void testAuditUpdate() { final Dataset dataset = rdf.createDataset(); final AuditService svc = new DefaultAuditService() { };//w ww.java 2 s. c om svc.update(subject, mockSession).forEach(dataset::add); assertTrue( dataset.getGraph(Trellis.PreferAudit).filter(graph -> graph.size() == dataset.size()).isPresent()); assertTrue(dataset.contains(null, null, type, AS.Update)); assertAll("Event property check", checkEventProperties(dataset)); }
From source file:org.trellisldp.spi.RDFUtilsTest.java
@Test public void testAuditCreation() { final Dataset dataset = rdf.createDataset(); auditCreation(subject, mockSession).forEach(dataset::add); assertTrue(/* ww w . j av a 2 s. co m*/ dataset.getGraph(Trellis.PreferAudit).filter(graph -> graph.size() == dataset.size()).isPresent()); assertTrue(dataset.contains(null, null, type, PROV.Activity)); assertTrue(dataset.contains(null, null, type, AS.Create)); assertTrue(dataset.contains(null, subject, PROV.wasGeneratedBy, null)); assertTrue(dataset.contains(null, null, PROV.wasAssociatedWith, Trellis.AnonymousUser)); assertTrue(dataset.contains(null, null, PROV.actedOnBehalfOf, Trellis.RepositoryAdministrator)); assertTrue(dataset.contains(null, null, PROV.startedAtTime, rdf.createLiteral(created.toString(), XSD.dateTime))); assertEquals(6L, dataset.size()); }
From source file:org.trellisldp.spi.RDFUtilsTest.java
@Test public void testAuditDeletion() { final Dataset dataset = rdf.createDataset(); auditDeletion(subject, mockSession).forEach(dataset::add); assertTrue(//from w ww .ja v a 2 s. c o m dataset.getGraph(Trellis.PreferAudit).filter(graph -> graph.size() == dataset.size()).isPresent()); assertTrue(dataset.contains(null, null, type, PROV.Activity)); assertTrue(dataset.contains(null, null, type, AS.Delete)); assertTrue(dataset.contains(null, subject, PROV.wasGeneratedBy, null)); assertTrue(dataset.contains(null, null, PROV.wasAssociatedWith, Trellis.AnonymousUser)); assertTrue(dataset.contains(null, null, PROV.actedOnBehalfOf, Trellis.RepositoryAdministrator)); assertTrue(dataset.contains(null, null, PROV.startedAtTime, rdf.createLiteral(created.toString(), XSD.dateTime))); assertEquals(6L, dataset.size()); }
From source file:org.trellisldp.spi.RDFUtilsTest.java
@Test public void testAuditUpdate() { final Dataset dataset = rdf.createDataset(); auditUpdate(subject, mockSession).forEach(dataset::add); assertTrue(//from w ww .j a va 2 s .c o m dataset.getGraph(Trellis.PreferAudit).filter(graph -> graph.size() == dataset.size()).isPresent()); assertTrue(dataset.contains(null, null, type, PROV.Activity)); assertTrue(dataset.contains(null, null, type, AS.Update)); assertTrue(dataset.contains(null, subject, PROV.wasGeneratedBy, null)); assertTrue(dataset.contains(null, null, PROV.wasAssociatedWith, Trellis.AnonymousUser)); assertTrue(dataset.contains(null, null, PROV.actedOnBehalfOf, Trellis.RepositoryAdministrator)); assertTrue(dataset.contains(null, null, PROV.startedAtTime, rdf.createLiteral(created.toString(), XSD.dateTime))); assertEquals(6L, dataset.size()); }
From source file:org.trellisldp.test.MementoResourceTests.java
/** * Test the content of memento resources. *//*www . ja va 2 s . c o m*/ @Test @DisplayName("Test the content of memento resources") default void testMementoContent() { final RDF rdf = getInstance(); final Dataset dataset = rdf.createDataset(); final Map<String, String> mementos = getMementos(); mementos.forEach((memento, date) -> { try (final Response res = target(memento).request().get()) { assertEquals(SUCCESSFUL, res.getStatusInfo().getFamily(), "Check for a successful request"); readEntityAsGraph(res.getEntity(), getBaseURL(), TURTLE).stream() .forEach(triple -> dataset.add(rdf.createIRI(memento), triple.getSubject(), triple.getPredicate(), triple.getObject())); } }); final IRI subject = rdf.createIRI(getResourceLocation()); final List<IRI> urls = mementos.keySet().stream().sorted().map(rdf::createIRI).collect(toList()); assertEquals(3L, urls.size(), "Check that three mementos were found"); assertTrue(dataset.getGraph(urls.get(0)).isPresent(), "Check that the first graph is present"); dataset.getGraph(urls.get(0)).ifPresent(g -> { assertTrue(g.contains(subject, type, SKOS.Concept), "Check for a skos:Concept type"); assertTrue(g.contains(subject, SKOS.prefLabel, rdf.createLiteral("Resource Name", "eng")), "Check for a skos:prefLabel property"); assertTrue(g.contains(subject, DC.subject, rdf.createIRI("http://example.org/subject/1")), "Check for a dc:subject property"); assertEquals(3L, g.size(), "Check for three triples"); }); assertTrue(dataset.getGraph(urls.get(1)).isPresent(), "Check that the second graph is present"); dataset.getGraph(urls.get(1)).ifPresent(g -> { assertTrue(g.contains(subject, type, SKOS.Concept), "Check for a skos:Concept type"); assertTrue(g.contains(subject, SKOS.prefLabel, rdf.createLiteral("Resource Name", "eng")), "Check for a skos:prefLabel property"); assertTrue(g.contains(subject, DC.subject, rdf.createIRI("http://example.org/subject/1")), "Check for a dc:subject property"); assertTrue(g.contains(subject, DC.title, rdf.createLiteral("Title")), "Check for a dc:title property"); assertEquals(4L, g.size(), "Check for four triples"); }); assertTrue(dataset.getGraph(urls.get(2)).isPresent(), "Check that the third graph is present"); dataset.getGraph(urls.get(2)).ifPresent(g -> { assertTrue(g.contains(subject, type, SKOS.Concept), "Check for a skos:Concept type"); assertTrue(g.contains(subject, SKOS.prefLabel, rdf.createLiteral("Resource Name", "eng")), "Check for a skos:prefLabel property"); assertTrue(g.contains(subject, DC.subject, rdf.createIRI("http://example.org/subject/1")), "Check for a dc:subject property"); assertTrue(g.contains(subject, DC.title, rdf.createLiteral("Title")), "Check for a dc:title property"); assertTrue(g.contains(subject, DC.alternative, rdf.createLiteral("Alternative Title")), "Check for a dc:alternative property"); assertEquals(5L, g.size(), "Check for five triples"); }); }
From source file:org.trellisldp.triplestore.TriplestoreResourceService.java
/** * This is equivalent to the SPARQL below. * * <p><pre><code>/*from ww w . j a va2 s .co m*/ * DELETE WHERE { GRAPH IDENTIFIER { ?s ?p ?o } }; * DELETE WHERE { GRAPH IDENTIFIER?ext=acl { ?s ?p ?o } }; * DELETE WHERE { GRAPH trellis:PreferServerManaged { * IDENTIFIER a ldp:NonRDFSource . * IDENTIFIER dc:hasPart ?s . * ?s ?p ?o . * }; * DELETE WHERE { GRAPH trellis:PreferServerManaged { IDENTIFIER ?p ?o } }; * INSERT DATA { * GRAPH IDENTIFIER { ... } * GRAPH IDENTIFIER?ext=acl { ... } * GRAPH trellis:PreferServerManaged { ... } * GRAPH IDENTIFIER?ext=audit { ... } * } * </code></pre></p> */ private UpdateRequest buildUpdateRequest(final IRI identifier, final Literal time, final Dataset dataset, final OperationType type) { // Set the time dataset.add(PreferServerManaged, identifier, DC.modified, time); final UpdateRequest req = new UpdateRequest(); req.add(new UpdateDeleteWhere( new QuadAcc(singletonList(new Quad(rdf.asJenaNode(identifier), SUBJECT, PREDICATE, OBJECT))))); req.add(new UpdateDeleteWhere( new QuadAcc(singletonList(new Quad(getAclIRI(identifier), SUBJECT, PREDICATE, OBJECT))))); req.add(new UpdateDeleteWhere(new QuadAcc(asList( new Quad(rdf.asJenaNode(PreferServerManaged), rdf.asJenaNode(identifier), rdf.asJenaNode(RDF.type), rdf.asJenaNode(LDP.NonRDFSource)), new Quad(rdf.asJenaNode(PreferServerManaged), rdf.asJenaNode(identifier), rdf.asJenaNode(DC.hasPart), SUBJECT), new Quad(rdf.asJenaNode(PreferServerManaged), SUBJECT, PREDICATE, OBJECT))))); req.add(new UpdateDeleteWhere(new QuadAcc(singletonList( new Quad(rdf.asJenaNode(PreferServerManaged), rdf.asJenaNode(identifier), PREDICATE, OBJECT))))); final QuadDataAcc sink = new QuadDataAcc(synchronizedList(new ArrayList<>())); if (type == OperationType.DELETE) { dataset.stream().filter(q -> q.getGraphName().filter(PreferServerManaged::equals).isPresent()) .map(rdf::asJenaQuad).forEach(sink::addQuad); } else { dataset.stream().filter(q -> q.getGraphName().filter(PreferServerManaged::equals).isPresent()) .map(rdf::asJenaQuad).forEach(sink::addQuad); dataset.getGraph(PreferUserManaged).ifPresent(g -> g.stream() .map(t -> new Quad(rdf.asJenaNode(identifier), rdf.asJenaTriple(t))).forEach(sink::addQuad)); dataset.getGraph(PreferAccessControl).ifPresent(g -> g.stream() .map(t -> new Quad(getAclIRI(identifier), rdf.asJenaTriple(t))).forEach(sink::addQuad)); dataset.getGraph(PreferAudit).ifPresent(g -> g.stream() .map(t -> new Quad(getAuditIRI(identifier), rdf.asJenaTriple(t))).forEach(sink::addQuad)); } req.add(new UpdateDataInsert(sink)); return req; }
From source file:org.trellisldp.triplestore.TriplestoreResourceService.java
@Override public CompletionStage<Void> add(final IRI id, final Dataset dataset) { return runAsync(() -> { final IRI graphName = rdf.createIRI(id.getIRIString() + "?ext=audit"); try (final Dataset data = rdf.createDataset()) { dataset.getGraph(PreferAudit).ifPresent(g -> g.stream() .forEach(t -> data.add(graphName, t.getSubject(), t.getPredicate(), t.getObject()))); executeWrite(rdfConnection, () -> rdfConnection.loadDataset(asJenaDataset(data))); } catch (final Exception ex) { throw new RuntimeTrellisException("Error storing audit dataset for " + id, ex); }/*from w w w .j a v a 2s. c om*/ }); }