[Mulgara-general] Jena-Mulgara connector

Seaborne, Andy andy.seaborne at hp.com
Wed Jan 2 20:19:59 UTC 2008

I've had a go at building a connector from Jena to Mulgara.  The 
objective is to get the Jena APIs running over Mulgara-stored data using 
the Session interface, so it works locally and remotely.  It is based on 
Jena's GraphBase compoent so it only needs to implement add/delete/find 
  for the rest of the system to work.

This is not optimized.  Updates should be batched (todo).  While SPARQL 
using ARQ works (client-side execution of the algebra) I do not intend 
to optimize it.  SPARQL is better done server-side when the native 
Mulgara implementation is ready.

Draft documentation:

I didn't find a way to completely transparently handle blank nodes that 
originate from a Jena client.  I would appreciate some guidance in 
correct use of Mulgara for blank nodes - I can't see a way to create 
them from the client and then know what blank node has been created for 
use in further add/delete operations.  A query to find them again may 
not be able to uniquely identify the node just created.

At the moment, I have to skolemize Jena-created blank nodes and handle 
Mulgara-created blank nodes via their label.  This is handled 
transparently by the connector - so it all works out for Jena (and even 
SPARQL isBlank()) but the skolemized nodes would be visible via iTQL. 
What am I missing?

One issue I encountered: Session.modelExists() for 
RemoteSessionWrapperSession throws an exception if the model has never 
existed but returns false if the model used to exist but has been dropped.

Thanks to Paul for pointing me in the right direction and tolerating 
some newbie questions,


   Hewlett-Packard Limited
   Registered Office: Cain Road, Bracknell, Berks RG12 1HN
   Registered No: 690597 England

More information about the Mulgara-general mailing list