Library Version 12.1.3.0

Example7.java: SPARQL Describe query
Prev | Chapter 8. Quick Start for the RDF Graph Feature | Next

## Example7.java: SPARQL Describe query

This example shows a SPARQL DESCRIBE query. It inserts triples that assert the following:

- John is a parent of Mary.

- John is a parent of Jack.

- Amy is a parent of Jack.

It then finds all relationships that involve any parents of Jack.

    import com.hp.hpl.jena.graph.*;
    import com.hp.hpl.jena.query.*;
    import com.hp.hpl.jena.rdf.model.Model;
    import oracle.rdf.kv.client.jena.*;

    public class Example7
    {

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

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

    // Create Oracle NoSQL connection
    OracleNoSqlConnection conn
              = OracleNoSqlConnection.createInstance(szStoreName,
                                                     szHostName,
                                                     szHostPort);

    // Create model from named graph
    OracleModelNoSql model =
                    OracleModelNoSql.createOracleModelNoSql(szModelName,
                                                            conn);

    // Clear model
    model.removeAll();

    // Get graph from model
    OracleGraphNoSql graph = model.getGraph();

    // Add triples

    graph.add(Triple.create(Node.createURI("u:John"),
                            Node.createURI("u:parentOf"),
                            Node.createURI("u:Mary")));

    graph.add(Triple.create(Node.createURI("u:John"),
                            Node.createURI("u:parentOf"),
                            Node.createURI("u:Jack")));

    graph.add(Triple.create(Node.createURI("u:Amy"),
                            Node.createURI("u:parentOf"),
                            Node.createURI("u:Jack")));

    String szQuery =
                "DESCRIBE ?x WHERE {?x <u:parentOf> <u:Jack>}";

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

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

    Model describeModel = qexec.execDescribe();

    System.out.println("Describe result = " + describeModel.toString());

    qexec.close();
    describeModel.close();

    model.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 Example7.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 Example7 <store_name> \
    <host_name> <host_port> <graph_name>

    Execute describe query DESCRIBE ?x WHERE {?x <u:parentOf> <u:Jack>}
    Describe result = <ModelCom   {u:Amy @u:parentOf u:Jack; u:John
    @u:parentOf u:Mary; u:John @u:parentOf u:Jack} | >

Prev | Up | Next
Example6.java: SPARQL ASK query | Home | Example8.java: SPARQL Construct query