Plans for other backends?

17 views
Skip to first unread message

Leif Warner

unread,
Mar 2, 2011, 10:37:15 PM3/2/11
to scardf
Besides the pure Scardf, this can also serve as a wrapper for the Jena
API. You mentioned previously that it could serve as a wrapper for
other backend APIs.
I'm currently developing against in-process stores (native Scardf,
Jena memory model, Jena TDB), and not particularly interested at this
time in trying it out against say, the Sesame API, but what about a
remote SPARQL API? Then apps written against the Scardf API could
also use remote data endpoints, such as a 4store instance. The API
call triplesMatching translates directly to SPARQL, and hopefully the
remote endpoint would support e.g. SPARQL Update for modification.

RDF2Go purports to be an abstracted API over the different RDF
framework backends, and also Paul Gearon (of Mulgara), had mentioned
wishing for a standard API for the different backends, perhaps along
the lines of the Java DOM API?
-Leif Warner

Hrvoje Simic

unread,
Mar 3, 2011, 5:21:56 AM3/3/11
to sca...@googlegroups.com
On Thu, Mar 3, 2011 at 04:37, Leif Warner <abim...@gmail.com> wrote:
> ... what about a

> remote SPARQL API?  Then apps written against the Scardf API could
> also use remote data endpoints, such as a 4store instance.  The API
> call triplesMatching translates directly to SPARQL, and hopefully the
> remote endpoint would support e.g. SPARQL Update for modification.

Not a bad idea. I just made a trait QueryEngineBackedGraph. You can
extend this trait, implement the "select" and the new "ask" method of
the QueryEngine trait, and reading methods in Graph trait work.

Specifically, contains() delegates to ask(), triplesLike() delegates
to select(), and triples() delegates to triplesLike(). triplesLike
template matching should work as specified in Node.matches(), except
for custom Node=>Boolean functions - this will probably be fixed with
time. Method triplesMatching is not a way to go, it will request all
triples and filter it on the client side.

I just need to test it some more and then I'll commit. Then all you
need to do is implement the select() and ask() against some remoting
service. I've given no thought to the updating methods for now.

Please tell me if you think this is a good strategy.

Hrvoje

Hrvoje Simic

unread,
Mar 4, 2011, 9:32:01 AM3/4/11
to sca...@googlegroups.com
Changes are in trunk:

http://code.google.com/p/scardf/source/detail?r=219

Any feedback is welcome.

Hrvoje

On Thu, Mar 3, 2011 at 11:21, Hrvoje Simic <hrvoj...@gmail.com> wrote:
> ...

Reply all
Reply to author
Forward
0 new messages