Example usage for org.apache.commons.rdf.api Dataset getGraph

List of usage examples for org.apache.commons.rdf.api Dataset getGraph

Introduction

In this page you can find the example usage for org.apache.commons.rdf.api Dataset getGraph.

Prototype

Optional<Graph> getGraph(BlankNodeOrIRI graphName);

Source Link

Document

Get a named graph in this dataset.

Usage

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*/
    });
}