Apache Jena is another good choice for a graph database. It has the choice 
of an in-memory database, memory-mapped file database (optionally with ACID 
transactions), or mapped to a relational database. It can also run as a 
separate database server. There is a procedural java API and the standard 
SPARQL graph query / update language.

http://jena.apache.org/


On Sunday, May 26, 2013 8:33:22 AM UTC-7, James Thornton wrote:
>
> Hi Cedric -
>
> Look at Datomic free edition or the Titan graph database using 
> either Berkeley DB as its backend datastore or Cassandra in single-server 
> mode -- you can run both locally. 
>
> Datomic: http://www.datomic.com/
> Docs: http://docs.datomic.com/
> Clojure Client: http://docs.datomic.com/clojure/index.html
> Videos: http://www.datomic.com/videos.html
> Blog: http://blog.datomic.com/
> Query Language: http://docs.datomic.com/query.html (Datalog)
>
> Titan: http://thinkaurelius.github.io/titan/
> Repo: https://github.com/thinkaurelius/titan
> Clojure Client: https://github.com/clojurewerkz/archimedes
> Blog: http://thinkaurelius.com/blog/
> Query Language: https://github.com/tinkerpop/gremlin/wiki (Gremlin)
>
> See the Resources section of the TinkerPop Book website for a collection 
> of Titan videos and tutorials: http://www.tinkerpopbook.com/#resources
>
>
> - James
>
>
> On Sunday, May 26, 2013 10:09:51 AM UTC-5, Cedric Greevey wrote:
>>
>> I may be developing an application which will need a persistent, ACID 
>> local database (on the same disk as the application, rather than having to 
>> be accessed over the network) containing information about potentially 
>> 100,000-1,000,000 (or more) objects.
>>
>> Much of that information will be of a quasi-boolean character: "is it an 
>> X or not?" for various choices of X, but with "yes", "no", "borderline", 
>> and "not yet evaluated" as the four possible values. It will be desirable 
>> to query for these, for example to get a lazy seq of all objects for which 
>> it's a borderline Y or for which it's not yet evaluated whether it's a Z or 
>> for which it's either "yes" or "borderline" on whether it's an X or 
>> whatever.
>>
>> I'm not that familiar with the local-DB solutions out there. I'd like a 
>> recommendation for one which is a) a good for for Clojure use and b) a good 
>> fit for the type of data and queries noted above. The DB must be able to 
>> grow larger then available RAM without crashing the JVM and the seqs 
>> resulting from queries like the above will also need to be able to get 
>> bigger than RAM.
>>
>> My own research suggests that H2 may be a good choice, but it's a 
>> standard SQL/relational DB and I'm not 100% sure that fits well with the 
>> type of data and querying noted above. Note though that not all querying 
>> will take that form; there'll also be strings, uuids, dates, and other such 
>> field types and the need to query on these and to join on some of them; 
>> also, to do less-than comparisons on dates.
>>
>> Also, what is the current best recommendation of clojure library for 
>> interfacing to the DB? (Answer might depend on the sort of DB recommended 
>> -- standard, object/NoSQL, graph/ontology, etc.)
>>
>>

-- 
-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to