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

Принципы Geobase

Geobase иллюстритует один способ реализации интерфейса с естествен-

ным языком с помощью базы данных.

Понимание естественного языка гораздо сложнее, чем трансляция языка

программирования.

В естественном языке очень много слов и многозначностей. Но эта ра-

бота очень удобна для Турбо Пролога, который может использовать механизм

поиска с возвратом для устранения многозначностей.

В базе данных Geobase хранится информация о географии США. Однако,

вы можете использовать подобный подход для других типов данных.

Основной принцип Geobase прост: пользователь представляет базу дан-

ных как сеть объектов, связанных друг с другом.

Объекты хранятся в базе данных. В Geobase объектами являются штаты,

города, столицы штатов, реки, озера и т.п. Связи - это слова, которые со-

единяют объекты в запросах. Например:

Cities in the state california.

Здесь 2 объекта: "cities" и "state" связаны связью "in". Слово "the"

игнорируется, "california" - текущее определение для объекта "state".

Geobase предназначена для восприятия простых английских выражений.

Это подразумевает, что Geobase не столько внимания уделяет грамматической

правильности предложений, сколько определению их смысла путем сопоставле-

ния запроса пользователя с сетью объектов.

Запросы могут связываться друг с другом для получения более сложных

запросов. Например:

Which rivers run through the states that border the state with the

capital austin?

Для сопоставления запроса с сетью объектов Geobase должен упрощать

различные формы запросов. Это производится при "грамматическом разборе"

запроса.

Первый шаг состоит в удалении некоторых слов, таких как:

which, is, are, the, tell, me, what, give, as, that, please

to, how, many, live, lives, living, there, do, does

Запрос при этом выглядит:

rivers run through states border state with capital austin?

Следующий шаг состоит в определении внутренних имен объектов и свя-

зей. Объекты могут иметь синонимы, и запрос может использовать различные

формы имен объектов.

Связи могут состоять из нескольких слов и также могут иметь синони-

мы.

После таких преобразований запрос будет выглядеть:

rivers in states border state with capital austin?

Geobase может классифицировать слова как объекты или связи и разде-

лять запросы на подзапросы (E - объект, A - связь, C - определение):

rivers in states border state with capital austin?

E A (E A (E A E C))

После этого Geobase может отвечать на вопрос, сначала находя имя

штата со столицей austin, затем находя все штаты, граничащие с ним, и,

наконец, определяя все реки, протекающие через эти штаты.