Пролог веб-программирование
На работе обсуждалось использование пролога в качестве бэкенда для механизма правил в веб-приложении.
Как это будет связано с существующими системами?
Существуют ли доступные библиотеки прологов для других языков, позволяющие вызывать модули прологов?
Ответы
Ответ 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