График эго 2-го порядка из списка ребер - PullRequest
0 голосов
/ 19 марта 2019

Основная цель - выделить эго-граф второго порядка в neo4j из набора данныхdge.csv, доступного в Kaggle . Первоначально я загрузил данные, используя руководство здесь .

Видел это и это , но, похоже, они не покрывали мост к neo4j.

Испытание того, что казалось простым подходом с igraph:

library(igraph)
df <- read.csv("edges.csv")
g <- graph_from_edgelist(as.matrix(df),directed = FALSE)

#pull out 2nd order ego graph for Cap   
g_ego <- make_ego_graph(g, 2, nodes = which((V(g)$name)=='CAPTAIN AMERICA'))

#extract the graph object
n_g <- g_ego[[1]]

#create an edge list with names like the edges.csv from Kaggle
named_ego <- get.edgelist(n_g, names = TRUE)
write.csv(named_ego, file = "scnd_order_ego.csv")

Используя те же команды шифра, что и в руководстве выше на этом CSV:

USING PERIODIC COMMIT 5000
LOAD CSV WITH HEADERS FROM 
"file:///scnd_order_ego.csv" as row
MERGE (h:Hero{name:row.hero})
MERGE (c:Comic{name:row.comic})
MERGE (h)-[:APPEARED_IN]->(c)

CALL apoc.periodic.iterate(
"MATCH (p1:Hero)-->(:Comic)<--(p2:Hero) where id(p1) < id(p2) RETURN p1,p2",
"MERGE (p1)-[r:KNOWS]-(p2) ON CREATE SET r.weight = 1 ON MATCH SET r.weight 
= r.weight + 1"
, {batchSize:5000, parallel:false,iterateList:true})

Я ожидал увидеть однокомпонентный граф, так как думал, что вытащил соответствующий граф эго, но вместо этого: CA_graph

  1. Чего-то явно не хватает в командах R или cypher?

  2. Как выделить эго-граф второго порядка для отдельного узла в neo4j (предпочтительно, в том числе, как записать его в список ребер, сравнимый с edge.csv)?

...