logo
TurboProlog / Документация / TOM_2

Предикат "db"

Предикат "db" более сложный, чем "ent". Он предназначен для модели-

рования отношения между двумя объектами (связи). "db" предикат можно так-

же считать как функцию между одним значением объекта и другим значением.

Все направления поиска в сети объектов (моделируемой отношением

"schema") должны быть определены в предложениях с "db" предикатом.

Приведем примеры из географической базы данных:

db(city,in,state,City,State) :-

city(State,_,City_).

db(state,with,city,State,City) :-

city(State,_,City_).

db(abbreviation,of,state,Ab,State) :-

state(State,Ab,_,_,_,_,_,_,_,_).

db(area,of,state,Area,State) :-

state(State,_,_,_,Areal,_,_,_,_,_),

str_real(Area,Areal).

db(capitol,of,state,Capital,State) :-

state(State,_,Capital,_,_,_,_,_,_,_).

db(state,border,ctate,Statel,State2) :-

border(State2,_,List),member(Statel,List).

db(length,of,river,Length,River) :-

river(River,Length1,_),str_real(Length,Length1).

db(state,with,river,State,River) :-

river(River,_,List),member(State,List).

Это все, что необходимо для разработки интерфейса вашей базы данных

с естественным языком.