La 25 kaj 26 aŭguston mi partoprenis la unuan kunsidon
de kreiĝanta projekto GramatikKontrolilo. Mallonge dirite la projekto celas krei gramatikan kontrolilon helpe de subteno de organizo ESF. La organizo jam subtenas kelkajn tre gravajn kaj sukcesajn projektojn en Esperantujo. Tiuj estas interalie la konata retejo Lernu.net, la tekstaro de Esperanto kaj tradukado de programo OpenOffice. La iniciatinto kaj la organizanto de tiu projekto estis Hokan Lundberg, kiu tre trovis kaj kontaktis ĉiujn partoprenantojn.
Tio estas por mi la unua fojo, kiam mi povus uzi Esperanton kiel parolata lingvo. Tio estis tre interesa sperto por mi. Mi havis kelkajn problemojn kun prononcado, sed entute mi povus normale paroli kaj ĉion kompreni. Mi pensas, ke longa (4 jara) aŭskultado de pola radio kaŭzis tion.
Ĉe la kunsido mi povus konatiĝi kun tre interesaj homoj. Ĉiuj estis tre engaĝiĝitaj Esperantistoj kaj lingvistoj kun vastaj konoj de komputila lingvistiko. Nun mi povis direkte paroli kun Eckhard Bick, kiu estis por mi jam delonge konata de projekto VISL. Tiun projekton mi tre atende trarigardis antaŭ kelkaj jaroj, kiam mi komencis la okupon pri komputila lingvistiko. Mi renkontis Sonja Petrović Petrovic kaj Hokan Lundberg, laborantoj de projekto „Lernu“, Judith Meyer, kiu kreis la retejon „Amikumu“, Marek Blahu kaj Henning von Rosen.
Ĉe tiu kunsido mi povis prezenti la programon Esperantilo, kiu jam enhavas gramatikan korektadon.
- Elŝuto – La orginala prezento PDF
- Elŝuto – La orginala prezento OpenOffice zip
Mi dekomence signalis, ke mi ne povas aktive kaj plene partopreni en la projekto. Unue mi ne havas sufiĉe da tempo, due mi ne volas okupi pri tiu temo en alia maniero kiel ŝatokupo. Tamen estis tre agrable, ke mi ankaŭ kiel neprofesiulo povis partopreni en la kunsido. Feliĉe la gvidadon de projekto povus preni Eckhard Bick, kiu estas tre sperta lingvisto kaj delonga Esperantisto kaj jam faris gramatikan kontrolilon de dana lingvo kadre de programo „ordred“. Do oni ne bezonos fari ĉion de komenco. Eckhard Bick havas diversajn pretajn modulojn por esperanta lingvo kaj la testitaj metodoj por dana lingvo. Do oni bezonas adapti tiujn metodojn kaj modulojn por esperanta lingvo. Nur kelkaj elementoj de sistemo devus esti farita tute nove. Ĉe priskribo de taskoj de projekto evidentiĝis aldonaj subprojektoj. Tiuj estas
- Literumado
- Bazo de sintaksaj arboj
- Bazo de eraroj
En la unua ŝtupo de projekto la gramatika kontrolado estas oferota nur kiel reta interfaco. Poste la gramatika kontrolado devos funkcii en la programo OpenOffice. Ĉar kelkaj elementoj de sistemo estas faritaj kedare de komercaj projektoj, tiu sistemo ne estos plene malferma. Tio ne estas por mi bona informo, ĉar mi kiel programisto normale havas la intereson rekonstrui la sistemon de fontoj kaj adaptigi ĝin por aliaj taskoj aŭ operaciemaj sistemoj. Mi ankaŭ pli volonte legas la programan fontan kodon ol sciencajn laboraĵojn. Tamen ĉiuj direktaj rezultoj de tiu projekto estos malfermaj por vasta publiko. Mi esperas, ke ankaŭ la projekto Esperantilo povus profiti de tiu projekto kaj mi oferis ankaŭ helpon al tiu projekto.
Por mi la plej interesa parto de la kunsido estis la prezento de Eckhard de metodoj de analizo de tekstoj laŭ la teorio de „Contraint Satisfaction“, tiu metodo estas tre simpla. CG ne havas fonton en teorio de generativa formalismo, sed estas rezulto de tre pragmatikaj pensoj. La fontaj datoj por GG-Analizilo estas etikeditaj vortoj.
Normale ĉiuj vortoj posedas diversajn ambiguajn etiketojn. La analizilo forigas aŭ aldonas etiketojn sur nivelo de vortoj laŭ priskribitaj reguloj.
La reguloj de CG estas simplaj proceduroj laŭ modelo: „Forigu/Aldonu la etiketon ĉe vorto kun etikedoj, se la kondiĉo estas prava.“ Kondiĉoj priskribas la najbarajn vortojn. Tiu estas do pure procedura priskribo kontraŭe al diskriptiva priskribo de generativaj metodoj. La ĉefaj avantaĝoj de CG estas ĝia stabileco, rapideco kaj simpleco. Mi pensas, ke tiu metodo estas ankaŭ ekzemplo por bona divido de taskoj inter programistoj kaj lingvistoj. Nun programistoj povus programi CG-Analizilon, kaj lingvistoj havas simplan proceduran lingvon por manipulado de etiketoj. Do CG-Formalismo estas la tiel nomata Domain Specific Language.
Antaŭ 4 jaroj mi multe pensis pri la metodo, mi tiam ankaŭ trovis la liberan analizilon de projekto VISL. La nova versio de tiu analizilo estas CG3. Tamen mi havis grandajn problemojn kompreni la signifon de multnombraj etiketoj. Kvankam mi trovis ekzemplajn regulojn por angla lingvo, mi ne povis uzi tiun analizilon. La forta flanko de CG estas forigo de ambigueco. Ĉar en Esperanto tiu problemo apenaŭ ekzistas, la uzeblecon de tiu metodo mi ne konsideris tiam kiel tre granda.
Kiel mi nun scias, tre interese estas, ke la CG-on oni povas ne nur uzi por disambigueco de vortklasoj, sed ankaŭ por sintaksa analizo kaj kreo de „functional dependency grammar“. Ankaŭ semantika analizo povas uzi CG-analizilojn. Per la sama metodo oni ankaŭ povas trovi gramatikajn erarojn. Do la gramatika korektado estas nur unu elemento en la ĉeno de CG-analizoj, kiuj laboras laŭ diferencaj reguloj. La plej kompleksaj reguloj ekzistas por sintaksa analizo. La komplekseco de tiuj reguloj estas eble la plej malavantaĝa aspekto de tiu metodo. Por averaĝa lingvo oni bezonas pli aŭ malpli 900 regulojn. La flegado de tiuj reguloj ne estas facila kaj oni bezonas longan sperton pri tio. La ordo de reguloj havas grandan influon sur la rezulto. Kutime oni unue difinas bazajn regulojn kaj poste aldonas aliaj kondiĉojn kaj aliajn regulojn. Do la legebleco de reguloj iĝas pli kaj pli malalta. La difino de ĉiuj necesaj reguloj estas laboro por jaroj. Estas malavantaĝe, ke tiun laboron oni ne povas dividi inter kelkaj homoj, ĉar la influo de reguloj inter si estas tre granda. Tamen la komplekseco de reguloj estas la problemo en ĉiuj ĝisdataj metodoj. De teknika vidpunkto la formalismo de reguloj havas kelkajn malavantaĝojn, kiuj rezultigis la neceson de multaj reguloj. Per reguloj oni ne povas difini rekursiajn strukturojn. Tiuj reguloj nur limigite ebligas la uzon de ĝeneraligo (nur per difino de listoj). Ankaŭ la uzado de metodo „backtracking“, kiu por kelkaj problemoj de sintaksa analizo estus tre konvena, ne estas ebla ĉe CG.
En Esperantilo mi ankaŭ uzas la metodon, kiu estas simila al CG. La metodo estas „button-up“ kaj ne enhavas „backtracking“. Tial ankaŭ la analizo en Esperantilo ĉiam ion rezultigas kaj estas sufiĉe rapida. En Esperantilo mi havas nur 100 bazajn regulojn, kvazaŭ ili kovras preskaŭ tutan gramatikon de Esperanto. Kelkaj aldonaj analizoj por subfrazoj, relativaj subfrazoj kaj infinitivaj frazpartoj estas programitaj speciale. La diferenco inter Esperantilo kaj CG estas, ke en Esperantilo dekomence ĉe sintaksa analizo vortoj estas grupigitaj kiel sintaksaj subarboj. Tial la reguloj por sekva ŝtupo povas esti difinitaj pli ĝenerale. Mi uzas la fakton, ke ofte la grupo de vortoj povas esti pritraktato nur kiel la kapo de tiu grupo. Ekzemple por ĉiuj substantivaj frazpartoj: „libro“, „bona libro“ „bona libro skribita de fama aŭtoro“ la plej grava estas la kapo „libro“. Do sekva analizo povus pritrakti nur tiun vorton. Tial okazas ĉe analizo redukto de komplekseco.
Mia nuntempa sento pri la problemo de sintaksa analizo estas, ke oni bezonus diferencajn metodojn por atingi bonajn rezultojn. La rekono de substantivaj frazpartoj postulas aliajn metodojn ol analizo de subfrazoj kaj konjunkcioj. Diskriptivaj reguloj estas ofte pli elegantaj kaj pli mallongaj ol procedurdeklaraj. Kelkajn problemojn oni povas nur bone solvi per „backtracking“.
La sukceso de CG eble plejparte baziĝas sur speciala programa lingvo, kiu estas farita nur por lingvistoj. Per tiu programa lingvo lingvistoj kapablas mem difini regulojn. Ekzistas ankaŭ kelkaj ideoj, kiel plibonigi la uzeblecon de CG. Miaopinie oni povus konsideri sekvajn punktojn:
- Aŭtomata kreado de CG-reguloj de pli ĝeneralaj reguloj.
- Aŭtomata kreado de CG-reguloj de statistika analizo de bazo de sintaksaj arboj.
- Aldonaj iloj, kiuj helpos ĉe difino kaj testado de reguloj.
- Plivastigo de CG je aldonaj metodoj.
Por pli bona pritakso de CG mi bezonus pli da informoj. La projekto VISL havas la analizilon por esperanta lingvo, sed la analizilo ankaŭ havas problemojn kun komplikaj frazoj simile al analizilo de Esperantilo. Tion mi povis konstati post kelkaj testoj per reta interfaco de projekto. Interesa estus la demando, ĉu estas eble plibonigi la analizon kaj kiom da energio tio postulus. Malbonŝanĉe reguloj por neniu lingvo estas libere atingeblaj, do oni povus nur iom havi la ideon pri la verko de reguloj post studado de kelkaj sciencaj laboraĵoj.
Se mi havos sufiĉe de libera tempo, mi volas pli detale okupiĝi pri CG-Analizilo. Mi eĉ povus uzi la liberan CG-Analizilon en Esperantilo, ĉar mi povas bone reuzi modulojn, kiuj estas skribitaj en programa lingvo C++, de programa lingvo XOTcl. La bona tasko por CG estus la analizo de pola lingvo.
Por Esperantilo estus bone klare disigi la regulojn de programado de analizilo. La programa lingvo, kiun mi uzas ĉe programado de Esperantilo, estas sufiĉe abstrakta kaj potenca por uzi meta-programadon. Do mi programas regulojn de analizo kaj la analizon en la sama programa lingvo. Aliflanke la klara diferenco inter lingvaj reguloj kaj programado de analizilo ne ekzistas tiel forte kiel en CG-metodo.
Resumo
Mi estas tre ĝoja, ke la projekto Esperantilo iel ankaŭ instigas kaj inspiras aliajn pli profesiajn projektojn. Tio estas por mi grava motivigo por plia okupo. Dum la renkontiĝo mi povis konatiĝi kun tre interesaj homoj kaj mi havis novojn ideojn. Nun mi estas tre scivola pri la sekva evoluo de tiu projekto.