【发布时间】:2017-07-15 09:22:37
【问题描述】:
我在 Neo4J 中受 GEDCOM 文件启发,在图上建模了一个家谱。
我的节点和关系是:
Individual <-[CHILD]- Family
Family -[HUSBAND]-> Individual
Family -[WIFE]-> Individual
我不会将家庭建模为关系,因为我可以将多个事件附加到它(订婚、婚姻、离婚、离婚……):
Family -[OCCUR]-> FamilyEvent{type,subtype,date,place,note}
我可以通过这个密码查询获得一个人的父亲和母亲:
MATCH (i:Individual {nickname:'Louis XVI'})
<-[r:CHILD]-
(m:Family)
-[r2:HUSBAND|WIFE]->
(h:Individual)
return i,r,m,r2,h
或者一个人的孩子:
MATCH (i:Individual {nickname:'le Pieux ou le Débonnaire'})
<-[r:HUSBAND]-
(m:Family)
-[r2:CHILD]->
(h:Individual)
return i,r,m,r2,h
但是我怎样才能得到一个人的所有祖先或后代呢?
(换句话说,我如何在个人之间重复模式或将相同的模式应用于我在每个级别上的个人?)
【问题讨论】:
标签: neo4j cypher traversal hierarchical-data genealogy