Возвращенный путь состоит из серии отношений, и данные, возвращаемые для каждого отношения, фактически являются триплетом (начальный узел, отношение, конечный узел). Таким образом, конечный узел одного отношения снова появляется как начальный узел следующего отношения.
Если вы хотите просто получить отношения без узлов, вы можете использовать RELATIONSHIPS(p)
; и если вам просто нужны узлы без связей, вы можете использовать NODES(p)
.
А если вы хотите создать свои собственные списки путей без дублированных узлов, попробуйте это:
MATCH
(n:Resource { uri: 'http://elite.polito.it/ontologies/dogont.owl#StateValue'}),
(m:Resource { uri: 'http://elite.polito.it/ontologies/dogont.owl#Actuator'}),
p=allShortestPaths((n)-[*]-(m))
WHERE NONE(x IN NODES(p) WHERE x.uri='http://www.w3.org/2002/07/owl#Thing')
RETURN REDUCE(s=[PROPERTIES(n)], r IN RELATIONSHIPS(p) | s + r + ENDNODE(r)) AS p