/* GoogleAds */

Главная

ПРОЕКТ "ЧЕЛОВЕК. ЗЕМЛЯ. ВСЕЛЕННАЯ"

Инструменты пользователя

Инструменты сайта


project:prolog:sostavnye_obekty



Составные объекты в Прологе. Функтор. Структурные диаграммы. Альтернативные домены

Объекты утверждений представляют собой данные. Тип простых объектов ограничен 6 типами доменов. Рассмотрим такой пример утверждения:

owner(«Mary», «Garfield»). /* У Мери есть Гарфильд */

Первый объект Mary имеет простую структуру. Он представляет сам себя. То же можно сказать и про объект Garfield.

Любой объект, представляющий сам себя, называется простым объектом. Аналогично, структура, состоящая из простых объектов, называется простой структурой.

Утверждение owner отражает тот факт, что Mary обладает Garfield, который может быть либо именем домашнего животного Mary, либо названием книги. Для разделения этих случаев утверждение можно записать в форме, более определенно описывающей объект:

/* У Мери есть любимец - Гарфильд */
owner(“Mary”,pet(“Garfield”)).
/* У Мери есть книга - «Гарфильд» */
owner(«Mary»,book(«Garfield»)).

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

В данном примере pet представляет Garfield в первом утверждении, в то время как book - во втором, здесь pet и book являются составными объектами. Объекты, которые они представляют, заключены в скобки.

Утверждение:

likes(«Tom»,apples,orange,banana).

констатирует, что Том любит фрукты: яблоки, апельсины и бананы. Все эти три вида фруктов можно объединить в отдельной структуре:

fruits(apples,orange,banana).

В результате появляется составной объект, который поясняет отношение:

likes(“Tom”,fruits(apples,orange,banana)).

(Обратите внимание на двойные скобки в конце утверждения.)

Терм fruits в этом утверждении называется функтором. Функтор является первым термом составного объекта. Функтор составного объекта есть на самом деле предикат, хотя он и вставлен внутрь другого предиката. Главным функтором здесь является предикат likes.

Для облегчения написания утверждений и предикатов в данной форме Пролог позволяет объявлять составные объекты в разделе domains:

domains
personal_liking = fruits(type1,type2,type3)
type1,type2,type3 = symbol

Имя домена personal_liking является именем составного объекта, образованного при помощи функтора fruits. Имя fruits представляет одновременно составной объект и функтор.

Если объекты структуры принадлежат к одному и тому же типу доменов, то этот объект называется однодоменной структурой. Структура с объектами apples, peaches и oranges (все типа symbol), является однодоменной структурой.

Если структура содержит объекты разных типов, она называется многодоменной структурой. Примером тому совокупность объектов apples, r и 16. Здесь apples имеет тип symbol, r - тип char, 16 - тип integer.

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

Структура обеспечивает средство сортировки объектов по категориям. Ссылки на доменную структуру осуществляются по имени функтора.

Примеры программ

Структурные диаграммы

Диаграммы - средство анализа и наглядного представления составных структур. Доменная структурная диаграмма (ДСД) программы Программа "Библиотека":

  • имя домена здесь personal_library;
  • имя структуры - book.

Структура содержит четыре объекта: title, author, publisher и year.

Компонентой предикатной структурной диаграммы (ПСД) является ДСД. book здесь является функтором. ПСД программы содержит 3 уровня.

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

ДСД и ПСД являются удобным средством при разработке и документировании программ Пролога. Они также могут оказать помощь при написании эффективных правил.

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

Примеры программ

Программа «Библиотека-2» демонстрирует использование трехуровневой доменной структуры и четырехуровневой предикатной.

Программа "Библиотека-3" демонстрирует составной объект, состоящий из двух двухуровневых структур.

Альтернативные домены

Представление данных часто требует наличия большого числа структур. В Прологе эти структуры должны быть описаны. Иногда возникают трудности с предикатами, работающими с объектами этих доменов. Для устранения данного недостатка Пролог предлагает пользователю альтернативные описания доменов.

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

Применение альтернативных доменов делает программу более «управляемой», а программирование - более эффективным.

Примеры программ

!!Рекомендуем: Семейная Энциклопедия ЗдоровьяЧто должен знать современный человек?Самоанализ. Работа над собойОглавлениеГлавная сайта

project/prolog/sostavnye_obekty.txt · Последние изменения: 2023/09/03 22:22 (внешнее изменение)

Вы можете оставить свои комментарии в разделе "Обсуждение".
Рекомендуем оформить подписку на новости данного раздела. Для этого нажмите на кнопку "Подписаться", расположенную справа снизу каждой страницы (знак конверта).




Индекс цитирования