- •Интеллектуальные информационные системы
- •Введение
- •1. Логика предикатов первого порядка
- •1.1. Основы логики предикатов первого порядка
- •1.2. Основы Пролога
- •Примеры использования дизъюнкции в Прологе
- •1.3. Назначение и основные возможности swi-Prolog
- •Некоторые операции и предикаты swi-Prolog
- •1.4. Лабораторная работа № 1 Представление фактов и правил в Прологе
- •1.5. Лабораторная работа № 2. Рекурсия в Прологе
- •1.6. Лабораторная работа № 3. Обработка списков в Прологе
- •Списки и их составные части
- •2. Онтологии
- •2.1. Онтологии и семантическая паутина
- •2.2. Краткие сведения о спецификациях семантической паутины
- •Стандартные пространства имен
- •Классы rdf/rdfs
- •Свойства rdf/rdfs
- •2.3. Лабораторная работа № 4 Построение онтологической модели в Protégé. Создание классов
- •2.4. Лабораторная работа № 5 Построение онтологической модели в Protégé. Создание экземпляров классов
- •2.5. Лабораторная работа № 6 Выполнение sparql-запросов в Protégé
- •Модификаторы
- •3. Эвристические алгоритмы
- •3.1. Методы поиска решений с использованием графов
- •Сравнительная характеристика методов
- •3.2. Лабораторная работа № 7 Решение оптимизационной задачи с использованием эвристического алгоритма
- •Характеристика дополнительных ограничений скорости и мероприятий по их устранению
- •Варианты заданий на выполнение лабораторной работы
- •4. Нечеткие множества
- •4.1. Основы теории нечетких множеств и нечеткой логики
- •4.2. Лабораторная работа № 8. Решение прикладной задачи с использованием нечетких множеств
- •5. Генетические алгоритмы
- •5.1. Эволюционные вычисления
- •5.2. Лабораторная работа № 9. Решение оптимизационной задачи с использованием генетического алгоритма
- •Исходная популяция
- •Популяция после скрещивания
- •Расчет значений целевой функции
- •Популяция после редукции
- •Варианты заданий
- •6. Искусственные нейронные сети
- •6.1. Распознавание образов
- •6.2. Лабораторная работа № 10. Распознавание образов с использованием искусственной нейронной сети
- •Варианты заданий на выполнение лабораторной работы
- •Заключение
- •Библиографический список
- •Оглавление
- •Интеллектуальные информационные системы
- •6 80021, Г. Хабаровск, ул. Серышева, 47
- •Интеллектуальные информационные системы
1.3. Назначение и основные возможности swi-Prolog
SWI-Prolog является свободно распространяемой (англ. Free Software) реализацией (диалектом) языка программирования Пролог, которая практически полностью соответствует стандарту ISO4/IEC5 13211-1 «Информационные технологии. Языки программирования. Пролог. Часть 1. Общее ядро».
SWI-Prolog позволяет разрабатывать любые приложения, включая Web-приложения и системы параллельных вычислений, но основным направлением использования является разработка экспертных систем, программ обработки естественного языка, обучающих программ, интеллектуальных игр и т. п.
В табл. 2 приведены некоторые операции и предикаты SWI-Prolog, которые используются для иллюстрации примеров и потребуются для выполнения лабораторных работ.
Таблица 2
Некоторые операции и предикаты swi-Prolog
Операция / Предикат |
Назначение |
true |
Истина |
fail, false |
Ложь |
= |
Для переменной, стоящей слева от операции:
|
<, =<, >=, > |
Арифметические (только для чисел) операции сравнения |
=:= |
Арифметическое равенство |
=\= |
Арифметическое неравенство |
is |
Для переменной, стоящей слева от операции:
|
@<, @=<, @>=, @> |
Операции сравнения для констант и переменных любого типа (чисел, строк, списков и т. д.) |
== |
Равенство констант и переменных любого типа |
not(A) |
Отрицание логического выражения A |
read(A) |
Чтение значения с клавиатуры и присваивание его переменной А |
write(A) |
Печать А на экран с установкой курсора после последнего напечатанного символа |
writeln(A) |
Печать А на экран с переводом курсора в начало следующей строки |
nl |
Перевод курсора в начало следующей строки |
repeat |
Предикат, выдающий новое истинное значение при возврате. Передоказываемый предикат |
! |
Предикат (cut, сократить), запрещающий возврат далее той точки, где он стоит |
Программирование в SWI-Prolog возможно в разных вариантах:
с помощью стандартной offline-среды6 программирования (http://www.swi-prolog.org);
Рис. 1. Стандартная offline-среда программирования SWI-Prolog
с помощью offline-среды программирования SWI-Prolog-Editor (http://lakk.bildung.hessen.de/netzwerk/faecher/informatik/swiprolog/indexe.html);
Рис. 2. Среда программирования SWI-Prolog-Editor
с помощью стандартной online-среды7 программирования SWI-Prolog (http://swish.swi-prolog.org);
Рис. 3. Стандартная online-среда программирования SWI-Prolog
Дальнейшая работа со SWI-Prolog рассматривается на примере online-среды.
