LISP或Jess之类的东西是最好的选择吗?我有兴趣编写一个基于用户答案提出建议的程序。计算方面的考虑并不是一个真正的因素,它几乎就是模式匹配引擎。此外,我想为此制作一个应用程序并将其放在网上。
更新:我想把它放在博客或网站上,让人们从那里使用它。我想我的问题是,是否有一个特定的推理引擎可以与.NET系列或PHP一起使用,或者那种效果?每个选项的优缺点是什么等。
答案 0 :(得分:6)
步骤1.选择推理引擎。有很多选择。这是一个列表:http://en.wikipedia.org/wiki/Expert_system#Shells_or_Inference_Engine
步骤2.使用与推理引擎连接的语言。
利用推理引擎为专家系统工作,你会更乐意。
我想把它放在博客或网站上,让人们从那里使用它
微不足道的。
是否有一个特定的推理引擎可以与.NET系列或PHP一起使用,或者其他什么?
没关系。
这是混乱。您的“网站”和您的“推理应用程序”没有任何关系。什么都没有。
您的网站可以在您找到的任何工具集中完成。没关系。
您的推理应用程序可以在您找到的任何工具集中完成。没关系。
您的网站将通过任何有意义的API调用推理应用程序。 API中最低的共同点(这些选择都不重要的原因)就是这样做。
将推理应用程序编写为独立的命令行工具。
编写您的Web应用程序以运行独立工具,收集输出并将输出转换为HTML页面。
请注意,这种多端口实现可能更快,并且可以更好地利用多核处理器。它迫使操作系统管理Web服务器(例如Apache HTTPD),Web应用程序和专家系统,这可能是三个独立的并行流程。
答案 1 :(得分:4)
你也可以看一下Prolog。 SWI-Prolog(http://www.swi-prolog.org)非常完整,包含HTTP支持库(http://www.swi-prolog.org/pldoc/package/http.html)。本文可能有助于在网络上使用SWI-Prolog(“SWI-Prolog和网络”http://dare.uva.nl/record/285350)
找到有关使用prolog构建专家系统的教程答案 2 :(得分:2)
你会在这里听到很多主观意见,因为很少有人有多种语言编写专家系统的经验。
我可以推荐Common Lisp,因为这种语言中有相当多的文献和现有代码,它是一种非常强大的语言,并且不难学习(阅读Peter Seibel的“Practical Common Lisp”)。当然,任何新的高级语言都需要一些学习的努力。对于Web应用程序,您可以使用例如Hunchentoot和CL-WHO,并且有很多数据库绑定(我喜欢Postmodern和CL-SQLite)。
答案 3 :(得分:1)
我建议使用CLIPS及其.net端口 clipsnet http://sourceforge.net/projects/clipsnet/