Articulo de referencia

Marco gramatical (lenguaje de programación)

Grammatical Framework ( GF ) es un lenguaje de programación para escribir gramáticas de lenguajes naturales. GF ​​es capaz de analizar y generar textos en varios idiomas simultá...

Grammatical Framework ( GF ) es un lenguaje de programación para escribir gramáticas de lenguajes naturales. GF ​​es capaz de analizar y generar textos en varios idiomas simultáneamente, partiendo de una representación del significado independiente del idioma. Las gramáticas escritas en GF se pueden compilar en un formato independiente de la plataforma y utilizarse en diferentes lenguajes de programación, como C , Java , C# , Python y Haskell . GF se complementa con la GF Resource Grammar Library , una biblioteca reutilizable para gestionar la morfología y la sintaxis de un número creciente de lenguajes naturales.

Tanto GF como la Biblioteca de Gramática de Recursos de GF son de código abierto . Tipológicamente, GF es un lenguaje de programación funcional . Matemáticamente, es un sistema formal de teoría de tipos (un marco lógico , para ser precisos) basado en la teoría de tipos intuicionista de Martin-Löf , con juicios adicionales adaptados específicamente al ámbito de la lingüística.

Características del idioma

Tutorial

Objetivo: escribir una gramática multilingüe para expresar afirmaciones sobre el amor que se tienen Juan y María. [ 2 ]

Módulos abstractos y concretos

En GF, las gramáticas se dividen en dos tipos de módulos:

  • un módulo abstractocat , que contiene formularios de juicio y fun.
    • cato las declaraciones de categoría enumeran categorías, es decir, todos los tipos posibles de árboles que pueden existir.
    • funo las declaraciones de funciones indican las funciones y sus tipos , estos deben ser implementados por módulos concretos (ver más abajo).
  • uno o más módulos concretoslincat , que contienen formularios de juicio y lin.
    • lincato definiciones de tipo de linealización , indica qué tipo de objetos produce la linealización para cada categoría enumerada en cat.
    • lino las reglas de linealización implementan funciones declaradas en fun. Dicen cómo se linealizan los árboles.

Considere lo siguiente:

Sintaxis abstracta

abstracto Cero = { cat S ; NP ; VP ; V2 ; fun Pred : NP -> VP -> S ; Compl : V2 -> NP -> VP ; John , Mary : NP ; Love : V2 ; }

Sintaxis concreta: inglés

concreto ZeroEng de Zero = { lincat S , NP , VP , V2 = Str ; lin Pred np vp = np ++ vp ; Compl v2 np = v2 ++ np ; John = "John" ; Mary = "Mary" ; Love = "loves" ; }

Aviso: Str(lista de tokens o "cadena") como único tipo de linealización.

Cómo crear una gramática multilingüe

Una única sintaxis abstracta puede aplicarse a muchas sintaxis concretas, en nuestro caso una para cada nuevo lenguaje natural que deseamos agregar. Se puede dar el mismo sistema de árboles:

  • palabras diferentes
  • diferentes órdenes de palabras
  • diferentes tipos de linealización

Sintaxis concreta: francés

concreto ZeroFre de Zero = { lincat S , NP , VP , V2 = Str ; lin Pred np vp = np ++ vp ; Compl v2 np = v2 ++ np ; John = "Jean" ; Mary = "Marie" ; Love = "aime" ; }

Traducción y generación multilingüe

Ahora podemos usar nuestra gramática para traducir frases entre francés e inglés. Los siguientes comandos se pueden ejecutar en la consola interactiva de GF.

Importar varias gramáticas con la misma sintaxis abstracta.

> importar ZeroEng.gf ZeroFre.gf Idiomas: ZeroEng ZeroFre

Traducción: linealización de tuberías a análisis sintáctico

> parse -lang=Eng "John loves Mary" | linearize -lang=Fre Jean aime Marie

Generación multilingüe: linealizar en todos los idiomas.

