Está en la página 1de 61

Captulo VIII: El Lenguaje de Reglas Gramaticales

8. EL LENGUAJE DE REGLAS GRAMATICALES

8.0 Introduccin al lenguaje de reglas.

Un elemento de regla ser aquello que se encuentre entre dos espacios en


blanco.

Una regla puede estar compuesta por un solo elemento o por varios
elementos uno detrs de otro con espacios en blanco intermedios ; siempre que
se encuentren en la misma lnea y que no sobrepasemos los 256 caracteres todo
formar una sola regla gramatical.

Para nosotros una regla ser cada una de las lneas vlidas de los
ficheros de reglas. En los ficheros de reglas puede haber tambin lneas de
comentario y lneas en blanco.

8.1 Estudio de los distintos elementos del lenguaje de reglas.

Palabra

Palabra es un grupo de caracteres alfanumricos, con la condicin de


que empiece por una letra. Una palabra, adems de caracteres alfanumricos
puede contener cualquier smbolo que nos se clasifique como signo de
70

Captulo VIII: El Lenguaje de Reglas Gramaticales

puntuacin excepto : guiones - , subrayados _ y apstrofes \ (en ingls


para indicar genitivo sajn) .

En el proceso de comparacin de la palabra leda del texto con la palabra


de nuestra regla nos es indiferente si los caracteres estn en maysculas o
minsculas. No somos case sensitive .

Ejemplo de regla :

word

Vamos comparando todas las palabras del texto con sta y cuando sean
iguales, se cumple la regla. Sin importarnos si es una est en mayscula y la
otra en minscula.

En cambio si delante de la palabra leda del texto hubiera algn signo de


puntuacin, la regla no se cumplira. En este caso, si quisiramos verificar la
igualdad, sera necesario completar la regla con algn otro elemento del
lenguaje de reglas.

Este smbolo cuando aparece delante de una palabra supone la negacin


de la palabra, buscamos palabras del texto que no coincidan con la palabra de
la regla. Teniendo en cuenta que dos palabras no sern iguales cuando difieran
en algn carcter, no siendo suficiente para la desigualdad que uno de los
caracteres est en mayscula y el otro en minscula.
71

Captulo VIII: El Lenguaje de Reglas Gramaticales

Tambin hemos de tener en cuenta que si la comparacin se realiza con


una palabra del texto que lleve un signo de puntuacin delante, aunque la
palabra de la regla sea idntica a la leda, el resultado de la comparacin ser
negativo.

Ejemplo de regla :

@word

Delante de una palabra el signo cierre de interrogacin busca que la


palabra de la regla sea igual a la del texto pero en este caso s distinguimos
entre maysculas y minsculas, s somos case sensitive. Por supuesto, se
sigue cumpliendo que un signo de puntuacin delante de la palabra leda del
texto destruye la posible igualdad.

Ejemplo de regla :

?Word

72

Captulo VIII: El Lenguaje de Reglas Gramaticales

sta es la negacin del elemento anterior, buscamos aquellos trminos


del texto que sean diferentes a la palabra de la regla. Siendo diferentes desde el
momento en unos caracteres vayan en mayscula y otros en minscula. Y como
siempre, tambin en el caso de haber algn signo de puntuacin delante de la
palabra extrada del texto.

Ejemplo de regla :

Word

El guin delante de una palabra indica que estamos buscando una


terminacin, que la palabra de la regla, en realidad, es una terminacin y como
tal iremos haciendo las comparaciones con las palabras del texto.

No vamos a distinguir entre maysculas y minsculas. Pero un signo de


puntuacin delante de la palabra del texto deshara la posible identidad.

Ejemplo de regla :

-tion

73

Captulo VIII: El Lenguaje de Reglas Gramaticales

El guin puede combinarse con otros elementos diferentes para formar


un nico elemento de la regla como veremos ms adelante.

La almohadilla es la negacin del elemento anterior. Buscamos aquellos


trminos del texto cuya terminacin no coincida con la especificada en la regla.
No es sensible a las maysculas y minsculas, pero s a la existencia de signos
de puntuacin delante de la palabra del texto a comparar.

Ejemplo de regla :

# tion

La almohadilla paralelamente al caso del guin se puede combinar con


varios elementos diferentes para dar lugar a un nico elemento de regla.

Indica que lo que le sigue es una categora sintctica. Las categoras


sintcticas pueden ser de dos tipos : genricas (en este caso lo que sigue al signo
+ es una cadena alfabtica) o concretas (en este caso lo que ser un nmero de
categora lo que seguir al signo +) . O sea, la palabra del texto es buscada en
el diccionario y se comprueba que pueda tener la categora especificada en la
regla.

74

Captulo VIII: El Lenguaje de Reglas Gramaticales

Los nmeros de categora concreta son las siguientes :

10 nombre singular.
11 nombre plural.
12 nombre cuyo singular y plural coinciden.
13 abreviaturas, acrnimos y siglas.
14 genitivos sajones.

20 adjetivo en grado positivo.


21 adjetivo en grado comparativo.
22 adjetivo en grado superlativo.

30 pronombre.

40 adverbio.

50 verbo en infinitivo.
51 verbo en tercera persona del singular.
52 verbo en pasado.
53 verbo en participio.
54 verbo en gerundio.

60 interjeccin.

70 conjuncin.

80 preposicin.

90 artculo indeterminado.
91 artculo determinado.

75

Captulo VIII: El Lenguaje de Reglas Gramaticales

Las categoras genricas sern :

nombre, engloba las categoras concretas:


10, 11, 12 , 13 y 14.

adjetivo, engloba las categoras concretas:


20, 21 y 22.

pronombre, que engloba la categora concreta:


30.

adverbio, engloba la categora concreta:


40.

verbo, engloba las categoras concretas:


50, 51 y 52.

interjeccion, que engloba la categora concreta:


60.

conjuncion, engloba la categora concreta:


70.

preposicion, engloba la categora concreta:


80.

pronombre, que engloba la categora concreta:


30.

articulo, que engloba las categoras concretas:


90 y 91.

76

Captulo VIII: El Lenguaje de Reglas Gramaticales

Las categoras genricas se escribirn en los ficheros de reglas sin tildes,


en el caso de que las llevaran.

Ejemplos de reglas :

+nombre
+adjetivo
+52
+20

El signo + puede combinarse con otros elementos diferentes para


formar un nico elemento de la regla, como posteriormente veremos. Es un
elemento sensible a la presencia de algn signo de puntuacin delante del
termino ledo de la entrada.

Este elemento es la negacin del anterior. Exigimos que la palabra del


texto tenga una categora diferente de la especificada. O mejor dicho, que no
pueda tener dicha categora. Al igual que en el caso anterior puede ir seguido
de categoras genricas y concretas. Las categoras genricas y concretas son las
mismas que en el caso anterior.

77

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplos de reglas :

!nombre
!adjetivo
!52
!20

El signo ! puede combinarse con otros elementos diferentes para


formar un nico elemento de regla. Es un elemento sensible a la presencia de
signo de puntuacin delante de la palabra sobre la cual aplicamos la regla.

+categora-genrica_categoria-concreta

Este es un elemento de regla formado a partir de los anteriores. Implica


que la palabra debe de tener la categora genrica indicada, pero no la concreta.
Se deben de cumplir las dos condiciones a la vez sobre el mismo vocablo de
entrada.
Ejemplo de regla :

+nombre_11

La palabra tomada del flujo entrada tiene que cumplir ser


nombre y no ser la categora concreta 11 , as, la palabra debe ser nombre
y no ser plural.

78

Captulo VIII: El Lenguaje de Reglas Gramaticales

Es sensible a la presencia de signos de puntuacin delante del elemento


del texto a evaluar. Es un elemento de regla compuesto. Los elementos
compuestos se forman enlazando con el subrayado _ .

&

Nos indica que hemos de encontrar un signo de puntuacin, que sigue


a este smbolo, en el flujo de entrada .

El formato general sera :

&signo

Siendo el caso del punto un caso especial. Pues no puede ir


solo, detrs ha de llevar un modificador : + o - :

&.+

Indica que el signo que buscamos es un terminador


de frase : un punto, un cierre de interrogacin, o un cierre
de admiracin : ., ? o !.

&.-

Aqu el signo buscado es exclusivamente el punto :


..

79

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplos de regla :

&.+
&.&,
&;

Nos indica que hemos de encontrar un signo de puntuacin, que ha de


ser diferente del que sigue al smbolo. Es la negacin del &.

El formato general sera :

$signo

Siendo el caso del punto un caso especial. Pues no puede ir


solo, detrs ha de llevar un modificador : + o - :

$.+

Indica que el signo que buscamos es cualquiera que


no sea un terminador de frase : un punto, un cierre de
interrogacin, o un cierre de admiracin : ., ? o !.

80

Captulo VIII: El Lenguaje de Reglas Gramaticales

$.-

Aqu el signo buscado ha de ser diferente al


punto : ..

Ejemplos de regla :

$.+
$.$,

[lista]

Buscamos la palabra leda del texto en la lista contenida en el fichero.


Esta lista est formada por reglas, pudiendo estas reglas ser simples, las
formadas por un solo elemento ; o complejas, formadas por el encadenamiento
de varios elementos. Estos elementos pueden ser de cualquier tipo, de los
vistos hasta ahora o de los que vamos a ir estudiando ms adelante. Una lista,
por supuesto, puede contener en sus reglas ms listas, que a su vez pueden
contener a otras. El lmite de anidamientos posibles, tericamente, no existe.
Una vez que encontramos la palabra del texto en la lista, se detiene la
bsqueda. Habr una regla por lnea del fichero.

81

Captulo VIII: El Lenguaje de Reglas Gramaticales

El nombre de la lista es el nombre del fichero que la contiene sin


extensin, el programa automticamente le aadir la extensin .rgl. Tenemos
que tener cuidado con esto, pues, al crear el fichero de la lista, es necesario
poner la extensin, aunque luego en las reglas los llamemos de forma
abreviada.

Dentro de una lista podemos tener reglas referentes a signos : & y $.

Ejemplo de regla en la pgina siguiente:

[fichero1]

El contenido de fichero1 podra ser :

&, the
is -ed
+nombre_11 +51 [fichero2]

El resultado de aplicar esta regla sera positivo si la palabra del


texto que vamos a analizar, cumple alguna de las reglas contenidas en
el fichero1.

Evidentemente,

las

reglas

como :

+nombre_11

+51

[fichero2], implican un proceso de avance del puntero sobre el texto. Si


se cumpliera, habramos avanzado al menos tres palabras de texto, en
funcin, claro est, del contenido de fichero2 y de posibles
anidamientos posteriores.

82

Captulo VIII: El Lenguaje de Reglas Gramaticales

<lista>

Es la negacin del elemento anterior.

Buscamos la palabra leda del texto en la lista contenida en el fichero.


Esta lista est formada por reglas, pudiendo estas reglas ser : simples (las
formadas por un solo elemento) o complejas (formadas por el encadenamiento
de varios elementos). Estos elementos pueden ser de cualquier tipo, de los
vistos hasta ahora o de los que vamos a ir estudiando ms adelante. Una lista,
por supuesto, puede contener en sus reglas ms listas, que a su vez pueden
contener a otras. El lmite de anidamientos posibles, tericamente, no existe. El
tipo de listas permitidas para los anidamientos son tanto las positivas como las
negativas. Habr una regla por lnea del fichero.

El nombre de la lista es el nombre del fichero que la contiene sin


extensin, el programa automticamente le aadir la extensin .rgl. Tenemos
que tener cuidado con esto, pues al crear el fichero de la lista es necesario poner
la extensin, aunque luego en las reglas los llamemos de forma abreviada.

Dentro de una lista podemos tener reglas referentes a signos : & y $.

83

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo0 de regla :

<fichero1>

El contenido de fichero1 podra ser :

&, that
are -ing
+verbo_51 the [fichero2]

El resultado de aplicar esta regla sera positivo, si la palabra del


texto que vamos a analizar no cumple ninguna de las reglas contenidas
en el fichero1.Evidentemente, las reglas como : +verbo_51 the [fichero2],
implican un proceso de avance del puntero sobre el texto. Si se
cumpliera, habramos avanzado al menos tres palabras de texto, en
funcin, claro est, del contenido de fichero2 y de posibles anidamientos
posteriores. Pero aqu a diferencia del tipo de lista anterior [ ], si se
cumple alguna de las reglas contenidas en el fichero1, el resultado de la
regla <> ser negativo. Quedando el puntero del texto en el punto de
partida inicial, por lo que tendremos que retroceder todo lo que hayamos
avanzado en el interior del fichero1 y anidamientos posteriores. Si no se
cumplieran ninguna de las reglas del interior de fichero1, entonces el
resultado de aplicar <> positivo. Avanzaramos una palabra en el flujo
de entrada o no en funcin de que termino haya sido el comparado con
<>. Si la comparacin ha sido realizada con una palabra simplemente,
sin que vaya delante ningn signo de puntuacin, avanzaramos una
palabra en el flujo de entrada. En cambio, si la comparacin ha sido
realizada con una palabra que lleva delante un

84

Captulo VIII: El Lenguaje de Reglas Gramaticales

Continuacin del ejemplo0 :

signo de puntuacin, aunque el resultado de aplicar la regla haya


sido positivo, no avanzamos en el flujo de entrada, dado que,
claramente, ninguna de las reglas anteriores podran ser aplicadas a una
palabra que fuera precedida por un signo de puntuacin.

Ejemplo1 de texto con regla aplicada :

Texto : cinema. The film

Regla : +nombre <fichero1>

Contenido de fichero1 :

+verbo
+preposicion

En este caso, la regla se cumple sobre el texto pues despus de la


palabra cinema, que s que es un nombre, no aparece ninguna palabra
con la categora nombre o con la categora preposicin. Despus de la
palabra cinema lo que tenemos es un punto, por eso no avanzaremos
en el flujo de lectura y nos quedaremos en . The para pasar aplicar la
siguiente regla.

85

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo2 de texto con regla aplicada :

Texto : . The film

Regla : <fichero2> +nombre

Contenido de fichero2 :

+adjetivo
-ing

Ahora, vemos que . The cumplen el contenido de la lista


negativa, por lo tanto aunque haya un punto delante de la palabra The
, sera necesario avanzar en el texto y pasar a film para poder aplicar
sobre esta la siguiente parte de la regla : +nombre. Tal y como est la
regla escrita ahora el resultado sera negativo.

*<lista>

Elemento que funciona de manera parecida al anterior con la diferencia


del modo de avance en el texto de entrada. Aqu, si la palabra objeto de la
comparacin lleva un signo de puntuacin delante, s que avanzaremos. Es til
cuando la lista negativa va al comienzo de una regla compuesta de varios
elementos.

86

Captulo VIII: El Lenguaje de Reglas Gramaticales

Retomando el ejemplo2 del elemento anterior, en el que vimos la


necesidad de esta modificacin .

Texto : . The film

Regla : *<fichero2> +nombre

Contenido de fichero2 :

+adjetivo
-ing

Ahora, la regla s que se cumplira pues despus de aplicar


*<fichero2> a . The, avanzaramos en el flujo de entrada y
aplicaramos +nombre a la palabra film.

-terminacin_[lista]

Este elemento de regla es un elemento compuesto. Formado a partir del


smbolo de terminacin -, enlazado con una lista positiva a travs del
subrayado _.

