2009-11-18 12 views
37

Saluti,
Esiste un database grafico open source disponibile diverso da Neo4J ??Database grafico in Java (diverso da Neo4J)

NOTA:Perché non Neo4J?
Neo4J è opensource, ma conteggia primitive (numero di nodi, proprietà & delle relazioni). Se lo stai usando per uso commerciale. E non ha alcuna informazione diretta sui prezzi sul sito ufficiale. quindi può esserci un potenziale blocco del fornitore (anche se ho appena avviato la mia azienda e non ho budget per spendere soldi per il software). Quindi è fuori uso.

saluti,

+5

Solo così è chiaro, la premessa di questa domanda ("Perché non Neo4j?") Non è più valido, poiché la comunità Neo4j ora è GPL, non AGPL, che lo rende una buona scelta per startup/etc. $ diventa coinvolto se hai bisogno di supporto, monitoraggio o disponibilità elevata. –

+3

Non sono a conoscenza di eventuali startup che punterebbero sulla loro intera attività sull'utilizzo di un database che non disponeva di disponibilità elevata o supporto. – Nuzzolilo

+1

@Nuzzolilo, aziende/aziende così stabili dovrebbero mettere la loro azienda su un nuovo tipo di database non startup? Stavo sperimentando, prototipando un prodotto, non è quello che fa l'avvio, inizialmente? Hai usato Neo4J in produzione? E come fai a sapere che Neo4J non ha alta disponibilità? – Nachiket

risposta

9

Come ha detto RobV, se i tuoi grafici possono essere rappresentati in qualsiasi formato personalizzato come RDF o DOT language, sei fortunato! Ecco le varie opzioni si hanno:

  • RDF: Jena - considerata la realizzazione de facto di CDR per Java, comunque ha E 'stranezze come l'utilizzo massiccio di iteratori.
  • RDF: Protégé - Se non si usa Jena (e anche se lo si desidera) ma si desidera utilizzare RDF, Protégé è lo strumento adatto a te. È fondamentalmente un editor di ontologia davvero ben fatto che rende la gestione dei dati del grafico un gioco da ragazzi. Utilizza anche una gerarchia di plugin simile a Eclipse e ci sono un sacco di plugin disponibili in modo da poter facilmente installare elementi come OWL ontologies.
  • DOT: GraphViz - Un altro strumento molto popolare, GraphViz può generare grafici dal linguaggio DOT. Molto potente, un po 'difficile da imparare ma potenzialmente anche tutto ciò di cui hai bisogno.

Naturalmente, se si adatta al profilo dell'azienda, è possibile svilupparne uno e iniziare a venderlo come prodotto.

+0

Grazie per le informazioni e il suggerimento di venderlo come prodotto, A proposito, vendere un software/una tecnologia ai ragazzi del software è difficile. :) Meglio avviare il progetto opensource piuttosto che vendere. – Nachiket

+1

+1 per DOT e GraphViz - cose meravigliose. – duffymo

+1

Non penso che RDF conta davvero come un formato personalizzato poiché è uno standard W3C! Chiameresti HTML un formato personalizzato? ;-) – RobV

5

Se i grafici possono essere rappresentati sotto forma di grafici RDF allora si potrebbe utilizzare Jena dal momento che è completamente gratuito e open source

http://jena.sourceforge.net

Se questo è in qualche modo utile per voi dipende sul motivo per cui è necessario un database grafico e quale tipo di grafici è necessario memorizzare in esso.

+0

In realtà, sto lavorando sulla relazione utente per il sito web sociale (amici, amici di amici e raccomandazioni come "potresti conoscerlo") – Nachiket

+1

Quindi dovresti dare un'occhiata a entrambi FOAF http://www.foaf-project.org/ e SIOC http://sioc-project.org se non ne sei già a conoscenza - questi sono due popolari vocabolari RDF, FOAF descrive le persone e le loro relazioni mentre SIOC è usato per descrivere tutti i tipi di contenuti della comunità online. FOAF è già utilizzato sui principali siti web come LiveJournal – RobV

+0

grazie per l'amico di informazioni! – Nachiket

7

Bene, Neo4j è Open Source sotto GPLv3 per Community Edition e AGPL per le edizioni Advanced ed Enterprise.

Per ulteriori informazioni, si prega di guardare http://neo4j.org/licensing-guide/

/Peter Neubauer, parte del team Neo4j.

+2

Ciao Peter, Grazie per la risposta dettagliata. Ho già creato app prototipo con Neo4J. E mi è piaciuto, ecco perché sto cercando un'alternativa a Neo4J. :) L'unico ostacolo che sto affrontando è la concessione di licenze. Perché, è possibile che il mio servizio/prodotto possa ottenere nodi 1M molto velocemente (sto memorizzando tutto in Neo4J Db), e comunque le mie entrate potrebbero non essere avviate. Quindi, per favore mandami il listino prezzi per la revisione. E mi spavento quando devo contattare l'addetto alle vendite, ecco perché non ho provato, perché il contatto Neo4J dice = "Addetto alle vendite" :)) – Nachiket

+0

Tra l'altro la mia e-mail è nachiket [at] logicwind (punto) com – Nachiket

+0

quindi questa doppia licenza, diciamo che un open source si basa su neo4j, e quel progetto è sotto una licenza più liberale (per il commercio) che consente alle aziende di usarlo gratuitamente ... come fa la licenza di neo4j a influenzare quelle società? anche se potrebbero non essere consapevoli del fatto che stanno usando neo4j indirettamente – deepblue

30

OrientDB (old link) sembra sostenere grafico stoccaggio più o meno lo stesso era come Neo4j

+4

OrientDB (http://www.orientechnologies.com) gestisce i grafici in modo nativo, è molto veloce e supporta Blueprints (https://github.com/tinkerpop/blueprints/wiki) come Neo4J, che è qualcosa di simile a uno standard per GraphDB , quindi puoi eseguire tutto lo stack di Tinkerpop (http://www.tinkerpop.com): Gremlin language (https://github.com/tinkerpop/gremlin/wiki), Rexster (https://github.com/tinkerpop)/rexster/wiki) per accedere tramite chiamate HTTP/RESTful, ecc. Ma OrientDB è commercialmente amichevole poiché utilizza la licenza Apache 2: gratuita per qualsiasi utilizzo. – Lvca

+1

Da quello che ho letto, se vuoi HA con OrientDB, devi implementarlo con Hazelcast, che ha anche diversi modelli di supporto e licenza. – rayseaward

+0

@rayseaward Puoi elaborare a breve che tipo di licenze/problemi di licenza introdurranno Hazelcast? –

9

io suggerisco di utilizzare Blueprints da tinkerpop, che consentono di utilizzare un graphDB di tua scelta (anche da Neo4j e OrientDB). E forniscono anche un'estensione per usare il repository db as rdf (usando Sesame Sail).

1

Lo so, è stato un po ', ma, oggi, mi stavo ponendo la stessa domanda, e ho trovato OhmDB Sembra essere per scopi leggeri.

1

Dai anche un'occhiata ad ArrangoDB. Un bel database multi-modello.

https://www.arangodb.com/

EDIT: devo dire che sto cadendo sempre più innamorato di Arrango :)