Hacker News new | past | comments | ask | show | jobs | submit login
Neo4j Graph Database 1.0 released (neo4j.org)
43 points by nawroth on Feb 23, 2010 | hide | past | favorite | 14 comments



Neo4J is a great tool - I have used it with the Ruby wrappers.

A little off topic but: I think that the AGPL (which is used for Neo4J) is a good license but I wish that dual licensed projects would be a bit more up front on what the cost of the commercial waiver is for various use scenarios. For me the issue is that I would like to know up front how much 'commercial' use would cost if I would happen to have a customer who could not live with AGPL license terms.


From the AGPL:

"Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License."

So, if you write a wrapper licensed as gplv3 (say, a set of Clojure bindings), distribute the source for that and for neo4j, and load the wrapper (a gplv3 licensed work) into your program, the network interaction cluse of the agpl should not trigger, no?

Disclaimer: IANAL


Your interpretation sounds valid but I'm highly sceptical since it appears to be a loophole that undoes the entire purpose of the AGPL. You have to be careful about being right in technical terms but wrong in substance - as in the classic exchange on GPL from Stallman:

http://clisp.cvs.sourceforge.net/*checkout*/clisp/clisp/doc/...

The kicker being (Stallman's words):

"What the lawyer said surprised me; he said that judges would consider such schemes to be "subterfuges" and would be very harsh toward them. He said a judge would ask whether it is "really" one program, rather than how it is labeled"


I thought the purpose of the agpl was to stop free riders from making modified versions of free software without contributing their changes back. In that case, its purpose is not defeated since you'd be required to publish any changes you made to neo4j.


Can you use neo4j to store weighted graphs? Looking at their api it doesn't seem like there's any way to specify edge weights (or any other metadata about edges).


You can set properties (including weights, though not sure if you can define said weights in a tightly integrated manner - they're just an additional property) on nodes and edges ("relationships"). It's right there in the getting started guide's "Create a small graph" section:

http://wiki.neo4j.org/content/Getting_Started_Guide#Create_a...

Weights are treated like any other metadata.


There's a component that has some weighted shortest-path algorithms: http://wiki.neo4j.org/content/Graph-algo

Please let me know if you find anything that can handle negative edge weights well while efficiently tracking shortest paths. I've found some papers with efficient implementations for frequently updated edge weights, but haven't found anything implemented or accessible.


My bad: Neo4J did have their prices listed.


Could you post the link? Also curious if they list "powered by" - who uses Neo in real world applications...?



I found this presentation from Emil (Jan 19, 2010) much more informative than the podcast linked to from the release:

http://nosql.mypopescu.com/post/342947902/presentation-graph...

Edit:

What's really intriguing is what they're going to roll out with v2.0 - instead of basic, customer-written sharding algos, they're going to supply automatic sharding based on graph clustering algos.


what are the main differences in the open source version and the commercial version other than not being able to distribute, and the customer support they offer.. do they place limitations on nodes between the two versions ?


There's no difference in limitations on nodes between the community version and the commercial version.


Just want to say congrats to Emil and his team :)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: