Neo4j Cypher请求提取系谱

Neo4j Cypher请求提取系谱,neo4j,cypher,Neo4j,Cypher,我正在分析neo4j中的一本书,我想从中提取系谱,我有如下句子: “A生B、C和D” “X生Y,Y生Z,…” 我把它存储为 (A:word)-[:subj]->(begat:word)-[:obj]-> (B:word) (A:word)-[:subj]->(begat:word)-[:comp]-> (C:word) (X:word)-[:subj]->(begat:word)-[:obj]-> (Y:word) (Y:word)-[:subj]->

我正在分析neo4j中的一本书,我想从中提取系谱,我有如下句子:

“A生B、C和D”

“X生Y,Y生Z,…”

我把它存储为

(A:word)-[:subj]->(begat:word)-[:obj]-> (B:word)
(A:word)-[:subj]->(begat:word)-[:comp]-> (C:word)

(X:word)-[:subj]->(begat:word)-[:obj]-> (Y:word)
(Y:word)-[:subj]->(begat:word)-[:obj]->  (Z:word)

(X:word)-[:NNP]->(sentence:word)
(Y:word)-[:NNP]->(sentence:word)
(Z:word)-[:NNP]->(sentence:word)
(begat:word)-[:VBG]->(sentence:word)
我如何编写cypher请求,以便neo4j服务器可视化为我提供一个树,而不是一个“begat”节点,所有其他节点都链接到它?我的谱系是由几个句子组成的,当我把单词连接在一起时,我会在关系中加上句子ID,也许我们可以用它

结果看起来像

        A
  ______|_____
 |      |     |
 B      C     D
              |
              X
              |
              Y
              |
              Z
还有一个信息,这些单词只存储一次,以避免内存消耗

以下是我的数据示例:


非常感谢

您可以使用共享示例。你问题中的符号有点混乱,
(:sub)
是节点还是关系?如果您像键入密码模式一样键入密码,这将有助于提高清晰度,即对节点使用
,对关系使用
[
]
。感谢您提供的地址,我更正了我混合使用的符号,您希望从查询中看到什么结果?我不明白你在要求什么。