python orm neo4j graph-databases bulbs

neo4j driver python



ORM con bases de datos gráficas como Neo4j en Python (3)

Enchufe desvergonzado ... también hay mi propio ORM que también puede querer pagar: https://github.com/robinedwards/neomodel

Está construido sobre py2neo, usando llamadas a la API de cifrado y descanso bajo cofre, es decir, no depende de gremlin.

Me pregunto si hay una solución (o una necesidad de) un ORM con Graph-Database (fe Neo4j). Estoy rastreando las relaciones (A está relacionada con B, que está relacionada con A a través de C, etc., por lo tanto, construyo un gráfico grande) de entidades (que incluyen atributos adicionales para esas entidades) y necesito almacenarlas en un DB, y creo que una La base de datos del gráfico encajaría perfectamente en esta tarea.

Ahora, con bases de datos similares a sql, uso sqlalchemyś ORM para almacenar mis objetos, especialmente porque puedo recuperar objetos de la base de datos y trabajar con ellos en un estilo pythonic (use sus métodos, etc.).

¿Existe alguna solución de mapeo de objetos para Neo4j u otro Graph-DB, de modo que pueda almacenar y recuperar objetos de Python en y desde el Graph-DB y trabajar con ellos fácilmente?

¿O escribiría algunas funciones o adaptadores como en la documentación de sqlite de Python (http://docs.python.org/library/sqlite3.html#letting-your-object-adapt-itself) para recuperar y almacenar objetos?


Hay un par de opciones en Python ahora mismo, basadas en las interfaces REST de las bases de datos.

Como mencioné en el enlace que proporcionó @Peter, estamos trabajando en neo4django, que actualiza la integración de Neo4j / Django. Es una buena opción si necesita consultas complejas y desea un ORM que también administre la indexación de nodos, o si ya está utilizando Django. Funciona de manera muy similar al ORM de Django nativo. Encuéntralo en PyPi o GitHub .

También hay una solución más general llamada Bulbflow que se supone que funciona con cualquier base de datos de gráficos compatible con Blueprints. No lo he usado, pero por lo que he visto se centra en el modelado de dominios: Bulbflow ya tiene modelos de relación de trabajo, por ejemplo, en los que seguimos trabajando, pero no es muy compatible con las consultas complejas (como lo hacemos). con Django querysets + uso del índice). También te permite trabajar un poco más cerca del gráfico.


Tal vez podrías echar un vistazo a Bulbflow , que te permite crear modelos en Django, Flask o Pyramid. Sin embargo, funciona con un cliente REST en lugar del python-binding proporcionado por Neo4j, por lo que quizás no sea tan rápido como el enlace nativo.