/* GoogleAds */

Главная

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

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

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


project:prolog:listing:predmety-2



Программа "Предметы-2"

Программа «Предметы-2» демонстрирует альтернативные описания доменов (c правилами для запросов).

domains
/* Все три доменные структуры объединены под именем thing.
Для разделения альтернативных доменов здесь применена точка с запятой - ;
Термы misc_thing, book и record являются именами структур.
Однако когда они появляются в предикатных выражениях, то одновременно играют и роль имен функторов.
Описание отношений: owns(person,thing) - владелец(имя,вещь).
То есть вещь (thing) может быть любой категории:
misc_thing - просто вещь;
book - книга;
record - пластинка;
Таким образом предикат owns используется в утверждениях применительно к различным классам вещей. 
*/
 
thing = misc_thing(whatever) ; book(author,title) ; record(artist,album,type) 
 
person, whatever, author, title, artist, album, type = symbol
 
predicates
owns(person,thing) /* Кто и чем обладает - владелец(имя,вещь) */
show_misc_things /* правила для запросов - компонент внутренней цели */
show_books
show_records
 
clauses
/* Факты - разнообразные вещи */
owns("Bill",misc_thing("sail boat")).
owns("Bill",misc_thing("sports car")).
owns("Jack",misc_thing("Motor cycle")).
owns("Jack",misc_thing("house trailer")).
owns("Beth",misc_thing("Chevy wagon")).
owns("Beth",misc_thing("Piano")).
owns("Linda",misc_thing("motor boat")).
 
/* книги */
owns("Bill",book("J.R.R. Tolkein","Return of the Ring")).
owns("Bill",book("James A. Mishener","Space")).
owns("Jack",book("Manuel Puig","Kiss of the Spider Woman")).
owns("Beth",book("Frank Herbert","Dune")).
owns("Beth",book("Tom Clancy","The Hunt for Red October")).
owns("Linda",book("Garrison Keillor","Lake Wobegon Days")).
 
/* грампластинки */
owns("Bill",record("Elton John","Ice Fair","popular")).
owns("Bill",record("Michael Jackson - Lionel Richie","We are the World","popular")).
owns("Jack",record("Bruce Springsteen","Born to Run","popular")).
owns("Jack",record("Benny Goodman","The King of Swing","jazz")).
owns("Beth",record("Madonna","Madonna","popular")).
 
/* Правила - заготовки для целевых запросов.
Вывести список пользователей и их вещей */
show_misc_things :- owns(Owner, misc_thing(Whatever)), write(Owner," - ",Whatever), nl, fail.
show_misc_things.
 
/* Вывести названия книг */
show_books :- owns(_,book(_,Title)), write(" ",Title), nl, fail.
show_books.
 
/* Вывести список пользователей и названия альбомов, которые у них есть */
show_records :- owns(Owner,record(_,Album,_)), write(" ",Owner," ",Album), nl, fail.
show_records.
 
/* Вывести спискок исполнителей и их альбомов */
show_artist :- owns(_,record(Artist,Album,_)), write("Исполнитель - ", Artist, ", Композиция - ", Album), nl, fail.
show_artist.
 
goal
 
/* Вывести  список пользователей и вещей */
/* write("Список пользователей и вещей: "), nl, nl, show_misc_things. */
 
/* Результат
 
Список пользователей и вещей: 
 
Bill - sail boat
Bill - sports car
Jack - Motor cycle
Jack - house trailer
Beth - Chevy wagon
Beth - Piano
Linda - motor boat
*/
 
/* Вывести названия книг в библиотеке */
/* write("В библиотеке есть книги: "), nl, nl, show_books. */
 
/* Результат
 
В библиотеке есть книги: 
 
 Return of the Ring
 Space
 Kiss of the Spider Woman
 Dune
 The Hunt for Red October
 Lake Wobegon Days
*/
 
/* Вывести исполнителей и названия композиций */
write("Есть следующие альбомы: "), nl, nl, show_artist.
 
/* Результат
 
Есть следующие альбомы: 
 
Исполнитель - Elton John, Композиция - Ice Fair
Исполнитель - Michael Jackson - Lionel Richie, Композиция - We are the World
Исполнитель - Bruce Springsteen, Композиция - Born to Run
Исполнитель - Benny Goodman, Композиция - The King of Swing
Исполнитель - Madonna, Композиция - Madonna
*/

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

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

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




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