Su significado sera : que la palabra tenga la terminacin

indicada y que, adems, cumpla alguna de las condiciones contenidas en la


lista.
En este tipo de lista que forma parte de un elemento compuesto, no se
permiten reglas o condiciones que impliquen un avance en el flujo del texto de
87

Captulo VIII: El Lenguaje de Reglas Gramaticales

entrada, pues

son condiciones que ha de cumplir la palabra que estamos

inspeccionando. Condiciones que han de cumplirse al mismo tiempo que la


condicin principal, que sera la terminacin, sobre un mismo elemento del
texto. As, esta regla se cumple si la palabra inspeccionada tiene la terminacin
pedida y cumple alguna de las condiciones de la lista ; una vez que se cumple
una condicin de la lista, no seguimos inspeccionado el resto.

Por lo tanto, si se cumple la regla global, avanzamos una palabra en el


flujo de entrada.

Ejemplo de regla :

-ing_[fichero1]

El contenido de fichero1 :

+preposicion
[fichero2]

El contenido del fichero2 :

+verbo
+conjuncion

Estamos pidiendo que la palabra tenga la terminacin ing y que,


al mismo tiempo, pueda ser preposicin o que cumpla alguna de las
reglas (condiciones) incluidas dentro de la lista : [fichero2].

88

Captulo VIII: El Lenguaje de Reglas Gramaticales

-terminacin_<lista>

Este elemento de regla es un elemento compuesto, especular respecto al


anterior. Formado a partir del smbolo de terminacin -, enlazado con una
lista negativa a travs del subrayado _. Su significado sera : que la palabra
tenga la terminacin indicada y que, adems, no cumpla ninguna de las
condiciones contenidas en la lista.

En este tipo de lista que forma parte de un elemento compuesto, no se


permiten reglas o condiciones que impliquen un avance en el flujo del texto de
entrada, pues

son condiciones que ha de cumplir la palabra que estamos

inspeccionando. Condiciones que han de cumplirse al mismo tiempo que la


condicin principal, que sera la terminacin, sobre un mismo elemento del
texto. As, esta regla se cumple si la palabra inspeccionada tiene la terminacin
pedida y no cumple ninguna de las condiciones de la lista.

Por lo tanto, si se cumple la regla global, avanzaremos una palabra en el


flujo de entrada.

Ejemplo de regla :

89

Captulo VIII: El Lenguaje de Reglas Gramaticales

El contenido del fichero2 :


-ing_<fichero1>
going
El contenido
doing de fichero1 :
making
+preposicion
reading
[fichero2]
Estamos pidiendo que la palabra tenga la terminacin ing y que
al mismo tiempo no pueda ser preposicin y que no est en el fichero2.

#terminacin_[lista]

Este elemento de regla es un elemento compuesto. Formado a partir del


smbolo de negacin de terminacin #, enlazado con una lista positiva a travs
del subrayado _. Su significado sera : que la palabra no tenga la terminacin
indicada y que adems cumpla alguna de las condiciones contenidas en la lista.

En este tipo de lista que forma parte de un elemento compuesto, no se


permiten reglas o condiciones que impliquen un avance en el flujo del texto de
entrada, pues son condiciones que ha de cumplir la palabra que estamos
inspeccionando. Condiciones que han de cumplirse al mismo tiempo que la
condicin principal, que sera la terminacin, sobre un mismo elemento del
texto. As, esta regla se cumple si la palabra inspeccionada tiene la terminacin
pedida y cumple alguna de las condiciones de la lista, una vez que se cumple
una condicin de la lista no seguimos inspeccionado el resto.

90

Captulo VIII: El Lenguaje de Reglas Gramaticales

Por lo tanto, si se cumple la regla global, avanzamos una palabra en el


flujo de entrada.

Ejemplo de regla :

# ing_[fichero1]

El contenido de fichero1 :

+preposicion
[fichero2]

El contenido del fichero2 :

+verbo
+conjuncion
+adverbio
besides

Estamos pidiendo que la palabra no tenga la terminacin ing y


que al mismo tiempo pueda ser preposicin o que cumpla alguna de las
reglas (condiciones) incluidas dentro de la lista : [fichero2].

#terminacin_<lista>

91

Captulo VIII: El Lenguaje de Reglas Gramaticales

Este elemento de regla es un elemento compuesto, especular respecto al


anterior. Formado a partir del smbolo de negacin de terminacin #,
enlazado con una lista negativa a travs del subrayado _.

Su significado

sera : que la palabra no tenga la terminacin indicada y que adems no cumpla


ninguna de las condiciones contenidas en la lista.

En este tipo de lista que forma parte de un elemento compuesto, no se


permiten reglas o condiciones que impliquen un avance en el flujo del texto de
entrada, pues son condiciones que ha de cumplir la palabra que estamos
inspeccionando. Condiciones que han de cumplirse al mismo tiempo que la
condicin principal, que sera la terminacin, sobre un mismo elemento del
texto. As, esta regla se cumple si la palabra inspeccionada tiene la terminacin
pedida y no cumple ninguna de las condiciones de la lista.

Por lo tanto, si se cumple la regla global, avanzaremos una palabra en el


flujo de entrada.

Ejemplo de regla :

#ing_<fichero1>

El contenido de fichero1 :

+preposicion
[fichero2]

92

Captulo VIII: El Lenguaje de Reglas Gramaticales

El contenido del fichero2 :

+conjuncion
about

Estamos pidiendo que la palabra no tenga la terminacin -ing y


que al mismo tiempo no pueda ser preposicin y que no est en el
fichero2 (que no cumpla ninguna de las reglas contenidas en el
fichero2).

[lista1]_[lista2]

Elemento compuesto por dos listas positivas enlazadas por un


subrayado _. Su significado es: que la palabra cumpla alguna regla de la
primera lista y luego, a su vez, alguna otra de la segunda.

Dentro de estas lista2 no se permiten reglas que impliquen avances de


lectura sobre el texto. En cambio, en la lista1 s que se permiten avances, pero
aunque el resultado sea positivo siempre se retrocede la ltima palabra leda
para que sea a esta palabra a la que se pasen a aplicar las reglas de la lista2 . Si
se cumplen las reglas de las dos listas a la vez, entonces avanzaremos esta
ltima palabra.

93

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo de regla :

[fichero1]_[fichero2]

Contenido fichero1 :

the

[lista-terminaciones]

Contenido lista-terminaciones :

-ment
-ness
-tion
-ity

Contenido fichero2 :

+nombre
+adjetivo

La regla pide que haya un the y que la palabra siguiente tenga


alguna de las terminaciones de la lista de terminaciones y adems
pueda tener alguna de las categoras indicadas en el fichero2.

[lista1]_<lista2>

94

Captulo VIII: El Lenguaje de Reglas Gramaticales

Elemento compuesto por dos listas una positiva y otra negativa


enlazadas por un subrayado _. Su significado es: que la palabra cumpla
alguna regla de la primera lista y luego, a su vez, no cumpla ninguna de las de
la segunda.

Dentro de estas lista2 no se permiten reglas que impliquen avances de


lectura sobre el texto. En cambio, en la lista1 s que se permiten avances pero,
aunque el resultado sea positivo, siempre se retrocede la ltima palabra leda
para que sea a esta palabra a la que se pasen a aplicar las reglas de la lista2 . Si
se cumplen alguna de las reglas de la primera lista y ninguna de la segunda
lista, entonces avanzaremos esta ltima palabra.

Ejemplo de regla :

[fichero1]_<fichero2>

Contenido fichero1 :
the

[lista-terminaciones]

Contenido lista-terminaciones :

-ment
-ness

95

Captulo VIII: El Lenguaje de Reglas Gramaticales

-tion
-ity

Contenido fichero2 :

+nombre
+adjetivo

