Дипломная работа: Искусственный интеллект

Все эти исследовательские работы по грамматическим формализмам, замешанным на логике, стали возможны и проще в осуществлении после выбора PROLOGа, языка программирования основанного на подмножестве логики первого порядка.

ЛОГИЧЕСКИЕ ГРАММАТИКИ

Грамматики описывают структуру (синтаксис) языков множеством продукций (правил, перерабатывающих текст). Например, правилом

sentence -> noun-phrase verb-phrase

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

Такие правила могут быть отображены в PROLOGе следующим образом:

sentence (S1, S3): - noun-phrase (S1, S2), verb-phrase (S2, S3).

verb-phrase (S1, S2): - connects (S1, writes, S2).

connects (1, each, 2).

connects (2, author, 3).

connects (3, writes, 4).

(Примечание: предикаты (т. е. выражения с неопределенными терминами, или переменными, которые преобразуются в истинные или ложные высказывания при выборе конкретных значений для этих самых терминов) заносятся в PROLOG через запятую. Переменные отличаются от констант первой заглавной буквой.)

В нижеследующей записи числа обозначают начало и конец каждого слова:

1 each2 author3 writes4

Чтобы проверить правильность построения предложения, необходимо указать цель

? - sentence (1, 4).

(где ? - бинарное обозначение структуры (или бинарный функтор), содержащееся в любой системе PROLOG) и продемонстрировать, что она подтверждается предыдущими условиями. Используя список в качестве информационной структуры для представления предложения, числа больше не нужны, так как PROLOG имеет устройство синтаксического анализа, способного перевести:

? - sentence ([each, author, writes]. [ ]).

Грамматики, построенные на определенных предложениях, являются объемом понятия контекстно-свободных грамматик, которые также могут быть транслированы на язык PROLOG. Грамматики, построенные на определенных предложениях, позволяют любому логическому выражению стать нетерминальным, они построены на логических символах: константах, переменных, выражениях, - а не только на одних константах. Также они имеют только один нетерминальный символ в левой части каждого правила. Контекстные зависимости (контекстные отношения подчинения) описываются логическими переменными в рамках параметров (или независимых переменных) грамматических символов.

У правила грамматики, построенной на определенных предложениях, следующая форма:

nonterminal symbol -> body (основная часть программы).

где “body” (“основная часть”) является последовательностью одного или более элементов данных, отделенных друг от друга запятыми. Каждый элемент данных является либо нетерминальным символом, либо последовательностью терминальных символов. Значение правила состоит в том, что "основная часть"- это возможная форма для группы типа “нетерминальный символ”. В PROLOGе нетерминальный символ записывается как выражение (а не как список), а последовательность терминальных символов - в виде списка.

В правой части правила наряду с нетерминальными символами и списком терминальных символов могут находиться последовательности вызовов процедур, записываемых в фигурных скобках ({and}). Они используются для выражения дополнительных условий, которые в обязательном порядке должны выполнятся, чтобы правило действовало. Нетерминальный символ преобразуется в (N + 2 )-местный предикат (имеющий идентичное название), чьи первые N параметры полностью описаны в нетерминальном символе и чьи последние два параметра являются такими же, как и при трансляции контекстно-свободного нетерминального символа. Вызовы процедур в правой части правила транслируются так, как они есть.

Каждое грамматическое правило, типа

p(X) -> q(X).

получает группу входящих данных, анализирует некую исходную часть и генерирует остаток для дальнейшего анализа. Это частное правило транслируется системой PROLOG как

p(X, S0, S): - q(X, S0, S).

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

Когда в правиле содержатся терминальные символы, они транслируются со сказуемым "connects". К примеру,

К-во Просмотров: 580
Бесплатно скачать Дипломная работа: Искусственный интеллект