Главная

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

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

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


project:prolog:listing:biblioteka-2



Программа «Библиотека-2»

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

Программа «Библиотека - 2» использует те же данные, что и программа Программа "Библиотека". Описание предикатов и утверждений в точности совпадает с описаниями из предыдущей программы. Все отличие заключается только в описании доменов.

Доменная структурная диаграмма (ДСД) имеет 3 уровня, а предикатная структурная диаграмма (ПСД) - 4 уровня. Функторы здесь - book и publication, причем publication является компонентом функтора book.

domains
 
/* это двухуровневый составной объект */
/* 1-й уровень - персональная библиотека = книга(название, автор, издание) */
/* 2-й уровень - издание = издание(издательство, год) */
/* publisher и year являются объектами publication - функтора 3-го уровня. */
personal_library = book(title,author,publication)
publication = publication(publisher,year)
collector,title,author,publisher = symbol
year = integer
 
predicates
 
collection(collector,personal_library)
 
clauses
collection("Kahn", book("The Computer and the Brain", "von Neumann", publication("Yale University Press", 1958))).
collection("Kahn", book("Symbolic Logic", "Lewis Carroll", publication("Dower Publications",1958))).
collection("Johnson", book("Database: A Primer", "C.J.Date", publication("Addison-Wesley",1983))).
collection("Johnson", book("Problem-Solving Methods in AI", "Nils Nilsson", publication("McGraw Hill",1971))).
collection(smith, book("Alice in Wonderland", "Lewis Carroll", publication("The New American Library",1960))).
collection(smith, book("Fables of Aesop", "Aesop-Calder", publication("Dover Publications", 1967))).
 
goal
/* Определить, какие книги принадлежат Смиту */
/* Вывод результатов с названиями функторов - book и publication */
/* Внешняя цель - collection(smith,Books). */
/* Цель в программе */
/* collection(smith,Books), write("У smith есть следующие книги ", Books),nl. */
/* Результат:
Books=book("Alice in Wonderland","Lewis Carroll",publication("The New American Library",1960)) 
Books=book("Fables of Aesop","Aesop-Calder",publication("Dover Publications",1967)) 
*/
 
/* Определить, какие книги принадлежат Смиту */
/* Вывод результов в более удобочитаемом виде без названия функторов */
collection(smith,book(Title, Autor, publication(Publisher, Year))),
write("У smith есть следующие книги: "), nl, nl,
write("Название: ", Title),  nl, 
write("Автор : ", Autor),  nl, 
write("Издательство: ", Publisher),  nl, 
write("Год издания: ", Year),nl, nl.
 
/* Результат:
У smith есть следующие книги: 
 
Название: Alice in Wonderland
Автор : Lewis Carroll
Издательство: The New American Library
Год издания: 1960
 
У smith есть следующие книги: 
 
Название: Fables of Aesop
Автор : Aesop-Calder
Издательство: Dover Publications
Год издания: 1967
*/

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

Обсуждение

Ваш комментарий:
F H Q Z G
 
project/prolog/listing/biblioteka-2.txt · Последние изменения: 2023/09/03 22:22 (внешнее изменение)

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

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