【问题标题】:Modeing conjunction logic in graph在图中建模连接逻辑
【发布时间】:2016-03-05 17:42:11
【问题描述】:

我正在尝试对图中节点之间的复杂含义进行建模。例如,当 A 和 B 是简单节点并且具有“隐含”边时,很容易实现“如果 A 则 B”。

但是我怎样才能为条件逻辑建模呢? 即-“如果(A和B)或(C和D)那么E”?

谢谢

【问题讨论】:

  • 你能举一个更详细的例子吗?也许你到目前为止使用 Cypher 有什么?也许OPTIONAL MATCH 子句就是你要找的。​​span>
  • 假设我有一个事件数据库(利率会上升,原油价格会下降),我想模拟它们之间的影响(如果利率会上升,那么原油价格会下降)。在这个例子中,我可以有 2 个实体,它们之间有一个“隐含”边。现在,假设我有第三个事件——“GDP 将上升”,我想建模——“如果利率上升 (A) 而原油价格下降 (B),那么 GDP 将会上升 (C)。

标签: graph neo4j cypher titan


【解决方案1】:

如何将逻辑运算符建模为节点?您将拥有一个标签为:And 的节点,其中包含两个(或更多)传入:CONDITION 关系和一个传出:IMPLIES 关系。您可以通过将传出的:CONDITION 关系链接到其他运算符:Or:Xor:Not 等来链接这些。

要查询可能作为某个事件的影响而发生的事件,您可以使用以下表单:

MATCH (cause:Event {id: 'A'})-[:CONDITION|IMPLIES*]->(effect:Event)
RETURN effect.id AS effectsOfA

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 2016-01-21
    • 2010-12-23
    • 2018-06-03
    • 2017-11-06
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 1970-01-01
    相关资源
    最近更新 更多