ЯЗык "Пролог". Понятие базы знаний, определение. Задачи и упражнения

Страницы работы

Содержание работы

1. ЯЗЫКПРОЛОГ 1.1. Понятиебазызнаний

Часто можно услышать отрицательный ответ на вопрос: "Может ли машина "мыслить"?". Прежде, чем согласиться с этим мнением или пытаться с ним спорить, следует определить, что понимается под способностьюк мышлению. Если свести процесс мышления к проведению осмысленных рассуждений, то можно считать, что машина способна "мыслить", если ей сообщить исходные факты и правила вывода умозаключений. После того, как это сделано, ей можно задавать вопросы, на которые ЭВМ будет давать осмысленные ответы.

ОПРЕДЕЛЕНИЕ

БАЗА ДАННЫХ - набор сведений, записанных в форме, "понятной" ЭВМ.

ОПРЕДЕЛЕНИЕ

БАЗА ЗНАНИЙ - база данных, в которой можно накапливать информацию в памяти ЭВМ, искать нужную информацию и получать от машины логически осмысленные заключения и рекомендации.

Для создания баз знаний используются языки логического программирования, к числу которых относится язык Пролог.

1.2. Задачииупражнения

1.  Что такое «база данных»?

2.  Что такое «база знаний»?

2. ОСНОВНЫЕПОНЯТИЯЯЗЫКАПРОЛОГ:

ФАКТЫ, ПРАВИЛА, ВОПРОСЫ Основными предложениями языка Пролог являются:

•  факты;

•  правила;

•  вопросы.


ОПРЕДЕЛЕНИЕ

ФАКТЫ- сведения о ком-либо или о чем-либо, записанные на языке, который "понимает" ЭВМ.

Факты на Прологе записываются в следующей форме:

<ключевое слово> (<объект !>,..., <объект к>).

"." - точка - обозначает конец факта (и вообще любого предложения).

Например, мы хотим "сообщить" компьютеру сведения о семье:

"Наталья - мама Марии", "Анна - мама Натальи". Запишем эти факты б виде: мама(<кто>, <чья>). Наши сведения в форме,

"понятной" ЭВМ, будут выглядеть так:

мама (наталья, мэрия), мама (аннз, наталья).

(Запись слов с маленькой буквы (включая имена) не является ошибкой, а обусловлена синтаксисом языка.)

Порядок следования объектов задается один раз (в начале), а затем необходимо будет придерживаться его при записи всех фактов (а также при создании правил и при постановке вопросов). Введя эти факты в ЭВМ, мы сможем задать машине определенные вопросы.

ОПРЕДЕЛЕНИЕ

ВОПРОС- синтаксически верное предложение Пролога, по форме напоминающее факт; используется для извлечения информации из Пролог-программы.

В вопросах на месте неизвестного объекта ставится имя . переменной, записываемое с заглавной буквы.

Далее мы будем записывать вопросы и ответы в трех колонках: в первой - какой вопрос мы задаем (на русском языке), во второй - этот же вопрос на Прологе, а в третьей - ответ ЭВМ.


По-русски:

На Прологе:

Ответ ЭВМ:

Как зовут маму Марии?

Цель: мама(Х, ма-рия).

Х=наталья

Зададим еще несколько вопросов:

По-русски:

На Прологе:

Ответ ЭВМ:

Чья мама Анна?

Цель: мама (анна, Y).

У=наталья

Кто чья мама?

Цель: мама (X, Y).

Х=наталья

У=мария

Х=анна

У=наталья

Кто мама у мамы Марии?

Цель: мама (X, мэрия), мама (Y, X).

Х=наталья У=анна

Запятая в вопросе обозначает логическую связку и.

Теперь "научим" машину рассуждать. Для этого надо сообщить ей правила, по которым проводятся рассуждения. ОПРЕДЕЛЕНИЕ

ПРАВИЛА- способ получения новых сведений на основе уже имеющихся.

Для записи правил используется следующая форма: <ключевоеслово> (<параметр 1>,..., <параметрк>):- <условия>., где <ключевое слово> - имя правила;

<параметр 1>, .... <параметр к> - параметры, от которых зависит ответ; <условия> - условия ("посылки"), из которых делается вывод. Знак ":-" читается как "если", "это", "когда".

В правой части правила могут присутствовать имена фактов или других правил, разделяемые запятой (логическая связка и-конъюнкция) или точкой с запятой (логическая связка или-дизъюнкция).

Например, запишем правило для "определения" бабушки:


бабушка (<кто>,<чья>).


! По-русски:


На Прологе:


Похожие материалы

Информация о работе