TuProlog: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 4:
 
== Что такое tuProlog ==
 
TuProlog - это основанная на Java, упрощенная версия Prolog, созданная для работы с интернет приложениями.
Для достижения этих целей tuProlog создали простым в установке, малообъемным, динамично настраиваемым и напрямую интегрированным в Java.
Установка tuProlog во многом схожа с Java. Требования по установке tuProlog не велики - присутствие standard Java VM, и возможность запуска JAR-файла посредством Java.
TuProlog довольно просто устроен. Ядро tuProlog - это небольшой объект Java, который содержит лишь самые главные части движка Prolog.
Только стандартные инструменты Prolog (такие как, ISO соответствие, I/O предикаты, DCG операторы) могут быть добавлены или удалены из движка tuProlog, в соответствии с задачами конкретного пользователя. Что удивительно, простота tuProlog делает его легко настраиваемым.
 
На самом деле, простой, но мощный механизм, требует постоянно загружать и выгружать предикаты, функторы, и операторы, как статично, так и динамично: это возможно благодаря библиотекам Prolog. Библиотеки могут быть определены в стандартном дистрибутиве, или собственноручно пользователем. Библиотека tuProlog может быть создана как при помощи Prolog, так и Java, или обоими языками, и может быть использована для настройки движка tuProlog во время запуска, или же загружена (и затем выгружена) динамично, в любое время, пока приложение запущено.
 
Интеграция с Java была достигнута почти во всех областях, таким образом, компоненты tuProlog могут быть разработаны любым доступным способом — как декларативно\логически так и императивно\объектно-ориентированно. Со стороны Prolog, благодаря Java-библиотекам, любой объект Java (объект, класс, пакет) может быть представлен как термин Prolog. Например, Java пакеты такие как Swing и JDBC могут быть непосредственно извлечены из Prolog, незамедлительно открывая tuProlog доступ к графическим возможностям и базам данных. Со стороны Java, движок tuProlog может быть вызван и использован как простой Java-объект или использован в много-потоковом контексте, согласно установкам программы.
 
Также многообразие различных движков tuProlog может быть использовано из Java-приложения, пусть каждый их них и настроен под отдельные библиотеки и базы знаний.
Наконец, совместимость направлена в соответствии с двумя главными направлениями: стандартными шаблонами Internet, и координационными моделями.
TuProlog поддерживает взаимодействие посредством TCP/IP и RMI, и также может быть доступен через CORBA-сервис. Вдобавок, tuProlog поддерживает кортежно-ориентированные направления (tuple-based coordination).
Компоненты tuProlog могут быть организованы на основе Java-ориентированных tuple spaces, logic tuple spaces, и ReSpecT tuple centres. Также tuProlog может использовать инфраструктуру Internet, обеспечивая tuplebased координационные услуги, такие как LuCe и TuCSoN.
 
