2009-09-08 4 views
1

J'ai besoin de représenter graphiquement les relations entre un ensemble d'objets ainsi que leurs types dans une application PHP. Les relations seraient précédemment générées. Je cherche seulement un outil, de préférence gratuit, qui affichera les nœuds et leurs relations.Quelle est la meilleure bibliothèque pour générer des graphiques d'objets visuels en PHP (ou JavaScript) (par exemple pour représenter un réseau social)

Je suis ouvert à PHP ou JavaScript ou tout ce qui fonctionne tant qu'il ne nécessite pas (de préférence) un plugin séparé. Je pense que ce que je cherche est un peu similaire à Graphviz.

Certaines des relations entre les objets pourraient être similaires aux suivantes. Ce sont par exemple seulement.

Sam->(knows)->Mark /* Relationship is explicitly defined */ 
Shannon->(may know)->Jennifer  /* Relationship is inferred */ 
Linda->(is Married to)->Neville /* Relationship is defined but information is missing (i.e. gender) to determine which node fills which role (i.e. husband, wife) */ 
Carl->(is Related to)->John /* Relationship is defined but parameters are completely unknown */ 

Veuillez noter que deux objets peuvent également partager plusieurs relations. Le graphique a besoin de représenter non seulement les nœuds, mais également leur relation. La bibliothèque graphique doit être quelque peu interactive pour pouvoir cliquer sur un nœud ou sur la relation afin d'activer certaines actions, telles que la recherche (de préférence via AJAX) d'informations supplémentaires. (Encore plus préférable serait de permettre l'action de se produire sur mouseover.)

La bibliothèque pour comprendre les relations. Il doit seulement être capable de montrer qu'il existe une relation et inclure le texte approprié décrivant la relation qui est fournie lorsque le diagramme est généré.

Quelle est la meilleure bibliothèque pour accomplir cette tâche? Même s'il n'y a pas une seule bibliothèque qui réponde entièrement à la demande, s'il y en a une qui se rapproche mais qui est extensible, ce serait bien de le savoir aussi.

Merci!

Répondre

2

Vous pouvez tracer une représentation visuelle assez facilement avec yUML. Par exemple, si vous vouliez souligner que « John est marié à Marie, et travaille pour Mark », vous pouvez effectuer les opérations suivantes:

[John]->(works for)->[Mark] 
[John]->(married to)->[Mary] 

qui génère les éléments suivants:

+0

Jonathan, cette solution est libre, mais il est très très agréable. On dirait que cela correspondrait aux exigences. Si je ne trouve pas de solution gratuite, je vais certainement donner à yUML un aspect beaucoup plus approfondi. Merci beaucoup de le recommander. –

+0

@Anthony: La solution est gratuite, ou vous pouvez l'acheter pour vos propres réseaux personnels. – Sampson

0

Le Bidirectional Interactive Network Visualization bibliothèque (pour Javascript) semble avoir la fonctionnalité que vous recherchez. Il est utilisé pour dessiner des ontologies et votre exemple ressemble un peu à une ontologie. Les gens ont des relations différentes et parfois multiples. En outre, la bibliothèque BINViz offre une interactivité soignée, est relativement petite et ne dépend pas d'autres bibliothèques.

Questions connexes