我不认为我可以做我想要的事情,但我想我会把它扔出去寻找有创意的建议。统一医学语言系统(UMLS; https://uts.nlm.nih.gov/home.html)是一种语义本体,在节点之间具有各种双向关系。例如,x isa y和y inverse_isa x。问题是有很多这样的名字和他们的反向关系。因此,在查询中,排除一个是不够的,因为列表具有许多可能性,这是麻烦的并且可能忽略某些东西。换句话说,问题是,当存在将反转遍历的关系时,您是否可以创建有向非循环图查询。如果从节点x到y有出站关系,则要忽略y与x的入站关系。我使用的是Neo4j 2.3.0。 UMLS,我过滤数据,有~11M节点和45M关系。有654种关系类型,该列表正在动态增长;这是通用解决方案不依赖于特定列表入站和出站关系的另一个原因。
答案 0 :(得分:3)
如果在UMLS中,每个"倒置"关系与相应的"积极的"关系(即,它们链接相同的2个节点,但是朝相反的方向),然后你可以省略neo4j DB中的反转关系,因为neo4j可以在任一方向上导航关系。这会解决你的问题吗?
答案 1 :(得分:0)
对不起,我对这个问题的理解很少。
请查看这是否有任何帮助。 对于反向关系,您可以查询类似的内容。这里,b将用于反向关系。
match (n)-[a]->(m)-[b]->(n) return m;