Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Тема «Факты. Предикатная форма представления фактов.



Базы данных Пролога. Простые запросы»

 

Эту тему уместно начать с изучения основ логики, на которой базируется Пролог. На примерах покажите, что такое высказывание (суждение) и то, что всякое высказывание может быть истинным или ложным. Следует дать понятие «утверждение» — суждение, которое требуется доказа/ь или опровергнуть. Другие вопросы математической логики в рамках темы не рассматриваются.

При работе над понятием «факт» следует обратить внимание на то, что в программах на Прологе под фактами понимаются утверждения, истинность которых подразумевается. Принятую в языке предикатную форму записи следует отработать на прямых и обратных примерах, начиная переводом с Пролога на естественный язык. Рекомендуется на примере определенного сюжета (небольшого рассказа, стихотворения) построить базу данных и задать соответствующие вопросы (запросы). В зависимости от поставленного вопроса в сюжете необходимо научиться определять имена фактов, количество и назначение его аргументов. Считается, что базы данных с разными именами предикатов у фактов являются предпочтительными на первоначальном этапе изучения материала. Например, составив базу данных по известному стихотворению «Дом, который построил Джек» [3, т. 2, с. 227], можно определить наличие в ней тех или иных фактов. Достаточно быстро информация, получаемая от системы только такого рода, перестает быть интересной и для получения более разнообразной информации потребуется ввести понятие переменной.

Базы знаний, факты которых содержат одинаковые имена предикатов, рекомендуется использовать позднее, — например, при рассмотрении вопросов, связанных с организацией поиска на запрос. Ситуацию, когда этот поиск завершился удачно, можно прокомментировать как работу логической связки ИЛИ, напомнив соответствующую таблицу истинности.

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

Тема «Составные запросы. Правила.

Базы знаний Пролога»

 

Изучение темы можно начать с упоминания (знакомства) и приведения соответствующей таблицы логической операции И, которая в учебнике [34] трактуется как одновременная истинность нескольких высказываний. При организации запросов к базе данных на Прологе соответственно можно проверить присутствие или отсутствие нескольких фактов одновременно. Такой запрос получил название составного запроса. При работе с конкретной базой данных от составного запроса можно перейти к такому важному понятию, как правило. Например, пусть имеется база данных:

 

летает(самолет).

летает(лебедь).

летает(воробей).

имеет_перья(лебедь).

имеет_перья(воробей).

 

Используя переменную, можно задать такой вопрос: «Кто (что) летает и имеет перья? » На Прологе это будет составной запрос:

? - летает(X), имеет_перья(X).

 

С другой стороны, объект, обладающий таким свойством, называется птицей. Поэтому можно сформулировать утверждение, обладающее большей общностью, чем один факт, а именно правило:

 

птица(X): - летает(X), имеет_перья(X).

 

Добавление этого правила к базе данных позволит задавать не составные, а простые вопросы, типа «Птица ли самолет? » или «Кто является птицей? ».

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

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

Тема «Термы Пролога (данные): константы, переменные, составные термы (структуры). Работа Пролога: сопоставление, поиск в базе знаний, механизм возврата. Управление работой Пролога.

Встроенные предикаты»

 

Если в предыдущих темах рассматривались вопросы содержательного характера, то данная тема имеет формализованный характер. В ней подробно рассматриваются механизмы поиска ответа на запрос и его управления.

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

Рис. 15.13. Схема данных Пролога

Пролог — один из немногих интернациональных языков. В качестве литер, с помощью которых составляются термы, могут использоваться любые символы алфавита, в том числе и национального. Как это часто бывает, ограничения на использование тех или иных национальных алфавитов зависят от конкретной реализации языка (системы программирования).

Другая особенность — использование переменных. Так как это нетипизированный язык (система программирования Турбо Пролог — исключение), то при рассмотрении механизма сопоставления следует обратить внимание на использование переменных (область действия, конкретизация, связанность). Так как с переменной связывается не область памяти, а объект (терм Пролога), не следует использовать терминологию из процедурных языков программирования, а именно: присваивание, ветвление, повторение.

Среди большого числа встроенных предикатов языка в данной теме рассматриваются лишь те, которые необходимы для управления работой по организации поиска (сопоставления, отрицания, отсечения). Относительно предиката сопоставления следует отметить, что символ равенства (=) в некоторых системах программирования (Турбо Пролог) используется также в качестве сравнения и арифметического оператора, но следует видеть различия в его использовании.


Поделиться:



Последнее изменение этой страницы: 2017-05-05; Просмотров: 431; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.016 с.)
Главная | Случайная страница | Обратная связь