4 ms·
Depends on what kind of data and graph you are going to store/use. Neo4j is quite popular, cypher isn't very hard to learn, and it has lots of examples. Might b
by kinow 11y ago
Depends on what kind of data and graph you are going to store/use. Neo4j is quite popular, cypher isn't very hard to learn, and it has lots of examples. Might be a good choice for a beginner.
https://en.wikipedia.org/wiki/Graph_database#List_of_graph_databases https://en.wikipedia.org/wiki/Graph_database#List_of_graph_d...
- valine 11y ago> cypher isn't very hard to learn Oh but I love a challenge. Are there reasons to choose cypher besides a gentle learning curve?
- kinow 11y agoNot really, if you learn Cypher you should be fine learning the basics of Gremlin, SPARQL, or other languages to operate on graphs in a few hours. There was some post about enabling SPARQL in Neo4J, but when you install Neo4J it comes with cypher by default (not sure if it supports anything else). I use Apache Jena + SPARQL, but had to use Neo4J to help in a master thesis. Took me a few hours of "How the heck can I do that same thing I'd do in SPARQL that way?", plus some reading of the tutorials. Edit: some old post with example of Cypher, Gremlin and SPARQL: http://kinoshita.eti.br/2014/09/09/cypher-gremlin-and-sparql-graph-dialects.html http://kinoshita.eti.br/2014/09/09/cypher-gremlin-and-sparql...
- kevinschumacher 11y agoYou can definitely run gremlin queries against Neo4j by a couple of methods. One example: https://github.com/thinkaurelius/neo4j-gremlin-plugin https://github.com/thinkaurelius/neo4j-gremlin-plugin Also can use the Tinkerpop3 or Blueprints APIs to access your graph with Gremlin.
- jexp 11y agoCypher expressses the graph patterns that you're looking for in an ASCII-art-syntax, so you don't loose sight of the core of your question. On top of that you get filtering, projection, aggregation, pagination. The most fun things are in-query dataflow which allows you to pass information from one query part to the next (projected, aggregated, ordered etc). And the really cool collection and map functions, so you save a lot of roundtrips between client and server. See: http://neo4j.com/developer/guide-sql-to-cypher/ http://neo4j.com/developer/guide-sql-to-cypher/
- LunaSea 11y agoBut if you want to scale to more than two instances you will have to pay a $50k license. $50.000,00 dollars. Which is far too expensive for startups.
- PaulRobinson 11y agoI didn't pay $50k. Make them an offer. Seriously.
- rspeer 11y agoLook, I only wrecked a semester of research by chasing the slippery promises of graph databases. Don't wreck your entire startup on them.
- grandalf 11y agoExplain
- rspeer 11y agoConceptNet [1] started out as an academic project that I was responsible for for a while. Since then I've left to start a company but I still maintain ConceptNet and build lots of stuff on it. [1] http://conceptnet5.media.mit.edu http://conceptnet5.media.mit.edu Here's a list of databases, some of them graph databases, some of them barely databases, where I've tried to store and look up edges of ConceptNet: - SQLite - PostgreSQL - MongoDB - Some awful IBM quad-store - HypergraphDB - Tinkerpop - Neo4J - Solr - Riak - SQLite with APSW to speed up importing - Just a hand-rolled hashtable on disk Here are the systems that have succeeded to any extent, in that I could do simple things with them and they didn't collapse: - PostgreSQL - SQLite with APSW to speed up importing - Just a hand-rolled hashtable on disk The time when I tried Tinkerpop, HypergraphDB, and Neo4J because I had a graph and graph databases are supposed to be good at graphs was particularly terrible. Graph databases seem to only be good at dealing with graphs so small that anything can deal with them. If this has changed, please point me at an open-source graph database that's not terrified of gigabytes. (No trying to sell me SaaS, please.)