La regla pide que haya un the y que la palabra siguiente tenga alguna
de las terminaciones de la lista de terminaciones y no tenga ninguna de las
categoras indicadas en la lista segunda.

<lista1>_[lista2]

Elemento compuesto por dos listas la primera negativa y la segunda


positiva enlazadas por un subrayado _. Su significado es: que la palabra no
cumpla ninguna de las reglas de la primera lista y luego a su vez si cumpla
alguna de la segunda.

Dentro de la lista2 no se permiten reglas que impliquen avances de lectura


sobre el texto. Si se cumplen las dos a la vez, entonces avanzaremos.

96

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo de regla :

<fichero1>_[fichero2]

Contenido fichero1 :

-ment
-ness
-tion
-ity

Contenido fichero2 :

+nombre
+adjetivo

La regla pide que la palabra no tenga ninguna de las


terminaciones del fichero1 y adems obliga a tener alguna de las
categoras indicadas en el fichero2.

<lista1>_<lista2>

Elemento compuesto por dos listas negativas enlazadas por un


subrayado _. Su significado es: que la palabra no cumpla ninguna regla de la
primera lista y luego, a su vez, no cumpla ninguna de las de la segunda.

97

Captulo VIII: El Lenguaje de Reglas Gramaticales

Dentro de la lista2 no se permiten reglas que impliquen avances de


lectura sobre el texto. Si se cumplen las dos a la vez, entonces avanzaremos.

Ejemplo de regla :

<fichero1>_<fichero2>

Contenido fichero1 :

+nombre
+adjetivo

Contenido fichero2 :
-ment
-ness
-tion
-ity

La regla pide que la palabra no tenga ninguna de las categoras


del fichero1 y que adems no tenga ninguna de las terminaciones
indicadas en la lista segunda.

98

Captulo VIII: El Lenguaje de Reglas Gramaticales

*<lista1>_[lista2]

Elemento compuesto por dos listas la primera es negativa y la segunda


es positiva, enlazadas por un subrayado _. Su significado es: que la palabra
no cumpla ninguna de las reglas de la primera lista y luego a su vez si cumpla
alguna de la segunda.

Funciona casi igual que su versin sin asterisco, slo que aqu, s
empezramos a aplicar la regla en un signo seguido de palabra y, si la regla se
cumpliera (en funcin de lo que hubiera dentro de lista1), el signo desaparece
(saltamos el signo) y ya la siguiente regla se aplicara desde la palabra que
haba despus del signo.

Dentro de la lista2 no se permiten reglas que impliquen avances de


lectura sobre el texto. Si se cumplen las dos a la vez, entonces avanzaremos.

Ejemplo de regla :

*<fichero1>_[fichero2]

Contenido fichero1 :
-ment
-ness
-tion
-ity

Contenido fichero2 :
+nombre
+adjetivo

99

Captulo VIII: El Lenguaje de Reglas Gramaticales

La regla pide que la palabra no tenga ninguna de las


terminaciones del fichero1 y adems obliga a tener alguna de las
categoras indicadas en el fichero2. Si aplicramos la regla sobre el
texto :

, the theatre

Claramente la secuencia de texto : ,the cumple la regla, pero al


aplicar esta regla la siguiente se empezara a aplicar en el texto : the
theatre (como vemos el signo ha desaparecido).

*<lista1>_<lista2>

Elemento compuesto por dos listas negativas enlazadas por un


subrayado _. Su significado es: que la palabra no cumpla ninguna regla de la
primera lista y luego a su vez no cumpla ninguna de las de la segunda.

Funciona casi igual que su versin sin asterisco, solo que aqu si
empezramos a aplicar la regla en un signo seguido de palabra, si la regla se
cumpliera (en funcin de lo que hubiera dentro de lista1), el signo desaparece
(saltamos el signo) y ya la siguiente regla se aplicara desde la palabra que
haba despus del signo.

Dentro de la lista2 no se permiten reglas que impliquen avances de


lectura sobre el texto. Si se cumplen las dos a la vez, entonces avanzaremos.
100

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo de regla :

*<fichero1>_<fichero2>

Contenido fichero1 :

+nombre
+adjetivo

Contenido fichero2 :

-ment
-ness
-tion
-ity

La regla pide que la palabra no tenga ninguna de las categoras


del fichero1 y que adems no tenga ninguna de las terminaciones
indicadas en la lista segunda. Si aplicramos la regla sobre el texto :

, the theatre

Claramente la secuencia de texto : ,the cumple la regla pero al


aplicar esta regla la siguiente se empezara a aplicar en el texto : the
theatre, como vemos el signo ha desaparecido.

101

Captulo VIII: El Lenguaje de Reglas Gramaticales

+categora_[lista]

Elemento compuesto por una categora, que puede ser tanto genrica
como concreta (numrica), unida mediante un subrayado _ con una lista
positiva [ ].

El significado es: que la palabra a comparar tenga la categora


especificada y adems cumpla alguna de las reglas de la lista.

Como todas las listas de un elemento de regla compuesto, en este caso no


estn permitidas las reglas que conlleven un avance de lectura en el texto.

Ejemplo de reglas :

+nombre_[fichero1]
+11_[fichero1]

Contenido fichero1 :

-ment
-ness
-tion
-ity

En este caso exigimos

que la palabra tenga las categoras

exigidas y que adems cumpla alguna de las reglas contenidas en


fichero1. En fichero1 podramos tener terminaciones por ejemplo.

102

Captulo VIII: El Lenguaje de Reglas Gramaticales

+categora_<lista>

Elemento compuesto por una categora, que puede ser tanto genrica
como concreta (numrica), unida mediante un subrayado _ con una lista
negativa <>.

El significado es: que la palabra a comparar tenga la categora


especificada y adems no cumpla ninguna de las reglas de la lista.

Como todas las listas de un elemento de regla compuesto, en este caso no


estn permitidas las reglas que conlleven un avance de lectura en el texto.

Ejemplo de reglas :

+nombre_<fichero1>
+11_<fichero1>

Contenido fichero1 :

-ment
-ness
-tion

En este caso exigimos

que la palabra tenga las categoras

exigidas y que adems no cumpla ninguna de las reglas contenidas en


fichero1. En fichero1 podramos tener terminaciones por ejemplo. 0 sea,
que la palabra tenga la categora pero que no tenga ninguna de las
terminaciones especificadas en la lista.

103

Captulo VIII: El Lenguaje de Reglas Gramaticales

!categora_[lista]

Elemento compuesto por una negacin de categora, que puede ser tanto
genrica como concreta (numrica), unida mediante un subrayado _ con una
lista positiva [].

El significado es: que la palabra a comparar no tenga la categora


especificada y adems cumpla alguna de las reglas de la lista.

Como todas las listas de un elemento de regla compuesto, en este caso no


estn permitidas las reglas que conlleven un avance de lectura en el texto.

Ejemplo de reglas :

!nombre_[fichero1]
!11_[fichero1]

Contenido fichero1 :
-ment
-ness
-tion
-ity

En este caso exigimos que la palabra no tenga las categoras


exigidas y que adems cumpla alguna de las reglas contenidas en
fichero1. En fichero1 podramos tener terminaciones por ejemplo.

104

Captulo VIII: El Lenguaje de Reglas Gramaticales

!categora_<lista>

Elemento compuesto por una negacin de categora, que puede ser tanto
genrica como concreta (numrica), unida mediante un subrayado _ con una
lista negativa <>.

El significado es: que la palabra a comparar no tenga la categora


especificada y adems no cumpla ninguna de las reglas de la lista.

Como todas las listas de un elemento de regla compuesto, en este caso no


estn permitidas las reglas que conlleven un avance de lectura en el texto.

Ejemplo de reglas :

!nombre_<fichero1>
!11_<fichero1>

Contenido fichero1 :
-ment
-ness
-tion

