Ad

EnglezăFrancezăSpaniolă

Editor online gratuit | DOC > | XLS > | PPT >


Favicon OffiDocs

Verificarea gramaticii Lingucomponent

OffiDocs oferă OpenOffice online, așa că suntem interesați de verificarea gramaticală Lingucomponent ale cărei obiective sunt să proiecteze, să dezvolte și să implementeze un verificator de gramatică pentru engleză și alte limbi acceptate. Un API de verificare a gramaticii a fost disponibil în OpenOffice.org începând cu versiunea 3.0.

Verificarea gramaticală este văzută ca o implementare specială a unui proces de iterație și de marcare a textului, alte procese de iterare/marcare precum verificarea ortografică sau etichetarea inteligentă pot funcționa în același mod (deși în prezent nu sunt implementate astfel). Dacă verificarea gramaticală este menționată în documentația următoare, aceasta poate fi văzută ca un substituent pentru sarcina mai generală de marcare a textului. Deoarece obiectele care efectuează iterația textului sunt conștiente de procesul de marcare particular pentru care sunt utilizate, este practic posibil să reglați fin iterația pentru nevoile procesului respectiv.

Procesul de verificare a gramaticii constă în

- unul sau mai multe documente de verificat

- una sau mai multe implementări ale verificatorului gramatical, fiecare suportând cel puțin o limbă.

- una sau mai multe dialoguri de verificare a gramaticii (cel mult o instanță per document)

- un meniu contextual când dați clic pe text marcat ca incorect

- un iterator global de verificare a gramaticii (comun tuturor documentelor) implementat ca singleton, verificând o propoziție (a unui document arbitrar) la un moment dat.

- un obiect thread per verificator gramatical care este utilizat pentru a efectua verificarea fără a bloca GUI

- obiecte care iterează prin textul unui document, un obiect reprezentând o singură sarcină de verificare a gramaticii care a fost solicitată

- obiecte reprezentând blocuri de text dintr-un document text („paragrafe plate”) care fac abstracție de structura concretă a documentului și oferă acces la text prin șiruri de text simple și valori întregi care descriu pozițiile și lungimile subșirului.

 

Obiectele și interfețele lor

Avem trei părți care lucrează împreună. Prima parte provine din documentul care este verificat și este o implementare care este specifică unui anumit tip de document (ex. Writer sau Calc). Acesta încapsulează accesul la textul documentului. Un document care dorește să fie verificat pentru erori gramaticale trebuie să accepte interfața com.sun.star.text.XFlatParagraphIteratorProvider. Prin această interfață trebuie să poată furniza obiecte care implementează com.sun.star.text.XFlatParagraphIterator care returnează ele însele obiecte care implementează com.sun.star.text.XFlatParagraph. Ultima interfață este derivată din com.sun.star.text.XTextMarkup. În cele ce urmează vom numi aceste obiecte „iteratoare de paragraf plat” (FPIterator) și „paragrafe plate” (FP). Dacă se folosește cuvântul „paragraf”, acesta va desemna și un „FP”, nu un paragraf real din document, deoarece nu întotdeauna ambele sunt la fel.

Un FP nu este neapărat un paragraf ca în contextul documentelor, poate fi o colecție a acestora (de exemplu, o listă) și nu conține doar textul flux, ci și alt conținut text, cum ar fi cadre de text, anteturi și subsoluri etc. nucleul documentului poate gestiona astfel de obiecte FP în mod eficient, aceasta este o implementare specifică documentului. FP nu dezvăluie structura completă a textului intern sau atributele sale, conținutul său este accesibil doar ca șir care conține blocul de text complet.

Un FPIterator este un obiect care permite iterarea prin toate obiectele FP care alcătuiesc împreună conținutul textului documentului. Ordinea în care sunt repetate paragrafele este arbitrară și este un detaliu de implementare a FPIterator. Conținutul textului „obișnuit” ar trebui să fie furnizat, de obicei, în direcția de citire, dar modul în care se potrivește alt text, cum ar fi anteturile și subsolurile (care există o singură dată, dar sunt repetate pe fiecare pagină) sau cadre de text (care pot fi încorporate în textul fluxului) este nepredeterminat. Iterarea prin text este întotdeauna atribuită unui proces de marcare a textului care va trata întregul document. Astfel, iterația se va încheia la sfârșitul documentului și nu se va încheia înainte ca toate paragrafele să fi fost marcate ca „verificate” pentru un anumit proces de marcare (cum ar fi verificarea gramaticală). Paragrafele marcate ca „verificate” vor fi omise în iterație. Așadar, pentru clienții unui FPIterator este simplu să le folosească: cereți-i pentru noi obiecte FP până când niciunul nu este returnat și nu vă pasă de modul în care este implementat.

A doua parte este un verificator gramatical. Un verificator gramatical este o componentă care implementează interfața com.sun.star.linguistic2.XGrammarChecker. Pentru fiecare limbă poate exista o anumită componentă care poate verifica erorile gramaticale în această limbă. Configurația va spune ce componentă este responsabilă pentru ce limbă. Implementarea com.sun.star.linguistic2.XGrammarChecker care reprezintă o anumită componentă va încapsula API-ul „privat” al acestei componente de verificare a gramaticii. Acest API privat poate fi bazat pe UNO sau Java pur, o interfață CLI sau COM, un API C etc., tot ceea ce poate fi folosit sau conectat la o implementare a unei interfețe UNO. Întrucât interfața este destul de mică, nu ar trebui să fie foarte complicat să împachetați verificatoarele gramaticale existente pentru a le folosi în OpenOffice.org.

În mijloc se află a treia componentă, care mediază între celelalte două. Implementează „logica” procesului de verificare a gramaticii. Deoarece vorbește cu celelalte două părți prin API-ul UNO definit, numai această parte din mijloc este independentă de tipul de document sau componenta de verificare a gramaticii. Un serviciu UNO numit com.sun.star.linguistic2.GrammarCheckingIterator este componenta care realizează de fapt procesul de verificare a gramaticii pentru toate scenariile acceptate. Este un singleton care controlează toate procesele de verificare a gramaticii care rulează și, prin urmare, cunoaște și toate componentele existente de verificare a gramaticii. Implementează interfața com.sun.star.linguistic2.XGrammarCheckingIterator și oferă, de asemenea, un obiect care implementează com.sun.star.linguistic2.XGrammarCheckingResultListener. În cele ce urmează, acest obiect va fi numit GCIterator.


Alerga Chrome Extensions

Ad