2011-09-12 2 views
0

Il s'agit d'un sujet relativement avancé lié aux graphes orientés. Je regarde la technologie NOSQL pour un projet. En particulier, en utilisant des bases de données graphiques. C'est un ajustement parfait pour supporter le modèle riche pour lequel je veux enregistrer des relations et le domaine de problème est un graphique lui-même (sommets et arêtes). Maintenant, évidemment, cela m'a fait regarder Neo4j et d'autres fournisseurs dans cet espace. Maintenant, je crois qu'ils ont résolu ou fermé l'écart avec des données persistantes dans une structure de données graphique ... ce qui est parfait. Cependant, mon exigence va plus loin lorsqu'il est nécessaire de comprendre une spécification d'un graphe orienté pour créer une instance réelle d'un «graphe orienté», de sorte que des règles et des contraintes particulières soient respectées lors de la création du graphe. La base de données graphique ne se préoccupe pas de ce qui est correct et ne le voudrait pas trop (heureux qu'il soit agnostique de cela). Le problème est que cela laisse un peu d'ouverture car cela garantit que le graphe est conforme à vos règles de graphe (c'est-à-dire que certains nœuds peuvent avoir certaines relations ou même avoir des relations avec d'autres nœuds). Que devrais-je utiliser qui me permettra de spécifier la spécification/métadonnées du graphe orienté de sorte que lors de la création d'une instance à l'exécution, il adhère correctement à sa spécification .Spécification d'un graphe orienté

Toute aide ou des suggestions sur ce qui est disponible ou ce qui est la façon habituelle d'aborder ce serait apprécié

+0

combler le fossé entre un graphe des noeuds et des arêtes comme mis en correspondance avec un modèle relationnel avec des lignes et des relations est encapsulées dans l'outil référentiel Enterprise Elements ... réponse courte, vous avez besoin de métadonnées – Randy

+0

Randy .. .il ne s'agit pas de mapper vers ou depuis un magasin relationnel. Il s'agit de définir les règles du graphique lui-même. Je veux ou ai besoin de ceci défini. Je sais que ce doit être des métadonnées mais de quelle forme. GraphML décrit une instance d'un graphique. La seule chose que je peux penser est de décrire la spécification comme un graphique lui-même une fois et lors de la création des instances, il se réfère à ce graphique pour les règles et les contraintes. – Roger

+0

Désolé mal lu votre première phrase. Les métadonnées entièrement d'accord sont nécessaires. Mais de quel type. Y at-il une norme qui peut être utilisée. – Roger

Répondre

0

Je pense que vous devriez jeter un oeil à Graph Spring Data http://www.springsource.org/spring-data/neo4j qui est aussi proche que vous obtenez en ayant une couche de cartographie puissante qui peut projeter des règles etc., tout comme JPA ou Hibernate.

WDYT?

/Peter

+0

Merci Peter. J'ai déjà rencontré le graphique de données de printemps. Je peux voir que c'est utile, mais cela n'aborde pas le problème que j'ai - spécification du graphe autorisé avant de persister ou de créer des instances de nœuds et d'arêtes. C'est à dire. Besoin d'un moyen de désigner ce nœud de type n1 ne peut être associé à un nœud de type n2 avec une relation de type x etc - serait idéal pour avoir cela comme une configuration – Roger

+0

mmh, cela sonne comme si vous voulez le "schéma" pas dans le code mais dans la DB? Les sons comme NOSQL sont un peu trop lâches là-bas. Cependant, vous pouvez faire de l'application de schéma de bas niveau via l'API Neo4j Event, voir http://wiki.neo4j.org/content/Event_framework –

Questions connexes