> generate_random | linearize -treebank Zero: Pred Mary (Compl Love Mary) ZeroEng: Mary loves Mary ZeroFre: Marie aime Marie

Parámetros, tablas

El latín tiene casos : nominativo para el sujeto, acusativo para el objeto.

  • Ioannes Mariam amat "John-Nom ama a Mary-Acc"
  • Maria Ioannem amat "Mary-Nom ama a John-Acc"

Usamos un tipo de parámetro para el caso (solo 2 de los 6 casos del latín). El tipo de linealización de NP es un tipo de tabla : de Casea Str. La linealización de Johnes una tabla de inflexión . Al usar un NP, seleccionamos ( !) el caso apropiado de la tabla.

Sintaxis concreta: latín

concreto ZeroLat de Zero = { lincat S , VP , V2 = Str ; NP = Case => Str ; lin Pred np vp = np ! Nom ++ vp ; Compl v2 np = np ! Acc ++ v2 ; John = table { Nom => "Ioannes" ; Acc => "Ioannem" } ; Mary = table { Nom => "Maria" ; Acc => "Mariam" } ; Love = "amat" ; param Case = Nom | Acc ; }

Constituyentes discontinuos, registros

En neerlandés, el verbo heeft lief es un constituyente discontinuo. El tipo de linealización de V2es un tipo de registro con dos campos . La linealización de Lovees un registro . Los valores de los campos se seleccionan mediante proyección ( .).

Sintaxis concreta: neerlandés

concreto ZeroDut de Zero = { lincat S , NP , VP = Str ; V2 = { v : Str ; p : Str } ; lin Pred np vp = np ++ vp ; Compl v2 np = v2 . v ++ np ++ v2 . p ; John = "Jan" ; Mary = "Marie" ; Love = { v = "heeft" ; p = "lief" } ; }

Características variables e inherentes, acuerdo, compatibilidad con Unicode

En hebreo, el sintagma nominal (SN) tiene el género como característica inherente : un campo en el registro. El sintagma verbal (SV) tiene el género como característica variable : un argumento de una tabla. En la predicación, el SV recibe el género del SN.  

Sintaxis concreta: hebreo

ZeroHeb concreto de Zero = { codificación de banderas = utf8 ; lincat S = Cadena ; NP = { s : Cadena ; g : Género } ; VP , V2 = Género => Str ; lin Pred np vp = np . s ++ vicepresidente ! np . gramo ; Compl v2 np = tabla { g => v2 ! g ++ "את" ++ np . s } ; Juan = { s = "ג׳ון" ; g = Masc } ; María = { s = "מרי" ; g = Fem } ; Amor = mesa { Masc => "אוהב" ; Fem => "אוהבת" } ; parámetro Género = Masc | femenino ; }

Visualización de árboles de análisis sintáctico

GF cuenta con funciones integradas que pueden utilizarse para visualizar árboles de análisis sintáctico y alineaciones de palabras.

Los siguientes comandos generarán árboles de análisis sintáctico para las frases dadas y abrirán la imagen PNG producida utilizando el eogcomando del sistema.

> parse -lang=Eng "John loves Mary" | visualize_parse -view= "eog" > parse -lang=Dut "Jan heeft Marie lief" | visualize_parse -view= "eog"

Generando alineación de palabras

  1. En los idiomas L1 y L2: vincular cada palabra con su subárbol de expansión más pequeño.
  2. Elimine el árbol intermedio, combinando los enlaces directamente de L1 a L2.

En general, esto proporciona alineación de frases. Los enlaces pueden cruzarse, las frases pueden ser discontinuas. El align_wordscomando sigue una sintaxis similar:

> parse -lang=Fre "Marie aime Jean" | align_words -lang=Fre,Dut,Lat -view= "eog"
Alineación de palabras para "Marie aime Jean" en francés, neerlandés y latín

Biblioteca de recursos gramaticales

