La gramática de concatenación de rangos (RCG) es un formalismo gramatical desarrollado por Pierre Boullier [ 1 ] en 1998 como un intento de caracterizar una serie de fenómenos del lenguaje natural, como los números chinos y la reorganización del orden de las palabras alemanas , que están fuera de los límites de los lenguajes ligeramente sensibles al contexto . [ 2 ]
Desde un punto de vista teórico, cualquier lenguaje que pueda ser analizado en tiempo polinomial pertenece al subconjunto de RCG llamado gramáticas de concatenación de rango positivo, y recíprocamente. [ 4 ]
Aunque se conciben como una variante de las gramáticas de movimiento literal (LMG) de Groenink, las RCG tratan el proceso gramatical más como una prueba que como una producción. Mientras que las LMG producen una cadena terminal a partir de un predicado inicial, las RCG buscan reducir un predicado inicial (que predica una cadena terminal) a la cadena vacía , lo que constituye una prueba de la pertenencia de la cadena terminal al lenguaje.
Descripción
Definición formal
Una gramática de concatenación de rango positivo (PRCG) es una tupla, dónde:
- ,yson conjuntos finitos disjuntos de (respectivamente) nombres de predicados , símbolos terminales y nombres de variables . Cada nombre de predicado tiene una aridad asociada dada por la función.
- es el nombre del predicado de inicio y verificar.
- es un conjunto finito de cláusulas de la forma, donde elson predicados de la formacony.
Una gramática de concatenación de rango negativo (NRCG) se define como una PRCG, pero con la adición de que algunos predicados que aparecen en el lado derecho de una cláusula pueden tener la formaEstos predicados se denominan predicados negativos .
Una gramática de concatenación de rangos es positiva o negativa. Si bien las PRCG son técnicamente NRCG, los términos se utilizan para resaltar la ausencia (PRCG) o la presencia (NRCG) de predicados negativos.
Una gama en una palabraes una pareja, con, dóndees la longitud deLas variables se vinculan a rangos, no a cadenas arbitrarias de no terminales. Dos rangosyse pueden concatenar si y solo siy entonces tenemos:. Al instanciar una cláusula, donde un argumento consta de múltiples elementos de, sus rangos deben concatenarse.
Por una palabra, con, la notación con puntos para rangos es:.
Reconocimiento de cadenas
Las cadenas de predicados que se reescriben representan restricciones que la cadena que se está probando debe cumplir (si es positiva) o, en el caso de predicados negativos, no cumplir. El orden de los predicados es irrelevante. Los pasos de reescritura consisten en reemplazar una restricción por cero o más restricciones más simples.
Al igual que las cláusulas LMG, las cláusulas RCG tienen el esquema general., donde en un RCG,es o bien la cadena vacía o una cadena de predicados. Los argumentosConsisten en cadenas de símbolos terminales y/o símbolos de variables, que coinciden con patrones contra valores de argumentos reales como en LMG. Las variables adyacentes constituyen una familia de coincidencias contra particiones, de modo que el argumento, con dos variables, coincide con la cadena literalde tres maneras diferentes:Esto daría lugar a tres instancias diferentes de la cláusula que contiene ese argumento..
Los términos predicados se presentan en dos formas: positivos (que producen la cadena vacía en caso de éxito) y negativos (que producen la cadena vacía en caso de fallo/si el término positivo no produce la cadena vacía). Los términos negativos se denotan igual que los positivos, con una barra superior, como en.
La semántica de reescritura para RCG es bastante simple, idéntica a la semántica correspondiente de LMG. Dada una cadena de predicadodonde los símbolosson cadenas terminales, si hay una reglaEn la gramática con la que coincide la cadena predicada, la cadena predicada se reemplaza por, sustituyendo las variables coincidentes en cada.
Por ejemplo, dada la regla, dóndeyson símbolos variables yyson símbolos terminales, la cadena de predicadospuede reescribirse como, porquepartidoscuando. De manera similar, si hubiera una regla,podría reescribirse como.
Una prueba/reconocimiento de una cadenase hace demostrando queproduce la cadena vacía. Para los pasos de reescritura individuales, cuando son posibles múltiples coincidencias de variables alternativas, se considera cualquier reescritura que pueda llevar a que toda la prueba tenga éxito. Por lo tanto, si hay al menos una forma de producir la cadena vacía a partir de la cadena inicialLa prueba se considera un éxito, independientemente de cuántas otras formas de fracasar existan.
Ejemplo
Los RCG son capaces de reconocer el lenguaje de índice no lineal.como sigue:
Sea x, y, y z símbolos de variables: La prueba de abbababbabb es entonces
O bien, utilizando la notación de puntos más correcta para rangos:
Para una serie deletras, haydiferentes instancias de esa primera cláusula, pero solo la que hacetodoCada letra permite que la derivación alcance.
Propiedades
Toda gramática libre de contexto (GLC) se puede convertir en una gramática de concatenación de rangos:
- Para cada no terminaldel CFG, el RCG tiene una aridadpredicado.
- Para cada regla CFG, el RCG tiene.
- Para cada regla CFG(dóndeterminal), la RCG tiene.
La intersección y la unión de dos lenguajes de concatenación de rangos son trivialmente lenguajes de concatenación de rangos:
- Parala intersección dey, tienes.
- Parala unión dey, tienesy.
Los lenguajes de concatenación de rango posiblemente negativo también son cerrados bajo el complemento de conjuntos.
Una consecuencia de lo anterior es que resulta indecidible si un lenguaje de concatenación de rangos (positivo) no es vacío, puesto que resulta indecidible si la intersección de dos lenguajes libres de contexto no es vacía. Por lo tanto, las gramáticas de concatenación de rangos no son generativas.
Referencias
- ↑ Boullier, Pierre (enero de 1998). Propuesta para una estructura sintáctica de procesamiento del lenguaje natural (PDF) (Informe técnico). Vol. 3342. INRIA Rocquencourt (Francia).
- ↑ Pierre Boullier (1999). "Números chinos, MIX, Scrambling y gramáticas de concatenación de rangos" (PDF) . Actas de la EACL . págs. 53–60 . Archivado del original (PDF) el 15 de mayo de 2003.
- ↑ Eberhard Bertsch y Mark-Jan Nederhof (octubre de 2001). "Sobre la complejidad de algunas extensiones del análisis sintáctico RCG" (PDF) . Actas del Séptimo Taller Internacional sobre Tecnologías de Análisis Sintáctico (Pekín) . págs. 66–77 .
- ↑ Laura Kallmeyer (2010). Parsing Beyond Context-Free Grammars . Springer Science & Business Media. p. 37. ISBN 978-3-642-14846-0.citando a Bertsch, Nederhof (2001) [ 3 ]
- Lenguajes formales
- Marcos gramaticales