Previous Topic

Next Topic

Examples

The following examples illustrate using a JRDF Graph.

In This Section

JRDF Graph (Memory)

Kowari Backed JRDF Graph (Client)

Display iTQL Results as an JRDF Graph

See Also

Java RDF (JRDF)

JRDF APIs

JRDF Graphs

Querying a JRDF Graph

TKS Client Support

JRDF Memory Implementation

Containers and Collections

Built-in Visitor Pattern

JRDF Graph (Memory)

This example demonstrates how to:

  • Create a JRDF graph and add triples
  • Query the JRDF graph
  • Remove triples from the JRDF graph
Create a JRDF Graph and add Triples

The following code creates a memory JRDF graph and inserts triples (the graph does not store the triples in any specific order):

//create Graph
Graph graph = new GraphImpl();
GraphElementFactory elementFactory = graph.getElementFactory();

//create Elements
BlankNode subject = elementFactory.createResource();
URIReference subject2 = elementFactory.createResource(new URI("http://example.org#subject"));
URIReference predicate = elementFactory.createResource(new URI("http://example.org#predicate"));
URIReference predicate2 = elementFactory.createResource(new URI("http://example.org#predicate2"));
Literal object = elementFactory.createLiteral("object");

Triple triple = elementFactory.createTriple(subject, predicate, object);
Triple triple2 = elementFactory.createTriple(subject2, predicate, object);
Triple triple3 = elementFactory.createTriple(subject2, predicate, subject);
Triple triple4 = elementFactory.createTriple(predicate, predicate2, subject);

//insert Triples
graph.add(triple);
graph.add(triple2);
graph.add(triple3);
graph.add(triple4);

The graph now contains the following triples (N3):

_blankNode123 <http://example.org#predicate> 'object'
<http://example.org#subject> <http://example.org#predicate> 'object'
<http://example.org#subject> <http://example.org#predicate> _blankNode123
<http://example.org#predicate> <http://example.org#predicate2> _blankNode123

Note - _blankNode123 represents subject which is a BlankNode.

Query the JRDF Graph

The following code queries the JRDF graph to find all triples where subject2 is the SubjectNode. The results are a subgraph of the original JRDF graph.

//query the graph
Triple queryTriple = elementFactory.createTriple(subject2, null, null);
ClosableIterator queryResult = graph.find(queryTriple);

The contents of queryResult are:

<http://example.org#subject> <http://example.org#predicate> 'object'
<http://example.org#subject> <http://example.org#predicate> _blankNode123

Remove a Triple from the JRDF Graph

The following code removes a Triple from the JRDF Graph.

//remove Triple
graph.remove(triple4);

The JRDF graph now contains:

_blankNode123 <http://example.org#predicate> 'object'
<http://example.org#subject> <http://example.org#predicate> 'object'
<http://example.org#subject> <http://example.org#predicate> _blankNode123

Kowari Backed JRDF Graph (Client)

This example demonstrates how to:

  • Create a Kowari session
  • Create a Kowari backed JRDF graph
Create a Kowari Session

The following code creates a Kowari session object:

//location of the Kowari Server
URI serverURI = new URI("rmi://mysite.com/server1");

//connect to the Kowari Server
//true indicates a remote Server, if the Server is not remote use false
SessionFactory sessionFactory = SessionFactoryFinder.newSessionFactory(serverURI, true);
Session session = sessionFactory.newSession();

Note - The Kowari server must be running. rmi://mysite.com/server1 is an example only. Replace this with the URI for your Kowari server.

Create a Kowari Backed JRDF Graph

The following code creates a new JRDF graph:

//create a new Kowari Model
URI modelURI = new URI("rmi://mysite.com/server1#exampleGraph");
URI modelType = new URI("http://tucana.org/tucana#Model");
session.createModel(modelURI, modelType);

//create a JRDF Graph using the model
ItqlInterpreter interpreter = new ItqlInterpreter(new HashMap());
Graph = AbstractGraphFactory.createGraph(modelURI, session);

Note - You only have to create the model once. If using an existing model you do not have to create it.

Display iTQL Results as an JRDF Graph

This example demonstrates how to:

  • Execute an iTQL query
  • Create a read-only JRDF Graph using the results

Note - This example assumes you have already created a Kowari session.

Execute an iTQL Query

The following code returns all triples for a model:

//create the query
String queryText = "select $s $p $o from <rmi://mysite.com/server1#testModel> where $s $p $o ; ";
ItqlInterpreter interpreter = new ItqlInterpreter(new HashMap());
Query query = interpreter.parseQuery(queryText);

//execute the query
Answer queryResult = session.query(query);

Note - The model rmi://mysite.com/server1#testModel is an example only. Replace this with the URI for your model.

Create a JRDF Graph from the Results

The following code creates a new read-only JRDF graph from the results of the iTQL query in the previous example.

//create a JRDF Graph
Graph = AbstractGraphFactory.createGraph(queryResult);

Note - queryResult must contain three columns to be valid for use as a JRDF graph.

Latest News

Kowari 1.1.0 Pre-release 1 Released

Kowari 1.0.5 Released

Kowari 1.0.4.1 Released

Kowari 1.0.4 Released

DAWG Evaluates iTQL

Kowari article in XML.com

Kowari mentioned on XML.com

Kowari 1.0.3 Released

Kowari Lite Introduced

Kowari 1.0.2 Released

Kowari 1.0.1 Released

View all news items


Open Source logo Tucana Technologies Logo SourceForge.net Logo

© 2001-2004 Tucana Technologies, Inc. Some rights reserved.