En este caso exigimos que la palabra no tenga las categoras


exigidas y que adems no cumpla ninguna de las reglas contenidas en
fichero1. En fichero1 podramos tener terminaciones por ejemplo. 0 sea,
que la palabra no tenga la categora pero que no tenga ninguna de las
terminaciones especificadas en la lista.

105

Captulo VIII: El Lenguaje de Reglas Gramaticales

:[lista1][lista2][lista3]

Elemento compuesto por los dos puntos : seguidos de tres lista


positivas todo ello sin espacios intermedios.

Su significado sera : Avanza en el texto de entrada hasta encontrar


alguno de los elementos o reglas de la lista1, que seran las condiciones de
parada del avance ; en este proceso de avance , a su vez, vamos comprobando
las condiciones o reglas de la lista2 y por cada ocurrencia se incrementar un
contador asociado a cada una de las condiciones. Al llegar a alguna condicin
de parada de la lista1, comprobamos que el nmero de ocurrencias de las
condiciones de la lista2 se corresponden con las especificas en la lista3. En caso
afirmativo, el resultado de la regla sera positivo ; si no, aunque hayamos
encontrado alguna de las condiciones de parada, al no cumplirse los
requerimientos referentes a las condiciones de la lista2, el resultado sera
negativo.

Es un elemento o regla til para distinguir diferentes tipos de oraciones,


pues podemos leer el texto de punto a punto, comprobado condiciones.

Vamos a analizar detenidamente las diferentes partes de este elemento :

[lista1]

Esta lista contiene la condicin o condiciones que buscamos, son


las condiciones de parada. Se va avanzando en el texto hasta encontrar
una de ellas o, en su defecto, un terminador de frase : ., ? o !. As, no
podremos saltarnos los signos de puntuacin que sean terminadores de
frase. No podremos aplicar ninguna regla que implique dos oraciones
diferentes. Si encontrramos un terminador de frase antes que las
106

Captulo VIII: El Lenguaje de Reglas Gramaticales

condiciones de parada, detenemos el proceso de lectura y el resultado


del la regla sera negativo. Hay una condicin por lnea del fichero.

[lista2]

Esta lista contiene una serie de condiciones o reglas que se irn


comprobando durante el proceso de bsqueda de las condiciones de
parada. Existe un nmero mximo posible de condiciones a comprobar,
este nmero mximo es una constante definida en el programa, sujeta a
un posible cambio. En este momento la constante est fijada en 10. En
cualquier caso, no hay nada que impida aumentarla. Pero teniendo en
cuenta que las condiciones pueden ser a su vez listas : [ ] o < > ; no
tenemos muchas limitaciones para poder comprobar un gran numero de
elementos o condiciones. Por cada ocurrencia de cada una de estas
condiciones, se va incrementando un contador asociado. Al alcanzar
alguna de las condiciones de terminacin se compararn estos
contadores con los modificadores de la lista3 y, si son compatibles, el
resultado sera positivo ; si no, sera negativo. Hay una condicin por
lnea del fichero. Todas las condiciones o reglas irn dadas en positivo,
ser el modificador numrico quien se encargue de negarlas.

[lista3]

Esta lista contiene modificadores numricos de las condiciones de


la lista2. Es una lista que va en paralelo con la lista2. Hay un
modificador numrico por cada condicin de la lista2. Si el nmero de
modificadores fuese diferente al numero de condiciones (reglas) de la
lista2, se producira un error sintctico. Hay un modificador por lnea
del fichero.
107

Captulo VIII: El Lenguaje de Reglas Gramaticales

Se ha implementado un sencillo lenguaje para estos modificadores


numricos :

La condicin de la lista2 correspondiente no puede ocurrir


ninguna vez. As, las condiciones de la lista2 se dan siempre en positivo.

nmero

La condicin de la lista2 correspondiente ha de ocurrir este


nmero concreto de veces.

#nmero

La condicin de la lista2 correspondiente ha de ocurrir al menos


este nmero de veces.

?nmero

La condicin de la lista2 correspondiente ha de ocurrir como


mximo este nmero de veces. Puede no ocurrir ninguna vez.

108

Captulo VIII: El Lenguaje de Reglas Gramaticales

nmero

La condicin de la lista2 correspondiente ha de ocurrir como


mximo este nmero de veces, pero al menos una vez. Aqu no
incluimos el cero.

Ejemplo de regla :

:[fichero1][fichero2][fichero3]

Contenido fichero1 :
&.+

Contenido fichero2 :

[conjunciones]

Contenido fichero3 :

Contenido conjunciones :

Todas las conjunciones coordinantes.

109

Captulo VIII: El Lenguaje de Reglas Gramaticales

Esta regla va leyendo buscado terminadores de frase, o sea, de


punto a punto, luego leemos por oraciones. En este proceso de lectura
vamos a ir comprobando todas las palabras que vayamos leyendo y
comprobando si estn en el fichero2. Este fichero2 contiene las
condiciones a comprobar (en este caso slo una condicin, una lista
[conjunciones],otro fichero, que contiene las conjunciones coordinantes).
Al final, para que el resultado de la regla sea positivo, tenemos que
comprobar que el nmero de ocurrencias de la condicin coincide con
las indicadas por el modificador. En este caso, el modificador es 0,
luego estamos pidiendo que no haya ninguna conjuncin de punto a
punto.

En esta regla nos encontramos con una situacin curiosa : al dar la


posibilidad de ir avanzando de oracin en oracin, aunque el resultado sea
negativo, no debemos de retroceder en el flujo de lectura y empezar a aplicarla
de nuevo desde la palabra siguiente, pues si lo hiciramos as, llegara un
momento en el que la oracin siempre cumplira la regla aplicada.

Volviendo al ejemplo de regla anterior de las conjunciones coordinantes,


si aplicsemos la regla al texto :

I wrote the paper and read the article.

Claramente, si vamos avanzando de palabra en palabra llegar un


momento en el que lleguemos al punto terminador de regla sin haber
encontrado una conjuncin coordinante en medio, y as, con todas las frases.

Por lo tanto, esta regla ser necesario que vaya sola en el fichero de
reglas. Ya que no permite la aplicacin de otras reglas, que se apliquen a una

110

Captulo VIII: El Lenguaje de Reglas Gramaticales

palabra, sobre el trozo de texto en el que ella ha avanzado. Si queremos


aplicarla junto a otras reglas que se apliquen a una palabra, o junto a otras
reglas del mismo tipo, tendramos que poder retroceder en el flujo de lectura ;
esto se consigue mediante una modificacin de la regla.

Otra peculiaridad de la regla es que no se permite el anidamiento dentro


de

una

regla

del

mismo

tipo.

No

permitimos

una instruccin

:[lista4][lista5][lista6] dentro de otra instruccin similar :[lista1][lista2][lista3].

*[lista1][lista2][lista3]

Modificacin de la regla anterior que en el caso de resultado negativo s


que retrocedera en el flujo de entrada. El funcionamiento es idntico excepto
en lo referente al retroceso en caso de resultado negativo de la regla.

Este retroceso nos permitir juntar esta regla, en el mismo fichero, con
ms reglas del mismo tipo ; por ejemplo, para buscar distintos modelos de un
mismo tipo de frase. Tambin sera posible mezclar esta regla con otras reglas
de otro tipo, que implique una lectura palabra a palabra, pero esto no es
conveniente. No es conveniente porque todas las palabras ledas desde el
principio de la aplicacin de

*[lista1][lista2][lista3] hasta que se encuentran

alguno de los terminadores de [lista1], quedan fuera del mbito de las reglas
ms simples. Si queremos aplicar alguna regla ms simple en este proceso de
lectura de oracin en oracin, esta regla de palabra en palabra debe ser
introducida dentro de [lista2], como parte de elemento a contabilizar dentro
de la regla compleja *[lista1][lista2][lista3]. Si no lo hacemos as estamos
expuestos a tener unos resultados errneos.

111

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo de fichero con reglas de este tipo :

*[lista1][lista2][lista3]
*[lista4][lista5][lista6]
*[lista7][lista8][lista9]

As, cuando alguna de las reglas sea errnea se retrocede en el flujo de


entrada y volvemos a aplicar desde el mismo punto del texto las siguientes.

Pero la configuracin anterior entrara en un bucle. Supongamos que no


se cumple ninguna de las reglas, en este caso, al aplicar la ltima retrocedemos
y volveramos a aplicar la primera desde el mismo lugar del texto y as
indefinidamente.

Por lo tanto una configuracin correcta del fichero sera :

*[lista1][lista2][lista3]
*[lista4][lista5][lista6]
[lista7][lista8][lista9]

As, en el caso en que la ltima fuera errnea no se retrocedera en


el flujo. Y se podra empezar a aplicar la primera regla desde un punto
diferente del texto.

Aqu tampoco se permite el anidamiento dentro de una regla del mismo


tipo.

No

permitimos

una

*:[lista4][lista5][lista6]

dentro

de

otra *:[lista1][lista2][lista3] o de :[lista1][lista2][lista3].


112

Captulo VIII: El Lenguaje de Reglas Gramaticales

El punto es en realidad, ms que una regla un modificador de regla,


puede ir delante de otra regla alterando su funcionamiento. Su significado es :
avanza en el texto hasta encontrar la regla modificada, en caso de que sea una
regla positiva ; avanza hasta el siguiente signo de puntuacin cumplindose
siempre una regla en el caso de que sea negativa (o avanza hasta el siguiente
signo de puntuacin sin encontrar lo que indique la regla negativa) .

El supone una avance en el fichero de texto de entrada desde donde


empezamos a aplicarla hasta el siguiente signo de puntuacin ,queda claro que
las reglas que empiecen por . no van a saltarse los

signos de puntuacin. Y

son indiferentes al signo de puntuacin que sea. Tal y como hemos dicho hay
dos casos :

REGLA POSTIVA

Encuentra la regla especificada antes de llegar al siguiente signo


de puntuacin. Avanzamos leyendo hasta encontrar la regla pedida,
siendo en este caso el resultado positivo y quedndonos en la ltima
palabra que cumple la regla ; en cambio , si encontrsemos antes un
signo de puntuacin, el resultado sera negativo y retrocederamos hasta
donde hemos empezado a leer.

REGLA NEGATIVA

Avanza en leyendo en el fichero hasta el siguiente signo de


puntuacin sin encontrar lo especificado en la regla negativa o
expresado de otro modo : avanza hasta el siguiente signo de puntuacin
113

Captulo VIII: El Lenguaje de Reglas Gramaticales

cumpliendo todas las palabras la regla negativa, si llegamos a una


palabra que no cumpliera la regla negativa retrocederamos hasta donde
hemos empezado a leer y el resultado sera negativo. Si hemos llegado al
punto, nos quedamos en l y el resultado sera positivo.

Ejemplo1 :

.+adjetivo +nombre

Esta regla avanza en texto de entrada buscando un adjetivo y si


lo encontrase antes de un signo de puntuacin comprueba que la
palabra siguiente sea un nombre.

Ejemplo2 :

. !adjetivo

Aqu avanzamos hasta el siguiente signo de puntuacin y para


que el resultado sea positivo no debemos encontrar ninguna palabra
que pudiera ser adjetivo antes de llegar a l.

Las combinaciones permitidas son :

.palabra

.-terminacin

.@palabra

.-terminacin-[lista]

114

Captulo VIII: El Lenguaje de Reglas Gramaticales

.-terminacion-<lista>

.!ncategora_[lista]

.# terminacin

.!ncategora-<lista>

.# terminacin_[lista]

.[lista]

.# terminacin_<lista>

.[lista1]_[lista2]

. ?palabra

.[lista1]_<lista2>

.palabra

.<lista>

.+categora

.*<lista>

.+categora_[lista]

.<lista1>_[lista2]

.+categora_<lista>

.<lista1>_<lista2>

.+categora_ncategora

.*<lista1>_[lista2]

.+ncategora

.*<lista1>_<lista2>

.+ncategora_[lista]

.&.+

.+ncategora-<lista>

.&.-

.!categora

.&signo (distinto del punto)

.!categora_[lista]

-$.+

.!categora_<lista>

.$.-

.!ncategora

.$signo (distinto del punto)

Tan solo comentar el significado de :

.&signo

Avanza hasta el siguiente signo de puntuacin y que ste sea


igual al especificado.

.$signo

Avanza hasta el siguiente signo de puntuacin y que ste sea


diferente al especificado.
115

Captulo VIII: El Lenguaje de Reglas Gramaticales

En cualquier caso, un elemento de regla que vaya precedido de un


punto, puede ir seguido de cualquier otro elemento de regla, inclusive otro
elemento precedido de punto.

Este al igual que en el caso anterior de ., ms que un nuevo elemento


de regla = es un modificador de los ya existentes. Su significado es : no
importa que al aplicar la regla delante de la palabra que tenemos del texto haya
algn signo de puntuacin. O sea, en este caso con un = delante del elemento
de regla venimos a decir que nos es indiferente que haya o que no haya algn
signo de puntuacin delante de la palabra sobre la que empezamos a aplicar la
regla.

Ejemplo :

=the

En este ejemplo buscamos la palabra the sin importarnos que


delante pueda haber un punto, una coma o cualquier otro signo de
puntuacin.

Las combinaciones permitidas son :

=palabra

=-terminacin-[lista]

=@palabra

=-terminacion-<lista>

=-terminacin

=#terminacin
116

Captulo VIII: El Lenguaje de Reglas Gramaticales

=# terminacin_[lista]

=$signo (distinto

=# terminacin_<lista>

del punto)

= ?palabra

= :[lista1][lista2][lista3]

=palabra

=*[lista1][lista2][lista3]

=+categora

=.palabra

=+categora_[lista]

=.@palabra

=+categora_<lista>

=.-terminacin

=+categora_ncategora

=.-terminacin-[lista]

=+ncategora

=.-terminacion-<lista>

=+ncategora_[lista]

=.#terminacin

=+ncategora-<lista>

=.#terminacin_[lista]

=!categora

=.#terminacin_<lista>

=!categora_[lista]

=. ?palabra

=!categora_<lista>

=.palabra

=!ncategora

=.+categora

=!ncategora_[lista]

=.+categora_[lista]

=!ncategora-<lista>

=.+categora_<lista>

=[lista]

=.+categora_ncategora

=[lista1]_[lista2]

=.+ncategora

=[lista1]_<lista2>

=.+ncategora_[lista]

=<lista>

=.+ncategora-<lista>

=*<lista>

=.!categora

=<lista1>_[lista2]

=.!categora_[lista]

=<lista1>_<lista2>

=.!categora_<lista>

=*<lista1>_[lista2]

=.!ncategora

=*<lista1>_<lista2>

=.!ncategora_[lista]

=&.+

=.!ncategora-<lista>

=&.-

=.[lista]

=&signo (distinto

=.[lista1]_[lista2]

del punto)

=.[lista1]_<lista2>

=$.+

=.<lista>

=$.-

=.*<lista>
117

Captulo VIII: El Lenguaje de Reglas Gramaticales

=.<lista1>_[lista2]

=.&signo (distinto

=.<lista1>_<lista2>

del punto)

=.*<lista1>_[lista2]

=.$.+

=.*<lista1>_<lista2>

=.$.-

=.&.+

=.$signo (distinto

=.&.-

del punto)

Si colocamos el = delante de ., indica que da igual que haya un signo


