Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Choosing a (graph) database #5

Open
jmatsushita opened this issue Aug 20, 2014 · 3 comments
Open

Choosing a (graph) database #5

jmatsushita opened this issue Aug 20, 2014 · 3 comments
Labels

Comments

@jmatsushita
Copy link
Member

From #3.

@pudo

Finally, the databases: as a general thing, I would like to keep this reasonably simple to deploy on a reasonably-sized machine. Titan hits me very badly on this front.

I've worked with Virtuoso in the past, and sworn myself that I will never again touch it with a stick. It's a mad piece of software; needs to die. Not a rational argument here, so much as an irrational fear :)

That leaves Orient and Cayley: Cayley is really awesome from what I've seen, including native quad support. But it's just very, very new and it looks like some fairly basic bits are missing (e.g. I think it may only do bulk import at launch at this time?). Orient looks really cool, going to explore that more today. Haven't seen any mentions of quads yet, though.

From @ahdinosaur

i'm working on something similar to uf6 (open-app, openappjs), and for the data subsystem i was thinking of building on top of leveldb and levelgraph, as the level and levelgraph ecosystems allow you to "build your own database" using modules.

a) you can add additional properties to triples like so. they can be accessed during query filters, but the additional properties are not by default indexed like the triples are. there's also an issue up about proper named graphs: levelgraph/levelgraph#43.
b) it's built in JS and either leveldb on the server or IndexedDB in the browser. i don't know of any REST APIs for it, but it wouldn't be hard to do.

in general, the "build your own database" approach has less "batteries included", so it's really dependent on what you want, just figured i might as well share.

@jmatsushita
Copy link
Member Author

Re. Titan, yes I thought so too but it looks like titan-node makes this really simple, except for inolen/titan-node#10. I wouldn't dismiss it quite yet.

Re. Virtuoso. I can relate to that experience :) I think in this category, Dydra is also worth considering (@lisp dydra in dual-license maybe? open source dydra for open source projects? too early?)

Re. Cayley, I'm giving it a test drive. Re. bulk import at launch only: Really? Looks like there's an upload nquad screen on the web interface and a write function into the JS client api. Looking into it more, there's a nquad write REST API, also wrapped in the cailey.js client. Feeling like writing a Python Client API?

Re. Orient. I gave it a shot and the install and run was smooth but then creating a database seems non-trivial and the doc isn't great. Also I actually can't see anywhere that it supports quads...

Re. Levelgraph, makes me think a bit about the funny birth and death of javascript talk. I don't think it would scale right now. But I like the idea of a CouchDB like approach to replication where client apps would replicate part of the graph they need so they can work on it more rapidly and offline too. Wonder if LevelDB has Couch like replication at all?

More of a process thought. How about we do a criteria grid?

Store Open Source Triples Quads Distributed Install Performance Irrational fear MQL Mature Ecosystem Stacks
Virtuoso Yes Yes Yes No Not great Very good Yes No? Yes? Yes ?
Neo4j Yes No No No Ok Good A little No Kinda Yes Fair amounts including Structr
Cayley Yes Yes Yes No Easy ? No Some No Some momentum Bindings
Titan Yes Yes Yes Yes In progress Porbably high No No but Gremlin No? Tinkerpop Tinkerpop
OrientDB Yes Yes ? Yes Easy... Sort of.. Good on paper No No Sort of? Yes Lots
Dydra No Yes Yes No Easy High Of closed source No Seems like it Is there? Ruby
Jena Yes Yes Yes No Easy High No No Yes Yes SPARQL/HTTP

@elf-pavlik
Copy link

I see Dydra, here :) Maybe worth meeting up with @bendiken who also lives in Berlin?!
I also really like LevelGraph and have contributed a bit to its 2 RDF extensions, it can also run directly in a web browser which non of other databases listed here can do. Which in this case doesn't sound like needed feature...

@pudo
Copy link

pudo commented Aug 21, 2014

I had a good long play with Jena/Fuseki last night, Apache's triple store. It's nothing special, but it strikes me as a more sane alternative to Virtuoso. It has nice support for quads and a builit-in Lucene full-text search index (and the ability to hook it up to Solr if needed). Adding to the matrix.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants