На платформах 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))
or
Get any X that Call(A,X))
or
Get any X that Answer(A,X))
Какие существующие платформы GraphDB его поддерживают?