Example usage for org.apache.commons.rdf.api Graph contains

List of usage examples for org.apache.commons.rdf.api Graph contains

Introduction

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

Prototype

boolean contains(Triple triple);

Source Link

Document

Check if graph contains triple.

Usage

From source file:example.UserGuideTest.java

@Test
public void graph() throws Exception {
    IRI nameIri = factory.createIRI("http://example.com/name");
    BlankNode aliceBlankNode = factory.createBlankNode();
    Literal aliceLiteral = factory.createLiteral("Alice");
    Triple triple = factory.createTriple(aliceBlankNode, nameIri, aliceLiteral);

    Graph graph = factory.createGraph();

    graph.add(triple);//  w  w  w  .j  a v a2  s.com

    IRI bob = factory.createIRI("http://example.com/bob");
    Literal bobName = factory.createLiteral("Bob");
    graph.add(bob, nameIri, bobName);

    System.out.println(graph.contains(triple));

    System.out.println(graph.contains(null, nameIri, bobName));

    System.out.println(graph.size());

    for (Triple t : graph.iterate()) {
        System.out.println(t.getObject());
    }

    for (Triple t : graph.iterate(null, null, bobName)) {
        System.out.println(t.getPredicate());
    }

    Stream<RDFTerm> subjects = graph.getTriples().map(t -> t.getObject());
    String s = subjects.map(RDFTerm::ntriplesString).collect(Collectors.joining(" "));
    System.out.println(s);

    Stream<? extends Triple> namedB = graph.getTriples(null, nameIri, null)
            .filter(t -> t.getObject().ntriplesString().contains("B"));
    System.out.println(namedB.map(t -> t.getSubject()).findAny().get());

    graph.remove(triple);
    System.out.println(graph.contains(triple));

    graph.remove(null, nameIri, null);

    graph.clear();
    System.out.println(graph.contains(null, null, null));

}

From source file:org.trellisldp.http.impl.HttpUtilsTest.java

@Test
public void testSkolemize() {
    final String baseUrl = "http://example.org/";
    final Literal literal = rdf.createLiteral("A title");
    final BlankNode bnode = rdf.createBlankNode("foo");

    when(mockResourceService.skolemize(any(Literal.class))).then(returnsFirstArg());
    when(mockResourceService.skolemize(any(IRI.class))).then(returnsFirstArg());
    when(mockResourceService.skolemize(any(BlankNode.class))).thenAnswer(
            inv -> rdf.createIRI(TRELLIS_BNODE_PREFIX + ((BlankNode) inv.getArgument(0)).uniqueReference()));
    when(mockResourceService.unskolemize(any(IRI.class))).thenAnswer(inv -> {
        final String uri = ((IRI) inv.getArgument(0)).getIRIString();
        if (uri.startsWith(TRELLIS_BNODE_PREFIX)) {
            return bnode;
        }//from  w w w . j a va 2 s .  c o m
        return (IRI) inv.getArgument(0);
    });
    when(mockResourceService.toExternal(any(RDFTerm.class), eq(baseUrl))).thenAnswer(inv -> {
        final RDFTerm term = (RDFTerm) inv.getArgument(0);
        if (term instanceof IRI) {
            final String identifierString = ((IRI) term).getIRIString();
            if (identifierString.startsWith(TRELLIS_DATA_PREFIX)) {
                return rdf.createIRI(baseUrl + identifierString.substring(TRELLIS_DATA_PREFIX.length()));
            }
        }
        return term;
    });
    when(mockResourceService.toInternal(any(RDFTerm.class), eq(baseUrl))).thenAnswer(inv -> {
        final RDFTerm term = (RDFTerm) inv.getArgument(0);
        if (term instanceof IRI) {
            final String identifierString = ((IRI) term).getIRIString();
            if (identifierString.startsWith(baseUrl)) {
                return rdf.createIRI(TRELLIS_DATA_PREFIX + identifierString.substring(baseUrl.length()));
            }
        }
        return term;
    });

    when(mockResourceService.unskolemize(any(Literal.class))).then(returnsFirstArg());

    final IRI subject = rdf.createIRI("http://example.org/resource");
    final Graph graph = rdf.createGraph();
    graph.add(rdf.createTriple(subject, DC.title, literal));
    graph.add(rdf.createTriple(subject, DC.subject, bnode));
    graph.add(rdf.createTriple(bnode, DC.title, literal));

    final List<Triple> triples = graph.stream()
            .map(HttpUtils.skolemizeTriples(mockResourceService, "http://example.org/")).collect(toList());

    assertTrue(triples.stream().anyMatch(t -> t.getSubject().equals(identifier)),
            "subject not in triple stream!");
    assertTrue(triples.stream().anyMatch(t -> t.getObject().equals(literal)), "Literal not in triple stream!");
    assertTrue(
            triples.stream()
                    .anyMatch(t -> t.getSubject().ntriplesString().startsWith("<" + TRELLIS_BNODE_PREFIX)),
            "Skolemized bnode not in triple stream!");

    assertAll(triples.stream().map(HttpUtils.unskolemizeTriples(mockResourceService, "http://example.org/"))
            .map(t -> () -> assertTrue(graph.contains(t), "Graph doesn't include triple: " + t)));
}

