Library Version 12.1.3.0

Example5d.java: SPARQL query with DOP
Prev | Chapter 8. Quick Start for the RDF Graph Feature | Next

## Example5d.java: SPARQL query with DOP

This example shows the SPARQL query from Example5.java: SPARQL query with JOIN_METHOD with additional features including a parallel execution setting (DOP=4).

    import com.hp.hpl.jena.query.*;
    import org.openjena.riot.Lang;
    import com.hp.hpl.jena.sparql.core.DatasetImpl;
    import oracle.rdf.kv.client.jena.*;

    public class Example5d
    {

      public static void main(String[] args) throws Exception
      {

    String szStoreName  = args[0];
    String szHostName   = args[1];
    String szHostPort   = args[2];

    System.out.println("create connection");
    OracleNoSqlConnection conn
         = OracleNoSqlConnection.createInstance(szStoreName,
                                                szHostName,
                                                szHostPort);

    // Create datasetgraph
    OracleGraphNoSql graph = new OracleGraphNoSql(conn);
    DatasetGraphNoSql datasetGraph = DatasetGraphNoSql.createFrom(graph);

    // Close graph, as it is no longer needed
    graph.close();

    // Clear dataset
    datasetGraph.clearRepository();

    Dataset ds = DatasetImpl.wrap(datasetGraph);

    // Load data from file into the dataset
    DatasetGraphNoSql.load("example.nt", Lang.NQUADS, conn,
                           "http://example.com");

    String szQuery =
    " PREFIX ORACLE_SEM_FS_NS: "                         +
    " <http://oracle.com/semtech#dop=4>"                 +
    " PREFIX foaf: <http://xmlns.com/foaf/0.1/>"         +
    " SELECT ?name1 ?name2 ?homepage2 "                  +
    " WHERE { "                                          +
    "   graph <http://example.org/alice/foaf.rdf> { "    +
    "     ?person1 foaf:knows ?person2 . "               +
    "     ?person1 foaf:name ?name1 . "                  +
    "     ?person2 foaf:name ?name2 . "                  +
    "     ?person2 foaf:homepage ?homepage2 . "          +
    "   } "                                              +
    " } ";

    System.out.println("Execute query " + szQuery);

    Query query = QueryFactory.create(szQuery);
    QueryExecution qexec = QueryExecutionFactory.create(query, ds);

    try {
          ResultSet results = qexec.execSelect();
          ResultSetFormatter.out(System.out, results, query);
    }

    finally {
          qexec.close();
    }

    ds.close();
    conn.dispose();
      }
    }

The following are the commands to compile and run this example, as well as the expected output of the java command.

    javac -classpath ./:./jena-core-2.7.4.jar:./jena-arq-2.9.4.jar: \
    ./sdordfnosqlclient.jar:./kvclient.jar:./xercesImpl-2.10.0.jar: \
    ./slf4j-api-1.6.4.jar:./slf4j-log4j12-1.6.4.jar:./log4j/1.2.16.jar: \
    ./jena-iri-0.9.4.jar:./xml-apis-1.4.01.jar Example5d.java

    javac -classpath ./:./jena-core-2.7.4.jar:./jena-arq-2.9.4.jar: \
    ./sdordfnosqlclient.jar:./kvclient.jar:./xercesImpl-2.10.0.jar: \
    ./slf4j-api-1.6.4.jar:./slf4j-log4j12-1.6.4.jar:./log4j/1.2.16.jar: \
    ./jena-iri-0.9.4.jar:./xml-apis-1.4.01.jar Example5d <store_name> \
     <host_name> <host_port>
    -----------------------------------------------
    | name1   | name2 | homepage2                 |
    ===============================================
    | "Alice" | "Bob" | <http://example.org/bob/> |
    -----------------------------------------------

Prev | Up | Next
Example5c.java: SPARQL query with TIMEOUT and GRACEFUL TIMEOUT | Home | Example5e.java: SPARQL query with INFERENCE/ASSERTED ONLY hints