На каком языке лучше всего писать экспертную систему? [закрытый]
является ли LISP или что-то вроде Jess лучшим выбором? Я заинтересован в написании программы, которая делает предложение на основе ответов пользователей. Вычислительные соображения не фактор, это довольно много шаблону двигателя. Также я хотел бы сделать приложение для этого и разместить его в интернете.
UPDATE: я хотел бы разместить это на блоге или веб-сайте и позволить людям использовать его оттуда. Я думаю, мой вопрос тогда есть определенный механизм вывода, который работает с семейством .NET, или PHP, или что-то в этом роде? Какие плюсы и минусы каждого варианта и т. д.
4 ответов
Шаг 1. Выберите механизм вывода. Есть много вариантов. Вот список:http://en.wikipedia.org/wiki/Expert_system#Shells_or_Inference_Engine
Шаг 2. Используйте язык, который взаимодействует с механизмом вывода.
вы будете намного счастливее, используя механизм вывода для работы экспертных систем.
Я хотел бы разместить это на блоге или веб-сайте и позволить людям использовать его с там
тривиально.
есть ли определенный механизм вывода, который работает с семейством .NET или PHP, или что-то в этом роде?
не имеет значения.
вот путаница. Ваш "веб-сайт" и ваше "приложение вывода" не имеют ничего общего друг с другом. Ничего.
ваш веб-сайт можно сделать в любом наборе инструментов, который вы можете найти. Это не имеет значения.
ваше приложение вывода может быть сделано в любом наборе инструментов вы можете найти. Это не имеет значения.
ваш веб-сайт будет вызывать приложение вывода через любой API, который имеет смысл. Самый низкий общий знаменатель в API (причина, по которой ни один из этих вариантов не имеет значения) - это сделать это.
напишите приложение вывода Как автономный инструмент командной строки.
напишите свое веб-приложение для запуска автономного инструмента, соберите вывод и включите вывод на 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/