4 ms·
Neo4j 1.7 Released
- emehrkay 15y agoNice. 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.
- PaulHoule 15y agoNeo4J is an interesting project. It's not as strong in the SPARQL department, but for convenient graph traversal it's neat.
- possibilistic 15y agoCompletely 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?
- bkirkbri 15y agoHave you looked into http://datomic.com http://datomic.com yet? It seems to address a lot of the concerns you have (triple-store-like, high performance, Prolog-like queries).
- akollegger 15y agoFor 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
- th0ma5 15y agoI have another viewpoint, and that might be that perhaps the millions of facts don't originate on this machine, and hence, the places where the facts originate could have a SPARQL query node... any other query node could then aggregate the results, and you would then in effect have a distributed cluster.
- mhluongo 15y agoI know it's not SPARQL, but the direction Cypher is taking is very promising.
- jexp 15y agoAlso for SPARQL/Sail look for the Sail Ouplementation by tinkerpop which runs on top of Neo4j. (https://github.com/tinkerpop/blueprints/wiki/Sail-Ouplementation https://github.com/tinkerpop/blueprints/wiki/Sail-Ouplementa...)
- nchuhoai 15y agoI'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
- akollegger 15y agoIt's another one of those hidden gems from Sweden that is now growing in popularity in the States. The project has been around and in production for about 10 years, and is experiencing humbling growth these past few years with customers like Cisco, Deutsche Telekom, and Adobe. The commercial sponsor of the project, Neo Technology, just became a US-based corporation as part of a first-round of funding last fall. ACID transactions, HA-scaling, huge id space for data -- check out neo4j.org for the details. -Andreas (part of the Neo4j community team)
- espeed 15y agoThere is a growing list of language bindings (http://docs.neo4j.org/chunked/stable/tutorials-rest.html http://docs.neo4j.org/chunked/stable/tutorials-rest.html), and the Neo4j Heroku Add On (https://addons.heroku.com/neo4j https://addons.heroku.com/neo4j) is now live and currently free. - James, author of Bulbs (http://bulbflow.com http://bulbflow.com), one of the Python bindings
- nchuhoai 15y agoI'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 15y agoThe 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. ;)
- jackfoxy 15y agoA .NET languages binding, please.
- akollegger 15y agoTry this: http://nuget.org/packages/Neo4jClient http://nuget.org/packages/Neo4jClient
- maxdemarzi 15y agohttp://hg.readify.net/neo4jclient/wiki/Home http://hg.readify.net/neo4jclient/wiki/Home and https://github.com/SepiaGroup/Neo4jRestNet https://github.com/SepiaGroup/Neo4jRestNet are both .NET Bindings for Neo4j