在GraphDB平台(Neo4j,OrientDB,FlockDB,HyperGraphDB ......)中,可以定义节点之间的关系.
我需要定义方向关系,以便关系根据其方向具有不同的名称.
例如:
Parent(A,B) := Sibling(B,A).
然后,我想使用术语和方向遍历或查询图表.
当然,我不想定义两个关系,而只需要一个.
有时我甚至想使用非方向名称,例如:
Call(A,B) := Answer(B,A); TalkWith(A,B) := Call(A,B) || Call(B,A)
并使用定向或间接遍历/查询
例如,我可能想问:
Get any X that TalkWith(A,X))
要么
Get any X that Call(A,X))
要么
Get any X that Answer(A,X))
哪些现有的GraphDB平台支持它?
在Gremlin(http://gremlin.tinkerpop.com)中,您可以根据数据中的显式创建抽象/隐式/推断关系.因此,您可以以这种方式定义推断.
https://github.com/tinkerpop/gremlin/wiki/User-Defined-Steps
Gremlin在TinkerGraph,Neo4j,OrientDB,DEX和RDF Sail Stores上工作.
希望有所帮助,Marko.