Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пролог =).doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
1.69 Mб
Скачать

10.1. Постановка задачи

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

Представление такой структуры - Дерево разбора для предложения данного языка.

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

Грамматик, задаваемых определенными предложениями

definite clause grammer DCG

DCG - является обобщением контекстно-свободных грамматик.

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

10.2. Пример грамматики

Sentence -> noun_phrase, verb_phrase

noun_phrase -> article, noun

verb_phrase -> intransitive_verb

article(singular) -> "a"

article(singular) -> "the"

article(plural) -> "the"

noun(singular) -> "turtle"

noun(plural) -> "turtles"

intransitive_verb(singular) -> "sleeps"

intransitive_verb(plural) -> "sleep"

Предложение состоит из noun phrase и за ним следует verb phrase компоненты, представляющие грамматические категории языка, называются нетерминальными символами.

Терминальные символы - конечные компоненты языка. В данном случае это слова. Они записываются в ковычках ( " " ). В грамматике есть один выделенный нетерминальный символ, который называется начальным. Он описывает все компоненты языка. В грамматике должно быть по крайне мере одно правило, с левой части которого находится начальный символ. В данной грамматике это Sentence -"предложение".

10.3. Пример разбора вручную.

Cтратегия разбора : Начиная с начального нетерминального символа левые части заменяются правыми, до тех пор пока не выстроится последовательность нетерминальных символов, совпадающих с заданной последовательностью слов. Если это произошло - последовательность слов принадлежит языку и анализ закончен.

10.4. Реализация грамматического разбора на Прологе.

Грамматическое правило - это структура с функтором --> и размерностью 2. Компоненты структуры - это левая и правая части правила.

Нетерминальные символы - атомы Пролога. Терминальные символы - атомы или переменные и заключаются вквадратные скобки.

При загрузке в Пролог - ,систему утверждения с функтором --> преобразуются в утверждения стандартного Пролога.

Перепишем в этой форме наши правила.

Sentence -> noun_phrase, verb_phrase.

noun_phrase -> article, noun.

verb_phrase -> intransitive_verb.

article(singular) -> [a].

article(singular) -> [the].

article(plural) -> [the].

noun(singular) -> [turtle].

noun(plural) -> [turtles].

intransitive_verb(singular) -> [sleeps].

intransitive_verb(plural) -> [sleep].

Как должны выглядеть утверждения Пролога ?

Надо чтобы каждое правило могло анализировать слова и передавать информацию на дальнейшую обработку.

Отступление :