Gramática para aserciones simples en español, implementada en Prolog

Grammar for simple assertions in Spanish, implemented in Prolog

Descarga/download


En este proyecto se presenta una gramática para aserciones simples en español. Fue implementada en Prolog, empleando Definite-Clause Grammars (DCG). Se espera que este trabajo pueda servir como referencia para comprender la utilidad de Prolog para NLP (lo que impulsó su nacimiento en los años 70') y a la vez contar con una gramática generativa concisa y documentada del idioma español.

In this project a grammar covering simple assertions in Spanish is presented. It was implemented in Prolog, using Definite-Clause Grammars. It is aimed at providing a tool to understand the usefulness in Prolog to do NLP (what lead, in fact, to its birth back in the 70s), as well as to provide the reader with a full, though concise, generative grammar for Spanish.

Se puede preguntar si una oración es correcta o no gramaticalmente (en un intérprete que soporte DCG, como SWI-Prolog), de la siguiente forma:

It can be asked to a Prolog Interpreter (supporting DCG, for instance SWI-Prolog) for the grammar correctness of a sentence in Spanish:

?-oracion([la,casa,es,grande]).
yes.
?-oracion([la,casa,son,grandes]).
no.
?-oracion([juan,y,maria,tienen,frio]).
yes.
?-oracion([juan,y,yo,tienen,frio]).
no.

Se soportan, entre otras cosas, la redundancia pronominal típica del español rioplatense, y características de largo alcance presentes en las subordinaciones:

Among other things, redundant pronouns (typical in rioplatense Spanish) and long-distance features in subordinations were included:

?-oracion([maria,quiere,a,juan]).
yes.
?-oracion([maria,lo,quiere,a,juan]).
yes.
?-([conozco,la,casa]).
yes.
?-([la,casa,que,conozco]).
yes.

La gramática completa cuenta con 80 reglas aproximadamente y se encuentra disponible para descargar.
The full grammar consists of about 80 rules and is available for download.



Emmanuel Maggiori, 2013. E-mail.