2012-06-27 14 views
13

Suche nach einer Infrastruktur für Netzwerkanalyse für heterogene (Multiple-Node-Typen (Multi-Mode), Multiple-Edge-Typ (Multi-Relation) und mehrere beschreibende Features (Multi-Feature)) Netzwerke, ich habe bemerkt, dass es zwei Standard-Stacks in der Graph-Datenbank Welt sind:Graph Datenbank: TinkerPop/Blueprints vs W3C Verknüpfte Daten

auf der einen Seite wir haben die ThinkPop/Blueprintproperty graph model. Es wird unterstützt von Neo4j, OrientDB GraphDB, Dex, Titan, InfiniteGraph usw.

Der Tinkerpop Stapel enthält die Blueprint Eigenschaft Diagrammmodell-Schnittstelle, die Gremlin Graph Traversal Sprache und die Furnace Graphenalgorithmen Paket.

Auf der anderen Seite wir W3C's Linked Data technology stack haben, die von AllegroGraph unterstützt wird, 4store, Oracle Database Semantic Technologies, OWLIM, SYSTap BigData usw.

semantische Daten werden mit dargestellt RDF/RDFS/OWL und abgefragt werden können unter Verwendung von SPARQL Oben bietet es rules und reasoning Fähigkeiten.

Angenommen, ich möchte heterogene Daten in einer Graphdatenbank darstellen und solche Daten analysieren (Statistiken, Beziehungen, Entdeckung, Struktur, Entwicklung usw.) (ich weiß, dass diese Begriffe weit und vage sind) - Was sind? die relativen Stärken jedes Modells für verschiedene Arten von Netzwerkanalyseaufgaben? Ergänzen sich diese beiden Modelle?

Antwort

7

Paar Dinge, Ihre Beispiele von verknüpften Datenstacks sind alle Triple-Stores. Sie würden mit der Erstellung einer verknüpften Datenanwendung beginnen, indem Sie zuerst Ihren Triple-Store einrichten, aber das Aufrufen einer Datenbank mit einem verknüpften Datenstapel ist falsch imo. Das ist auch eine unvollständige Liste der dreifachen Speicher, es gibt auch Sesame, Jena, Mulgara und Stardog. Sesame und Jena sind Pull-Double-Duty, sie sind die beiden De-facto-Standard-Java-APIs für das semantische Web, aber beide bieten Triple-Stores, die mit den APIs gebündelt werden. Ich weiß auch, dass sowohl Cray als auch IBM an Triple Stores arbeiten, aber ich weiß zu diesem Zeitpunkt nicht viel darüber. Ich weiß, dass Stardog gut mit dem TinkerPop-Stack zusammenarbeitet und dass es im Prinzip ein Drop-in ist und beginnen, Gremlin-Abfragen gegen das RDF zu schreiben.

Ich denke, die Stärken von RDF/OWL ist, dass man 1) eine echte Abfragesprache 2) erhalten sie sind w3c Standards und 3) Sie Argumentation erhalten, wenn der dreifache Speicher unterstützt, kostenlos (mehr oder weniger - Sie müssen immer noch eine Ontologie schreiben).

Da RDF/OWL/SPARQL Standards sind, ist es sehr einfach, einen neuen Triple Store mit einem anderen Feature-Set zu verwenden. Ihre Daten befinden sich bereits in einem gemeinsamen Format, das jeder versteht Jede Anwendungslogik, die als Abfragen codiert ist, ist vollständig portierbar. In den meisten Fällen schreiben Sie entweder gegen die APIs von Sesame oder Jena oder arbeiten über das SPARQL-Protokoll. Daher müssen Sie möglicherweise nur Ihre Konfiguration/Init ändern. Ich denke, das ist ein großer Gewinn in den frühen Prototypenphasen.

Ich denke auch, dass RDF/OWL besonders kombiniert mit Argumentation und die Arten von komplexen SPARQL-Abfragen, die Sie mit dem neuen SPARQL 1.1 erstellen können, wirklich gut zum Aufbau komplizierter analytischer Anwendungen passen.Außerdem denke ich, dass der Eindruck, dass die meisten Leute RDF Triple Stores nicht skalieren, nicht mehr stimmt. Die meisten Triple-Stores an dieser Stelle skalieren leicht in Milliarden von Tripeln und haben auch sehr wettbewerbsfähige Durchsätze.

Also basierend auf was ich denke du machst, denke ich, dass semweb eine bessere Wette für dich sein könnte. Ich habe ein ähnliches Projekt vor ein paar Jahren unter Verwendung von RDF & RDFS für das Backend mit einer einfachen Pylons-basierten Webanwendung und war sehr zufrieden mit den Ergebnissen.