Alfresco attempts to map its core concepts into graph databases, while integrating Neo4j!


In the core of this integration is our Integration module that handles data transfer from Alfresco to graph database Neo4j. In initial phase, when graph database is empty, “initial import” kicks in. Initial import reads data/nodes from Alfresco directly using NodeDAO. Data is transferred to Neo4j connector that currently uses REST interface to post data to Neo4j. On the Neo side we have an extension that receives data and creates nodes. This initial phase is triggered in bootstrap. Initial import is done in such a way that, once triggered, it can be executed in background. This assures that system can be used during initial import which can be very handy when importing high data volumes. Once the initial import is done, all changes to Alfresco data are picked up by our extension built on top of Alfresco behavior mechanism. This mechanism allows us to keep data in sync between Alfresco and Neo after the initial import.

User interface is our custom-made visualization tool based on D3 JavaScript library. Although we spent only around two months in development we come up with some nice features like support for various layouts (forced, hierarchical and radial), interactive node expanding and collapsing, support for visualization of multiple graph analysis algorithms (degree in and out, closeness, betweenness) and some others like hiding and filtering nodes, multiple node selection, criteria based node expansion, partial expansion of node groups, node properties browsing and so on. There is a possibility to execute predefined queries that filter nodes and automatically apply certain layout. You can see visualization tool in action in this short movie.

See Videos and Read the Full Article Here.