Tengo una pregunta general sobre el modelado en una base de datos de gráficos que parece que no puedo entender.Cómo modelar relaciones del mundo real en una base de datos de gráficos (como Neo4j)?
¿Cómo moderas este tipo de relación: "Newton inventó el cálculo"?
En un simple graph, se podría modelar así:
Newton (node) -> invented (relationship) -> Calculus (node)
... por lo que tendría un montón de "inventado" relaciones de gráficos como se ha añadido más personas e invenciones.
El problema es, que inicie la necesidad de añadir un montón de propiedades de la relación:
- invention_date
- influential_concepts
- influential_people
- books_inventor_wrote
... y querrá comenzar a crear relaciones entre esas propiedades y otros nodos, como por ejemplo:
- influential_people: Relación con la persona linfáticos
- books_inventor_wrote: relación de reserva nodos
Así que ahora parece que las "relaciones del mundo real" ("inventado") en realidad debería ser un nodo la gráfica, y el gráfico debe tener este aspecto:
Newton (node) -> (relationship) -> Invention of Calculus (node) -> (relationship) -> Calculus (node)
y para complicar las cosas más, otras personas también están participaron en la invención del cálculo, por lo el gráfico ahora se convierte en algo así como:
Newton (node) ->
(relationship) ->
Newton's Calculus Invention (node) ->
(relationship) ->
Invention of Calculus (node) ->
(relationship) ->
Calculus (node)
Leibniz (node) ->
(relationship) ->
Leibniz's Calculus Invention (node) ->
(relationship) ->
Invention of Calculus (node) ->
(relationship) ->
Calculus (node)
Así hago la pregunta porque parece que que no desea establecer las propiedades de la base de datos gráfica real "relación" objetos, porque es posible que desee en algún apúntelos como nodos en el gráfico.
¿Es esto correcto?
He estado estudiando el Freebase Metaweb Architecture, y parecen tratar todo como un nodo. Por ejemplo, Freebase tiene la idea de Mediator/CVT, donde puede crear un nodo "Rendimiento" que vincule un nodo "Actor" con un nodo "Película", como aquí: http://www.freebase.com/edit/topic/en/the_last_samurai. Sin embargo, no estoy muy seguro de si este es el mismo problema.
¿Cuáles son algunos principios rectores que utiliza para determinar si la "relación del mundo real" debería ser realmente un nodo de gráfico en lugar de una relación gráfica?
Si hay buenos libros sobre este tema, me gustaría saber. ¡Gracias!
excelente respuesta! esto realmente aclara las cosas para mí, gracias. –