Пролог веб-программирование

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

Как это будет связано с существующими системами?

Существуют ли доступные библиотеки прологов для других языков, позволяющие вызывать модули прологов?

Ответы

Ответ 1

Для SWI-Prolog вы можете посмотреть Thea2, который поддерживает SWRL в Prolog и может также быть привязан к внешним аргументам через JPL, например HermiT для рассуждений OWL/SWRL, или Pellet и т.д.

В личной заметке я использовал JPL несколько раз в прошлом, чтобы включить веб-приложения с бэкэндом SWI-Prolog, который отлично работает, если вы намерены запрограммировать свое веб-приложение, используя язык, который является исполняемым на JVM, например Java, Groovy или Scala. Другой альтернативой было бы перевести SWI-Prolog в C или Среда С++, которую я не пробовал для веб-приложения.

Если ваше веб-приложение использует другой язык разработки, который не запускается на JVM или на C/С++, это может быть не правильным путем для вас, так как кажется, что сложнее подключить работу Среда SWI-Prolog для других языков. Однако, мы сказали, что мы успешно реализовали мост SWI-Prolog-to-anything, используя HTTP, но это меньше, чем идеальный если производительность является необходимой.

Ответ 2

swi-prolog имеет вполне приемлемый HTTP-сервер/веб-фреймворк.

Вы можете поговорить с ним по HTTP.

Существуют инструменты для анализа XML/SGML и JSON и ODBC

Ответ 3

Я не уверен, что именно вы ищете, но вы можете посмотреть Yield Prolog , что позволяет встраивать код Prolog в программы с использованием Python, С# или Javascript. API не задействован. Я не использовал это сам (пока), но это может поддаваться тому, что вы пытаетесь сделать.

Ответ 4

LPA Prolog широко используется в различных коммерческих веб-приложениях, наиболее заметно в отрасли Business Integrity - продукт для сборки документов, DealBuilder

LPA предоставляет различные архитектуры для доставки веб-приложений - некоторые из которых представлены в разделе VisiRule на веб-сайте LPA www.lpa.co.uk

Клайв

Ответ 5

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

Затем вы можете выбрать либо чистое решение, где страницы созданный и поддерживаемый самим Прологом. Или, может быть, для решения смеси, где система Prolog используется только для некоторой бизнес-логики, а другая язык программирования используется для представления и/или хранения.

Следующая таблица Сравнение Wiki дает обзор систем Prolog и являются ли они многопоточными и/или поддерживают некоторое веб-программирование:

Сравнение реализаций Prolog,
Операционная система и веб-функции

Для моего собственного решения этой проблемы я создал небольшой учебник который показывает использование Jekejeke Runtime для серверной части бизнес-логики. Jekejeke Runtime довольно гибкая, вы не можете только несколько потоков, вы также можете иметь несколько базы знаний.

Jekejeke Runtime,
Способы развертывания

Время исполнения Jekejeke, например, в настоящее время используется в продуктивной системы продаж, с помощью некоторых пользовательских блокировок чтения/записи, он позволяет даже удаленно горячая замена базы знаний администратором без перезапуска контекст сети. К сожалению, пока нет отчета.

Bye