From source file:org.trellisldp.http.impl.RdfUtilsTest.java

@Test
public void testSkolemize() {
    final IRI iri = rdf.createIRI("trellis:repository/resource");
    final String baseUrl = "http://example.org/";
    final IRI anonIri = rdf.createIRI(TRELLIS_BNODE_PREFIX + "foo");
    final Literal literal = rdf.createLiteral("A title");
    final BlankNode bnode = rdf.createBlankNode("foo");

    when(mockResourceService.skolemize(any(Literal.class))).then(returnsFirstArg());
    when(mockResourceService.skolemize(any(IRI.class))).then(returnsFirstArg());
    when(mockResourceService.skolemize(any(BlankNode.class))).thenAnswer(
            inv -> rdf.createIRI(TRELLIS_BNODE_PREFIX + ((BlankNode) inv.getArgument(0)).uniqueReference()));
    when(mockResourceService.unskolemize(any(IRI.class))).thenAnswer(inv -> {
        final String uri = ((IRI) inv.getArgument(0)).getIRIString();
        if (uri.startsWith(TRELLIS_BNODE_PREFIX)) {
            return bnode;
        }/*  w  w  w  . j av  a  2 s  .  c  o  m*/
        return (IRI) inv.getArgument(0);
    });
    when(mockResourceService.toExternal(any(RDFTerm.class), eq(baseUrl))).thenAnswer(inv -> {
        final RDFTerm term = (RDFTerm) inv.getArgument(0);
        if (term instanceof IRI) {
            final String iriString = ((IRI) term).getIRIString();
            if (iriString.startsWith(TRELLIS_PREFIX)) {
                return rdf.createIRI(baseUrl + iriString.substring(TRELLIS_PREFIX.length()));
            }
        }
        return term;
    });
    when(mockResourceService.toInternal(any(RDFTerm.class), eq(baseUrl))).thenAnswer(inv -> {
        final RDFTerm term = (RDFTerm) inv.getArgument(0);
        if (term instanceof IRI) {
            final String iriString = ((IRI) term).getIRIString();
            if (iriString.startsWith(baseUrl)) {
                return rdf.createIRI(TRELLIS_PREFIX + iriString.substring(baseUrl.length()));
            }
        }
        return term;
    });

    when(mockResourceService.unskolemize(any(Literal.class))).then(returnsFirstArg());

    final IRI subject = rdf.createIRI("http://example.org/repository/resource");
    final Graph graph = rdf.createGraph();
    graph.add(rdf.createTriple(subject, DC.title, literal));
    graph.add(rdf.createTriple(subject, DC.subject, bnode));
    graph.add(rdf.createTriple(bnode, DC.title, literal));

    final List<Triple> triples = graph.stream()
            .map(RdfUtils.skolemizeTriples(mockResourceService, "http://example.org/")).collect(toList());

    assertTrue(triples.stream().anyMatch(t -> t.getSubject().equals(iri)));
    assertTrue(triples.stream().anyMatch(t -> t.getObject().equals(literal)));
    assertTrue(triples.stream()
            .anyMatch(t -> t.getSubject().ntriplesString().startsWith("<" + TRELLIS_BNODE_PREFIX)));

    triples.stream().map(RdfUtils.unskolemizeTriples(mockResourceService, "http://example.org/"))
            .forEach(t -> assertTrue(graph.contains(t)));
}