English 中文(简体)
Difference between graph database: Neo4j & AllegroGraph
原标题:

What is the difference between these two graph databases: Neo4j and AllegroGraph? Which is better for Java Web programming?

问题回答

If you have no reason to choose RDF + SPARQL (which both products support), Neo4j provides a clean Java API for manipulating a property graph (nodes + relationships + properties on both). For web applications, I wrote up an example using Spring Framework, which also exists in a simplified version as a workshop.

Disclaimer: Obviously I m on the Neo4j team, and I don t have any in-depth knowledge regarding AllegroGraph.

I chose AllegroGraph over Neo4j because of its support for SPARQL queries. It seemed to me that the Neo4j approach of traversing a graph is less tidy, especially for more complex retrieval operations.

...and no, I have no affiliation with either organisation.

One other consideration is the licenses. AllegroGraph s free edition can be used as long as you have fewer than 50 million triples. See http://www.franz.com/agraph/allegrograph/ag_commercial_edition.lhtml

Neo4j is free as long as your project uses the community edition; only if you modify the Neo4j source you must open-source the modifications. The basic license terms can be found on their home page: http://neo4j.org/

AllegroGraph has a java client library which supports 2 standard java semantic API s: Jena and Sesame. The client source is EPL on github. AG supports sparql, transactions, reasoning, geospatial, temporal, and graph analysis. There are no extra features specifically for web apps, but it would fit into any framework as a library.

(I work for Franz.)

In addition to SPARQL, AllegoGraph allows you to write Prolog rules and queries. For complex query logic, it s much more expressive than SPARQL.

There are some examples in the Java client tutorial: http://www.franz.com/agraph/support/documentation/v4/java-tutorial/java-tutorial-40.html





相关问题
OWL reasoning in Prolog query from AllegroGraph Python API

I noticed that in the AllegroGraph Python API tutorial here, whenever they want to use OWL reasoning they use the conn.getStatements method instead of issuing a Prolog or SPARQL query. Is it possible ...

RDF reading/parsing errors

I have some RDF files which I want to import into a tripplestore(AllegroGraph), but at the first file I get a SAX parser error, stating there is an unrecognized character. After removing the line in ...

Allegrograph - Functors like RDF objects properties?

Using Allegrograph, Prolog functors are pretty awesome, but there is one downside. Let s say you define a functor that links two entities, for example parentOf which equals to "!n:motherOf OR !n:...

Managing transactions with AllegroGraph s Jena API

I m uncertain as to the behaviour of the AllegroGraph triple store in regard to transactions. The tutorial talks about using two connections, but does not mention Jena models. If I use Model s begin()...

Is it possible to query AllegroGraph using roqet?

I am trying to query AllegroGraph 4.0 using roqet to extract data in CSV. Is it possible? In roqet man page it is not clear if it can query a triple store besides rdf files. About AG HTTP protocol: ...

热门标签