Prova - это язык программирования с открытым исходным кодом , сочетающий Пролог и Java .
Описание
Prova - это система сценариев на основе правил, которая используется для промежуточного программного обеспечения . Язык сочетает в себе императивное и декларативное программирование с использованием синтаксиса пролога, который позволяет вызывать функции Java. Таким образом, надежная кодовая база Java сочетается с такими функциями Prolog, как отслеживание с возвратом.
Prova является производным от Mandarax , системы вывода на основе Java, разработанной Йенсом Дитрихом . Prova расширяет Mandarax, обеспечивая правильный синтаксис языка , интеграцию собственного синтаксиса с Java, обмен сообщениями агента и правила реакции . Развитие этого языка было поддержано грантом, предоставленным в рамках проектов ЕС GeneStream и BioGRID. В проекте язык используется как основа на основе правил для распределенных веб-приложений при интеграции биомедицинских данных , в частности, системы GoPubMed .
Цели дизайна Prova:
- Сочетайте декларативное и объектно-ориентированное программирование .
- Представьте логику и поведение агентов как правила.
- Доступ к источникам данных через оболочки, написанные на Java, или оболочки командной строки, такие как Perl .
- Сделайте Java API различных пакетов доступным в виде правил.
- Запускать в среде выполнения Java.
- Обеспечьте быстрое прототипирование приложений.
- Предложите платформу на основе правил для программирования распределенных агентов .
Prova стремится обеспечить поддержку задач интеграции данных, когда важно следующее:
- Прозрачность локации (локальная, удаленная, зеркала);
- Прозрачность формата (база данных, RDF , XML , HTML , плоские файлы , вычислительный ресурс);
- Устойчивость к изменениям (базы данных и веб-сайты часто меняются);
- Использование открытых и открытых технологий;
- Понятность и модифицируемость для не ИТ-специалиста;
- Представление экономических знаний ;
- Расширяемость с дополнительным функционалом;
- Использование онтологий .
Prova использовалась в качестве ключевого механизма интеграции сервисов в продукте Xcalia, где он используется для вычисления эффективных глобальных планов выполнения для нескольких источников данных, таких как веб-сервисы, TP отслеживает транзакции, такие как CICS или IMS , сообщения MOM, такие как MQ-Series , упакованные приложения с соединителем JCA , унаследованные источники данных на мэйнфреймах с соединителем JCA, удаленные объекты Java EJB, рассматриваемые как поставщики данных, или даже локальные объекты Java. Prova позволяет поставлять инновационную программную платформу для реализации сервис-ориентированной архитектуры .
Рекомендации
- А. Козленков и М. Шредер. PROVA: Java-скрипты на основе правил для биоинформатической семантической сети . В Э. Раме, редакторе Международного семинара по интеграции данных в естественных науках, Лейпциг, Германия, в Lecture Notes in Computer Science, Springer-Verlag, vol. 2994, стр. 17–30, 2004.
- Н. Комбс, Ж.-Л. Ардуант. Правила и сценарии в искусственном интеллекте игр, AAAI 2004 Workshop on Challenges in Game AI, 2004.
- Дж. Дитрих, А. Козленков, М. Шредер, Г. Вагнер. Агенты на основе правил для семантической паутины, исследований и приложений электронной коммерции, т. 2, вып. 4. С. 323–338, 2004.
- А. Пашке, М. Бихлер и Дж. Дитрих. ContractLog: подход к контролю на основе правил и выполнению соглашений об уровне обслуживания, Int. Конф. по правилам и языкам разметки правил для семантической сети (RuleML 2005), Голуэй, Ирландия, 2005.
- А. Козленков, Р. Пеналоза, В. Нигам, Л. Ройер, Г. Давельбайт, М. Шредер. Prova: Java Scripting на основе правил для распределенных веб-приложений: тематическое исследование в области биоинформатики, реактивность в веб-семинаре, Мюнхен, 2006 г.