Search in sources :

Example 31 with Update

use of org.openrdf.query.Update in project incubator-rya by apache.

the class RdfCloudTripleStoreConnectionTest method testUpdateData.

public void testUpdateData() throws Exception {
    RepositoryConnection conn = repository.getConnection();
    String insert = "PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" + "PREFIX ex: <http://example/addresses#>\n" + "INSERT DATA\n" + "{ GRAPH ex:G1 {\n" + "<http://example/book3> dc:title    \"A new book\" ;\n" + "                         dc:creator  \"A.N.Other\" .\n" + "}\n" + "}";
    Update update = conn.prepareUpdate(QueryLanguage.SPARQL, insert);
    update.execute();
    String query = "PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" + "select * where { <http://example/book3> ?p ?o. }";
    TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    CountTupleHandler tupleHandler = new CountTupleHandler();
    tupleQuery.evaluate(tupleHandler);
    assertEquals(2, tupleHandler.getCount());
    String insdel = "PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" + "\n" + "WITH <http://example/addresses#G1>\n" + "DELETE { ?book dc:title ?title }\n" + "INSERT { ?book dc:title \"A newer book\"." + "         ?book dc:add \"Additional Info\" }\n" + "WHERE\n" + "  { ?book dc:creator \"A.N.Other\" ;\n" + "        dc:title ?title .\n" + "  }";
    update = conn.prepareUpdate(QueryLanguage.SPARQL, insdel);
    update.execute();
    query = "PREFIX dc: <http://purl.org/dc/elements/1.1/>\n" + "PREFIX ex: <http://example/addresses#>\n" + "select * where { GRAPH ex:G1 {<http://example/book3> ?p ?o. } }";
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    tupleHandler = new CountTupleHandler();
    tupleQuery.evaluate(tupleHandler);
    assertEquals(3, tupleHandler.getCount());
    conn.close();
}
Also used : RepositoryConnection(org.openrdf.repository.RepositoryConnection) TupleQuery(org.openrdf.query.TupleQuery) Update(org.openrdf.query.Update)

Example 32 with Update

use of org.openrdf.query.Update in project incubator-rya by apache.

the class InferenceExamples method testPropertyChainInference.

public static void testPropertyChainInference(final SailRepositoryConnection conn, final Sail sail) throws MalformedQueryException, RepositoryException, UpdateExecutionException, QueryEvaluationException, TupleQueryResultHandlerException, InferenceEngineException {
    // Add data
    String query = // 
    "INSERT DATA\n" + // 
    "{ GRAPH <http://updated/test> {\n" + "  <urn:paulGreatGrandfather> <urn:father> <urn:paulGrandfather> . " + "  <urn:paulGrandfather> <urn:father> <urn:paulFather> . " + " <urn:paulFather> <urn:father> <urn:paul> . " + " <urn:paul> <urn:father> <urn:paulSon> .  }}";
    log.info("Performing Query");
    Update update = conn.prepareUpdate(QueryLanguage.SPARQL, query);
    update.execute();
    query = "select ?p { GRAPH <http://updated/test> {<urn:paulGreatGrandfather> <urn:father>/<urn:father> ?p}}";
    CountingResultHandler resultHandler = new CountingResultHandler();
    TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
    // try adding a property chain and querying for it
    query = // 
    "INSERT DATA\n" + // 
    "{ GRAPH <http://updated/test> {\n" + "  <urn:greatGrandfather> owl:propertyChainAxiom <urn:1234>  . " + " <urn:1234> <http://www.w3.org/2000/10/swap/list#length> 3 . " + " <urn:1234> <http://www.w3.org/2000/10/swap/list#index> (0 <urn:father>) . " + " <urn:1234> <http://www.w3.org/2000/10/swap/list#index> (1 <urn:father>) . " + " <urn:1234> <http://www.w3.org/2000/10/swap/list#index> (2 <urn:father>) .  }}";
    update = conn.prepareUpdate(QueryLanguage.SPARQL, query);
    update.execute();
    query = // 
    "INSERT DATA\n" + // 
    "{ GRAPH <http://updated/test> {\n" + "  <urn:grandfather> owl:propertyChainAxiom <urn:12344>  . " + " <urn:12344> <http://www.w3.org/2000/10/swap/list#length> 2 . " + " <urn:12344> <http://www.w3.org/2000/10/swap/list#index> (0 <urn:father>) . " + " <urn:12344> <http://www.w3.org/2000/10/swap/list#index> (1 <urn:father>) .  }}";
    update = conn.prepareUpdate(QueryLanguage.SPARQL, query);
    update.execute();
    ((RdfCloudTripleStore) sail).getInferenceEngine().refreshGraph();
    resultHandler.resetCount();
    query = "select ?p { GRAPH <http://updated/test> {<urn:paulGreatGrandfather> <urn:greatGrandfather> ?p}}";
    resultHandler = new CountingResultHandler();
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
    resultHandler.resetCount();
    query = "select ?s ?p { GRAPH <http://updated/test> {?s <urn:grandfather> ?p}}";
    resultHandler = new CountingResultHandler();
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
}
Also used : TupleQuery(org.openrdf.query.TupleQuery) Update(org.openrdf.query.Update)

