4. Базы знаний на ЭВМ.
Любая база данных
может быть описана на языке Пролог набором фактов. При этом любые запросы к
этим базам данных можно выразить с помощью сложносоставных правил на Прологе.
Пример сложносоставного вопроса:
?
папа( х,у ),папа( y, Вова); - кто папа у папы Вовы?
Правила в Прологе
– это правила логического вывода. Слева в правилах записывается следствие,
а справа – предусловие. Предусловие может состоять из
одного или нескольких предикатов, разделяемых запятыми.
Примеры записи правил вывода на Прологе:
студент(х)
<- занятие(х,учеба); - Студент
- тот, кто занят учебой.
нумизмат(х) <- собирает(х,монеты); - Нумизмат -собирает монеты.
Примеры вопросов на применение
правил вывода:
? студент( х
); -
Кто - студент?
х = Алеша
х = Лена
?
нумизмат( у ) - Кто -
нумизмат?
у = Алеша
Правила вывода
в программах на Прологе используются для описания определений, запросов к базам
данных, а также обращений к другим правилам и процедурам. Примеры записи
правил:
родитель(x,y) ¬ мама(x,y);
родитель(x,y) ¬ папа(x,y);
бабушка(x,z) ¬ мама(x,y),родитель(y,z);
дедушка(x,z) ¬ папа(x,y),родитель(y,z);
База знаний в ЭВМ – это совокупность фактов и правил вывода, хранящихся в
памяти ЭВМ. Содержание баз знаний составляют конкретные и обобщенные сведения
об определенной предметной области или сфере деятельности.
Обобщенные
сведения в базах знаний записываются в форме правил вывода, выражающих
определения понятий. Примеры обобщенных сведений:
бабушка(х,z)
<- мама(х,у),мама(у,z); -
бабушка - это мама мамы
двоечник(х) <- оценка( х,_ ,2 ); - двоечник - тот, у кого есть двойки.
Использование логического вывода и конкретных и обобщенных сведений
позволяет интерпретаторам Пролога давать ответы на широкий круг вопросов. Для
этого соответствующая база знаний должна храниться в памяти ЭВМ.
Пролог как
язык программирования позволяет создавать и проверять на ЭВМ логические
спецификации самых сложных баз данных и информационных систем и искать решения
логических проблем над базами знаний.
Главная
особенность Пролога - механизмы поиска и обработки осмысленной информации в
базах данных на основе правил логического вывода из имеющихся данных и правил,
приведенных в программе.
Пример логического
вывода, осуществляемого ЭВМ:
мама( Люба, Оля ) ; -
Люба - мама Оли.
мама( Зина, Люба ); - Зина - мама Любы.
бабушка(х,z) <- мама(х,у), мама(у,z); - бабушка
- это мама мамы.
? бабушка( х,
Оля) - кто бабушка Оли?
х = Зина