Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Тема «Факты. Предикатная форма представления фактов.
Базы данных Пролога. Простые запросы»
Эту тему уместно начать с изучения основ логики, на которой базируется Пролог. На примерах покажите, что такое высказывание (суждение) и то, что всякое высказывание может быть истинным или ложным. Следует дать понятие «утверждение» — суждение, которое требуется доказа/ь или опровергнуть. Другие вопросы математической логики в рамках темы не рассматриваются. При работе над понятием «факт» следует обратить внимание на то, что в программах на Прологе под фактами понимаются утверждения, истинность которых подразумевается. Принятую в языке предикатную форму записи следует отработать на прямых и обратных примерах, начиная переводом с Пролога на естественный язык. Рекомендуется на примере определенного сюжета (небольшого рассказа, стихотворения) построить базу данных и задать соответствующие вопросы (запросы). В зависимости от поставленного вопроса в сюжете необходимо научиться определять имена фактов, количество и назначение его аргументов. Считается, что базы данных с разными именами предикатов у фактов являются предпочтительными на первоначальном этапе изучения материала. Например, составив базу данных по известному стихотворению «Дом, который построил Джек» [3, т. 2, с. 227], можно определить наличие в ней тех или иных фактов. Достаточно быстро информация, получаемая от системы только такого рода, перестает быть интересной и для получения более разнообразной информации потребуется ввести понятие переменной. Базы знаний, факты которых содержат одинаковые имена предикатов, рекомендуется использовать позднее, — например, при рассмотрении вопросов, связанных с организацией поиска на запрос. Ситуацию, когда этот поиск завершился удачно, можно прокомментировать как работу логической связки ИЛИ, напомнив соответствующую таблицу истинности. Параллельно с изучением языка происходит знакомство с системой программирования. Рассматриваются ее особенности, правила записи текстов программ, приемы их редактирования, способы записи и считывания на внешние носители организации запросов. Тема «Составные запросы. Правила. Базы знаний Пролога»
Изучение темы можно начать с упоминания (знакомства) и приведения соответствующей таблицы логической операции И, которая в учебнике [34] трактуется как одновременная истинность нескольких высказываний. При организации запросов к базе данных на Прологе соответственно можно проверить присутствие или отсутствие нескольких фактов одновременно. Такой запрос получил название составного запроса. При работе с конкретной базой данных от составного запроса можно перейти к такому важному понятию, как правило. Например, пусть имеется база данных:
летает(самолет). летает(лебедь). летает(воробей). имеет_перья(лебедь). имеет_перья(воробей).
Используя переменную, можно задать такой вопрос: «Кто (что) летает и имеет перья? » На Прологе это будет составной запрос: ? - летает(X), имеет_перья(X).
С другой стороны, объект, обладающий таким свойством, называется птицей. Поэтому можно сформулировать утверждение, обладающее большей общностью, чем один факт, а именно правило:
птица(X): - летает(X), имеет_перья(X).
Добавление этого правила к базе данных позволит задавать не составные, а простые вопросы, типа «Птица ли самолет? » или «Кто является птицей? ». Умение записывать правила на Прологе является одним из фундаментальных. При его отработке рекомендуется первоначально правило, записанное на Прологе, перевести на естественный язык, а затем с естественного языка на Пролог. Упражняясь в записи правил с естественного языка, необходимо научиться определять имя предиката, количество и назначение его аргументов. Базы знаний, состоящие из фактов и правил, позволяют рассмотреть более широкий класс задач. При их решении следует обратить внимание на формулировки, где в определениях правил в качестве союза и нередко встречаются синонимы: однако, но. В некоторых случаях при составлении правил может появиться необходимость воспользоваться логической операцией НЕ (отрицание). Поэтому следует описать и показать на примерах работу соответствующего встроенного предиката. Тема «Термы Пролога (данные): константы, переменные, составные термы (структуры). Работа Пролога: сопоставление, поиск в базе знаний, механизм возврата. Управление работой Пролога. Встроенные предикаты»
Если в предыдущих темах рассматривались вопросы содержательного характера, то данная тема имеет формализованный характер. В ней подробно рассматриваются механизмы поиска ответа на запрос и его управления. Соответствующий материал имеет более теоретический, чем практический, характер. Данные, с которыми работает Пролог, можно рассмотреть в соответствии со схемой, изображенной на рис. 15.13. Рис. 15.13. Схема данных Пролога Пролог — один из немногих интернациональных языков. В качестве литер, с помощью которых составляются термы, могут использоваться любые символы алфавита, в том числе и национального. Как это часто бывает, ограничения на использование тех или иных национальных алфавитов зависят от конкретной реализации языка (системы программирования). Другая особенность — использование переменных. Так как это нетипизированный язык (система программирования Турбо Пролог — исключение), то при рассмотрении механизма сопоставления следует обратить внимание на использование переменных (область действия, конкретизация, связанность). Так как с переменной связывается не область памяти, а объект (терм Пролога), не следует использовать терминологию из процедурных языков программирования, а именно: присваивание, ветвление, повторение. Среди большого числа встроенных предикатов языка в данной теме рассматриваются лишь те, которые необходимы для управления работой по организации поиска (сопоставления, отрицания, отсечения). Относительно предиката сопоставления следует отметить, что символ равенства (=) в некоторых системах программирования (Турбо Пролог) используется также в качестве сравнения и арифметического оператора, но следует видеть различия в его использовании. |
Последнее изменение этой страницы: 2017-05-05; Просмотров: 461; Нарушение авторского права страницы