У меня есть база данных Neo4j, состоящая из узлов Film
и Person
, связанных ACTED_IN
отношениями. Используя APOC, мне удалось создать набор виртуальных ACTED_WITH
отношений непосредственно между Person
узлами, отражающих тот факт, что они косвенно связаны через Film
, в котором они оба появились:
MATCH (a:Person)-[:ACTED_IN]->()<-[:ACTED_IN]-(b:Person)
WITH a, b
CALL apoc.create.vRelationship(a, 'ACTED_WITH', {}, b) YIELD rel
RETURN a, rel, b
Кажется, это отражает непрямые отношения, которые я ищу. Теперь я хочу передать результаты в Gephi для визуализации. Но соответствующая функция APOC принимает аргумент paths
. Итак, это работает:
MATCH path = ()-[:ACTED_IN]->()
WITH collect(path) AS paths
CALL apoc.gephi.add(null, 'workspace0', paths) YIELD nodes, relationships, time
RETURN nodes, relationships, time
Как я могу создать набор путей из виртуальных отношений, полученных в первом блоке кода, для передачи в Gephi, как во втором? (Или есть лучший способ справиться с подобными случаями?)