- •Глава 0 логика, логическое программирование и пролог
- •Знакомство с логическим программированием Определение логического программирования
- •Наследие логики
- •2. Традиционная логика Аристотель
- •Законы традиционной логики
- •Критика силлогизма
- •3. Начальный период развития формальной логики Де Морган
- •Таблицы истинности
- •Фреже и Пеано
- •Исчисления
- •4. Логика высказываний Высказывания
- •Правильно построенные формулы
- •Т а б л и ц а 0. 8
- •Истинностное значение ппф
- •Теории и аксиомы
- •Методы доказательства
- •Метаязык и объектный язык
- •5. Логика предикатов Атомарные формулы
- •Правильно построенные формулы
- •Истинностное значение ппф
- •Построение теории некоторой области знаний
- •Переменные как термы
- •Семантические свойства формул
- •Методы доказательства
- •Аксиоматическое определение отношения
- •Разрешимость свойств
- •0.6. От формальной логики - к логическому программированию Автоматизация процедур доказательства
- •Процедуры опровержения
- •Основание Хербранда
- •Хербрандовские интерпретации
- •Полезные свойства хербрандовских интерпретаций
- •Фразовая форма
- •Резолюция
- •0.7. Развитие языка пролог Развитие языка Пролог
- •Особенности языка Пролог
- •0. 8. Синтаксис языка пролог
- •Пример Пролог-программы
- •9. Фразы хорна как средство представления знаний Решение задач
- •Программирование
- •0.10. Семантика пролога Три семантические модели
- •Декларативная модель
- •Процедурная модель
- •Модель в виде абстрактной машины
- •Сферы употребления моделей
- •0.11. Метаязык / объектный язык Функции метаязыка
- •Метаязык Пролога
- •Предикаты метаязыка
- •0. 12. Сферы применения языка пролог
- •Реляционные базы данных
- •Программная инженерия
- •Естественный язык
- •Представление знаний
- •Экспертные системы
- •Библиографические заметки
Представление знаний
Все основные концепции, используемые в формализмах представления знаний для задач искусственного интеллекта, включая
семантические сети,
фреймы,
правила продукций и
объектно-ориентированное программирование,
можно выразить при помощи логики и реализовать средствами логического программирования. Эта тема детально освещается в гл. 6.
Экспертные системы
При представлении знаний одной из главных задач является выбор такой формы представления, которая может быть использована в экспертных системах. При помощи Пролога 'были построены экспертные системы для ряда сфер, включая решение уравнений [13], медицину ([29, 38]), законодательство ([94, 27]), юриспруденцию, архитектуру [103], автоматизацию заводского производства, проектирование электронных схем ([109, 115]), синтез микропрограмм ([86]), анализ финансового положения и помощь в принятии решений ([59, 60]). Вопросы построения интерфейса экспертной системы с пользователем обсуждаются в гл. 7.
Библиографические заметки
В число вводных учебных курсов по логике высказываний и логике предикатов входят работы [26, 37, 71]. В работах [15] и [64] те же темы освещаются с вычислительных позиций. Философская точка зрения на традиционную логику лучше всего излагается в работах [47] и [104]. История развития формальной логики отражена в работах [8, 30, 43, 75, 117] и, в особенности, в работе [92] — в приложении "Исторические заметки".
Наиболее полное освещение правила резолюции дано в работе [92]. Эта тема также затрагивается в [12, 15, 55]. История развития логического программирования рассмотрена в [100, 101]. Теория логического программирования лучше всего излагается в работах [55, 46, 62].
Язык Пролог рассматривается в работах [22, 20, 46, 53]. Для обучения практическому программированию на Прологе лучше всего подходит книга Кларка и Маккейба, хотя синтаксис всех приведенных там примеров соответствует синтаксису микро-Пролога. Реализация Пролога освещается в работах [14, 46, 53]. Взгляды на Пролог специалистов-ортодоксалов, работающих в области искусственного интеллекта, изложены в работе [4].
Различие между метаязыком и объектным языком впервые было отмечено Гильбертом [44], оно послужило средством, помогающим избежать возникновения логических парадоксов. Роль метаязыка в формальной логике исследуется в работах [75], [88, с. 9—17] и [71, с. 32]. Роль метаязыка в логическом программировании обсуждается в [6, 7, 55].
Интересный способ применения предикатов метаязыка предложен в работах [52, 73].
Семантика языков логического программирования обсуждается в работе [116], а также во всех перечисленных книгах по логическому программированию. Важность семантики для представления знаний подчеркивается в работах [12, 9, 41].