Example 33 with Update

use of org.openrdf.query.Update in project incubator-rya by apache.

the class InferenceExamples method testPropertyChainInferenceAltRepresentation.

public static void testPropertyChainInferenceAltRepresentation(final SailRepositoryConnection conn, final Sail sail) throws MalformedQueryException, RepositoryException, UpdateExecutionException, QueryEvaluationException, TupleQueryResultHandlerException, InferenceEngineException {
    // Add data
    String query = // 
    "INSERT DATA\n" + // 
    "{ GRAPH <http://updated/test> {\n" + "  <urn:jenGreatGranMother> <urn:Motherof> <urn:jenGranMother> . " + "  <urn:jenGranMother> <urn:isChildOf> <urn:jenGreatGranMother> . " + "  <urn:jenGranMother> <urn:Motherof> <urn:jenMother> . " + "  <urn:jenMother> <urn:isChildOf> <urn:jenGranMother> . " + " <urn:jenMother> <urn:Motherof> <urn:jen> . " + "  <urn:jen> <urn:isChildOf> <urn:jenMother> . " + " <urn:jen> <urn:Motherof> <urn:jenDaughter> .  }}";
    log.info("Performing Query");
    Update update = conn.prepareUpdate(QueryLanguage.SPARQL, query);
    update.execute();
    query = "select ?p { GRAPH <http://updated/test> {?s <urn:Motherof>/<urn:Motherof> ?p}}";
    CountingResultHandler resultHandler = new CountingResultHandler();
    TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
    // try adding a property chain and querying for it
    query = // 
    "INSERT DATA\n" + // 
    "{ GRAPH <http://updated/test> {\n" + "  <urn:greatMother> owl:propertyChainAxiom <urn:12342>  . " + " <urn:12342> <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> _:node1atjakcvbx15023 . " + " _:node1atjakcvbx15023 <http://www.w3.org/2002/07/owl#inverseOf> <urn:isChildOf> . " + " <urn:12342> <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> _:node1atjakcvbx15123 . " + " _:node1atjakcvbx15123 <http://www.w3.org/1999/02/22-rdf-syntax-ns#rest> <http://www.w3.org/1999/02/22-rdf-syntax-ns#nil> . " + " _:node1atjakcvbx15123 <http://www.w3.org/1999/02/22-rdf-syntax-ns#first> <urn:MotherOf> .  }}";
    update = conn.prepareUpdate(QueryLanguage.SPARQL, query);
    update.execute();
    ((RdfCloudTripleStore) sail).getInferenceEngine().refreshGraph();
    resultHandler.resetCount();
    query = "select ?x { GRAPH <http://updated/test> {<urn:jenGreatGranMother> <urn:greatMother> ?x}}";
    resultHandler = new CountingResultHandler();
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, query);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
}
Also used : TupleQuery(org.openrdf.query.TupleQuery) Update(org.openrdf.query.Update)

Example 34 with Update

use of org.openrdf.query.Update in project incubator-rya by apache.

