Gramática de concatenación de rango

Gramática de concatenación de rango (GCR) es una gramática formal desarrollada por Pierre Boullier en 1998 como un intento de caracterizar una serie de fenómenos del lenguaje natural, tales como los números chinos y el orden aleatorio de palabras alemanas, los cuales están fuera de los límites de los formalismos gramáticos sensibles al contexto.[1]

Desde un punto de vista teórico, cualquier lenguaje que pueda ser analizado en tiempo polinómico pertenece al subconjunto de las GCRs llamado gramáticas de concatenación de rango positivo, y recíprocamente.[2]

Aunque pretende ser una variante de las Gramáticas del Movimiento Literal de Groenink (GML), las GCRs tratan el proceso gramatical más como una prueba que como una producción. Mientras que las GMLs producen una cadena terminal a partir de un predicado inicial, las GCRs tienen como objetivo reducir un predicado inicial a la cadena vacía, lo que constituye una prueba de la pertenencia de las cadenas terminales al lenguaje.

Descripción

editar

Definición formal

editar

Una Gramática de Concatenación de Rango Positiva (GCRP) es una tupla  , donde:

  •  ,   y   son conjuntos disjuntos finitos de nombres de predicados, símbolos terminales y nombres de variables respectivamente. Cada nombre de predicado tiene una aridad asociada dada por la función  .
  •   es el nombre del predicado inicial y cumple  .
  •   es un conjunto finito de cláusulas de la forma  , donde los   son predicados de la forma   con   y  .

Una Gramática de Concatenación de Rango Negativa (GCRN) está definida como GCRP, pero con la adición de que algunos predicados que ocurren en el lado derecho de una cláusula pueden tener la forma  . Such predicates are called negative predicates.

Una Gramática de Concatenación de Rango es positiva o negativa. Aunque las GCRPs son técnicamente GCRNs, los términos se utilizan para resaltar la ausencia (GCRP) o la presencia (GCRN) de los predicados negativos.

Un rango en una palabra   es un par  , con  , donde   es la longitud de  . Dos rangos   y   pueden ser concatenados si  , y entonces tenemos:  .

Para una palabra  , con  , la notación punteada para rangos es:  .

Reconocimiento de cadenas

editar

Como en las GMLs, las cláusulas de las GCR tienen el esquema general  , donde en una GCR,   es la cadena vacía o una cadena de predicados. Los argumentos   consisten en cadenas de símbolos terminales y / o símbolos variables, cuyo patrón coincide con los valores de los argumentos reales como en las GMLs. Las variables adyacentes constituyen una familia de coincidencias contra particiones, de modo que el argumento  , con dos variables, coincide con la cadena literal   en tres formas diferentes:  .

Los términos predicados vienen en dos formas, positiva (la cual produce la cadena vacía en caso de éxito), y negativa (la cual produce 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 términos positivos, con una barra superior, como en  .

La semántica de reescritura para GCRs es bastante simple, idéntica a la semántica correspondiente de GMLs. Dada una cadena de predicado  , donde los símbolos   son cadenas terminales, si hay una regla   en la gramática que coincide con la cadena predicado, dicha cadena es reemplazada por  , sustituyendo las variables emparejadas en cada  .

Por ejemplo, dada la regla  , donde   y   son símbolos variables y   y   son símbolos terminales, la cadena predicado   puede ser reescrita como  , porque   coincide con   cuando  . De forma similar, si existiera una regla  ,   puede ser reescrita como  .

Un reconocimiento/prueba 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 podría conducir a que toda la prueba tenga éxito. Por lo tanto, si hay al menos una manera de producir la cadena vacía de la cadena inicial  , la prueba se considera un éxito, independientemente de cuántas otras maneras de fallar existan.

Ejemplo

editar

GCRs son capaces de reconocer el lenguaje de índice no lineal   de la siguiente manera: Dejando x, y, y z ser símbolos variables:

 

 

 

 

La prueba para abbabbabb es entonces:

 

O, utilizando la notación puntual más correcta para rangos:

   

Referencias

editar
  1. Boullier, Pierre (1999). Proc. EACL. Chinese Numbers, MIX, Scrambling, and Range Concatenation Grammars. pp. 53-60. Archivado desde el original el 15 de mayo de 2003. Consultado el 14 de diciembre de 2016. 
  2. Kallmeyer, Laura (2010). Parsing Beyond Context-Free Grammars. Springer Science & Business Media. p. 37. ISBN 978-3-642-14846-0.