Грамматика конкатенации диапазонов
Грамматика конкатенации диапазонов (RCG) - это грамматический формализм, разработанный Пьером Булье. [1] в 1998 году как попытка охарактеризовать ряд явлений естественного языка, таких как китайские числа и скремблирование немецкого порядка слов , которые находятся за пределами умеренно контекстно-зависимых языков . [2]
С теоретической точки зрения, любой язык, который можно анализировать за полиномиальное время, принадлежит к подмножеству RCG, называемому грамматиками конкатенации положительного диапазона, и наоборот. [4]
Хотя RCG задуманы как вариант грамматик буквального движения Гренинка (LMG), они рассматривают грамматический процесс скорее как доказательство, чем как произведение. В то время как LMG создают терминальную строку из начального предиката, RCG стремятся свести начальный предикат (который предикаты терминальной строки) к пустой строке, которая представляет собой доказательство принадлежности терминальных строк языку.
Описание
[ редактировать ]Формальное определение
[ редактировать ]Грамматика конкатенации положительного диапазона (PRCG) представляет собой кортеж. , где:
- , и являются непересекающимися конечными множествами (соответственно) имен предикатов , терминальных символов и имен переменных . Каждое имя предиката имеет связанную с ним арность, задаваемую функцией .
- — имя начального предиката и проверьте .
- представляет собой конечное множество предложений вида , где являются предикатами вида с и .
Грамматика конкатенации отрицательного диапазона (NRCG) определяется как PRCG, но с тем дополнением, что некоторые предикаты, встречающиеся в правой части предложения, могут иметь форму . Такие предикаты называются отрицательными предикатами .
Грамматика конкатенации диапазонов может быть положительной или отрицательной. Хотя PRCG технически являются NRCG, эти термины используются для обозначения отсутствия (PRCG) или присутствия (NRCG) отрицательных предикатов.
Диапазон одним словом это пара , с , где длина . Переменные привязываются к диапазонам, а не к произвольным строкам нетерминалов. Два диапазона и можно объединить, если и только если , и тогда мы имеем: . При создании экземпляра предложения, где аргумент состоит из нескольких элементов из , их диапазоны должны объединиться.
На слово , с , пунктирное обозначение диапазонов: .
Распознавание строк
[ редактировать ]Перезаписываемые строки предикатов представляют собой ограничения, которым должна удовлетворять проверяемая строка (если она положительна), а в случае отрицательных предикатов – не удовлетворяться. Порядок предикатов не имеет значения. Шаги перезаписи сводятся к замене одного ограничения нулем или более простыми ограничениями.
Как и LMG, положения RCG имеют общую схему. , где в RCG, это либо пустая строка, либо строка предикатов. Аргументы состоят из строк терминальных символов и/или переменных символов, шаблон которых соответствует фактическим значениям аргументов, как в LMG. Соседние переменные составляют семейство совпадений с разделами, так что аргумент , с двумя переменными, соответствует буквальной строке тремя разными способами: . Это привело бы к трем различным вариантам реализации пункта, содержащего этот аргумент. .
Термины-предикаты бывают двух форм: положительные (которые создают пустую строку в случае успеха) и отрицательные (которые создают пустую строку в случае неудачи/если положительный термин не создает пустую строку). Отрицательные термины обозначаются так же, как и положительные, но с чертой, как в .
Семантика перезаписи для RCG довольно проста и идентична соответствующей семантике LMG. Учитывая строку предиката , где символы являются терминальными строками, если существует правило в грамматике, которой соответствует строка предиката, строка предиката заменяется на , заменяя совпадающие переменные в каждом .
Например, учитывая правило , где и являются переменными символами и и являются терминальными символами, строка предиката можно переписать как , потому что спички когда . Аналогично, если бы существовало правило , можно было бы переписать как .
Доказательство/распознавание строки делается, показывая, что создает пустую строку. Для отдельных шагов перезаписи, когда возможны совпадения нескольких альтернативных переменных, рассматривается любая перезапись, которая может привести к успеху всего доказательства. Таким образом, если существует хотя бы один способ создать пустую строку из исходной строки , доказательство считается успешным, независимо от того, сколько существует других способов потерпеть неудачу.
Пример
[ редактировать ]RCG способны распознавать нелинейный индексный язык. следующее:
Пусть x, y и z будут переменными символами: Тогда доказательством для abbabbabb будет
Или, используя более правильное точечное обозначение диапазонов:
Для строки буквы, есть различные реализации этого первого пункта, но только тот, который делает все буквы, каждая из которых позволяет вывести результат .
Характеристики
[ редактировать ]Любую контекстно-свободную грамматику (CFG) можно преобразовать в грамматику конкатенации диапазонов:
- Для каждого нетерминала CFG, RCG имеет арность предикат .
- Для каждого правила CFG , у RCG есть .
- Для каждого правила CFG (где терминал), RCG имеет .
Пересечение и объединение двух языков конкатенации диапазонов тривиально представляют собой языки конкатенации диапазонов:
- Для пересечение и , у вас есть .
- Для союз и , у вас есть и .
Возможно, языки конкатенации отрицательных диапазонов также закрываются при установленном дополнении.
Следствием вышесказанного является то, что неразрешимо, является ли язык конкатенации (положительных) диапазонов непустым, поскольку неразрешимо, непусто ли пересечение двух контекстно-свободных языков. Следовательно, грамматики конкатенации диапазонов не являются порождающими.
Ссылки
[ редактировать ]- ^ Булье, Пьер (январь 1998 г.). Предложение по синтаксической магистрали обработки естественного языка (PDF) (технический отчет). Том. 3342. ИНРИА Рокенкур (Франция).
- ^ Пьер Булье (1999). «Китайские числа, MIX, скремблирование и грамматики объединения диапазонов» (PDF) . Учеб. ЕАКЛ . стр. 53–60. Архивировано из оригинала (PDF) 15 мая 2003 г.
- ^ Эберхард Берч и Марк-Ян Недерхоф (октябрь 2001 г.). «О сложности некоторых расширений разбора RCG» (PDF) . Материалы Седьмого международного семинара по технологиям синтаксического анализа (Пекин) . стр. 66–77.
- ^ Лаура Каллмейер (2010). Синтаксический анализ за пределами контекстно-свободных грамматик . Springer Science & Business Media. п. 37. ИСБН 978-3-642-14846-0 . цитируя Берча, Недерхоф (2001) [3]