the class InferenceExamples method testIntersectionOfInference.

public static void testIntersectionOfInference(final SailRepositoryConnection conn, final Sail sail) throws MalformedQueryException, RepositoryException, UpdateExecutionException, QueryEvaluationException, TupleQueryResultHandlerException, InferenceEngineException {
    log.info("Adding Data");
    final String instances = "INSERT DATA\n" + "{ GRAPH <http://updated/test> {\n" + "  <urn:Susan> a <urn:Mother> . \n" + "  <urn:Mary> a <urn:Woman> . \n" + "  <urn:Mary> a <urn:Parent> . \n" + "}}";
    Update update = conn.prepareUpdate(QueryLanguage.SPARQL, instances);
    update.execute();
    final String inferQuery = "select distinct ?x { GRAPH <http://updated/test> { ?x a <urn:Mother> }}";
    final String explicitQuery = "select distinct ?x { GRAPH <http://updated/test> {\n" + "  { ?x a <urn:Mother> }\n" + "  UNION {\n" + "    ?x a <urn:Woman> .\n" + "    ?x a <urn:Parent> .\n" + "  }\n" + "}}";
    log.info("Running Explicit Query");
    CountingResultHandler resultHandler = new CountingResultHandler();
    TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, explicitQuery);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
    Validate.isTrue(resultHandler.getCount() == 2);
    log.info("Running Inference-dependant Query");
    resultHandler.resetCount();
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, inferQuery);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
    Validate.isTrue(resultHandler.getCount() == 1);
    log.info("Adding owl:intersectionOf Schema");
    // ONTOLOGY - :Mother intersectionOf[:Woman, :Parent]
    final String ontology = "INSERT DATA\n" + "{ GRAPH <http://updated/test> {\n" + "  <urn:Mother> owl:intersectionOf _:bnode1 . \n" + "  _:bnode1 rdf:first <urn:Woman> . \n" + "  _:bnode1 rdf:rest _:bnode2 . \n" + "  _:bnode2 rdf:first <urn:Parent> . \n" + "  _:bnode2 rdf:rest rdf:nil . \n" + "}}";
    update = conn.prepareUpdate(QueryLanguage.SPARQL, ontology);
    update.execute();
    log.info("Refreshing InferenceEngine");
    ((RdfCloudTripleStore) sail).getInferenceEngine().refreshGraph();
    log.info("Re-running Inference-dependant Query");
    resultHandler.resetCount();
    resultHandler = new CountingResultHandler();
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, inferQuery);
    tupleQuery.evaluate(resultHandler);
    log.info("Result count : " + resultHandler.getCount());
    Validate.isTrue(resultHandler.getCount() == 2);
}
Also used : TupleQuery(org.openrdf.query.TupleQuery) Update(org.openrdf.query.Update)

Example 35 with Update

use of org.openrdf.query.Update in project incubator-rya by apache.

the class RyaDirectExample method testAddAndTemporalSearchWithPCJ.

