可视化序言规则依赖关系

Visualizing prolog rule dependencies

我有一个序言程序,它有一些相当复杂的递归逻辑。我想可视化规则的依赖性以更好地理解程序。是否有一些实用程序可以将序言程序转换为 GraphViz 文件以进行可视化?

我的所有谓词都包含在一个 XSB prolog 文件中。

Logtalk(支持 12 个 Prolog 系统)提供了一个 diagrams 工具,可以生成多种图表,包括交叉引用图表。根据 Prolog 系统,它也可以在有一些限制的情况下用于为 Prolog 代码创建图表。例如:

http://logtalk.org/diagrams/swi_prolog_library_entity_diagram.svg

交叉引用图的示例(使用旧版本的工具生成)是:

http://logtalk.org/diagrams/pengines_module_xref_diagram.pdf

在您的情况下,此工具可能是一个可行的选择(它的默认输出是 GraphViz .dot 文件),具体取决于您使用的 Prolog 系统以及您组织代码的方式。也许你可以用更多细节更新你的post?