En las aplicaciones de lenguaje natural, las bibliotecas son una forma de gestionar los miles de detalles relacionados con la sintaxis, el léxico y la flexión. La Biblioteca de Gramática de Recursos GF es la biblioteca estándar para Grammatical Framework. Cubre la morfología y la sintaxis básica de un número creciente de idiomas, que actualmente incluyen afrikáans, amárico (parcial), árabe (parcial), vasco (parcial), búlgaro, catalán, chino, checo (parcial), danés, neerlandés, inglés, estonio, finlandés, francés, alemán, griego antiguo (parcial), griego moderno, hebreo (fragmentos), hindi, húngaro (parcial), interlingua, italiano, japonés, coreano (parcial), latín (parcial), letón, maltés, mongol, nepalí, noruego bokmål, noruego nynorsk, persa, polaco, punjabi, rumano, ruso, sindhi, eslovaco (parcial), esloveno (parcial), somalí (parcial), español, suajili (fragmentos), sueco, tailandés, turco (fragmentos) y urdu. Además, 14 idiomas cuentan con el léxico WordNet y extensiones de análisis sintáctico a gran escala. [ 3 ]

La documentación completa de la API de la biblioteca se puede encontrar en la página de resumen de RGL . El documento de estado de RGL detalla los lenguajes disponibles actualmente en la Biblioteca de Gramáticas de Recursos de GF, incluyendo su nivel de madurez.

Usos de GF

GF se creó por primera vez en 1998 en el Centro de Investigación de Xerox en Europa , Grenoble, dentro del proyecto de Creación de Documentos Multilingües. En Xerox, se utilizó para prototipos que incluían un libro de frases para restaurantes, un sistema de consulta de bases de datos, la formalización de las instrucciones de un sistema de alarma con traducciones a 5 idiomas y un sistema de creación de descripciones de medicamentos.

Entre los proyectos posteriores que utilizan GF y en los que participan terceros se incluyen:

  • REMU : Comunicación digital multilingüe fiable, un proyecto financiado por el Consejo Sueco de Investigación entre 2013 y 2017.
  • MOLTO : traducción multilingüe en línea, un proyecto de la UE que se desarrolló entre 2010 y 2013.
  • SALDO : Diccionario morfológico sueco basado en reglas desarrolladas para la morfología funcional y la gramática.
  • WebAlt : generación multilingüe de ejercicios matemáticos (proyecto comercial)
  • TALK: sistemas de diálogo hablado multilingües y multimodales

En el ámbito académico, la GF se ha utilizado en muchas tesis doctorales y ha dado lugar a numerosas publicaciones científicas (véase la lista de publicaciones sobre GF para consultar algunas de ellas).

Comercialmente, GF ha sido utilizado por varias empresas en ámbitos como el comercio electrónico, la atención médica y la traducción de especificaciones formales a lenguaje natural. [ 4 ]

Comunidad

Lista de correo para desarrolladores

Existe un grupo activo para desarrolladores y usuarios de GF, ubicado en https://groups.google.com/group/gf-dev

Escuelas de verano

2009 – Escuela de Verano GF (Gotemburgo, Suecia)

Foto de grupo de la Escuela de Verano GF 2009 en Gotemburgo, Suecia.

La primera escuela de verano de GF se celebró en 2009 en Gotemburgo, Suecia. Fue un esfuerzo colaborativo para crear gramáticas de nuevos idiomas en Grammatical Framework (GF). Estas gramáticas se añadieron a la Biblioteca de Gramáticas de Recursos, que ya contaba con 12 idiomas. Actualmente se están desarrollando alrededor de 10 idiomas nuevos, y la escuela tenía como objetivo abordar 23 idiomas. Todos los resultados de la escuela de verano se publicaron como software de código abierto bajo la licencia LGPL.

La escuela de verano fue organizada por el Grupo de Tecnología del Lenguaje del Departamento de Ciencias de la Computación e Ingeniería . El grupo forma parte del Centro de Tecnología del Lenguaje (Archivado el 25/11/2011 en la Wayback Machine) , un área de investigación prioritaria de la Universidad de Gotemburgo .

