Какой лучший язык для написания экспертной системы?

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

ОБНОВЛЕНИЕ: я хотел бы поместить это в блог или вебсайт и позволить людям использовать это оттуда. Наверное, мой вопрос: есть ли конкретный механизм логического вывода, который работает с семейством.NET, или с PHP, или с чем-то в этом роде? Каковы некоторые плюсы и минусы каждого варианта и т. Д.

4 ответа

Решение

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

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

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


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

Trivial.

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

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

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

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

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

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

  1. Напишите ваше приложение логического вывода как самостоятельный инструмент командной строки.

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

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

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

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

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

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

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

Другие вопросы по тегам