[Mulgara-general] Jena-Mulgara connector
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.
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,
Registered Office: Cain Road, Bracknell, Berks RG12 1HN
Registered No: 690597 England
More information about the Mulgara-general