LISP 或 Jess 之类的东西是最佳选择吗?我有兴趣编写一个根据用户的回答提出建议的程序。计算考虑并不是一个真正的因素,这几乎是一个模式匹配引擎。我也想为此制作一个应用程序并将其放在网络上。
更新:我想把它放在博客或网站上,让人们从那里使用它。我想我的问题是有一个特定的推理引擎可以与.NET 系列、PHP 或类似的东西一起使用吗?每个选项的优缺点是什么等。
LISP 或 Jess 之类的东西是最佳选择吗?我有兴趣编写一个根据用户的回答提出建议的程序。计算考虑并不是一个真正的因素,这几乎是一个模式匹配引擎。我也想为此制作一个应用程序并将其放在网络上。
更新:我想把它放在博客或网站上,让人们从那里使用它。我想我的问题是有一个特定的推理引擎可以与.NET 系列、PHP 或类似的东西一起使用吗?每个选项的优缺点是什么等。
步骤 1. 选择一个推理引擎。有很多选择。这是一个列表:http ://en.wikipedia.org/wiki/Expert_system#Shells_or_Inference_Engine
步骤 2. 使用与推理引擎交互的语言。
利用推理引擎进行专家系统工作,您会更开心。
我想把它放在博客或网站上,让人们从那里使用它
琐碎的。
是否有特定的推理引擎可以与.NET 系列、PHP 或类似的东西一起使用?
没关系。
这就是混乱。您的“网站”和您的“推理应用程序”彼此无关。没有什么。
你的网站可以用你能找到的任何工具集来完成。没关系。
您的推理应用程序可以在您能找到的任何工具集中完成。没关系。
您的网站将通过任何有意义的 API 调用推理应用程序。API 中最小的公分母(这些选择都不重要的原因)就是这样做。
将您的推理应用程序编写为独立的命令行工具。
编写您的 Web 应用程序以运行独立工具、收集输出并将输出转换为 HTML 页面。
请注意,这种多进程实现可能会更快,并且可以更好地利用多核处理器。它迫使操作系统将 Web 服务器(例如 Apache HTTPD)、Web 应用程序和专家系统作为可能的三个独立的并行进程进行管理。
你也可以看看 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 构建专家系统的教程:http://www.amzi.com/ExpertSystemsInProlog/
你会在这里听到很多主观意见,因为很少有人拥有不止一种语言编写专家系统的经验。
我可以推荐 Common Lisp,因为这种语言有相当多的文献和现有代码,而且它是一种非常强大的语言,学习起来并不难(阅读 Peter Seibel 的“Practical Common Lisp”)。当然,任何新的高级语言都需要一些努力来学习。对于 web 应用程序,您可以使用例如 Hunchentoot 和 CL-WHO,并且有很多数据库绑定(我喜欢 Postmodern 和 CL-SQLite)。
我建议 CLIPS 及其 .net 端口 clipsnet http://sourceforge.net/projects/clipsnet/