Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


Выборка структурированной информации из базы данных




В данном примере демонстрируются методы представления структурированных объектов данных и манипулирования ими. В нем также показано, что язык Prolog хорошо подходит для оформления запросов к базе данных.

Любую базу данных можно естественным образом представить на языке Prolog в виде множества фактов. Например, базу данных о семьях можно представить таким образом, что для описания каждой семьи будет применяться одно предложение. На рис. 4.1 показано, каким способом может быть структурирована информация о каж­дой семье. Каждая семья имеет три составляющих: муж, жена и дети. Поскольку в разных семьях имеется различное количество детей, информация о детях представ­лена в виде списка, который позволяет включать в него любое количество элементов. Информация о каждом человеке, в свою очередь, представлена в виде структуры, со­стоящей из четырех компонентов: имя, фамилия, дата рождения, место работы. Ин­формация о месте работы может содержать слово "unemployed" (безработный) или указывать организацию, в которой работает данное лицо, и заработную плату. Ин-


формацию о семье, представленную на рис. 4.1, можно записать в базу данных с по­мощью следующего предложения:

family(

person [ torn, fox, date(7,may,1960), works (fabc, 15200)), person! arm, foxr date [9,may, 1961), unemployed), [ person! pat, fox, date! 5, may, 1983 >, unemployed), person С Jim, fox, date[S,mav, 1983), unemployed) ]).

family


pereon
turn fox date works aim fox date imnmplnyod parson

УГ\ A /l\ /7T\ \

7 may 1960 bbc 15200 9 may 19Б1 pal fox dale unemployed person []

/l\ //W

5 may 1983 lox dale unemployed

//\

5 may 1983 Рис. 4.1. Пример структурного представления информации о семье

Таким образом, рассматриваемая база данных может состоять из последователь­ности фактов, подобных этому, в которых описаны все семьи, представляющие инте­рес для данной программы.

Prolog фактически является языком, который очень хорошо приспособлен для выборки требуемой информации из подобной базы данных. Замечательным свойст­вом этого языка является то, что он позволяет ссылаться на объекты, фактически не задавая все компоненты этих объектов. Prolog предоставляет возможность указывать структуру интересующих нас объектов и оставлять конкретные компоненты в этой структуре не заданными или заданными лишь частично. Некоторые примеры этого приведены на рис. 4.2. В частности, можно указать все семьи Армстронг с помощью следующего терма: family (person (_, armstrong,_, J, _, _)

Символы подчеркивания обозначают различные анонимные переменные; при их использовании можно не беспокоиться о том, как определить их значения. Кроме то­го, можно обозначить все семьи с тремя детьми с помощью следующего терма:

; )
[,

family(

 

Чтобы найти всех замужних женщин, имеющих по меньшей мере трех детей, можно сформировать такой вопрос:

?- family [ _, person(Name, Surname, _, _), [_,_,_!_] Ь

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

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


Глава 4. Использование структур: примеры программ



husband { X) -.- % X family(X,_, _).


муж


wife £ X):- i К - жена family(_, X, _).

child (X):- \ X - ребенок

family! _, _, Children),

member(X, Children). % X задан в списке Children

exists { Person):- % Любой человек, описшны В базе данных husband! Person)


 

wife(Person) Child! Person). dateofbirth (person[ salaryt person (_/_,. salary 1 person! _,_,


Date, _), Date). works [ _, S)), S). I Заработок работающего лица unemployed), 0). % Заработок безработного лица


 


Family


Ж)


Femily


 



Person


/ \


— armstrong

Family



"Чч /




Поделиться с друзьями:


Дата добавления: 2015-10-01; Мы поможем в написании ваших работ!; просмотров: 592 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Человек, которым вам суждено стать – это только тот человек, которым вы сами решите стать. © Ральф Уолдо Эмерсон
==> читать все изречения...

2307 - | 2155 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.013 с.