El código creado por los participantes del curso está disponible en el repositorio GF darcs, subdirectorio contrib/summerschool .

2011 – Fronteras de las Tecnologías Multilingües (Barcelona, ​​España)

La segunda edición de la Escuela de Verano GF , subtitulada « Fronteras de las Tecnologías Multilingües», se celebró en 2011 en Barcelona, ​​España. Fue patrocinada por el CLT (Centro de Tecnología del Lenguaje de la Universidad de Gotemburgo) y la UPC (Universidad Politécnica de Cataluña). La Escuela abordó el desarrollo de nuevos idiomas y promovió el trabajo en curso en aquellos idiomas que ya se encuentran en fase de desarrollo. Se impulsó especialmente el desarrollo de los idiomas de la UE que aún no forman parte de la UE.

El curso comenzó con un tutorial de GF de dos días, dirigido a aquellos interesados ​​en obtener una introducción a GF o una visión general del trabajo en curso.

Todos los resultados del curso de verano están disponibles como software de código abierto publicado bajo la licencia LGPL.

2013 – Ampliación de los recursos gramaticales (Lago Chiemsee, Alemania)

La tercera edición de la Escuela de Verano de GF se celebró en la isla de Frauenchiemsee, en Baviera, Alemania, bajo el lema especial "Ampliación de los recursos gramaticales". Esta escuela se centró en la ampliación de las gramáticas de recursos existentes con el objetivo final de poder procesar cualquier texto en los idiomas compatibles. La ampliación del léxico es una parte fundamental de este trabajo, pero también se exploraron nuevas construcciones gramaticales. Se hizo especial hincapié en la adaptación de recursos de otros enfoques de código abierto, como WordNets y Apertium, y, a su vez, en facilitar la reutilización de los recursos de GF en otros enfoques.

2015 – Cuarta Escuela de Verano GF (Gozo, Malta)

La cuarta edición del curso de verano de GF tuvo lugar en la isla de Gozo, en Malta. Al igual que la edición anterior de 2013, este curso de verano contó con colaboraciones con otros recursos, como Apertium y FrameNet.

2016 – Curso de verano de traducción automática basada en reglas (Alicante, España)

GF fue una de las cuatro plataformas presentadas en la Escuela de Verano de Traducción Automática Basada en Reglas, archivada el 18 de febrero de 2020 en Wayback Machine , junto con Apertium, Matxin y TectoMT.

2017 – GF en una plataforma integral de tecnología lingüística (Riga, Letonia)

La quinta edición de la escuela de verano de GF se celebró en Riga, Letonia. En esta edición participaron varios emprendedores que presentaron casos de uso industrial de GF.

2018 – Sexta Escuela de Verano GF (Stellenbosch, Sudáfrica)

La sexta edición del curso de verano de GF fue la primera que se celebró fuera de Europa. Los temas principales del curso fueron los recursos lingüísticos africanos y el creciente uso de GF en aplicaciones comerciales.

2020 – GF como recurso para el Derecho Computacional (Singapur)

La séptima edición de la escuela de verano de GF , pospuesta debido a la COVID-19, se celebrará en Singapur. Organizada conjuntamente con el Centro de Derecho Computacional de la Universidad de Administración de Singapur (archivado el 21 de agosto de 2021 en Wayback Machine) , la escuela de verano se centrará especialmente en el derecho computacional .

Referencias

  1. Ranta, Aarne (2011). Marco gramatical: Programación con gramáticas multilingües . CSLI Publications, Center for the Study of Language and Information. pp. 8–9 . ISBN  978-1-57586-627-7.
  2. Tutorial de LREC 2010
  3. «Un WordNet en GF» . GitHub . 16 de octubre de 2021.
  4. "Clientes" .
  • Página principal del Marco Gramatical