1

我需要以图形方式描述一组对象之间的关系以及它们在 PHP 应用程序中的类型。关系将先前生成。我只是在寻找一个工具,最好是免费的,它将显示节点及其关系。

我对 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)附加信息。(更可取的是允许在鼠标悬停时发生动作。)

图书馆了解关系。它只需要能够显示存在关系并包含描述在生成图表时提供的关系的适当文本。

完成这项任务的最佳库是什么?即使没有一个完全满足需求的库,如果有一个接近但可扩展的库,也很高兴知道。

谢谢!

4

3 回答 3

2

您可以使用yUML轻松布置视觉表示。例如,如果您想指出“John 与 Mary 结婚,并且为 Mark 工作”,您可以执行以下操作:

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

生成以下内容:


(来源:yuml.me

于 2009-09-08T15:07:06.610 回答
0

双向交互式网络可视化库(用于 Javascript)似乎具有您正在寻找的功能。它用于绘制本体,您的示例看起来有点像本体。人们有不同的,有时是多重的关系。此外,BINViz 库提供了简洁的交互性,相对较小,并且不依赖于其他库。

于 2010-03-05T23:02:46.413 回答
0

Graphviz是我发现的最先进的图形渲染库。通过 Pear进行PHP 集成。样本包括符合您要求的样本。

另请参阅与您的问题有些相关的我的问题:以 编程方式生成图形(ADAPT)模型/结构化数据图表

于 2012-12-18T09:32:25.363 回答