Claude has described the Graph extension point. If you want to execute
SPARQL, you can use that "it just works" but if efficiency is important,
then you should look at OpExecutor as well, which is the SPARQL algebra
execution engine. You can extend the class and provide your own
implementations of OpBGP and OpFilter (and indeed anything else but they
are the main ones to look at first). TDB uses this route to plug into
Jena (as does SDB and all the other customer query engines I know about).
For example:
?s :property1 "some value" ;
:property2 ?v2 ;
:property3 ?v3 .
can be one Cassandra operation, depending on the stoage model in
Cassandra (BTW what is the storage model?)
The big question is what is the target usage? There is a big difference
between wanting an graph analytics system to one designed for retrieving
everything known about specific resources (e.g. the example above).
Andy
PS Cassandra has secondary indexes.
And you can always store thing multiple times for different access patterns.
On 04/08/14 20:16, Andrea Gazzarini wrote:
Hi Claude,
many thanks for the points...that was exactly what I was looking for
Many thanks again
Andrea
On 4 Aug 2014 18:12, "Claude Warren" <[email protected]> wrote:
Andrea,
I am not certain that Cassandra will work for a Jena graph store because of
the requirement for the primary key column. But...
The easiest mechanism for extension is to extend GraphBase. As the
documentation states:
GraphBase is an implementation of Graph that provides some convenient base
functionality for Graph implementations.
Subtypes of GraphBase must provide performAdd(Triple),
performDelete(Triple), graphBaseFind(TripleMatch,TripleAction), and
graphBaseSize(). GraphBase provides default implementations of the other
methods, including the other finds (on top of that one), a simple-minded
prepare, and contains. GraphBase also handles the event-listening and
registration interfaces.
When a GraphBase is closed, future operations on it may throw an exception.
Once that is working you can override other methods to provide better
performance.
Claude
On Fri, Aug 1, 2014 at 6:57 PM, Andrea Gazzarini <[email protected]>
wrote:
Hi devs,
for a project where I'm working on, I'd need to use Jena over a nosql
storage for storing and queryjng rdf, specifically using Cassandra. So
after googling a bit I wasn't able to find something that fits my needs.
On top of that, i'd have the following questions:
- do you know if there's something ready to use?
- in case the answer to the previous question is negative, I'm actively
participating in the development of CumulusRDF [1], an RDF store that
uses
Cassandra...but unfortunately is not using Jena :( so, here's the
question...do you think a jena-cassandra could be a useful contribution?
I
could reuse something did for that project (appropriately translated
into
jena domain). In case, could you please give me some advice (e.g.
extension
points on the jena api) to start?
Best,
Andrea
[1] https://code.google.com/p/cumulusrdf
--
I like: Like Like - The likeliest place on the web
<http://like-like.xenei.com>
LinkedIn: http://www.linkedin.com/in/claudewarren