2012-06-25 25 views
16

Neo4j'yi destekleyen bir R kütüphanesi var mı? Neo4j'den bir R grafiği (ör. Igraph) veya neo4j'de bir R grafiğini saklamak istiyorum.Kullanım neo4j ile R

Daha doğrusu, Python için bulbflow benzeri bir şey arıyorum.


Güncelleme

umut verici görünüyor Ar için yeni Neo4j sürücü vardır: http://nicolewhite.github.io/RNeo4j/. Doğru cevabı değiştirdim.

+0

Neo4j olan bir [REST API] (http://docs.neo4j.org/chunked/1.6/rest-api.html), elle ona bağlanmak mümkün olmalıdır beri, , "RJSONIO" paketi ile JSON verisini yönetmek için ve "RCurl" sorgularını göndermek için. –

+0

REST üzerinden doğrudan erişim mümkündür, RJSONIO için teşekkürler. Aradığım şey neo4j için daha uygun bir R bağlamasıdır. gibi bir şey: "g <- graph.neo4j(), g.addNode (x), g.addEdge (from, to)". –

+0

Ayrıca, muhtemelen GraphML ithalat ve ihracatını yapabilirdiniz, http://docs.neo4j.org/chunked/snapshot/gremlin-plugin.html#rest-api-load-a-sample-graph adresine bakın, ihracat benzer . –

cevap

11

RNeo4j sürücüsünü düşünün. Yukarıda gösterilen işlev eksiktir: tek sütun verisini geri dönemez ve NULL işleme yoktur.

https://github.com/nicolewhite/RNeo4j

+0

Çok hoş, bir göz atacağım! –

0

Gereksinimlerinize uyup uymadığından emin değilseniz Gephi'ye bir göz atın. http://gephi.org/.

+1

Bu gerçekten benim sorum ile ilgili değil ... Bir R paketi arıyorum Bu neo4j'ye kolay erişim sağlar. Gephi güzel olsa da :) –

+0

Gephi'yi neo için bir aracı olarak kullanıyorum. Eğer igraph'ı GEXF'e verirseniz, bunu gephi'ye aktarırsanız iyi bir eklenti vardır. Sonra neo4j'ye ihracat yapabilirsiniz. Bu biraz dolambaçlı, ama noktadan-tıkla bir şekilde kolay. – Mittenchops

13

Bu link yardımcı olabilir. Sonraki günlerde ne04j'yi R ile bağlayacağım ve ilk olarak sağlanan bağlantıyı deneyeceğim. Umarım yardımcı olur.

Denedim ve iyi çalışıyor. Birincisi, yürütme sonra yüklemek ve yük paketleri ve fonksiyon: İşte çalışır işlevdir

install.packages('RCurl') 
install.packages('RJSONIO') 

library('bitops') 
library('RCurl') 
library('RJSONIO') 

query <- function(querystring) { 
    h = basicTextGatherer() 
    curlPerform(url="localhost:7474/db/data/ext/CypherPlugin/graphdb/execute_query", 
    postfields=paste('query',curlEscape(querystring), sep='='), 
    writefunction = h$update, 
    verbose = FALSE 
)   
    result <- fromJSON(h$value()) 
    #print(result) 
    data <- data.frame(t(sapply(result$data, unlist))) 
    print(data) 
    names(data) <- result$columns 

} 

ve bu çağıran fonksiyonun bir örnektir:

q <-"start a = node(50) match a-->b RETURN b" 
data <- query(q) 
+1

Bu konuda yalnız olmadığımı bilmek güzel;) Bunun için neden çalıştığınızı ve neo4j'i nasıl kullandığınızı bilmek ilginç olabilir. –

1

Ben R senaryoyu kullanmaya çalıştı (teşekkürler bunu sağladıkları için çok) ve doğrudan kullanabilirsiniz geliyor bana: /db/veri/cypher yerine db/veri/ext/CypherPlugin/graphdb/execute_query (neo4j 2.0 ile).