2009-09-08 20 views
1

我有一个要求,以图形方式描述一组对象以及它们在PHP应用程序中的类型之间的关系。以前会生成relatinships。我只是在寻找一个工具,最好是免费的,它将显示节点及其关系。什么是用于在PHP(或JavaScript)中生成可视对象图表的最佳库(例如用于描绘社交网络)

我接受PHP或JavaScript或任何只要不需要(最好)独立插件就会工作的任何东西。我认为我正在寻找的是与Graphviz有点相似的东西。

对象之间的某些关系可能类似于以下内容。这仅仅是例子。

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 */ 

请注意,两个对象也可能共享多个关系。

Mary->(is Boss)->John 
Mary->(is Wife)->John 
Mary->(has children with)->John 

该图不仅需要描述节点,还需要描述它们之间的关系。图形库需要具有一定的交互性,以便点击节点或关系以启用某些操作 - 例如查找(最好通过AJAX)附加信息。 (更可取的做法是允许该操作在鼠标悬停时发生。)

用于理解关系的库。它只需要能够表明存在关系并包含描述在生成图时提供的关系点的适当文本。

什么是最好的图书馆来完成这项任务?即使没有完全满足需求的单一图书馆,如果有一个图书馆近在咫尺但可扩展,那也是很了不起的。

谢谢!

回答

2

您可以很容易地用yUML布置视觉表示。例如,如果你想指出的是,“约翰娶了玛丽和工程标志”,你可以做到以下几点:

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

产生如下:

+0

乔纳森,这个方案是不是免费的,但它是非常非常好的。看起来它符合要求。如果我没有找到免费的解决方案,我肯定会给yUML更深入的了解。非常感谢您的推荐。 – 2009-09-08 20:59:07

+0

@Anthony:解决方案是免费的,或者您可以为自己的个人网络购买。 – Sampson 2009-09-08 23:00:01

0

Bidirectional Interactive Network Visualization库(用于Javascript)似乎具有您正在查找的功能。它用于绘制本体,你的例子看起来有点像本体论。人们有不同的,有时是多种关系。另外,BINViz库提供整洁的交互性,相对较小,不依赖于其他库。

相关问题