TuProlog разработан исследовательской группой aliCE, университета Alma Mater Studiorum—Universit`a di Bologna, site of Cesena; tuProlog является свободно распространяемым ПО, и выпускается согласно лицензии LGPL, позволяя использовать его для коммерческих целей.
 
== Установка tuProlog ==
 
Для начала вам необходим дистрибутив tuProlog. Вы можете скачать его с официального сайта: http://tuprolog.alice.unibo.it
Последнюю версию вы можете найти во вкладке загрузок (Downloads).
Загрузочный файл будет иметь формат 2p-X.Y.Z.zip, где X.Y.Z обозначает версию tuProlog: Например, дистрибутив 2p-2.0.zip содержит версию 2.0.
После загрузки файла, разархивируйте содержимое в любую папку на вашем ПК; там должны появится следующие каталоги:
 
|---lib
|---doc
| |---api
|---test
|---src
 
Папка lib содержит tuProlog Java исходники (бинарники) в JAR формате:
• 2p.jar содержит все необходимое для использования tuProlog, ядро API, агентное приложение, библиотеки, IDE инструменты и другие дополнения.
• Там находится три JAR файла, которые являются вспомогательными (helper packages) для пользователей, которые хотят использовать особые возможности из дистрибутива tuProlog:
– tuprolog.jar содержит ядро API, агентное приложение и стандартные библиотеки.
– tuprolog-ide.jar содержит только инструменты IDE.
–tuprolog-extensions.jar содержит дополнительные библиотеки и другие расширения tuProlog.
 
Папка doc содержит руководство (tuprolog-guide.pdf) и Java документацию о tuProlog API, находящиеся в подпапке api.
 
Папка test содержит исходный код и тестер на совместимость с ПО, и примеры использования библиотек.
 
Папка src содержит исходники Java для движка tuProlog.
 
После скачивания и распаковки tuProlog вы можете установить его различными путями, в зависимости от такого от того как вы собираетесь его использовать:
 
• Вы можете запускать tuProlog из корневой папки, которая играет роль центрального хранилища информации, куда вы обычно устанавливаете программы. В таком случае вам придется переместить папку tuProlog с соответствием с вашей файловой системой.
После этого вам необходимо добавлять опцию -cp <jar file> всякий раз когда вы вызываете интерпретатор Java, определяющий путь к 2p.jar, содержащийся в подпапке lib.
Например, представим, что вы разархивировали 2p-2.0.zip дистрибутив в папку java/tools и вам необходимо запустить приложение ApplicationClass с помощью tuProlog; далее вам необходимо вызвать интерпретатор Java:
 
java -cp /java/tools/2p-2.0/lib/2p.jar ApplicationClass
 
Или же вы можете добавить требуемый файл tuProlog JAR к CLASSPATH environment variable, (Обратитесь к руководству по вашей операционной системе за деталями) позволяя избежать опции –cp всякий раз когда вы вызываете интерпретатор.
Таким образом, вы можете использовать приложения tuProlog, просто вызывая интерпретатор Java:
 
Java-класс приложений (ApplicationClass)
 
Вы можете использовать дистрибутив, с помощью сценариев (скриптов, scripts) находящихся в папке bin, или таких как JAR, находящихся в папке lib.
 
• Вы можете использовать tuProlog из вашей текущей рабочей папки.
В данном случае вам необходимо скопировать 2p.jar файл из папки lib в рабочую папку. Далее, посредством терминала (terminal) или командной строки вводите:
 
java -cp 2p.jar ApplicationClass
 
Это приведет к вызову интерпретатора Java и позволит использовать классы tuProlog.
Вы можете использовать CLASSPATH environment variable, чтобы добиться того же результата.
 
• Вы можете непосредственно использовать файлы, содержащиеся в архиве 2p.jar. В данном случае, скопируйте JAR файл в любую папку, откройте его с помощью дистрибутива Java. Например, откройте терминал или командную строку из той папки и запустите:
 
jar -xvf 2p.jar
 
После выполнения данной операции вы можете использовать tuProlog непосредственно из данной папки, без необходимости ни настраивать интерпретатор, ни использовать operating system’s environment variables.
 
== Как начать работу с tuProlog ==
 
Дистрибутив tuProlog предлагает инструменты для запуска уже существующих программ Prolog, или помочь в разработке новых теорий (theories) Prolog и взаимодействовать с движком Prolog.
В зависимости от целей использования tuProlog, вы можете начать знакомство с стандартными инструментами различными способами.
 
=== Советы для программистов ===
 
Как программисту, использующему Prolog, вы, возможно, захотите начать знакомство с возможностями tuProlog, запуская свои программы, написанные на языке Prolog.
Вы можете запустить ваши программы как исходные текстовые файлы (source text files) используя tuProlog Agent tool. Этот инструмент считывает имя текстового файла содержащего теорию, и задачу которую необходимо выполнить, и затем он запускает демонстрацию (demonstration).
После того как вы установили tuProlog в папку dir, вы можете использовать следующий шаблон для вызова Agent tool из командной строки:
 
java -cp dir /2p.jar
alice.tuprolog.Agent PrologTextFile {Goal }
 
Например, текстовый файл носит имя hello.pl и содержит следующий текст:
 
go :- write(’hello, world!’), nl.
 
Для запуска этой программы вы можете напечатать:
 
java -cp dir /2p.jar alice.tuprolog.Agent hello.pl go.
 
Затем, Agent tool попытается выполнить программу, следуя инструкциям, указанным в теории hello.pl. В результате, надпись “hello, world!” должна появиться на экране.
Так же цель может быть добавлена, используя исходники Prolog. Например, допустим, что файл hellogo.pl содержит следующий текст:
 
:- solve(go).
go :- write(’hello, world!’), nl.
 
Затем допишите:
 
java -cp dir /2p.jar alice.tuprolog.Agent hellogo.pl
 
В результате появиться надпись “hello, world!”.
 
=== Советы для разработчиков ===
 
Как разработчик, вы можете начать знакомство с TuProlog - это воспользоваться преимуществами Графического Пользовательского Интерфейса (GUI, Graphical User Interface) включенного в дистрибутив tuProlog. ГПИ выводится следующей командой:
 
java -cp dir /2p.jar alice.tuprologx.ide.GUILauncher
 
Среда разработчика, созданная на основе ГПИ, делает стандартные возможности Prolog легкодоступными: такие как запросы, просмотр текущего решения проблемы вместе с прилагаемой подстановкой переменных, отслеживание, и так далее. Также, она дает вам возможность просматривать и редактировать текущие теории Prolog, содержащиеся в движке, и наблюдать за работой tuProlog во время решения конкретных задач. Наконец, она предлагает вам средства для динамичной загрузки и выгрузки предикатных библиотек содержащихся в движке tuProlog.
 
Необходимо помнить, что 2p.jar - Java Archive, так что, при вызове команды:
 
java -jar 2p.jar
 
В папке dir, или по двойному щелчку на него, в большинстве современных операционных систем, консоль автоматически ГПИ вызывается.
Так же следует опробовать интерактивное окружение движка tuProlog. В данном случае, вам необходимо вызвать подсказку tuProlog, используя оболочку коммандной строки которая находится в дистрибутиве.
Чтобы вызвать ее, наберите:
 
java -cp dir /2p.jar alice.tuprologx.ide.CUIConsole
 
Это запустит интерпретатор tuProlog через консоль, наподобие пользовательского режима командной строки. Чтоб выйти из консоли tuProlog, вам необходимо обратится к комманде стоп (halt.).