Составные объекты и альтернативные домены

В утверждениях объекты представляют собой данные.

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

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

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

student

/ \

name address

/ \ / | \

first last city street housenumb

3.2.1. Составная структура

На Прологе это выглядит так:

student(name(“liz”,”petrova”),address(“moscow”,”lefortov”,23))

student – главный функтор;

name, address- функторы

Функтор – это имя (не функция), которое идентифицирует сложную структуру объекта данных и связывает его аргументы вместе. Аргументы в свою очередь могут быть составными. Функтор помогает распознавать различия в объектах (один объект - это имя, другой объект- это адрес). Пролог позволяет объявлять составные объекты в разделе domains:

domains

stud_name=name(symbol,symbol)

stud_addr=address(symbol,symbol,integer)

predicates

student(stud_name,stud_addr)

clauses

student(name(“liz”,”petrov”),address(“Moscow”,”lefortov”,23)).

Имена доменов stud_name и stud_addr – это имена составных объектов, образованных при помощи функторов name и address.Таким образом, составной объект является определенной структурой доменов. Каждая структура предполагает особое представление фактов в базе данных (БД).

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

Пролог позволяет конструировать составные объекты с несколькими уровнями.

Листинг3.1. Использование доменной структуры с именем personal_library

domains

personal_library = book(title, author, publisher, year)

collector, title, author, publisher=symbol

year=integer

predicates

collection(collector, personal_library)

clauses

collection(ivanov,book(“Artificial intelligence”,”Patrick Winston”,”Addison-Wesley Publishing company”,2005)).

сollection(petrov, book(“Artificial intelligence”, ”Stuart Rassel”, ”Pretice Hall”,2007)).

.................................................

и т.д.

Доменная структурная диаграмма программы “Библиотека” (ДСД)

personal_lilrary домен

|

book функтор структуры 0-уровень

__________|_______________ |

| | | |

title author publisher year уровень1


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: