Quelle est la différence entre les triplestores et les bases de données graphiques?

il y a des triplestores (bases de données sémantiques), et il y a des bases de données graphiques polyvalentes.

les deux sont basés sur les concepts similaires de liaison d'un "élément" à un autre via une relation. Les Triplestores prennent en charge RDF et sont sollicitées par SPARQL, mais de tels add-ons peuvent être (et sont) implémentés sur des bases de données graphiques à usage général.

Quelle est la différence fondamentale qui vous ferait préférer un db / triplestore sémantique à un graphe à usage général base de données comme neo4j?

22
demandé sur Bozho 2013-08-28 12:16:28

3 réponses

Triple stores graphique de bases de données. RDF un graphique. Certes, les trois magasins ont tendance à ne pas stocker l'information en interne sous forme de graphique; c'est sous-optimal pour répondre à une requête, mais ils sont toujours des bases de données de graphique.

vous les préféreriez à quelque chose comme neo4j si vous êtes intéressé par un écosystème basé sur les normes W3C. Rend interop avec d'autres systèmes basés RDF trivial, et il fait ramasser tout et passer à un autre triple magasin tout à fait indolore.

11
répondu Michael 2016-02-17 04:03:22

pour commencer, besically toutes les structures de données peuvent être projetées plus ou moins douloureuses dans n'importe quel moteur de stockage sous-jacent (ou même votre système de fichiers et des fichiers texte). La raison de choisir un certain modèle de données et backend de stockage sont IMHO:

  • votre développement et de la modélisation des préférences
  • prévoir les performances d'exécution pour l'insertion, le stockage et l'interrogation de votre modèle.

comme nous l'avons déjà mentionné, les RDBMSes et les TripleStores ont tendance à être utile à l'exécution dans la traversée" peu profonde " des traversées de jointure ou SparQL, et faire beaucoup de travail dans les caches ou les vues préparées etc. Les bases de données de graphe (uniquement Neo4j) mettent la structure de graphe réellement vers le bas à la couche de stockage et font la chasse de pointeur (avec un certain nombre d'optimisations) sur le niveau de noeud-record. Ainsi, lors de la traversée du Graphe, vous n'avez pas besoin de toucher plus que votre sous-graphe actuel jusqu'à la couche de stockage, étant ainsi en mesure de traverser des parties des données sans toucher l'ensemble du graphe, résultant en constante performance pour un certain nombre de scénarios intéressants.

10
répondu Peter Neubauer 2013-09-02 21:31:44