У меня есть DAG со многими узлами. Я ищу шифрованный запрос, чтобы вернуть Markov Blanket
данного узла.
ps: Марковское одеяло A состоит из родителей A, детей A и других родителей его детей.
У меня есть DAG со многими узлами. Я ищу шифрованный запрос, чтобы вернуть Markov Blanket
данного узла.
ps: Марковское одеяло A состоит из родителей A, детей A и других родителей его детей.
Ну, я не знаю, в каком формате вы хотите вернуть данные, и я изобрел метки и тип отношения, но вы можете начать с этого:
MATCH (parent:Person)-[:PARENT_OF]->(a:Person)-[:PARENT_OF]->(child:Person)
WHERE a.identifier = "theOneYouWant"
WITH a, parent, child
MATCH (otherParent:Person)-[:PARENT_OF]->(child)
WHERE otherParent <> a
RETURN parent, a, otherParent, child
Должны ли существовать все отношения? т. е. должен ли A быть ребенком? Нужно ли A иметь детей? Должны ли дети А иметь других родителей?
Если некоторые отношения являются необязательными, я думаю, вам нужно сделать что-то вроде этого
match (a:A)
optional match (a)<-[:PARENT_OF]-(p1)
optional match (a)-[:PARENT_OF]->(c)
optional match (p2)-[:PARENT_OF]->(c)
return *
Это вернет всех родителей, всех детей и всех других родителей детей.
A
не может иметь родителей и/или детей. Но да, все узлы и отношения одного типа.
- person Nishanth; 31.10.2014