我有一项大学作业,我的目标是为在Turbo Prolog中创建的专家系统创建GUI。有什么常用的方法吗?或者有没有一种方法,例如,Java应用程序可以调用Prolog应用程序并导入其结果?还是应该将应用程序移植到Visual Prolog?提前谢谢。
好吧,有XPCE,它很好,但我不能100%确定你是否能够在Turbo Prolog中使用它,或者你必须进行一些修改;然而,由于移植不是不可能的,我想你可以使用它。
这是一个非常有用的(imho)关于XPCE 的常见问题解答/指南
swi-prolog关于图形的页面中的一些其他选项:
直接访问图形API传统上,Prolog社区中的人围绕他们系统的本机(C)API编写Prolog包装器。Xwip是Prolog的这类GUI方法的重要示例。问题是这些API中的大多数都是相当低级别的需要正确自然地获取API的数据类型Prolog中的代表。外部GUI语言一种更好、更流行的方法是使用为GUI开发设计的外部语言。流行的候选者是Tk/Tcl、JPL/Java、Java、Java等等,Visual Basic和Delphi。Prolog使用连接到这些系统管道、嵌入或其他合适的通信机制。使用XPCE star.gifXPCE从一开始就是为Prolog中的GUI开发而开发的。XPCE有一个动态类型的面向对象内核。方法可以用任何语言定义。XPCE预定义了大量类,针对数据表示和图形。这个图形库允许对界面进行抽象描述组件,并且可移植到Win32和Unix/X11。
使用XPCE,交互式Prolog应用程序可以完全编写Prolog中。XPCE可用于(空间)高效存储对象以及应用程序的面向对象结构。截至XPCE-5,本机Prolog数据可以通过定义XPCE/Prolog来传递和存储类。
使用Turbo Prolog的GUI的"原生"方法是基于DOS的Borland图形接口(BGI)。此库本身与MS Windows不兼容,但您没有指明此应用程序的目标操作系统。
如果你的目标是Windows,并且想使用BGI图形,那么你可能会发现BGI的这个Windows端口可用。
如果您以前从未在Turbo Prolog中使用过BGI调用,那么升级到Visual Prolog可能很有吸引力,PDC会在当前版本的MS Windows中维护Visual Prolog。在Visual Prolog IDE中,用户界面的构建块就在眼前。
添加:我曾经使用Turbo Prolog和BGI调用构建了一个仓库/物流系统的图形原型,显示特定物品在仓库地板上的位置。所以,我认为,对于你的"大学作业"来说,这是可以做到的。尽管有几个Prolog实现与Java接口或用Java编写,但这比为Java编写一种调用Turbo Prolog的方法要少。例如,GNU Prolog for Java是免费和开源的。
从Turbo Prolog转换为ISO Prolog并不困难,除非您使用外部数据库或Turbo Prolog的其他固有功能。基本上,您只需要去掉Turbo Prolog特有的域和谓词声明,就可以在各种ISO Prolog实现下进行测试和运行。如果您的专家系统确实使用了外部数据库,您会发现转换为使用consult/1和/或assertz/1动态填充的内部数据库(事实子句)很有吸引力。