Hi Andy, wow...a lot of interesting points...many many thanks! On 5 Aug 2014 12:16, "Andy Seaborne" <[email protected]> wrote: > > > 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?)
I would like to start with the same datamodel used here [1]. In addition, this paper [2] briefly describes both the horizontal and vertical layout approach. > 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). I know, and unfortunately I don't have a response with the same "granularity" of your question :) In another project [3] I used an RDF store backed by a NoSql (Cassandra) because I immediately (and easily) had linear scalabilty with writes and a reasonable throughput with reads. On top of that, both RDF and NoSql worlds attract me a lot so let's say this could be a nice way to combine amusement with work :) > > Andy > > PS Cassandra has secondary indexes. > And you can always store thing multiple times for different access pattern Ok, many thanks again Andrea [1] https://code.google.com/p/cumulusrdf/wiki/DataModel [2] http://people.aifb.kit.edu/gla/cumulusrdf/cumulusrdf-ssws2011.pdf [3] http://planetcassandra.org/blog/post/cult-turns-the-page-to-apache-cassandra-translating-over-700-libraries-into-the-digital-age > > > > 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 >>> >> >
