Neo4j时间依赖图模型

时间:2014-06-06 18:54:01

标签: graph neo4j cypher

我需要帮助我的neo4j图形结构模型的时间依赖域。有关要求和问题,请参见以下草图:

Problem sktech

  • 图片1& 2:每天我都有节点和关系。我将关系定义为某些词汇单元(句子)中两个节点(例如单词)之间的共现。具有新节点或已存在一次的同一节点可在几天内发生。 请参阅以下示例,其中我们仅考虑节点的命名实体:

    • 2013/01/01:彼得今晚想知道卡桑德拉。
    • 2013/01/01:Cassandra希望留在家里与Peter。
    • ....
    • 2013/01/08:彼得爱上了朱迪思。
    • 2013/01/08:Cassandra每天都带着彼得上学。

    这将产生下面的图形结构。

     - 2013/01/01:
    
        (Peter) <--2--> (Cassandra)
    
     - 2013/01/08
    
        (Peter) <--1--> (Judith)
    
        (Peter) <--1--> (Cassandra)
    
  • 图3:图形结构应支持选择特定时间跨度并获得从起点(P1)到终点(P2)的路径。这里,路径由这两个节点之间相对于累积节点的最大流量和特定时间跨度的关系给出。

  • 图4:还应该可以根据例如最高剩余边缘权重来扩展节点。图4显示了包含3个额外节点的扩展图。

我已经知道这项工作2和多级索引3示例。第一个模型不支持来自不同帧的节点之间的良好路径查找。只有后者才有助于查询时间范围。希望有人可以提供帮助。

问候。

1 个答案:

答案 0 :(得分:4)

有很多方法可以在图表中建模时间。一种方法是添加时间戳,甚至是关系有效期间的开始/结束时间。这样,您可以查询图形以返回在给定时间有效的子图或路径。

Ian Robinson(图表数据库书籍的作者之一)撰写了一篇关于此主题的非常好的博文:http://iansrobinson.com/2014/05/13/time-based-versioned-graphs/

关于性能,访问关系确实比仅通过关系类型查询要贵一些,但您可能需要使用自己的数据集自己进行基准测试,因此我建议从最简单的模型开始这对您有用,然后在必要时迭代地优化性能。