

Neo4j 1.7 Released - mhluongo
http://blog.neo4j.org/2012/04/neo4j-17-ga-bastutrask-bank-released.html

======
nchuhoai
I'd love to use Neo4j for future projects but I was wondering: How mature is
it? There are not that many articles out there and I wonder how you go about
durability and scalability with Neo4j. I really hope it will take off like
other NoSQL solution like Couch, Redis and Mongo

~~~
espeed
There is a growing list of language bindings
(<http://docs.neo4j.org/chunked/stable/tutorials-rest.html>), and the Neo4j
Heroku Add On (<https://addons.heroku.com/neo4j>) is now live and currently
free.

\- James, author of Bulbs (<http://bulbflow.com>), one of the Python bindings

~~~
nchuhoai
I'm not doubting the popularity of the bindings, more the ability to scale it.
The most popular argument against NoSQL solutions is the limited amount of
info and expertise available to build a strong and scalable system with them.
Even now with extremely popular solutions like Mongo, people are still not too
sure whether the apparent performance boosts are worth the issues in the long
run

I am aware of the Heroku addon, but what happens if you need more than that?

~~~
akollegger
The current cluster is a master-slave replication configuration, for read
scaling.

For write scaling, you would have to stay tuned. There's a team sequestered in
England feverishly working on a sharding solution to spread write load and
data set size across multiple machines without compromising query performance.

Heroku is just the first cloud service to offer Neo4j. We've been chatting
with other PaaS providers, and some are moving forward with their own plans. A
few enterprise customers simply orchestrate their own clusters (up to global,
multi-continent spanning deployments) using EC2.

You're right that all of the NOSQL solutions don't have as many experts and
professional services as the relational db options. Seems like a great
opportunity. ;)

~~~
nchuhoai
Thanks for the state of Neo4j. I really love Neo4j, but I am just afraid I'm
hurting myself in the long-run, because I definitely don't like sys-ops, so I
feel like I need to revert to more conservative solutions.

------
emehrkay
Nice. I am still using community 1.3 because 1.4 had some REST-based error. I
didnt even know there had been more releases. I will definitely try this
revision this weekend. Neo4j is a great tool.

~~~
mhluongo
REST has improved a _ton_ since 1.3- definitely check it out. Which binding
are you using?

~~~
emehrkay
Python, neo4j-rest-client. That is GREAT to hear

------
PaulHoule
Neo4J is an interesting project. It's not as strong in the SPARQL department,
but for convenient graph traversal it's neat.

~~~
possibilistic
Completely earnest question, and I hope you have the time to answer --

How do you effectively use SemWeb tech? Obviously you can't build your whole
system with a triple store backend; that would be too slow. Especially if you
have a data explosion of millions and millions of facts.

I've thought of a neat little distributed p2p research project that exchanges
news items like HN/Reddit with your _interest graph_ as determined by the
nodes you share upvotes with (or weighed by some scheme you can tweak). Do you
simply use RDF/OWL ontologies like FOAF, SIOC, etc. as the data transport
format and then actually store information in relational databases internally?

I want to do this so people can curate their own interest graphs, essentially;
it's like prismatic, but software under your own control. Such a platform
would be extensible since you can add new ontologies to support new needs. The
Slashdot crowd, for instance, might moderate with tags such as 'insightful'
rather than simply 'upvoting'.

And can you use these graph databases like Prolog systems? And can we make
that intuitive for the end user?

Or as a more practical example, what about a molecule database? I'd need to
store representations, properties, etc. There's a potentially limitless amount
of factual information that I could store on one particular molecule. How do
you make your software flexible enough to "know" what data you have on any
given molecule and decide which "context" to portray it? (ie. if it's of
medicinal use, synthetic chemistry use, is simply a common reagent, etc.) Is
some of this just inherently kept in a relational database for fast querying
with the graph database backing an asynchronously updating view?

~~~
akollegger
For the applications you are describing, they could be modeled as well in a
"property graph" as in a triple-store. The thing about Neo4j is that it is a
raw graph data structure, with nodes, edges and properties on both. With a
query language like Cypher it is easy to then traverse the graph to find
information. And Neo4j isn't just a graph abstraction, it's purpose built
database down to the file system, designed for fast graph traversals.

The RDF/OWL approach has a nice advantage with a built-in notion of logical
relationships between things, while being a bit more verbose in storage.
Ontologies are a mixed blessing.

For the flexibility you mention, it's common with Neo4j to "organically grow"
your data by simply elaborating the structures and relationships. This allows,
for instance, multiple domains to be intermingled across a common base set of
data, differentiated by the relationships they establish to the common data.

Cheers, Andreas

------
jackfoxy
A .NET languages binding, please.

~~~
maxdemarzi
<http://hg.readify.net/neo4jclient/wiki/Home> and
<https://github.com/SepiaGroup/Neo4jRestNet> are both .NET Bindings for Neo4j

