1. ЯЗЫКПРОЛОГ 1.1. Понятиебазызнаний
Часто можно услышать отрицательный ответ на вопрос: "Может ли машина "мыслить"?". Прежде, чем согласиться с этим мнением или пытаться с ним спорить, следует определить, что понимается под способностьюк мышлению. Если свести процесс мышления к проведению осмысленных рассуждений, то можно считать, что машина способна "мыслить", если ей сообщить исходные факты и правила вывода умозаключений. После того, как это сделано, ей можно задавать вопросы, на которые ЭВМ будет давать осмысленные ответы.
ОПРЕДЕЛЕНИЕ
БАЗА ДАННЫХ - набор сведений, записанных в форме, "понятной" ЭВМ.
ОПРЕДЕЛЕНИЕ
БАЗА ЗНАНИЙ - база данных, в которой можно накапливать информацию в памяти ЭВМ, искать нужную информацию и получать от машины логически осмысленные заключения и рекомендации.
Для создания баз знаний используются языки логического программирования, к числу которых относится язык Пролог.
1.2. Задачииупражнения
1. Что такое «база данных»?
2. Что такое «база знаний»?
2. ОСНОВНЫЕПОНЯТИЯЯЗЫКАПРОЛОГ:
ФАКТЫ, ПРАВИЛА, ВОПРОСЫ Основными предложениями языка Пролог являются:
• факты;
• правила;
• вопросы.
ОПРЕДЕЛЕНИЕ
ФАКТЫ- сведения о ком-либо или о чем-либо, записанные на языке, который "понимает" ЭВМ.
Факты на Прологе записываются в следующей форме:
<ключевое слово> (<объект !>,..., <объект к>).
"." - точка - обозначает конец факта (и вообще любого предложения).
Например, мы хотим "сообщить" компьютеру сведения о семье:
"Наталья - мама Марии", "Анна - мама Натальи". Запишем эти факты б виде: мама(<кто>, <чья>). Наши сведения в форме,
"понятной" ЭВМ, будут выглядеть так:
мама (наталья, мэрия), мама (аннз, наталья).
(Запись слов с маленькой буквы (включая имена) не является ошибкой, а обусловлена синтаксисом языка.)
Порядок следования объектов задается один раз (в начале), а затем необходимо будет придерживаться его при записи всех фактов (а также при создании правил и при постановке вопросов). Введя эти факты в ЭВМ, мы сможем задать машине определенные вопросы.
ОПРЕДЕЛЕНИЕ
ВОПРОС- синтаксически верное предложение Пролога, по форме напоминающее факт; используется для извлечения информации из Пролог-программы.
В вопросах на месте неизвестного объекта ставится имя . переменной, записываемое с заглавной буквы.
Далее мы будем записывать вопросы и ответы в трех колонках: в первой - какой вопрос мы задаем (на русском языке), во второй - этот же вопрос на Прологе, а в третьей - ответ ЭВМ.
По-русски: |
На Прологе: |
Ответ ЭВМ: |
Как зовут маму Марии? |
Цель: мама(Х, ма-рия). |
Х=наталья |
Зададим еще несколько вопросов:
По-русски: |
На Прологе: |
Ответ ЭВМ: |
Чья мама Анна? |
Цель: мама (анна, Y). |
У=наталья |
Кто чья мама? |
Цель: мама (X, Y). |
Х=наталья |
У=мария |
||
Х=анна |
||
У=наталья |
||
Кто мама у мамы Марии? |
Цель: мама (X, мэрия), мама (Y, X). |
Х=наталья У=анна |
Запятая в вопросе обозначает логическую связку и.
Теперь "научим" машину рассуждать. Для этого надо сообщить ей правила, по которым проводятся рассуждения. ОПРЕДЕЛЕНИЕ
ПРАВИЛА- способ получения новых сведений на основе уже имеющихся.
Для записи правил используется следующая форма: <ключевоеслово> (<параметр 1>,..., <параметрк>):- <условия>., где <ключевое слово> - имя правила;
<параметр 1>, .... <параметр к> - параметры, от которых зависит ответ; <условия> - условия ("посылки"), из которых делается вывод. Знак ":-" читается как "если", "это", "когда".
В правой части правила могут присутствовать имена фактов или других правил, разделяемые запятой (логическая связка и-конъюнкция) или точкой с запятой (логическая связка или-дизъюнкция).
Например, запишем правило для "определения" бабушки:
бабушка (<кто>,<чья>).
! По-русски:
На Прологе:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.