delante de la palabra de comienzo de aplicacin de la regla .elemento_regla :
nosotros vamos a avanzar hasta el siguiente.

ste al igual que en el caso anterior de =, ms que un nuevo elemento


de regla % es un modificador de los ya existentes. Su significado es : no
importa que al aplicar la regla delante de la palabra que tenemos del texto haya
algn signo de puntuacin, siempre que este signo no sea un terminador de
frase : ., ?, !.

O sea, en este caso con un % delante del elemento de regla venimos a


decir que nos es indiferente que haya o que no haya algn signo de puntuacin
delante de la palabra sobre la que empezamos a aplicar la regla, siempre que
ese signo no sea un terminador de frase.

118

Captulo VIII: El Lenguaje de Reglas Gramaticales

Ejemplo :

%the

En este ejemplo buscamos la palabra the sin importarnos que


delante pueda haber cualquier

signo de puntuacin que no sea

terminador de frase.

Las combinaciones permitidas son:

%palabra

%+ncategora_[lista]

%@palabra

%+ncategora-<lista>

%-terminacin

%!categora

%-terminacin-[lista]

%!categora_[lista]

%-terminacion-<lista>

%!categora_<lista>

%# terminacin

%!ncategora

%# terminacin_[lista]

%!ncategora_[lista]

%# terminacin_<lista>

%!ncategora-<lista>

% ?palabra

%[lista]

%palabra

%[lista1]_[lista2]

%+categora

%[lista1]_<lista2>

%+categora_[lista]

%<lista>

%+categora_<lista>

%*<lista>

%+categora_ncategora

%<lista1>_[lista2]

%+ncategora

%<lista1>_<lista2>

119

Captulo VIII: El Lenguaje de Reglas Gramaticales

%*<lista1>_[lista2]

%.+ncategora

%*<lista1>_<lista2>

%.+ncategora_[lista]

%&.+

%.+ncategora-<lista>

%&.-

%.!categora

%&signo (distinto

%.!categora_[lista]

del punto)

%.!categora_<lista>

%$.+

%.!ncategora

%$.-

%.!ncategora_[lista]

%$signo (distinto

%.!ncategora-<lista>

del punto)

%.[lista]

% :[lista1][lista2][lista3]

%.[lista1]_[lista2]

%*[lista1][lista2][lista3]

%.[lista1]_<lista2>

%.palabra

%.<lista>

%.@palabra

%.*<lista>

%.-terminacin

%.<lista1>_[lista2]

%.-terminacin-[lista]

%.<lista1>_<lista2>

%.-terminacion-<lista>

%.*<lista1>_[lista2]

%.# terminacin

%.*<lista1>_<lista2>

%.# terminacin_[lista]

%.&.+

%.# terminacin_<lista>

%.&.-

%. ?palabra

%.&signo (distinto

%.palabra

del punto)

%.+categora

%.$.+

%.+categora_[lista]

%.$.-

%.+categora_<lista>

%.$signo (distinto

%.+categora_ncategora

del punto)

Si colocamos el % delante de . indica que da igual que haya un signo,


distinto del terminador de frase delante de la palabra de comienzo de
aplicacin de la regla .elemento_regla : nosotros vamos a avanzar hasta el
siguiente.
120

Captulo VIII: El Lenguaje de Reglas Gramaticales

Es un modificador de elementos de regla. Indica que la regla que viene


despus se comprobar en el texto y, tanto si es cierta como si no, retrocedemos
en el flujo de lectura y la siguiente regla comienza en el mismo punto en el que
hemos comenzado a aplicar este elemento con modificador |elemento_regla.
Dicho de otro modo sera : mira que lo que haya delante se corresponda con la
regla, pero solo quiero que mires no que se avance en la lectura del fichero.

Ejemplo :

[determinantes] +adjetivo +adjetivo +adjetivo |+nombre

En este ejemplo buscamos que la primera palabra este en una


lista de determinantes, que luego haya tres adjetivos en cadena y
miramos que despus del ltimo haya un nombre. Si el resultado de la
regla fuera positivo, la siguiente regla se empezara a aplicar desde el
nombre mirado. As despus de esta regla podramos tener otra que
fuera : +nombre +verbo por ejemplo.

Las combinaciones permitidas serian :

|palabra

|-terminacin

|@palabra

|-terminacin-[lista]
121

Captulo VIII: El Lenguaje de Reglas Gramaticales

|-terminacion-<lista>

|$.+

|# terminacin

|$.-

|# terminacin_[lista]

|$signo (distinto

|# terminacin_<lista>

del punto)

| ?palabra

| :[lista1][lista2][lista3]

|palabra

|*[lista1][lista2][lista3]

|+categora

|.palabra

|+categora_[lista]

|.@palabra

|+categora_<lista>

|.-terminacin

|+categora_ncategora

|.-terminacin-[lista]

|+ncategora

|.-terminacion-<lista>

|+ncategora_[lista]

|.#terminacin

|+ncategora-<lista>

|.#terminacin_[lista]

|!categora

|.#terminacin_<lista>

|!categora_[lista]

|. ?palabra

|!categora_<lista>

|.palabra

|!ncategora

|.+categora

|!ncategora_[lista]

|.+categora_[lista]

|!ncategora-<lista>

|.+categora_<lista>

|[lista]

|.+categora_ncategora

|[lista1]_[lista2]

|.+ncategora

|[lista1]_<lista2>

|.+ncategora_[lista]

|<lista>

|.+ncategora-<lista>

|*<lista>

|.!categora

|<lista1>_[lista2]

|.!categora_[lista]

|<lista1>_<lista2>

|.!categora_<lista>

|*<lista1>_[lista2]

|.!ncategora

|*<lista1>_<lista2>

|.!ncategora_[lista]

|&.+

|.!ncategora-<lista>

|&.-

|.[lista]

|&signo (distinto

|.[lista1]_[lista2]

del punto)

|.[lista1]_<lista2>
122

Captulo VIII: El Lenguaje de Reglas Gramaticales

|.<lista>

|=!categora_[lista]

|.*<lista>

|=!categora_<lista>

|.<lista1>_[lista2]

|=!ncategora

|.<lista1>_<lista2>

|=!ncategora_[lista]

|.*<lista1>_[lista2]

|=!ncategora-<lista>

|.*<lista1>_<lista2>

|=[lista]

|.&.+

|=[lista1]_[lista2]

|.&.-

|=[lista1]_<lista2>

|.&signo (distinto

|=<lista>

del punto)

|=*<lista>

|.$.+

|=<lista1>_[lista2]

|.$.-

|=<lista1>_<lista2>

|.$signo (distinto

|=*<lista1>_[lista2]

del punto)

|=*<lista1>_<lista2>

|=palabra

|=&.+

|=@palabra

|=&.-

|=-terminacin

|=&signo (distinto

|=-terminacin-[lista]

del punto)

|=-terminacion-<lista>

|=$.+

|=# terminacin

|=$.-

|=# terminacin_[lista]

|=$signo (distinto

|=# terminacin_<lista>

del punto)

|= ?palabra

|= :[lista1][lista2][lista3]

|=palabra

|=*[lista1][lista2][lista3]

|=+categora

|=.palabra

|=+categora_[lista]

|=.@palabra

|=+categora_<lista>

|=.-terminacin

|=+categora_ncategora

|=.-terminacin-[lista]

|=+ncategora

|=.-terminacion-<lista>

|=+ncategora_[lista]

|=.#terminacin

|=+ncategora-<lista>

|=.#terminacin_[lista]

|=!categora

|=.#terminacin_<lista>
123

Captulo VIII: El Lenguaje de Reglas Gramaticales

|=. ?palabra

|%palabra

|=.palabra

|%@palabra

|=.+categora

|%-terminacin

|=.+categora_[lista]

|%-terminacin-[lista]

