На каком языке лучше всего писать экспертную систему? [закрытый]

является ли LISP или что-то вроде Jess лучшим выбором? Я заинтересован в написании программы, которая делает предложение на основе ответов пользователей. Вычислительные соображения не фактор, это довольно много шаблону двигателя. Также я хотел бы сделать приложение для этого и разместить его в интернете.

UPDATE: я хотел бы разместить это на блоге или веб-сайте и позволить людям использовать его оттуда. Я думаю, мой вопрос тогда есть определенный механизм вывода, который работает с семейством .NET, или PHP, или что-то в этом роде? Какие плюсы и минусы каждого варианта и т. д.

4 ответов


Шаг 1. Выберите механизм вывода. Есть много вариантов. Вот список:http://en.wikipedia.org/wiki/Expert_system#Shells_or_Inference_Engine

Шаг 2. Используйте язык, который взаимодействует с механизмом вывода.

вы будете намного счастливее, используя механизм вывода для работы экспертных систем.


Я хотел бы разместить это на блоге или веб-сайте и позволить людям использовать его с там

тривиально.

есть ли определенный механизм вывода, который работает с семейством .NET или PHP, или что-то в этом роде?

не имеет значения.

вот путаница. Ваш "веб-сайт" и ваше "приложение вывода" не имеют ничего общего друг с другом. Ничего.

ваш веб-сайт можно сделать в любом наборе инструментов, который вы можете найти. Это не имеет значения.

ваше приложение вывода может быть сделано в любом наборе инструментов вы можете найти. Это не имеет значения.

ваш веб-сайт будет вызывать приложение вывода через любой API, который имеет смысл. Самый низкий общий знаменатель в API (причина, по которой ни один из этих вариантов не имеет значения) - это сделать это.

  1. напишите приложение вывода Как автономный инструмент командной строки.

  2. напишите свое веб-приложение для запуска автономного инструмента, соберите вывод и включите вывод на HTML-страницу.

обратите внимание, что это мульти-porocess реализация может быть быстрее и более эффективно использовать многоядерные процессоры. Это заставляет ОС управлять веб-сервером (например, Apache HTTPD), веб-приложением и экспертной системой как потенциально тремя отдельными параллельными процессами.


вы также можете взглянуть на Prolog. SWI-Prolog (http://www.swi-prolog.org) очень полный и имеет библиотеку поддержки HTTP (http://www.swi-prolog.org/pldoc/package/http.html). Эта статья может быть полезна при использовании SWI-Prolog в интернете ("SWI-Prolog and the web"http://dare.uva.nl/record/285350)

и вы можете найти учебник по созданию экспертных систем С prolog на: http://www.amzi.com/ExpertSystemsInProlog/


здесь вы услышите много субъективных мнений, так как мало кто имеет опыт работы в более чем одной экспертной системе написания языков.

Я могу порекомендовать Common Lisp, так как на этом языке имеется довольно много литературы и существующего кода, и это очень мощный язык и не слишком сложный для изучения (читайте "практический Common Lisp" Питера Сейбеля). Конечно, любой новый язык высокого уровня требует определенных усилий для изучения. Для веб-приложения, вы можете использовать, например,, Hunchentoot и CL-WHO, и есть много привязок к базе данных (мне нравится Postmodern и CL-SQLite).


Я бы предложил клипы и его .net-порт clipsnet http://sourceforge.net/projects/clipsnet/