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 confusión del orden de las palabras en alemán , 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 analizarse en tiempo polinomial pertenece al subconjunto de RCG llamado gramáticas de concatenación de rango positivo, y viceversa. [4]
Aunque se concibieron 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 apuntan a reducir un predicado inicial (que es el predicado de una cadena terminal) a la cadena vacía, 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 , donde:
- , y son conjuntos finitos disjuntos de (respectivamente) nombres de predicado , símbolos terminales y nombres de variable . Cada nombre de predicado tiene una aridad asociada dada por la función .
- es el nombre del predicado de inicio y verificación .
- es un conjunto finito de cláusulas de la forma , donde son predicados de la forma con y .
Una gramática de concatenación de rango negativo (NRCG) se define como una PRCG, pero con el añadido de que algunos predicados que aparecen en el lado derecho de una cláusula pueden tener la forma . Dichos predicados se denominan predicados negativos .
Una gramática de concatenación de rangos puede ser positiva o negativa. Aunque las PRCG son técnicamente NRCG, los términos se utilizan para destacar la ausencia (PRCG) o presencia (NRCG) de predicados negativos.
Un rango en una palabra es una pareja , con , donde es la longitud de . Las variables se vinculan a rangos, no a cadenas arbitrarias de elementos no terminales. Dos rangos y se pueden concatenar si y solo si , y entonces tenemos: . Al crear una instancia de una cláusula, donde un argumento consta de múltiples elementos de , sus rangos deben concatenarse.
Para una palabra , con , la notación de puntos para rangos es: .
Reconocimiento de cadenas
Las cadenas de predicados que se reescriben representan restricciones que la cadena que se está probando debe satisfacer (si es positiva) o, en el caso de predicados negativos, no satisfacer. El orden de los predicados es irrelevante. Los pasos de reescritura equivalen a reemplazar una restricción por cero o más restricciones más simples.
Al igual que las LMG, las cláusulas RCG tienen el esquema general , donde en una RCG, es la cadena vacía o una cadena de predicados. Los argumentos consisten en cadenas de símbolos terminales y/o símbolos de variables, que coinciden con los valores de argumentos reales como en LMG. Las variables adyacentes constituyen una familia de coincidencias con particiones, de modo que el argumento , con dos variables, coincide con la cadena literal de tres formas 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 error o si el término positivo no produce la cadena vacía). Los términos negativos se denotan de la misma forma que los términos positivos, con una barra superior, como en .
La semántica de reescritura para los RCG es bastante simple, idéntica a la semántica correspondiente de los LMG. Dada una cadena de predicado , donde los símbolos son cadenas terminales, si hay una regla en la gramática que indica que la cadena de predicado coincide, la cadena de predicado se reemplaza por , sustituyendo las variables coincidentes en cada .
Por ejemplo, dada la regla , donde y son símbolos de variable y y son símbolos terminales, la cadena de predicado se puede reescribir como , porque coincide cuando . De manera similar, si hubiera una regla , se podría reescribir como .
La prueba o el reconocimiento de una cadena se realiza mostrando que produce 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 hacer que la prueba completa tenga éxito. Por lo tanto, si hay al menos una forma de producir la cadena vacía a partir de la cadena inicial , la prueba se considera un éxito, independientemente de cuántas otras formas de fallar existan.
Ejemplo
Los RCG son capaces de reconocer el lenguaje de índice no lineal de la siguiente manera:
Sea x, y, z símbolos variables:
La prueba para abbabbabb es entonces
O bien, utilizando la notación punteada más correcta para rangos:
Para una cadena de letras, hay diferentes instancias de esa primera cláusula, pero solo aquella que hace que todas las letras sean iguales permite que la derivación llegue a .
Propiedades
Cada gramática libre de contexto (CFG) se puede convertir en una gramática de concatenación de rangos:
- Para cada no terminal del CFG, el RCG tiene un predicado de aridad .
- Para cada regla CFG , el RCG tiene .
- Para cada regla CFG (donde terminal), el RCG tiene .
La intersección y unión de dos lenguajes de concatenación de rangos son, trivialmente, lenguajes de concatenación de rangos:
- Para la intersección de y , tienes .
- Para la unión de y , tienes y .
Posiblemente los lenguajes de concatenación de rango negativo también estén cerrados bajo el complemento de conjunto.
Una consecuencia de lo anterior es que no se puede decidir si un lenguaje de concatenación de rangos (positivo) es no vacío, porque no se puede decidir si la intersección de dos lenguajes libres de contexto es no vacía. Por lo tanto, las gramáticas de concatenación de rangos no son generativas.
Referencias
- ^ Boullier, Pierre (enero de 1998). Propuesta de una estructura sintáctica para el procesamiento del lenguaje natural (PDF) (informe técnico). Vol. 3342. INRIA Rocquencourt (Francia).
- ^ Pierre Boullier (1999). "Números chinos, MIX, mezcla y gramáticas de concatenación de rangos" (PDF) . Proc. EACL . págs. 53–60. Archivado desde el 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 (Beijing) . pp. 66–77.
- ^ Laura Kallmeyer (2010). Análisis sintáctico más allá de las gramáticas independientes del contexto . Springer Science & Business Media. pág. 37. ISBN 978-3-642-14846-0.citando a Bertsch, Nederhof (2001) [3]