2015-12-01 56 views
0

我想模擬圖中節點之間的複雜含義。例如,當A和B是簡單節點並且具有「隱含」的邊緣時,實現「如果A然後B」是容易的。在圖中調節連接邏輯

但是我怎樣才能建立一個條件邏輯?即「如果(A和B)或(C和D)則E」?

謝謝

+0

你能舉一個更詳細的例子嗎?也許你到目前爲止使用Cypher?也許['OPTIONAL MATCH'](http://neo4j.com/docs/stable/query-optional-match.html)子句就是你正在尋找的。 –

+0

假設我有一個事件數據庫(利率將上升,原油價格將下降),我想模擬它們之間的含義(如果利率會上升,那麼原油價格將下降)。在這個例子中,我可以有兩個實體,它們之間有一個「蘊含」邊。如果利率上升(A),原油價格下降(B),那麼GDP將上升(C)。 –

回答

0

如何將邏輯運算符建模爲節點?您將有一個標籤爲:And的節點,其中兩個(或多個)傳入:CONDITION關係和一個傳出:IMPLIES關係。您可以通過其傳出:CONDITION關係到其它運營商:Or:Xor:Not

要查詢可能發生的某些事件的影響的事件鏈接這些,然後你可以用這種形式:

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