private static void testAddAndTemporalSearchWithPCJ(final SailRepositoryConnection conn) throws Exception {
    // create some resources and literals to make statements out of
    final String sparqlInsert = "PREFIX time: <http://www.w3.org/2006/time#>\n" + // 
    "INSERT DATA {\n" + "_:eventz       a       time:Instant ;\n" + // one
    "     time:inXSDDateTime '2001-01-01T01:01:01-08:00' ;\n" + // second
    "     time:inXSDDateTime '2001-01-01T04:01:02.000-05:00'^^<http://www.w3.org/2001/XMLSchema#dateTime> ;\n" + // seconds
    "     time:inXSDDateTime \"2001-01-01T01:01:03-08:00\" ;\n" + // seconds
    "     time:inXSDDateTime '2001-01-01T01:01:04-08:00' ;\n" + // seconds
    "     time:inXSDDateTime '2001-01-01T09:01:05Z' ;\n" + "     time:inXSDDateTime '2006-01-01' ;\n" + "     time:inXSDDateTime '2007-01-01' ;\n" + "     time:inXSDDateTime '2008-01-01' ; .\n" + "}";
    final Update update = conn.prepareUpdate(QueryLanguage.SPARQL, sparqlInsert);
    update.execute();
    // Find all stored dates.
    String queryString = // 
    "PREFIX time: <http://www.w3.org/2006/time#> \n" + // 
    "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n" + // 
    "SELECT ?event ?time \n" + "WHERE { \n" + // 
    "  ?event time:inXSDDateTime ?time . \n" + // after
    "  FILTER(tempo:after(?time, '2001-01-01T01:01:03-08:00') ) \n" + // seconds
    "}";
    // 
    TupleQuery tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
    CountingResultHandler tupleHandler = new CountingResultHandler();
    tupleQuery.evaluate(tupleHandler);
    log.info("Result count : " + tupleHandler.getCount());
    Validate.isTrue(tupleHandler.getCount() == 5);
    // Find all stored dates.
    queryString = // 
    "PREFIX time: <http://www.w3.org/2006/time#> \n" + // 
    "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n" + // 
    "SELECT ?event ?time \n" + "WHERE { \n" + // 
    "  ?event time:inXSDDateTime ?time . \n" + // 
    "  ?event a  time:Instant . \n" + // after
    "  FILTER(tempo:after(?time, '2001-01-01T01:01:03-08:00') ) \n" + // seconds
    "}";
    // 
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
    tupleHandler = new CountingResultHandler();
    tupleQuery.evaluate(tupleHandler);
    log.info("Result count : " + tupleHandler.getCount());
    Validate.isTrue(tupleHandler.getCount() == 5);
    // Find all stored dates.
    queryString = // 
    "PREFIX time: <http://www.w3.org/2006/time#> \n" + // 
    "PREFIX tempo: <tag:rya-rdf.org,2015:temporal#> \n" + // 
    "SELECT ?event ?time ?e ?c ?l ?o \n" + "WHERE { \n" + // 
    "  ?e a ?c . \n" + // 
    "  ?e <http://www.w3.org/2000/01/rdf-schema#label> ?l . \n" + // 
    "  ?e <uri:talksTo> ?o . \n" + // 
    "  ?event a  time:Instant . \n" + // 
    "  ?event time:inXSDDateTime ?time . \n" + // after
    "  FILTER(tempo:after(?time, '2001-01-01T01:01:03-08:00') ) \n" + // seconds
    "}";
    // 
    tupleQuery = conn.prepareTupleQuery(QueryLanguage.SPARQL, queryString);
    tupleHandler = new CountingResultHandler();
    tupleQuery.evaluate(tupleHandler);
    log.info("Result count : " + tupleHandler.getCount());
    Validate.isTrue(tupleHandler.getCount() == 5);
}
Also used : TupleQuery(org.openrdf.query.TupleQuery) Update(org.openrdf.query.Update)

Aggregations

Update (org.openrdf.query.Update)36 TupleQuery (org.openrdf.query.TupleQuery)33 RepositoryConnection (org.openrdf.repository.RepositoryConnection)6 SailRepository (org.openrdf.repository.sail.SailRepository)3 RdfCloudTripleStore (org.apache.rya.rdftriplestore.RdfCloudTripleStore)2 Test (org.junit.Test)2 SailRepositoryConnection (org.openrdf.repository.sail.SailRepositoryConnection)2 MongoClient (com.mongodb.MongoClient)1 RdfCloudTripleStoreConnection (org.apache.rya.rdftriplestore.RdfCloudTripleStoreConnection)1 RyaSailRepository (org.apache.rya.rdftriplestore.RyaSailRepository)1 InferenceEngine (org.apache.rya.rdftriplestore.inference.InferenceEngine)1 InverseURI (org.apache.rya.rdftriplestore.inference.InverseURI)1 NamespaceManager (org.apache.rya.rdftriplestore.namespace.NamespaceManager)1 URI (org.openrdf.model.URI)1 URIImpl (org.openrdf.model.impl.URIImpl)1 UpdateExecutionException (org.openrdf.query.UpdateExecutionException)1 ParsedUpdate (org.openrdf.query.parser.ParsedUpdate)1 Sail (org.openrdf.sail.Sail)1