|=.+categora_<lista>

|%-terminacion-<lista>

|=.+categora_ncategora

|%#terminacin

|=.+ncategora

|%#terminacin_[lista]

|=.+ncategora_[lista]

|%#terminacin_<lista>

|=.+ncategora-<lista>

|% ?palabra

|=.!categora

|%palabra

|=.!categora_[lista]

|%+categora

|=.!categora_<lista>

|%+categora_[lista]

|=.!ncategora

|%+categora_<lista>

|=.!ncategora_[lista]

|%+categora_ncategora

|=.!ncategora-<lista>

|%+ncategora

|=.[lista]

|%+ncategora_[lista]

|=.[lista1]_[lista2]

|%+ncategora-<lista>

|=.[lista1]_<lista2>

|%!categora

|=.<lista>

|%!categora_[lista]

|=.*<lista>

|%!categora_<lista>

|=.<lista1>_[lista2]

|%!ncategora

|=.<lista1>_<lista2>

|%!ncategora_[lista]

|=.*<lista1>_[lista2]

|%!ncategora-<lista>

|=.*<lista1>_<lista2>

|%[lista]

|=.&.+

|%[lista1]_[lista2]

|=.&.-

|%[lista1]_<lista2>

|=.&signo (distinto

|%<lista>

del punto)

|%*<lista>

|=.$.+

|%<lista1>_[lista2]

|=.$.-

|%<lista1>_<lista2>

|=.$signo (distinto

|%*<lista1>_[lista2]

del punto

|%*<lista1>_<lista2>
124

Captulo VIII: El Lenguaje de Reglas Gramaticales

|%&.+

|%.+ncategora_[lista]

|%&.-

|%.+ncategora-<lista>

|%&signo (distinto

|%.!categora

del punto)

|%.!categora_[lista]

|%$.+

|%.!categora_<lista>

|%$.-

|%.!ncategora

|%$signo (distinto

|%.!ncategora_[lista]

del punto)

|%.!ncategora-<lista>

|% :[lista1][lista2][lista3]

|%.[lista]

|%*[lista1][lista2][lista3]

|%.[lista1]_[lista2]

|%.palabra

|%.[lista1]_<lista2>

|%.@palabra

|%.<lista>

|%.-terminacin

|%.*<lista>

|%.-terminacin-[lista]

|%.<lista1>_[lista2]

|%.-terminacion-<lista>

|%.<lista1>_<lista2>

|%.# terminacin

|%.*<lista1>_[lista2]

|%.# terminacin_[lista]

|%.*<lista1>_<lista2>

|%.# terminacin_<lista>

|%.&.+

|%. ?palabra

|%.&.-

|%.palabra

|%.&signo (distinto

|%.+categora

del punto)

|%.+categora_[lista]

|%.$.+

|%.+categora_<lista>

|%.$.-

|%.+categora_ncategora

|%.$signo (distinto

|%.+ncategora

del punto)

8.1.1 Comentarios sobre las reglas contenidas por las listas


que van precedidas de subrayado : _[lista] y _<lista>
Como ya dijimos, en la explicacin de las diferentes reglas, los
ficheros de listas precedidas de subrayado solo pueden contener reglas

125

Captulo VIII: El Lenguaje de Reglas Gramaticales

que no impliquen avance de lectura en el texto, pues su funcin es


comprobar algo sobre una palabra que ya ha cumplido la primera parte
de la regla. As, a parte de reglas que impliquen avances de lectura,
tampoco tienen sentido reglas relacionadas con signos de puntuacin.
Y, en cualquier caso, las posibles listas que puedan contener en sus
sucesivos anidamientos tendrn que tener las mismas restricciones.

Las combinaciones permitidas van a ser :

palabra

+ncategora_[lista]

@palabra

+ncategora-<lista>

-terminacin

!categora

-terminacin-[lista]

!categora_[lista]

-terminacion-<lista>

!categora_<lista>

# terminacin

!ncategora

# terminacin_[lista]

!ncategora_[lista]

# terminacin_<lista>

!ncategora-<lista>

?palabra

[lista]

palabra

[lista1]_[lista2]

+categora

[lista1]_<lista2>

+categora_[lista]

<lista>

+categora_<lista>

<lista1>_[lista2]

+categora_ncategora

<lista1>_<lista2>

+ncategora

En el supuesto de que dentro de estas listas tuviramos una regla como :


the +nombre +verbo,

donde,

por s solos, los elementos de la regla no

implican avance, pero juntos suponen un avance de tres palabras, slo


procesaramos el primer elemento de la regla. Por lo tanto, hay que tener
cuidado con lo que se escribe dentro de estas listas.

126

Captulo VIII: El Lenguaje de Reglas Gramaticales

8.2 Comentarios sobre el anlisis de una palabra precedida


de signo de puntuacin .
Al intentar aplicar cualquier regla a una palabra precedida de signo de
puntuacin, en principio, el resultado ser negativo. Excepto en aquellas reglas
que procesan signo.

Las combinaciones que procesan signo son :


[lista]

.[lista1]_<lista2>

[lista1]_[lista2]

.<lista>

[lista1]_<lista2>

.*<lista>

<lista>

.<lista1>_[lista2]

*<lista>

.<lista1>_<lista2>

<lista1>_[lista2]

.*<lista1>_[lista2]

<lista1>_<lista2>

.*<lista1>_<lista2>

*<lista1>_[lista2]

.&.+

*<lista1>_<lista2>

.&.-

&.+

.&signo(distintodel punto)

&.-

.$.+

&signo (distinto del punto)

.$.-

$.+

.$signo (distinto del punto)

$.$signo (distinto del punto)

=REGLA

:[lista1][lista2][lista3]
*:[lista1][lista2][lista3]

%REGLA

.[lista]

| REGLA QUE PROCESE

.[lista1]_[lista2]

SIGNOS

127

Captulo VIII: El Lenguaje de Reglas Gramaticales

8.3

Resumen

de

las

posibles

combinaciones

de

los

modificadores de reglas : ., =, %, * y |.

Este smbolo puede llevar detrs cualquier cosa excepto :


=,
%,
|,
*,
:,
y a si mismo ..

Este smbolo puede llevar detrs cualquier cosa excepto :

%,
|,
y a si mismo =.

%
Este smbolo puede llevar detrs cualquier cosa excepto :

=,
|,
128

Captulo VIII: El Lenguaje de Reglas Gramaticales

y a si mismo %.

|
Este smbolo puede llevar detrs cualquier cosa excepto :

a si mismo |.

*
Este smbolo solo puede llevar detrs :

<,
:

Cualquier smbolo.
En cualquier caso, ningn smbolo podr llevar detrs a s
mismo.

8.4 Conclusiones.

Como vemos los ficheros de reglas son totalmente flexibles y


configurables por el usuario, siendo fcil cambiarlos. Queda abierto todo un
campo de investigacin en la mejora de las reglas gramaticales.

129

Captulo VIII: El Lenguaje de Reglas Gramaticales

8.5 Ejemplo de fichero de reglas.

"VOZ PASIVA"

=@there [vbe] -ed |<v5-0>


=@there [vbe] +53 |<v5-0>
=@there [vbe] +52 |<v5-0>
=@there [vbe] [adverbio] -ed |<v5-0>
=@there [vbe] [adverbio] +53 |<v5-0>
=@there [vbe] [adverbio] +52 |<v5-0>
and -ed |<v5-0>
and +53 |<v5-0>

"vbe= verbo to be en todos sus tiempos, en activa y pasiva, en afirmativa"


"y negativa"

"v5-0 = elementos que no pueden ir detrs de un participio en pasiva"


"porque presentan ambigedad: +nombre +verbo y [adj-cad] +nombre +verbo"
"adverbio = +adverbio y -ly"

130

También podría gustarte