Dictionarul Explicativ al Limbii Romane On Line

DICTIONARUL EXPLICATIV AL LIMBII ROMâNE

………………….ON – LINE………………..

MOTIVaȚIa alegerii temei

Dicționarul explicativ al limbii române este util in aceeași mǎsură tuturor oamenilor dornici sǎ-și cunoascǎ propria limbǎ și sǎ o vorbeascǎ corect . Acest modul dorește a veni atât în sprijinul celor de la secțiile de uman pentru studierea calculatoarelor cu ajutorul unui produs program legat de specializarea proprie , cât si celorlalți studenți și nu numai , interesați de această problemă .

Introducere

Rolul bazelor de date în procesarea limbajelor naturale

Aproape toată lumea consideră că dicționarele conțin o mare parte din ceea ce știm noi despre lume și că diferența dintre cunoștința limbii și cunoștința lumii este foarte mare. Dar întrebarea de bază rămâne: dacă informația care poate fi extrasă dintr-un dicționar, automatic sau de oameni, este aceeași care îndeplinește cerințele specialiștilor în inteligență artificială pentru folosirea computerizată a cunoștințelor despre lume.

Scopul dicționarelor este de a da o gamă largă de informații despre cuvinte: etomologice, morfologice, sintactice, definiții a sensurilor cuvintelor și prin aceasta să ofere cunoștințe nu numai despre limbă ci mai mult depre cuvântul în sine.

Prima lucrare structurală în lexicografie computerizată a fost făcută de Amsler și White sub îndrumarea lui Simmons și de atunci are o puternică continuitate . “Amsler & White” au stabilit parțial manual, dar prin metode potențial computerizate, o structură taxonomică pentru un subset reprezentativ al dicționarului “New Merriam-Webster Pocket Dictionary” publicat de Pocket Books. Ei au fost primii care au scos în evidență într-un mod clar și procedural că dicționarele sunt structurate ideal pentru o organizare taxonomică, cuvintele definitorii apar toate în lista cuvintelor de bază care este dicționarul însuși.

Taxonomia implicită în definițiile dicționarelor

Taxonomia începută de Amsler depindea de faptul că definițiile din dicționar a unor substantive cunoscute sunt scrise normal în așa fel încât unul poate identifica pentru fiecare cuvânt de bază (acesta fiind deja definit) un termen “genus” (un cuvănt cu un sens mai vast decât cuvântul de bază) care e referit printr-o relație. Informația ce urmează termenului “genus” servește la diferențierea cuvintelor de bază cu același termen “genus”:

Cuțit – o lamă fixată pe un mâner, folosit pentru tăiat sau ca unealtă sau armă.

Aici “lamă” este termenul “genus’ pentru cuvântul definit “cuțit” și “fixată pe un mâner” folosit pentru tăiat sau ca unealtă sau armă” reprezintă diferența. În alte cuvinte “cuțit – vezi – lamă” (genus) distinge dintre alte lame prin diferență. Dar trebuie făcută diferența dintre sensurile cuvintelor (omonimia).

Munca lui Amsler și White a dat baza lucrărilor ce au urmat. LDOCE este un dicționar complet făcut pentru cei ce studiază limba engleză ca a doua limbă. El conține peste 76000 de definiții de sensuri bazate pe peste 40000 de forme de pronunție.

Definițiile au o sintaxă restrictivă și folosesc doar 2000 de cuvinte din dicționar. Versiunea machine-readable a LDOCE conține de asemenea coduri “box” și “subject” ce nu sunt în versiunea tipărită. Codul box folosește un set de primitive ca “abstract”,”concret” și “animat” organizate într-o ierarhie, care sunt folosite pentru a da restricții de tip substantivelor și adjectivelor, ca și argumentelor verbelor. Codul subiect folosește alt set de primitive organizate într-o ierarhie constituită din cuvintele de bază cum ar fi “inginerie” cu subcuvântul de bază “electric”. Aceste primitive sunt folosite pentru a clasifica cuvintele prin subiect. De exemplu, un sens al lui “curent” este clasificat ca geografie sau geologie, pe când alt sens este marcat inginerie/electric.

Construirea unei baze de date lexicale

Necesitatea pentru folosirea dicționarelor on-line în construirea lexicoanelor formale computerizate este intuitiv evidentă. Dicționarele conțin informații despre cuvinte și lexicoanele necesită aceste infomații. Dacă ar putea fi implementate proceduri automate pentru extragerea și formalizarea datelor lexicale pe o scară largă din resursele on-line existente, sistemul ar pune la dispoziție metode de micșorare a efortului lexicografic încorporat în producerea de materiale referențiale pentru consumul uman. Nesurprinzător, o abordare a scalării componentelor lexicale ale prototipurilor de sisteme de limbaj natural dă posibilitatea lucrului cu texte reale. Acestea nu reprezintă doar o sursă convenabilă de cuvinte ci și conțin o parte semnificativă de date lexicale. Eforturile cercetătorilor au arătat că procedurile automatizate pot fi implementate pentru a extrage și formaliza explicații existente.

Cercetarea a progresat:

de la o simplă listă de cuvinte la construcția “parte de vorbire” (substantive, verbe) și la alte subcategorii (substantive feminine) și la informații aferente despre controlul și tipul logic al predicatelor;

de la construirea unor simple taxonomii despre verbe și substantive, la scoaterea rețelei semantice, la construirea ierarhiilor lexicale semantice;

de la obținerea de capabilități semantice (“abstract”, “animat”) pentru dezambiguitatea lexicală până la derivarea aleatoare;

de la rețeaua relațiilor lexicale dintre cuvinte (prin crearea legăturilor “genus” ) la referiri pentru ca rețeaua să reflecte distincția între sensurile cuvintelor și la popularea unor structuri lexicale bogate care introduc o dimensiune adițională la noțiunea de relație lexicală și să promoveze interpretări mai flexibile ale noțiunii de sens a cuvântului.

Când informațiile lexicale care au fost culese de acesta sau alte sensuri sunt prezentate într-un format structurat accesibil programelor care procesează limba, ne referim la ele ca o bază de date lexicală.

Un pas fundamental în crearea unei baze de date lexicale pe baza unui dicționar tipărit este transformarea intrărilor din dicționar (incluzând codurile speciale, diacriticele și formatul special al dicționarului) pentru a permite informației să fie înregistrată într-o structură de date adecvată pentru procesare.

Utilizarea informațiilor lexicale este pasul următor în construirea unei baze de date lexicale.

Scurt istoric din procesarea limbajelor naturale

Domeniul de acțiune al procesării limbajelor naturale (NLP – Natural Language Processing) s-a schimbat dramatic în ultimii ani. Dacă acum cinci ani problemele în acest domeniu se concentrau doar pe aspecte teoretice, cum ar fi reprezentarea cunoștințelor, astăzi s-a ajuns la aplicații specifice, sisteme de evaluare și, mai mult, la sisteme de procesare a limbajelor naturale pe scară largă.

Problema care se pune în momentul actual este nevoia de a introduce metode de analiză a limbajului scris și vorbit pe baza unei munci de culegere a acestuia utilizând multitudinea de texte incluse în text-corpora ( o colecție vastă de texte, limbaj scris și vorbit). Acest lucru se poate realiza folosind dicționare electronice în ideea de a dezvolta sisteme rapide de analiză. În acest sens guvernul SUA a demonstrat un interes deosebit nu numai în cazul procesării de corpora în limba engleză, dar și pentru alte limbi. Procesarea de corpora în limba engleză a devenit, astfel, o bază de dezvoltare pentru aplicații de interes în diferite limbaje, altele decât cele anglo-saxone.

Interesul pentru acest domeniu s-a materializat într-o formă instituționalizată, punându-se astfel bazele “Consorțiului Lingvistic ( Linguistic Data Consortium )” la Universitatea Pennsylvania (Pennsylvania University ) și a “Consorțiului de Cercetare Lexicală ( Consortium for Lexical Research) ” la Universitatea din New Mexico ( New Mexico State University ) cu ajutorul unor fonduri guvernametale. Prin aceasta s-a dorit consolidarea resurselor teoretice obținute pănă atunci, cooperarea internațională în documentarea și cercetarea în domeniu. Dar, poate cel mai mult, s-a dorit, realizarea și testarea de sisteme de analiză a limbajelor naturale, care puteau astfel fi testate pe scară largă în dorința de a obține performanțe mai bune. S-a dorit, prin aceasta, realizarea de conexiuni cu baze de date ce conțin părți de corpora scrisă sau vorbită care să permită extragerea rapidă a informației din texte de dimensiuni medii și mari.

Vorbirea liberă este, fără nici un dubiu, esența limbajului natural. Anumiți lingviști au iterat pericolul pe care îl reprezintă privirea pur automatizată asupra limbajului natural, arătând faptul că vorbirea liberă este un proces continuu evolutiv care nu poate fi inclus într-o rigurozitate totală impusă de un produs program definitoriu. Totuși, firma IBM a reușit să încorporeze metodologia vorbirii într-o mașină de traducere bazată pe o vastă corpora în mai multe limbi.

Dar aceste aplicații de anvergură în domeniul analizei limbajelor naturale nu sunt specifice numai Statelor Unite. Astfel, în Japonia, analiza limbajelor naturale stă la baza realizării proiectului “ Generația a 5 –a ( the Fifth Generation Project )”. Acest proiect pune accentul pe interpolarea dintre analiza limbajelor naturale și inteligența artificială ca un tot unitar. Această abordare este unică, spre deosebire de abordările europene sau americane. “Centrul de Cercetare Dicționare Electronice ( The Electronic Dictionary Research Center ) “ a fost creat la Tokyo pentru a studia și accentua rolul pe care dicționarele electronice de mare anvergură îl au în realizarea unei analize a limbajelor naturale de o acuitate ridicată.

În Europa a existat proiectul Eurotra , o mașină de traducere automată finanțată de Uniunea Europeană timp de 10 ani, în ideea de a realiza o traducere multilingvă cu cel puțin calitatea sistemului Systran ( un cunoscut sistem de traducere automata multilingvă implementat în SUA ). Totuși, în final, s-a renunțat la proiect chiar dacă perioada de “training” – acumulare și învățare – a mașinii a fost destul de îndelungată.

Mult mai productive au fost proiectele de mare anvergură în domeniul analizei lexicale precum Aquilex și Genelex care au avut ca scopuri aceleași ca și cele din SUA sau Japonia, dar cu o modalitate diferită de abordare a problemelor, rezultate din cooperarea internațională necesară unui organism ca Uniunea Europeană.

Capitolul 1. Concepte generale despre Microsoft Access

De ce să folosim Access

Access se aresează unei game largi de utilizatori și programatori, de la novici la integratori de sistem, din cauza capabilităților sale și relativa ușurință în utilizare

Access este un produs care acordă o asistență bogată pentru novici ( care în majoritatea cazurilor nu știu ce este de fapt o bază de date )

Access folosește un motor relațional puternic care este un lider industrial în suportul O.D.B.C și conexiunea între baze de date și între aplicații

Access are o bogată gamă de unelte (tools) pentru dezvoltarea formelor și rapoartelor

Access are cel mai puternic suport pt modelele relaținale dintre toate sistemele de management a bazelor de date

Access suportă o gamă largă de folosire, de la un mediu single-user la file-server la client server, ceea ce înseamnă posibilitatea de scalare a aplicației pe mai multe platforme hard și sisteme de operare soft, utilizând aceleași unelte front-end.

Avantajele Access

Access este un pachet de dezvoltare a aplicațiilor care poate fi folosit de o gamă largă de oameni. Utilizatorii de calculatoare care trebuie să reunească rapid baze de date pentru utilizare rapidă pot, prin folosirea asistenței Wizard, să construiască aplicații rezonabile și foarte funcționale fără a scrie cod. Toate nivelele de programatori de baze de date și ”constructori” de baze de date pot folosii mediul Access pentru a construi baze de date, care în schimb pot fi într-un mediu multiuser client-server.

Capabilități puternice a bazelor de date

Access este de asemenea un motor puternic de baze de date care suportă query-uri multi-thread și dă acces la integratori de sistem, din cauza capabilităților sale și relativa ușurință în utilizare

Access este un produs care acordă o asistență bogată pentru novici ( care în majoritatea cazurilor nu știu ce este de fapt o bază de date )

Access folosește un motor relațional puternic care este un lider industrial în suportul O.D.B.C și conexiunea între baze de date și între aplicații

Access are o bogată gamă de unelte (tools) pentru dezvoltarea formelor și rapoartelor

Access are cel mai puternic suport pt modelele relaținale dintre toate sistemele de management a bazelor de date

Access suportă o gamă largă de folosire, de la un mediu single-user la file-server la client server, ceea ce înseamnă posibilitatea de scalare a aplicației pe mai multe platforme hard și sisteme de operare soft, utilizând aceleași unelte front-end.

Avantajele Access

Access este un pachet de dezvoltare a aplicațiilor care poate fi folosit de o gamă largă de oameni. Utilizatorii de calculatoare care trebuie să reunească rapid baze de date pentru utilizare rapidă pot, prin folosirea asistenței Wizard, să construiască aplicații rezonabile și foarte funcționale fără a scrie cod. Toate nivelele de programatori de baze de date și ”constructori” de baze de date pot folosii mediul Access pentru a construi baze de date, care în schimb pot fi într-un mediu multiuser client-server.

Capabilități puternice a bazelor de date

Access este de asemenea un motor puternic de baze de date care suportă query-uri multi-thread și dă acces concurent la mai multe tabele, fie tabele proprii sau ale altui sistem de mamngement al bazelor de date. Access suportăambele viziuni : cea pesimistă și cea optimistă, care pot fi modificate la orice nivel de implementare, și blocări în general la nivel de pagină, care permit stocarea datelor, pentru modificări rapide și flexibile.

Folosirea de pe surse multiple

Access poate integra date prezente și updatate de la diverse surse de date. O formă sau un raport poate, în același timp, să arate datele de pe un server SQL, o bază de date Oracle, un fișier dBASE și un tabel Access intern. Utilizatorul care se uită la date s-ar putea să nici nu observe că datele sunt compilate de pe mai multe surse, fiecare sursă pe alt calculator.

Eficiența costului unui mediu Run-Time

În aceste timpuri de bugete micșorate și reduceri de costuri, Access este un produs cu cost efectiv eficient. Evident, într-un mediu de dezvoltare standard, fiecare programator necesită o copie a Access pentru a construi baze de date și pentru a construi aplicații. Dat nu necesită instalarea unei copii full a Access pe calculatorul fiecăruia. Pentru a crea un mediu Run-Time, pe amândouă calculatoarele (client și server), trebuie doar să compileze datele și aplicația cu baze de date folosind Microsoft Access Developers’ Toolkit (ADT), creați un set de instalare și să-l instalați unde este nevoie.

Cu costul unei singure copii Access și Microsoft ADT puteți livra aplicații de baze de date de o calitate profesională pentru organizația dumneavoastră sau pentru clienți.

Softul Run-Time ocupă mult mai puțin spațiu pe disk decât instalarea full, ceea ce ar putea fi un factor pe stațiile client. Pentru că versiunea Run-Time nu include toate părțile sistemului de implementare, el va rula în 8Mb de memorie. Un alt avantaj al versiunii Run-Time este că aceasta poate fi configurată astfel încât userii nu pot vedea sau schimba designul tabelelor, formelor și rapoartelor. Acest lucru poate fi făcut și din versiunea full, dar softul Run-Time face mai ușor înlăturarea opțiunilor de meniu și capabilităților, aceasta împiedicând userii să corupă baza de date.

Securitatea

Access are constructorul de securitate astfel încât diferiți useri pot primii diferite grade de acces la dete. Unii useri pot avea nevoie să vadă și să editeze date fără restricții, alții pot doar să citească și să modifice anumite tabele și alte grupuri ar putea avea permisiune doar de citire. Din perspectiva programatorului, abilitatea de a controla permisiunea înseamnă că nu este necesară implementarea aplicațiilor client pentru fiecare în parte.

Folosirea limbajului SQL-Structured Query Language

SQL este limbajul acceptat de toate SGBD-urile relaționale. SQL lucrează seturi de linii care au în comun o valoare sau o caracteristică. Metoda de lucru este inversă metodei prin care Visual Basic tratează datele (linie cu linie). SQL este suportat de asemenea și de bazele de date nerelaționale. Este un limbaj foarte ușor de învățat, chiar și de cei ce nu se ocupă cu programarea în mod special. Datorită faptului că lucrează cu seturi de date este foarte indicat pentru lucrul într-un mediu Client/Server, deoarece folosirea lui nu duce la o încarcarea traficului în rețea. Acest lucru l-a impus ca un standard în mediul Client/Server.

Tipuri de SQL

SQL este un limbaj din generația a patra(4GL), neprocedural. Nu există instrucțiuni SQL care deschid fișiere sau definesc caracteristicile unei înregistrări așa cum se întâmplă în cazul limbajelor de generația a 3-a (3GL). Când scriem un cod SQL speciicăm doar ce dorim să primim ca răspuns(să vizualizăm înregistrări, modiicăm, setăm nivele de securitate, să creăm tabele) și nu ne interesează cum face SGBD-ul acest lucru.

SQL este un limbaj interactiv care ne permite să scriem “ad-hoc queries” către un SGBD relațional. Având drepturile necesare, putem folosi “Interactive SQL” pentru a modifica tabele, reguli de integritate, etc. în timp real. Pentru rapoarte sau sarcini de întreținere putem grrupa linii de cod SQL într-un script SQL pe care-l putem rula la fel ca un program 3GL.

Alt tip de SQL este “Static SQL”, care este folosit în regim de executabil și este încoporat într-un limbaj 3GL. Un program SQL static este mai întâi compilat de un preprocesor SQL care evaluează liniile de cod SQL și le optimizează pentru execuție. Codul SQL preprocesat și codul în limbajul gazdă sunt apoi compilate împreună și transformate într-un cod executabil care poate fi lansat de oriunde.

Al treilea tip de SQL este “Dynamic SQL” și este un cod SQL generat de o aplicație ca răspuns la o cerere a utilizatorului. Acest lucru este echivalent cu referirea de variabile în limajele 3GL. În mod evident, criteriile de căutare SQL nu sunt cunoscute la momentul lansării codului și de aceea va avea loc doar o optimizare parțială.

Fiecare din cele trei tipuri de SQL are următoarele categorii de instrucțiuni:

instrucțiuni pentru definirea datelor(Data Definition Language – DDL);

instrucțiuni pentru manipularea și controlul datelor(Data Manipulation Language – DML);

Originile SQL

Conceptul SQL s-a născut în anii 1970 la IBM San Jose Facility sub îndrumarea lui E.F. Codd, recunoscut mai tărziu ca tatăl modelului relațional al bazelor de date. Limbajul SQL cunoscut astăzi este unul din cele câteva limbaje relaționale concepute atunci. În 1974 D.D.Chambelain a implementat un limbaj prototip numit SEQUEL-XRM.

Implementarea comercială a SQL a început din 1979 când corporația Oracle a anunțat că sistemul de gestiune de baze de date relaționale Oracle va rula pe platforme hardware multiple, va trata în mod similar end-user-ii de pe fiecare sistem de operare și va folosi ca limbaj propriu de programare pentru baze de date SQL. Exemplul a fost urmat de Relational Tehnology Inc. care a adăugat o interfață SQL la sistemul lor Ingres. În 1981 IBM a scos un produs (SQL/DS) pentrtu mediul DOS. În 1983 a introdus DB2, prima bază de date SQL de la IBM.

SQL a fost și continuă să fie un succes comercial și aproape fiecare sistem de gestiune de baze de date îl are în vedere pentrtu arhitectura sa internă.

Standardul SQL

Nu există numai un singur standard SQL, diferențierea între limbajele scrise de diferite firme făcându-se încă de la început, așa că astăzi există în jur de o sută de dialecte SQL. De aceea ANSI(American National Standards Institute) a propus în 1982 specificarea unor standarde SQL. De-a lungul timpului, fiecare producător de SGBD-uri a căutat ca versiunea de SQL folosită să fie cât mai apropiată de cea adoptată de ANSI.

Primul standard SQL realizat în 1986 era o medie a limbajelor SQL implementate de IBM. Între cele trei limbaje folosite existau mici diferențe, însă cu toate acestea, standardul ANSI reușește să difere nu numai de toate trei, ci și de orice limbaj existent pe piață. Limbajul reușește să ofere suport pentru deinirea, manipularea și contrtolul datelor, dar lasă nedefinite și deschise interpretării multe alte funcții.

Standardul SQL apărut în 1989 definește mai clar pe cel din 1986, introducând capabilități noi ca: integritatea referențială. Aceste două standarde sunt numite SQL-1 Standard.

Standardul apărut în 1992 (SQL-2 Standard) aduce noi facilități fiind ca dimensuni de cinci ori mai mare decât SQL ’86.

1.3 Dezavantajele folosirii MS-Access

Nici un sistem nu este perfect, nici o unealtă nu va face totul pentru toți. Un pachet soft, ca și o țară, este definit de granițele sale. Ca și programator, veți împinge Access sau oricare alt produs la limitele pentru a extrage ceea ce este mai valoros de la investiția sa în învățarea produsului. De aceea este importantă cunoașterea limitelor majore ale Access înainte de a-i folosi uneltele. Cu cunoaștințele câștigate din această cunoaștere, puteți să mergeți mai departe cu dezvoltarea proiectelor, evitând aceste probleme și planificându-vă lucrul în conformitate cu acestea.

Unul din dezavantajele majore este că nu permite un mediu de programare în grupuri de lucru, coordonarea mai multor programatori să lucreze la același proiect, deoarece toate obiectele corespunzătoare unei aplicații (forme, rapoarte, coduri, macrouri, queriuri) sunt conținute într-un singur fișier .MDB, coordonarea schimbărilor implementaționale făcute unei aplicații unde sunt mai mulți programatori poate fi foarte dificilă.

1.4 . Securizarea Access

Access are securizare opțională și discretă. După ce securitatea este pornită, un user trebuie să se logineze la baza de date. Parolele sunt opționale. Securitatea se conformează modelului discret. Access are un concept de proprietate; creatorul unui obiect îl posedă și trebuie să dea permisiune utilizatorilor să acceseze sau updateze acel obiect. Permisiunile de acces la date pot fi read-only sau full, și sunt date la discreția administratorului de securitate.

Securitatea Access este totdeauna prezentă, ceea ce trebuie mereu ținut minte. Majoritatea oamenilor nu realizează că atunci când folosesc Access-ul fără logon și parolă, ei folosesc de fapt logon-ul implicit. Nu trebuie adăugat nimic securizării ci trebuie folosit ceea ce este deja acolo.

1.4.1. De ce este necesară securitatea ?

Protejarea datelor sensibile de pe o bază de datelocală

Pot fi urmați anumiți pași pentru a proteja datele sensibile (pe lângă securizarea Access). Implementarea acestor pași depinde de nivelul de sensibilitate a datelor și ce nivel de securizare există :

Păstrarea bazei de date pe un calculator ce nu e conectat la o rețea

Dacă este într-o rețea, păstrați baza de date pe un disk sau partiție care nu este shared

Folosiți loginarea softului de net. Nu automatizați procesul de loginare astfel încât userii să fie loginați când calculatorul este pornit. Trebuie să cereți un user ID și parolă

Setare de parolă din BIOS

Pentru a restânge accesul la datele de pe server via client Access

Se poate seta parolă pentru baza de date de pe server. Acest lucru e folositor pentru că permite user-ului să analizeze datele de pe unul sau mai multe servere, fără să se logineze manual de fiecare dată când accesează serverul. Aceasta înseamnă, de asemenea, că securitatea serverului este în acest moment singura suficient de bună ca aceea a Access-ului

Prevenirea schimbărilor în aplicație

După instalarea aplicației client, nu se dorește ca comunitatea de end-useri să o schimbe arbitrar. Toate schimbările trebuie făcute prin echipa de programatori sau prin cine e responsabil cu menținerea aplicației. Acesta este și mai adevărat dacă, folosiți replici pentru a trimite schimbările aplicației, la copii Run-Time pe calculatoare user. Orice schimbare pe care poate au făcut-o o să fie înlocuită de fiecare dată când replicați un nou fișier aplicație

Dacă există o excepție la această politică, ea poate fi : dacă aplicația client este un sistem executabil. În acest caz userii ar avea nevoie de cababilități de adăugare de query-uri astfel încât să poată vedea datele într-un mod nou. Securitatea folosită de Access permite securizarea tabelelor, în același timp cu permiterea user-ilor flexibilități în anumite arii, cum ar fi implementarea query-urilor.

Protejarea proprietății intelectuale

Dacă sunteți un designer independent, o să puteți să vă protejați aplicația, ceea ce este „proprietate intelectuală”, de folosirea fără cunoștința și permisiunea dumneavoastră și fără remunerare.

1.4.2. Modelul de securizare Access

Access implementează securitate user-level. Diferența față de majoritatea softurilor de dezvoltare a bazelor de date care folosesc securitate share-level. Modelul securității user-level permite userullui să fie autentificat și le permite accesul la obiectele la care are drept de acces. În mediul Access, la loginare userii sunt autentificați când dau o parolă validă pentru contul lor. Fiecare persoană care are un cont de user poate aparține unui grup, acestuia nu trebuie să i-se acorde priorități separat el moștenindu-le pe cele ale grupului la care a fost adăugat. Adăugarea, îndepărtarea sau readăugarea de permisiuni userilor, se face la nivel de4 grup ceea ce ușurează munca administratorului.

Identificarea userilor :

Când un user se loginează, Access caută să vadă dacă userul este în lista de useri aprobată din fișierul System.mdw. Access caută de asemenea cărui grup îi aparține acest user. Din acest moment, de fiecare dată când acest user care un obiect al bazei de date , Access caută să vadă dacă userul are permisiuni și care sunt acestea, asupra obiectului cerut ; dacă are permisiunea necesară satisfacerii cererii făcute atunci cererea îi va fi îndeplinită, dacă nu userului i se va refuza cererea.

Adăugarea unui nou grup de lucru :

La începerea securizării aplicației, se va vrea crearea unui nou fișier System.mdw. aceasta se face din meniul Acces Tools, de la Security cu Workgroup Administrator :

Prin selectia butonului Create… se poate crea un nou grup de lucru, prin Join… se poate adăuga unui grup de lucru deja existent.

Adăugarea userilor

Majoritatea administratorilor de rețea vor admite că munca lor ar fi mult mai ușoară dacă nu ar trebui să lucreze cu useri, așa și administratorii de baze de date simt la fel. Totuși o bază de date client/server necesită users, deci va putea adăuga unii prin pașii următori :

deschidera mediului Access

se selectează din meniul Tools, Security, User and Group Accounts

click New pentru a adăuga un user

scrieți numele noului user, adăugați un PersonalID, și apoi apăsați Ok. Astfel noul user este adăugat sistemului.

La fel se face și cu grupurile de utilizatori :

Acordarea de permisiuni

Acordarea de permisiuni este absolut necesară într-un model de bază de date cu nivele de securitate. Aceste permisiuni se pot seta și la nivelul obiectelor bazei de date.

Din același meniu Tools, Security se alege Users and Groups Permisson

Pentru fiecare obiect în parte și pentru fiecare utilizator, respectiv grup se setează permisiunile posibile

open/run

read design

modify design

administer

read data

update data

insert data

delete data

Se poate observa următorul lucru : de fiecare dată când se setează Read Design true, pentru un tabel sau un query, Read Design este setat automateste setat automat. Unul dintre motivele pentru care se întâmplă acest lucru poate fi acela că Access are nevoie să citească designul pentru a afișa și formata datele. Acest lucru este incomod deoarece într-un sistem cu securitate nu există interesul acordării dreptului de citire a designului de către toți userii.

1.5. Replicarea

Replicarea se face din cu ajutorul meniu Tools bazei de date, submeniul Replication.

Primul lucru care se face pentru replicare este crearea unei replici, prima replicâ fiind creată ca Design Master. Din acest DesignMaster se poate face sincronizarea, rezolvarea conflictelor și crearea unor noi replici. Crearea acestor replici se poate face pe orice stație se dorește, iar sincronizarea lor se face din acest Design Master care este creat la prima replică. Dejavantajele acestei replicări este că la creare indexul tabelelor devine exagerat de mare și poate să facă ca să nu mai poată fi introduse date în tabelul respectiv, iar cel de-al doilea dezavantaj este sincronizarea înceată : sincronizarea trebuie făcută cu fiecare replică in parte, acest fapt la un număr mare de replici devine incomod. În ciuda acestor dezavantaje replicarea este cea mai indicată metodă ce poate fi folosită pentru baze de date Access ce trebuiesc distribuite.

Capitolul 2. Proiectarea sistemului informatic DEX

2.1. Introducere

Dicționarul explicativ al limbii române se adreseazǎ tuturor celor care , folosind in mod curent limba românǎ , au nevoie di informații și lǎmuriri noi în legǎturǎ cu vocabularul românesc actual .

Conceput ca un cuprinzǎtor repertoriu lexical , Dicționarul înregistreazǎ și explicǎ cuvinte , sensuri și unitǎti frazeologice ivite în uzul limbii române.

În acest dicționar intra și cuvinte populare , regionale , arhaisme etc . care apar în operele clasice ale literaturii române cât si in vorbirea din unele pǎrti ale tǎrii .

Definirea și explicarea cuvintelor , ca și distribuirea sensurilor , respectǎ principiile introduse în lexicografia româneascǎ de Institutul de lingvisticǎ din București .

Ca si în dicționarele tipărite pâna acum și în acesta au fost incluse locuțiuni și expresii ori de câte ori prezența lor în cursul tratǎrii unui cuvânt se impunea cu necesitate.

Pentru a respecta tradiția din lexicografia nationalǎ , Dicționarul indicǎ și originea cuvintelor inregistrate , deși nu este un dicționar etimologic propriu-zis .

Automatizarea DEX – ului este utilă din punct de vedere al utilizării sale mai rapide și mai ușoare în orice context , atăt ca și căutare a cuvintelor propriu-zise cât și analiză de text .

Pentru a fi utilizat DEX –ul trebuie populat ceea ce este o muncă nu chiar ușoară și de foarte lungă durată . Popularea acestuia trebuie făcută în conformitate cu normele impuse și să conțină toate datele necesare despre cuvinte , pentru ca să fie correct din toate punctele de vedere și să poată fi utilizat correct și cât mai ușor .

2.2. Cerintele asupra bazei de date DEX

Baza de date trebuie să fie capabilă să primească informații diverse la fiecare cuvânt , și anume :

Unele cuvinte au omonimie adică cuvântul are aceeași formă dar înțelesurile sale sunt complet diferite . Aceste omonime pot fi zero sau mai multe .

De asemenea fiecare omonim în parte are una , mai multe sau nici o explicație , care la rândul lor pot avea detalii ( partea de vorbire cu care se prezintă cuvântul respectiv în situația respectivă și domeniul din care face parte cuvântul în sensul dat de acea explicație ) diferite sau / și comune . Pe scurt un cuvânt poate avea mai multe explicații fiecare cu partea de vorbire și domeniul corespunzătore .

Un cuvânt are ,de asemenea și anumite detalii care pentru un utilizator care nu face parte din cercul lingviștilor o să pară inutile cum ar fi cuvântul de bază al cuvântului dat ,prefixul sau sufixul cu care este format cuvântul , limba de proveniența , cuvântul dat în limba de proveniență ,cuvântul cu care este cel mai legat .

Iar pentru verbe se introduc toate conjugările cu persoana și timpul la care se face conjugarea pentru ca pe o analiză de text și verbele să fie recunoscute , pentru că limba română nu permite altfel recunoașterea verbelor .Doar după forma de infinitiv , care este prezentă în DEX – ul tipărit verbele nu vor fi recunoscute într-un text doar dacă printr-o fericită coincidență verbul este la forma de infinitiv .

2.3. Descrierea sistemului informatic DEX

Pentru un cuvânt avem pluralul său , și dacă este cazul forma de feminin și pluralul acesteia .

Pentru fiecare omonim în parte ( dacă nu are omonimie pentru cuvântul dat ) avem forma de plural a acelui omonim , pentru că în limba română există cuvinte care prezintă forme diferite de plural pentru fiecare omonim.

Iar de asemenea pentru fiecare omonim avem mai multe explicații . Limba română permite ca un cuvânt să ia părți de vorbire diferite ( cât și domenii ) pentru fiecare explicație ( sau pentru mai multe explicații diferite ) . Explicațiile sunt grupate deci în jurul unor domenii sau părti de vorbire în care se prezintă cuvântul dat .

Cuvântul mai are și explicații legate de proveniența și forma de compunere prin care s-a format cuvântul adică : cuvântul de bază , prefixul sau sufixul , limba de proveniență ,cuvântul în limba de proveniență , rubrica vezi care face referire la un cuvânt care are legătură cu cuvăntul dat .

Dintre aceste informații sunt completate doar cele care sunt necesare și care sunt prezente și în Dicționarul tiparit de Academia Română .

2.4. Identificarea entităților ce intervin în construirea acestui modul

Obiectivul acestei faze este asocierea de atribute entităților . Aceste atribute sunt cele ce descriu caracteristicile entităților . Acestea sunt prezentate în următorul tabel :

Ultimele două sunt cele ce conțin toate domeniile , respectiv părțile de vorbire prezente în limba română pentru a nu se crea confuzii și greșeli la introducerea acestor proprietăți ale cuvintelor .

Entitatea verbe este dedicată exclusiv verbelor și anume conjugărilor care cum am spus mai sus sunt necesare pentru o analiză corectă și precisă de text și chiar la cunoașterea mai exactă a acestor conjugări .

2.5. Determinarea domeniilor atributelor

Obiectivul acestei etape este determinarea domeniilor atributelor în modelul conceptual local . Determinarea domeniilor este importantă pentru a se pune de acord programatorul și utilizatorul asupra datelor ce vor fi introduse în fiecare tabel .

Pentru entitatea Cuvinte :

Atribut Domeniu Descriere

Pentru Omonim :

Atributul Domeniul Descriere

Pentru detaliiExplicații :

Atribut Domeniul Descriere

Pentru Explicații :

Atribut Domeniul Descriere

Pentru detaliiCuvinte :

Atribut Domeniu Descriere

Pentru verbe :

Atribut Domeniu Descriere

Pentru domenii :

Pentru partea de vorbire :

2.6. Diagramei entity-relationship

Obiectivul acestei faze este de a stabilii cu siguranță și vizual legătura dintre tabele. Diagrama ER este reprezentarea conceptuală a vederii utilizatorului despre Dicționar . În acest moment suntem în măsură să prezentăm o diagramă completă a modelului bazat pe vederile utilizatorului despre DEX .

2.7. Determinarea relațiilor

Relația cuvânt – omonim

Această relatie este realizată prin cheia primară a entității Cuvânt și anume Idcuvânt care este cheie străină în tabelul omonim . Relația este de tipul unu la mai multe deoarece un cuvânt poate avea mai multe omonime . Tipul de join este 1 adică vor fi incluse doar informațiile din cele două tabele în care idcuvânt este același în ambele .

Relația omonim – detaliiExplic

Această relație este realizată prin cheia primară a tabelului Omonim și anume Idex care este cheie străină în tabelul detaliiExplic . Relația este de tipul unu la mai multe deoarece un omonim poate avea mai multe domenii sau / și parți de vorbire aferente unor explicații care de asemenea pot fi mai multe . Tipul de join este ca și la cea anterioară.

Relația detaliiExplic – explicatii

Această relație este realizată prin cheia primară a tabelului detaliiExplic și anume Idexplicatie care este cheie stăină în tabelul explicatii . Relația este de tipul unu la mai multe deoarece unei părți de vorbire și / sau unui domeniu îi pot corespunde mai multe explicații . Tipul de join este același cu cel de la anterioarele relații.

Relația cuvânt – detaliiCuv

Această relație este realizată prin cheia primară a tabelului Cuvânt și anume Idcuvânt care este cheie stăină în tabelul detaliiCuv . Relația este de tipul unu la mai multe deoarece unui cuvânt îi pot corespunde mai multe detalii . Tipul de join este același.

Relația cuvânt – verbe

Această relație este realizată prin cheia primară a tabelului Cuvânt și anume Idcuvânt care este cheie stăină în tabelul verbe . Relația este de tipul unu la mai multe deoarece unui cuvânt îi corespund mai multe conjugări . Tipul de join este același.

Relația domenii – detaliiExplic

Această relație este o relație de legătură prin care în tabelul detaliiExplic atributul domeniu poate lua valori doar din tabelul domenii .

Relația parteDeVorbire – detaliiExplic

Această relație este o relație de legătură prin care în tabelul detaliiExplic atributul parteDeVorbire poate lua valori doar din tabelul parteDeVorbire .

Capitolul 3 . Crearea în mediul Access a bazei

de date

3.1.INRODUCERE

Domeniul gestiunii informațiilor abordează problema organizării, stocării și regăsirii în timp util a datelor de care dispunem despre un anumit subiect și care sunt de interes. Fără îndoială că fiecare dintre noi se confruntă cu continuu cu această problemă. O simplă agendă personală, o carte de telefon, un catalog de produse sunt toate mijloace pentru păstrarea, organizarea și regăsirea informațiilor de care avem nevoie la un moment dat. Putem să rezolvăm aceste probleme prin folosirea bazelor de date.

Dex –ul în memoria calculatorului este reprezentată sub forma unei baze de date . Această bază de date trebuie întocmită corect în așa fel încât să răspundă la toate cerințele.

O bază de date este o colecție de informații corelate, referitoare la un anumit subiect sau colectate, organizate și memorate într-un anumit scop. Sistemul care permite aceste lucruri se numește sistem de gestiune a bazelor de date ( S.G.B.D). S.G.B.D poate fi convențional, în care informațiile sunt stocarte pe foi de hârtie ( sau alte suporturi ) depuse în dosare, registre, rafturi etc. Sau computerizat, caz în care informațiile sunt păstrate în volume, repertorii, fișiere pe suport magnetic. În acest caz, operarea în baza de date se face prin intermediul unor programe, de către operatori special instruiți în vederea folosirii acestora.

Microsoft Access ( Access) este un astfel de sistem interactiv computerizat pentru gestiunea bazelor de date relaținale, conceput să funcționeze în mediul Microsoft Windows. La fel ca și alte S.G.B.D. Access ne dă posibilitatea să organizăm, memorăm, regăsim și prezentăm datele de care dispunem.

Trăsăturile distinctive ale sistemului sunt :

Fiind creat pentru mediul Microsoft Windows și lucrând acest mediu, Access utilizează toate facilitățile grafice ale acestuia

Access permite regăirea datelor de interes, prin formularea unor interogări independente de formatul și de locul de amplasare a sursei de date

Access oferă posibilitatea prezentării datelor într-un mod sugestiv, folosind machete, rapoarte, diagrame și obiecte grafice

Numeroși asistenți pusi la dispoziție, ușurează și sporesc eficiența muncii de proiectare, prin soluțiile predefinite oferite

Anumite operații de rutină pot fi automatizate prin mecanismul de definire și de utilizare pentru prelucrările mai sofisticate se poate folosii limbajul de programare Visual Basic,orientat pe obiecte și evenimente și specializat în rezolvarea problemelor specifice de gestiune a datelor.

Mediul Access permite crearea entităților și relațiilor foarte aproape de limbajul natural . De aceea implementarea fizică a celor expuse în capitolul 1 este foarte asemănătoare cu ceea ce se întâmplă în mediul Access , dar implementarea aceasta depinde în foarte mare măsură de capitolul anterior pentru ca aplicația implementată să fie corectă și să răspundă tuturor cerințelor utilizatorului . Prin urmare implicarea viitorului utilizator în prima fază ( cea expusă în capitolul 1 ) este vitală pentru corectitudinea soluției implementate în această fază .

3.2. Crearea tabelelor

Crearea tabelelor ține cont de soluțiile găsite anterior în legătură cu domeniile fiecărui atribut și descrierile lor .

Tabelul Cuvânt :

Tabelul Omonim :

Tabelul DetaliiExplic :

Tabelul Explicatii :

Tabelul DetaliiCuv :

Tabelul Verbe :

Capitolul 4. Utililizarea aplicației

4.1.Introducere

Aplicația urmărește ca datele ce vor fi introduse în acestă bază de date să coincidă cu datele din dicționarul tipărit de Academia Română dar pe un suport cât mai usor utilizabil computerizat. Un cuvânt are plural, optional : forma de feminin, pluralul formei de feminin. De asemenea un cuvânt poate avea mai multe omonime care fiecare poat avea sau nu formǎ de plural. Iar fiecare omonim poate avea mai multe explicații care conțin partea de vorbire și/sau domeniul din care face parte cuvantul , iar la o parte de vorbire și/sau domeniu pot aparține mai multe explicatii propriu-zise si expresiile in care apare și care au importanțǎ pentru ințelesul sensului cuvântului respectiv .

Partea de vorbire se alege dintr-un tabel care contine toate parțile de vorbire care apar în limba românǎ. De asemenea domeniulse alege dintr-un tabel cu domeniile date de academie.

Pentru verbe se dau toate conjugǎrile cu persoana și timpul la care se face conjugarea pentru ca într-o analizǎ a textului și verbele sǎ fie regǎsite ușor și cu toate datele aferente.

4.2. Aplicația DEX

Aplicația se deschide cu o formă de început care introduce utilizatorul în mediul Access de folosire a dicționarului, local.

Această formă conține patru butoane corespunzătoare celor trei categorii de activități care se pot realiza utilizând această aplicație, respectiv închiderii aplicatiei .

Baza de date are trei conturi și anume Admin care are acces la toate butoanele de pe forma principală, Utilizator care are acces la toate butoanele mai puțin cel de administrare și respectiv Neavizați care au acces doar la vizualizarea datelor din baza de date aceștia neputând aduce modificări bazei cum ar fi introducerea de cuvinte sau modrificarea celor existente.

Aceste trei categorii sunt :

Introducerea de cuvinte in dicționar

2. Modificarea explicațiilor cuvintelor în dictionar

Căutarea de cuvinte în dicționar

Fiecare buton permite lansarea utilizatorului în una din aceste trei activități .

Butonul din dreapta jos este strict pentru administrație, acesta face posibilă sincronizarea replicilor și deschiderea ferestrei bazei de date pentru a se putea face modificări asupra ei. Acest buton deschide baza în Design Master singurul în care se pot face modificâri și din care se poate face sincronizarea. Acest buton deschide o formă cu două butoane unul pentru sincronizare și celălalt pentru deschiderea ferestrei bazei.

4.2.1 Introducerea cuvintelor in dicționar

Forma de inceput a introducerii cuvintelor arată astfel și în dreptul textului Cuvântul se introduce cuvântul care se introduce în dicționar .

Forma de început a intoducerii de cuvinte este deschisă din forma principală la o nouă înregistrare corespunzătoare unui cuvânt nou . După ce utilizatorul tastează cuvântul pe care vrea să-l introducă ( la apăsarea tastei enter ) aplicația caută în dicționar să vadă dacă cuvântul introdus mai este în dictionar . Dacă este va apărea un mesaj prin care utilizatorul este informat de faptul că acest cuvânt (cel pe care vrea să-l introducă ) mai există în DEX și este rugat să urmărească cu atenție datele care există în DEX și să decidă dacă datele pe care dorește să le introducă corespund unui omonim al cuvântului deja existent sau acestea sunt deja introduse . După care utilizatorul vede o formă în care îi sunt prezentate explicațiile aferente acelui cuvânt existente în dicționar . În acesată formă utilizatorul poate să vadă toate explicațiile cu ajutorul butoanelor de pe această formă . Dacă cuvântul dat nu are explicație ci doar o referință la alt cuvânt ( ex. Vezi pârâu pentru pârăiaș ) utilizatorul va fi anunțat de acest lucru și i se spune cum poate vedea această referință ( apăsând butonul Detalii ( vezi ) ) . Apăsând acest buton utilizatorul va intra într-o altă formă în care poate vedea referința împreună cu celelalte detalii „tehnice” despre cuvânt . În fiecare din aceste forme utilizatorul poate lua decizia asupra a ceea ce va face în continuare , adică datele sale corespund unui omonim sau va introduce un nou cuvânt . Această decizie depinde de utilizator și trebuie luată cu grijă , cum este anunțat și la început , de aceea trebuie ca utilizatorul să urmărească cu grijă ceea ce este deja introdus la acel cuvânt pentru ca decizia luată să fie cea corectă . După ce decizia a fost luată utilizatorul se întoarce în forma de început a introducerii de cuvinte și introduce un nou cuvânt dacă aceasta a fost decizia sau în forma de omonime dacă alegerea sa a fost că datele pe care dorește să le introducă corespund unui omonim al cuvântului deja existent în baza de date .

Forma care îi va apărea pe ecran utilizatorului în momentul în care cuvântul introdus există deja în baza de date arată astfel :

Butoanele din dreapta Anterioara explicație și Explicatia următoare sunt folosite pentru a naviga în cadrul explicațiilor pentru a fi vizualizate toate explicațiile cuvântului respectiv . Butonul din stânga Detalii (vezi) permite vizualizarea detaliilor „tehnice” despre cuvântul dat ( referința la alt cuvânt ( vezi ) , cuvântul de bază , prefixul , sufixul , limba de proveniență , cuvântul în limba de proveniență și observații ) . În josul ecranului sub textul decizia dumneavoastră sunt cele două butoane corespunzătoare celor două decizii ce pot fi luate în acest moment și anume : Este omonim când datele ce doresc a fi introduse sunt corespunzătoare unui omonim și respectiv Introduceți alt cuvânt când datele ce doresc a fi introduse sunt deja introduse în dicționar . În momentul în care cuvântul nu are explicație în spațiul în care în mod normal apare „fără explicație” și prin apăsarea butonului Detalii ( vezi ) se va putea vedea referința cuvântului împreună cu detaliile „tehnice” . De asemenea acest buton poate fi folosit și când cuvântul dat are explicații și se dorește vizualizarea detaliilor „tehnice”.

În această nouă formă de asemenea apar cele două butoane corespunzătoare deciziei pe care o va lua utilizatorul : Este omonim și Introduceți alt cuvânt sub textul Decizia dumneavoastră . De asemenea există și un buton Înapoi care îl va readuce pe utilizator în forma anterioară dacă dorește să revadă anumite explicații despre cuvântul dat .

Această formă apare astfel :

Dacă cuvântul este deja în baza de date am văzut ce se întâmplă și se alege varianta care este specifică cuvântului dat și datelor ce se dorește a fi introduse .

Dacă cuvântul introdus în forma de început nu există în baza de date se continuă introducerea datelor despre cuvântul dat și anume forma de plurala cuvântului , iar dacă este cazul ,dacă acest cuvânt are în DEX-ul tipărit ( în cadrul chenarului pe care este scris Dacă este cazul ) forma de feminin , respectiv pluralul formei de feminin . După ce aceste date au fost introduse prin cele două butoane existente pe această formă se continuă introducerea datelor despre acest cuvânt .

Aceste două butoane sunt Cu omonimie și Fără omonimie . Dacă cuvântul introdus are omonimie se apasă butonul Cu omonimie care îl va duce pe utilizator într-o formă pentru omonime, dacă nu are omonimie se apasă butonul Fără omonimie care îl va duce pe utilizator într-o formă în care va scrie în continuare detaliile corespunzătoare cuvântului dat ( vezi pagina 24 ). Pe această formă mai este un buton înapoi care există pe toate formele care permite utilizatorului să se întoarcă în forma anterioară ( aici în forma de început a aplicației ) .

Dacă este apăsat butonul Cu omonimie se ajunge în forma de omonimie care arată astfel :

Această formă de asemenea conține un cadran Dacă este cazul în care este textul Plural omonim în dreptul căruia se va scrie ( numai dacă este cazul ) pluralul omonimului dacă pluralul acestui omonim diferă de pluralul celorlalte omonime . De asemenea există și textul Nr. Omonim în dreptul căruia apare numărul omonimului care este introdus momentan , acest număr poate fi schimbat dacă nu corespunde cu numărul omonimului pe care îl introduce utilizatorul . În partea dreaptă apare cuvântul la care se introduc datele împreună cu toate datele ce au fost introduse de utilizator până în momentul de față . Butoanele ce apar pe această formă sunt : DetaliiExplicații prin care utilizatorul continuă introducerea datelor despre acest omonim , și de asemenea un buton Înapoi care îl va aduce pe utilizator în forma în care a fost înainte de a intra în această formă .

La apăsarea butonului DetaliiExplicații utilizatorul va ajunge în forma de detalii ale explicațiilor :

Această formă conține două liste derulate din care se alege partea de vorbire și domeniul din care face parte cuvântul dat , din prisma explicatiilor care vor fi introduse . Prima este Partea de vorbire care conține toate părțile de vorbire întâlnuite în limba română . Prin apasarea săgeții din dreapta câmpului corespunzător părții de vorbire va apărea o listă cu

părțile de vorbire:

dacă dorește să introducă conjugările acestuia ( necesare pentru o analiză de text cât mai riguroasă ) . Dacă pe acest mesaj apărut se apasă Yes se intră în forma de introducere a conjugărilor. Dacă se alege No se ramâne în forma curentă și se introduc în continuare datele. Dacă între timp utilizatorul s-a răzgândit asupra introducerii conjugărilor pe această formă există un buton Pentru verbe care îi permite să introducă conjugările.

Această formă de conjugări se prezintă astfel :

În această formă se introduce persoana, forma conjugării și respectiv timpul la care este această conjugare făcută. Persoana se alege dintr-o listă cu persoanele (eu, tu, el(ea), noi, voi , ei(ele) ) sau se scrie de la tastatură și pe masură ce se scrie apare una din persoane care este cea mai apropiată ca scriere de ceea ce a tastat utilizatorul. După ce au fost introduse aceste date, se apasă butonul Altă conjugare pentru a se introduce o nouă conjugare. În momentul în care toate conjugările au fost introduse prin apăsarea butonului Gata se revine la forma detaliilor explicațiilor . Mai există pe această formă și un buton Înapoi prin care utilizatorul se poate întoarce inapoi dacă consideră că a greșit intrând în această formă.

Dacă partea de vorbire introdusă în forma de detalii a explicațiilor nu este verb sau dacă a ales că este verb dar nu dorește să introducă conjugările sale sau a introdus toate conjugările, utilizatorul continuă introducerea datelor prin alegerea domeniului din care face parte ( dacă este menționat ) cuvântul relativ la explicația/explicațiile ce vor fi introduse.

Alegerea domeniului se face de asemenea dintr-o listă derulantă care conține toate domeniile întâlnite în dicționarul tipărit de Academia Română. Această alegere se face la fel cu cea de la partea de vorbire.

Dacă nu a fost selectată nici partea de vorbire și nici domeniul utilizatorul este atenționat de acest fapt și rugat să facă o alegere deoarece un cuvânt nu poate să nu aibe nici parte de vorbire și nici domeniu.

După ce aceste alageri au fost făcute utilizatorul continuă prin apăsarea unuia din cele două butoane de continuare prezente pe această formă : Explicații și Vezi .

La apăsarea butonului Explicații utilizatorului i se permite introducerea explcațiilor aferente părții de vorbire și domeniului ales. Dacă se alege apăsarea butonului Vezi înseamnă că acel cuvânt introdus nu are explicații textuale ci doar o referință la un cuvânt mai uzual care are aceeași explicație și poate detalii lexicografice cum ar fi cuvântul de bază, prefix, sufix,limba de proveniență etc. ( vezi pagina ) .

Dacă cuvântul are explicații textuale se apasă butonul Explicații care îl conduce pe utilizator într-o formă în care poate face introducerea explicațiilor aferente părții de vorbire și domeniului ales. Această formă se prezintă astfel :

În această formă utilizatorul scrie explicația cu numărul scris în dreptul textului nr.explicatiei și expresiile (dacă este cazul ) în care apare acest cuvânt. relativ la explicația scrisă, care au relevanță în înțelegerea sensului cuvântului. Aceste expresii sunt scrise împreună cu explicația fiecăreia.

După ce au fost scrise aceste explicații utilizatorul alege, în funție de ce mai are de introdus butonul care va fi apăsat. Dacă mai are de scris o explicație care se încadrează în aceeași parte de vorbire și în același domeniu utilizatorul va apăsa butonul Altă explicație din dreptul textului cu partea de vorbire și domeniul aceleași și va putea să introducă o nouă explicație în această formă. Dacă mai are de scris o explicație dar la care partea de vorbire a cuvântului în acel context este alta sau/și domeniul la care se referă este altul atunci utilizatorul va apăsa butonul Altă explicație din dreptul textului cu partea de vorbire și domeniul diferite și se va reîntoarce în forma anterioară unde va alege noua parte de vorbire și/sau domeniu (vezi pagina 24).

La fiecare explicație în parte după ce a fost introdusă și se dorește continuarea introducerii utilizatorului îi va apărea pe ecran un mesaj cu explicația introdusă și va fi întrebat dacă este corect. Dacă apasă Yes pe acest mesaj înseamnă că este corect și va continua, dacă apasă No va putea corecta erorile apărute.

Dacă a introdus toate explicațiile poate continua prin cele trei butoane din josul formei apăsând acel buton care este adecvat „mișcării” care urmează să o facă și anume :

Vezi dacă tot ce mai are de introdus sunt detaliile lexicale și va fi introdus în forma pentru introducerea detaliilor (prezentată mai jos)

Alt omonim dacă datele ce dorește să le introducă în continuare corespund unui omonim și va fi adus în forma specifică omonimelor și continuă de acolo la fel introducerea datelor referitoare la acest omonim(vezi pagina 41)

Alt cuvânt dacă a terminat de introdus datele despre acest cuvânt și dorește introducerea unui nou cuvânt. În acestmoment va fi readus în forma de început a introducerii de cuvinte (vezi pagina 38)

La apăsarea butonului Vezi se va deschide forma de introducere a detaliilor „tehnice” a cuvântului.Aceasta se prezintă astfel :

În această formă utilizatorul va introduce cuvântul de bază a cuvântului dat, prefixul, sufixul, limba de proveniență, cuvântul în limba de proveniență, un cuvânt cu care se înrudește cuvântul dat (la rubrica vezi ) și observații, rubricâ în care se scriu informații ce nu au fost „prinse” până acum în introducerea datelor (ex etimologie necunoscută ).

De aici utilizatorul poate face trei „mișcări” în continuare, și anume :

Apăsând butonul Alt omonim introduce datele despre un nou omonim al cuvântului dat. Prin această „mișcare” se intoarce în forma de omonime și introduce datele despre acest omonim (vezi pagina 41)

Apăsând butonul Alt cuvânt utilizatorul poate introduce date despre un nou cuvânt reîntorcându-se în forma de început a introducerii cuvintelor (vezi pagina 38)

Apăsând butonul cu semnul Stop se reîntoarce în forma de început încetând această activitete de introducere de cuvinte în dicționar (vezi pagina 37)

Modificarea unui cuvânt

În forma principală cu care se deschide aplicația există un buton cu care se poate intra în pagina principală de modificare. În această formă utilizatorul caută cuvântul pe care dorește să-l modifice dintr-o listă derulantă cu toate cuvintele din dicționar, fie prin căutare în listă fie prin tastarea literelor cuvântului, moment în care îi va apărea primul cuvânt în ordine alfabetică a cărui litere de început coincid cu literele introduse.

Această formă arată astfel :

După introducerea cuvântului, respectiv selecția sa, utilizatorul poate face două operații :

1. Să apese butonul Explicații și în acel moment aplicația îi permite vizualizarea, respectiv modificarea explicațiilor, pluralelor, numărul de omonim, numărul unei explicații printr-o formă care permite pe lângă vizualizare și modificarea datelor apărute pe ecran.

2. Să apese butonul Detalii (vezi) și să modifice detaliile „tehnice” ale cuvântului dorit. Această modificare poate fi făcută și dacă prima dată vizualizează explicațiile.

Forma de modificare a explicațiilor arată astfel :

Pe această formă există două butoane de navigare prin explicațiile cuvântului, un buton Înapoi care readuce utilizatorul înapoi în forma în care caută cuvântul și un buton Detalii ( vezi ) care îl duce pe utilizator în forma în care poate modifica detaliile lexicale ale cuvântului dorit. Aceasta se face prin această formă :

Butonul prezent pe această formă este cel Înapoi, care readuce utilizatorul în forma de căutare a cuvântului de modificat. În această formă se pot modifica toate detaliile lexicale ( vezi, cuvul de bază, prefixul, sufixul, limba de proveniență, cuvântul în limba de proveniență respectiv observațiile ).

Căutarea unui cuvânt

Căutarea unui cuvânt se poate face din prisma rezultatelor ce se doresc de la acea căutare, și anume : căutarea pentru toate detaliile cuvântului conținute în dicționar, căuterea doar pentru explicatii, căutarea din prisma caracterelor de început cu selecția ulterioară a detaliilor dorite.

La apăsarea primul buton, căutarea unui cuvânt pentru toate explicațiile sale, utilizatorului i se va cere cuvântul pe care îl caută :

După ce utilizatorul a introdus cuvântul căutat aplicația răspunde cu toate detaliile cuvântului dorit printr-un raport. De exemplu pentru video :

La apăsarea butonului căutarea explicației unui cuvânt ,aplicația răspunde tot printr-un raport cu explicațiile cuvântului cerut. Cererea cuvântului se face tot prin acea casetă de dialog ca și la butonul anterior. Răspunsul dat de aplicație arată astfel(pentru cuvântul pielărit)

La apăsarea butonului căutarea unui cuvânt din prisma caracterelor de început utilizatorul va intra într-o formă în care va introduce caracterele de început, iar pe parcurs ce tastează îi va apărea în “căsuța” respectivă primul cuvânt, în ordine alfabetică, care are acele litere de început.

După selecția cuvântului utilizatorul alege ce anume dorește să vadă la acel cuvânt explicatiile sau detaliile. Dacă vrea amândouă apasă explicații, forma în care intră conține și un buton de vizualizare a detaliilor lexicale.

Această formă permite doar vizualizarea tuturor explicatiilor cuvântului dorit. De asemenea poate (prin butonul Detalii(vezi)) să permită vizualizarea detaliilor lexicale.

Pe forma de început a căutarilor mai este un buton care permite utilizatorului vizualizarea verbelor din dicționar cu toate conjugările lor .

Celelalte două butoane ce apar sunt destinate întoarcerilor : la meniul anterior (de început a aplicației), respectiv închiderea aplicației.

Capitolul 5. Implementarea sistemului informatic DEX

Formele care sunt folosite în această aplicație au fost prezentate în capitolul 4 dar acum vom vedea ce se ascunde de fapt în spatele acestei, relativ ușoare, tehnici de introducere, căutare și modificare a cuvintelor din dicționar. Formele în general sunt legate aproximativ ca și tabele la care sunt legate, în diagrama entity-reletionship.

5.1. Forma principală de început

Această formă conține patru butoane, cum s-a văzut mai sus :

Butonul pentru introducere de cuvinte

Codul Visual Basic ( din “ spatele “ acestui buton ) prin care acesta face această operație de deschidere a formei de început a introducerii cuvântului arată astfel :

Private Sub Command16_Click()

On Error GoTo Err_Command16_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = "cuvinte"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord , , acNewRec

Exit_Command16_Click:

Exit Sub

Err_Command16_Click:

MsgBox Err.Description

Resume Exit_Command16_Click

End Sub

Aceasta reprezintă o procedură simplă Visual Basic unde se tratează evenimentul „on_click ” al butonului Command16 (adăugare cuvinte) . La click-ul mouse-ului pe acest buton Visual Basic va rula această procedură .

Dim stDocName As String definește variabila stDocName ca fiind de tipul string . Această variabilă va conține numele formei care va fi deschisă , adică „cuvinte” ( stDocName = ”cuvinte” ) .Variabila stLinkCriteria este de asemenea declarată ca string, și reprezintă criteriul de legătură dintre forma aceasta(„Form t”) și forma „cuvinte”, pentru deschidere, dar aici nu este cazul. Comanda care deschide o formă este OpenForm care este aplicată lui DoCmd .Această comandă are următorii parametri :

numele formei ce urmează a fi deschisă ( la noi stDocName )

forma de deschidere (acPreview , acNormal ,acDesign …) cea implicită este acNormal

numele unui filtru ( un query valid în această bază de date )

criteriul de legătura ( poate fi o clauză Where SQL fără cuvântul cheie WHERE )

modul de vizualizare ( acDialog , acHidden , acWindowNormal ..) cea implicită este acWindowNormal care o deschide normal cum a fost creată

openArgs –argumente de deschidere

DoCmd.GoToRecord , , acNewRec este comanda care face ca în forma de introducere (“cuvinte”) să se introducă o înregistrare nouă .

Modificarea explicatiilor unui cuvânt

Acest buton printr-o procedură asemănătoare deschide forma de început a modificării:

Private Sub Command43_Click()

On Error GoTo Err_Command43_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = "modificare_main"

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Command43_Click:

Exit Sub

Err_Command43_Click:

MsgBox Err.Description

Resume Exit_Command43_Click

End Sub

3. Căutarea unui cuvânt

Private Sub Toggle27_Click()

DoCmd.OpenForm "switchboard"

End Sub

Acest cod deschide o nouă formă fără alte restricții.

Forma „cuvinte”

Forma cuvinte se deschide la o nouă înregistrare corespunzătoare unei noi înregistrări în tabelul „cuvinte”.

La introducerea cuvântului ( evenimentul BeforeUpdate) se apelează o procedură care caută în dicționar să vadă dacă cuvântul este deja introdus în baza de date, pentru ca utilizatorul să stie dacă ceea ce introduce el este deja introdus sau nu.

Private Sub cuvant_BeforeUpdate(Cancel As Integer)

Dim l As String

Dim stDocName As String

vega = 1

Dim stLinkCriteria As String

stDocName = "Cautare-cuvinte1"

stLinkCriteria = "[cuvant]=" & "'" & Forms!cuvinte!cuvant & "'"

< criteriul de deschidere a formei stDocName= dacă în acea formă există o înregistrare cu cuvântul același cu cuvântul introdus de utilizator >

t = DCount("idcuvant", "cuv-caut", stLinkCriteria)

< număra câte câmpuri sunt în query-ul din care î-și ia datele forma ce prezintă toate explicațiile aferente, corespunzătoare criteriul stLinkCriteria deoarece Visual Basic deschide forma cerută chiar dacă nu conține nici un câmp. Dacă cuvântul nu ar fi fost găsit utilizatorului îi va apărea o formă goală la deschiderea formei, așa VB vede dacă stLinkCriteria generează un câmp și doar în aceste condiții îi va deschide utilizatorului forma prin care vizualizează explicațiile existente în dicționar la acel cuvânt >

If t <> 0 Then

stLinkCriteria = "[cuvintele.cuvant]=" & "'" & Forms!cuvinte!cuvant & "'"

DoCmd.OpenForm stDocName, , , stLinkCriteria

MsgBox "Cuvântul intodus de dumneavoastrã existã deja în DEX , vã rugãm urmãriți cu atenție datele existente pentru a decide dacã informațiile pe care doriți sã le introduceți corespund unui omonim sau sunt existente în DEX", vbInformation, "Dictionarul explicativ al limbii romane"

< MsgBox afișează pe ecran un mesaj cu textul scris în ghilimele și cu semnul de informare vbInformation >

End If

End Sub

După ce au fost introduse datele, în câmpurile aferente, se apasă unul din cele două butoane care au acțiuni separate, corespunzătoare acțiunilor scrise pe fiecare.

Primul este Cu omonimie :

Public Sub ToggleLink_Click()

On Error GoTo ToggleLink_Click_Err

< declarare de variabile >

Dim stDocName As String

Dim p As String

Dim k As Integer

Dim l As String

< inițializarea unor variabile cu valorile introduse de utilizator >

k = Forms!cuvinte![idcuvant]

l = Forms!cuvinte!cuvant

p = ""

< dacă cuvântul este vid, adică dacă utilizatorul nu a introdus cuvântul la care dorește să introducă date >

If Forms![cuvinte]![cuvant] <> "" Then

< verifică care date au fost introduse deoarece, dacă încercăm să scriem într-un textbox valorile scrise șiunele dintre aceste valori nu au fost introduse textbox-ul nu le recunoaște ca și caracterul vid și dă eroare, de aceea câmpurile sunt adăugate doar dacă este scris ceva în ele >

If Forms!cuvinte!plural <> "" Then

p = p + Forms!cuvinte!plural + " , "

End If

If Forms!cuvinte!feminin <> "" Then

p = p + Forms!cuvinte!feminin + " , "

End If

If Forms!cuvinte![plural feminin] <> "" Then

p = p + Forms!cuvinte![plural feminin] + " , "

End If

< forma de omonimie este o formă „copil” a formei cuvânt, dacă forma copil este deschisă aceasta va fi închisă, dacă nu la click-ul pe acest buton forma „copil” va fi deschisă și se va acționa asupra ei >

If ChildFormIsOpen() Then

CloseChildForm

Else

OpenChildForm

< forma „copil” se va deschide în funcție de forma „părinte” >

FilterChildForm

< se acționează asupra formei „copil” deoarece la mișcarea dintr-o formă în alta valorile pot fi corelate doar prin cod: cuvântul dat va fi scris în forma de omonimie în dreapta sus într-un textbox; idcuvântului va fi scris în tabelul de omonime prin intermediul câmpului corespunzător din forma omonimie; numărul omonimului va fi setat pe 1 pentru a se face incrementarea mai tărziu și pentru a se face diferența între cele cu omonimie și cele fără omonimie care vor avea numărul de omonim 0; de asemenea vor fi scrise în dreapta datele ce au fost introduse până acum despre cuvântul dat, ceea ce se va face de acum înainte mereu; câmpul de întoarcere se va seta pe 1corespunzător formei „cuvinte” >

Forms!omonimie1!Text22 = p

Forms!omonimie1!idcuvant = k

Forms!omonimie1![nr omonim] = 1

Forms!omonimie1!Text15 = l

Forms!omonimie1!back = 1

End If

End If

< dacă nu a fost introdus cuvântul se va afișa un mesaj=”introduceți cuvântul” >

Else: MsgBox ("Introduceti cuvantul!!!")

ToggleLink_Click_Exit:

Exit Sub

ToggleLink_Click_Err:

MsgBox Error$

Resume ToggleLink_Click_Exit

End If

Al doilea buton de pe această formă este cel Fără omonimie care este apăsat în cazul în care cuvântul introdus nu are omonimie.

Public Sub Command12_Click()

On Error GoTo Err_Command12_Click

Dim stDocName As String

Dim p As String

Dim l As String

Dim k As Integer

Dim s As Integer

l = Forms!cuvinte!cuvant

If Forms![cuvinte]![cuvant] <> "" Then

If Forms!cuvinte!plural <> "" Then

p = Forms!cuvinte!plural + " , "

End If

If Forms!cuvinte!feminin <> "" Then

p = p + Forms!cuvinte!feminin + " , "

End If

If Forms!cuvinte![plural feminin] <> "" Then

p = p + Forms!cuvinte![plural feminin] + " , "

End If

k = Forms![cuvinte]![idcuvant]

<se deschide forma „copil”, omonimia în care se adaugă o nouă înregistrare dar utilizatorul nu este conștient de această mișcare, deoarece integritateabazei de date trebuie menținută chiar dacă utilizatorul dorește să sară peste pasul de omonimie >

If ChildFormIsOpen() Then

CloseChildForm

Else

OpenChildForm

FilterChildForm

< se lucrează asupra omonimiei deoarece, dacă nu se fac modificări asupra câmpurilor din formă, doar prin deschidere nu se face o nouă intrare în tabelul de omonimie >

Forms![omonimie1]![nr omonim] = 0

Forms![omonimie1]![idcuvant] = k

s = Forms!omonimie1!idex

< se închide forma „cuvinte” pentru a se putea adăuga noua înregistrare în omonimie >

DoCmd.Close acForm, "cuvinte"

< se deschide forma „detaliiExplicații” pentru a se continua introducerea datelor despre cuvântul dorit >

DoCmd.OpenForm "detaliiExplicatii2", , , stLinkCriteria

DoCmd.GoToRecord acDataForm, "detaliiExplicatii2", acNewRec

< se fac modificări formei detaliilor și anume scrierea detaliilor introduse până acum >

Forms!detaliiExplicatii2!idex = s

Forms![detaliiExplicatii2]!Text15 = l

Forms![detaliiExplicatii2]!Text22 = p

Forms![detaliiExplicatii2]!back = 1

End If

Else: MsgBox ("introduceti cuvantul!!")

Exit_Command12_Click:

Exit Sub

Err_Command12_Click:

MsgBox Err.Description

Resume Exit_Command12_Click

End If

End Sub

Funcțiile folosite pentru a deschide, închide, respectiv filtrare sunt :

Private Sub FilterChildForm()

If Me.NewRecord Then

Forms![omonimie1].DataEntry = True

Else

Forms![omonimie1].Filter = "[idcuvant] = " & Me.[idcuvant]

Forms![omonimie1].FilterOn = True

End If

End Sub

Private Sub OpenChildForm()

DoCmd.OpenForm "omonimie1"

If Not Me.[ToggleLink] Then Me![ToggleLink] = True

End Sub

Private Sub CloseChildForm()

DoCmd.Close acForm, "omonimie1"

If Me![ToggleLink] Then Me![ToggleLink] = False

End Sub

Private Function ChildFormIsOpen()

ChildFormIsOpen = (SysCmd(acSysCmdGetObjectState, acForm, "omonimie1") And acObjStateOpen) <> False

End Function

Forma Omonimie

În această formă se introduc datele referitoare la omonimul dat. Are un singur buton cu care se poate continua introducerea detaliilor. Se intră in forma de introducere a detaliilor explicațiilor.

Sub ToggleLink_Click()

On Error GoTo ToggleLink_Click_Err

Dim t1 As String

Dim b As String

k = Forms!cuvinte!idcuvant

v = Forms!cuvinte!cuvant

g = Forms!omonimie1!back

l = Forms!omonimie1!idex

Forms![omonimie1]![idcuvant] = k

t1 = " "

m = Forms!omonimie1!idex

< se verifică dacă au fost introduse date în câmpurile formei >

If Forms!omonimie1![plural omonim] <> "" Then

t1 = Forms!omonimie1![plural omonim] + " , "

End If

If Forms!omonimie1!Text22 <> "" Then

t = Forms!omonimie1!Text22

End If

< se deschide forma „copil” a acestei forme, și anume DetaliiExplicații >

If ChildFormIsOpen() Then

CloseChildForm

Else

OpenChildForm

FilterChildForm

b = Forms!omonimie1![nr omonim]

Forms![omonimie1]![idcuvant] = k

Forms!detaliiExplicatii2!idex = m

Forms!detaliiExplicatii2!Text15 = b + " " + v

Forms!detaliiExplicatii2!Text22 = t + "Pentru omonimul " + b + "….:" + t1

Forms!detaliiExplicatii2!back = 2

Forms!detaliiExplicatii2!oba = g

DoCmd.Close acForm, "cuvinte”

End If

ToggleLink_Click_Exit:

Exit Sub

ToggleLink_Click_Err:

MsgBox Error$

Resume ToggleLink_Click_Exit

End Sub

Forma DetaliiExplicații

Partea de vorbire și domeniul se aleg din liste ce conțin toate părțile de vorbire și respectiv domeniile. La selecția părții de vorbire ca fiind un tip de verb apare un mesaj prin care este informat de faptul că a ales verb și că dacă dorește să introducă conjugările să apase butonul apase butonul Yes. Pe forme sunt patru butoane

Pentru verbe

Dacă se apasă No pe mesajul apărut când se selectează verb ca fiind partea de vorbire și dacă se vrea să se revină asupra deciziei de a introduce conjugările verbului, se poate face această introducere apăsând acest buton Pentru verbe. Codul acestui buton :

Private Sub Command13_Click()

On Error GoTo Err_Command13_Click

Dim stDocName As String

Dim stLinkCriteria As String

t1 = ""

p = 1

< se vede dacă s-a ales partea de vorbire și/sau domeniul relative la explicațiile ce doresc a fi introduse >

If Forms![detaliiExplicatii2]!PDeVorbire > 0 Then

t1 = PDeVorbire.Column(1) + " . "

p = p – 0.5

End If

If Forms![detaliiExplicatii2]!domeniu > 0 Then

t1 = t1 + " ( " + domeniu.Column(1) + " ) "

p = p – 0.5

End If

< dacă a fost ales domeniul și/sau partea de vorbire >

If p >= 0 And p < 1 Then

< se deschide forma de cuvinte deoarece tabelul de verbe este legat de cuvânt nu de detaliile explicațiilor pentru că conjugările sunt corespunzătoare cuvântului nu unei anumite explicații >

stDocName = "cuvinte"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord , , acLast

k = Forms![cuvinte]![idcuvant]

p = Forms![cuvinte]!cuvant

< se deschide forma „verbe” pentru introducere >

stDocName = "verbe"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord , , acNewRec

Forms![verbe]![idcuvant] = k

Forms![verbe]!Text15 = p

Forms![verbe]!Text22 = " "

< dacă nu a fost ales domeniul și/sau partea de vorbire se afișează un mesaj prin care i se comunică faptul că trebuie să aleagă partea de vorbire și/sau domeniul >

Else: MsgBox "alegeti partea de vorbire sau/si domeniul !!", vbOKOnly

End If

Exit_Command13_Click:

Exit Sub

Err_Command13_Click:

MsgBox Err.Description

Resume Exit_Command13_Click

End Sub

Explicații

Se introduce textul efectiv al explicațiilor și expresiilor.

Sub ToggleLink_Click()

On Error GoTo ToggleLink_Click_Err

Dim v As String

Dim t1 As String

< se memorează datele din această formă care trebuiesc folosite în forma explicațiilor >

p1 = Forms![detaliiExplicatii2]!Text15

t = Forms![detaliiExplicatii2]!Text22

b = Forms!detaliiExplicatii2!idex

w = Forms![detaliiExplicatii2]![nr]

g = Forms!detaliiExplicatii2!back

h = Forms!detaliiExplicatii2!oba

t1 = ""

p = 1

< se verifică dacă au fost introduse partea de vorbire șo/sau domeniul >

If Forms![detaliiExplicatii2]!PDeVorbire > 0 Then

t1 = PDeVorbire.Column(1) + " . "

p = p – 0.5

End If

If Forms![detaliiExplicatii2]!domeniu > 0 Then

t1 = t1 + " ( " + domeniu.Column(1) + " ) "

p = p – 0.5

End If

k = Forms![detaliiExplicatii2]![idexplicatie]

If ChildFormIsOpen() Then

CloseChildForm

Else

If p >= 0 And p < 1 Then

< dacă nu a fost selectat domeniul acesta este inițializat cu o valoare „none”

deoarece modulul distribuit folosește un select în care dacă domeniul este

vid nu poate funcționa corect >

If Forms![detaliiExplicatii2]!domeniu > 0 Then

l = 0

Else: Forms![detaliiExplicatii2]!domeniu = 81

End If

< se deschide forma „copil”- explicații și se inițializează valorile luate din forma curentă, corespunzătoare, și numărul explicației se incrementează pentru a ușura munca utilizatorului >

OpenChildForm

FilterChildForm

Forms![explicatii1]![idexplicatie] = k

Forms![explicatii1]!Text15 = p1

Forms![explicatii1]!Text22 = t + t1

Forms!explicatii1!Text1 = b

Forms![explicatii1]![nr explicatiei] = w + 1

Forms![explicatii1]!back = 3

Forms![explicatii1]!dba = g

Forms![explicatii1]!oba = h

Else: If p = 1 Then MsgBox "Alegeți partea de vorbire sau/și domeniul !!", vbOKOnly, "Dictionarul explicativ al limbii romane"

End If

End If

ToggleLink_Click_Exit:

Exit Sub

ToggleLink_Click_Err:

MsgBox Error$

Resume ToggleLink_Click_Exit

End Sub

Vezi

Private Sub Command11_Click()

On Error GoTo Err_Command11_Click

Dim stDocName As String

Dim stLinkCriteria As String

t = Forms![detaliiExplicatii2]!Text22

tt = Forms![detaliiExplicatii2]!Text15

b5 = 3

t1 = ""

p = 1

< verifică dacă au fost introduse partea de vorbire și/sau domeniul >

If Forms![detaliiExplicatii2]!PDeVorbire > 0 Then

t1 = PDeVorbire.Column(1) + " . "

p = p – 0.5

End If

If Forms![detaliiExplicatii2]!domeniu > 0 Then

t1 = t1 + " ( " + domeniu.Column(1) + " ) "

p = p – 0.5

End If

If p >= 0 And p < 1 Then

If Forms![detaliiExplicatii2]!domeniu > 0 Then

ll = 0

Else: Forms![detaliiExplicatii2]!domeniu = 81

End If

k = Forms!detaliiExplicatii2!idexplicatie

< se scrie la explicație că nu are explicație deoarece, de asemenea în aplicația distribuită nu va fi găsit acel cuvânt pentru că nu sunt completate toate tabelele din cadrul entity-relaționship >

OpenChildForm

FilterChildForm

Forms!explicatii1!idexplicatie = k

Forms!explicatii1![nr explicatiei] = 0

Forms!explicatii1!explicatie = "fãrã explicaþie "

< închideformele anterioare pentru a fi introduse în tabele datele introduse până acum >

If cuvinteIsOpen() Then DoCmd.Close acForm, "cuvinte"

If omonimieIsOpen() Then DoCmd.Close acForm, "omonimie1"

DoCmd.Close acForm, "detaliiExplicatii2"

DoCmd.Close acForm, "explicatii1"

DoCmd.OpenForm "omonimie1", , , stLinkCriteria

DoCmd.GoToRecord acDataForm, "omonimie1", acLast

l = Forms!omonimie1![nr omonim]

< deschide forma de cuvinte pentru că forma de detalii lexicale este legată de cuvânt nu de explicație >

stDocName = "cuvinte"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord , , acLast

k = Forms!cuvinte!idcuvant

<deschide forma de detalii lexicale pentru a introduce date >

stDocName = "detaliiCuv"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord , , acNewRec

Forms!detaliiCuv!idcuvant = k

Forms!detaliiCuv!Text15 = tt

Forms!detaliiCuv!Text22 = t + t1

Forms!detaliiCuv!om = l

Forms!detaliiCuv!back = 3

If p = 1 Then MsgBox "Alegeþi partea de vorbire sau/ºi domeniul", vbOKOnly, "Dictionarul explicativ al limbii romane"

End If

Exit_Command11_Click:

Exit Sub

Err_Command11_Click:

MsgBox Err.Description

Resume Exit_Command11_Click

End Sub

Alt cuvânt

Acest buton face posibilă introducerea unui nou cuvânt, dacă au fost introduse toate detaliile despre acest cuvânt.

Private Sub Command12_Click()

On Error GoTo Err_Command12_Click

Dim stDocName As String

Dim stLinkCriteria As String

t1 = Forms!detaliiExplicatii2!Text22

p = 1

If Forms![detaliiExplicatii2]!PDeVorbire <> 0 Then

t1 = t1 + PDeVorbire.Column(1) + " . "

p = p – 0.5

Else: t1 = t1 + " "

End If

If Forms![detaliiExplicatii2]!domeniu <> 0 Then

t1 = t1 + " ( " + domeniu.Column(1) + " ) "

p = p – 0.5

Else: t1 = t1 + " "

End If

If p >= 0 And p < 1 Then

If Forms![detaliiExplicatii2]!domeniu > 0 Then

l = 0

Else: Forms![detaliiExplicatii2]!domeniu = 81

End If

If cuvinteIsOpen() Then DoCmd.Close acForm, "cuvinte"

If omonimieIsOpen() Then DoCmd.Close acForm, "omonimie1"

If ChildFormIsOpen() Then CloseChildForm

If detaliiCuvIsOpen() Then DoCmd.Close acForm, "detaliiCuv"

< se trimite un mesaj cu datele introduse până acum pentru a se vizualiza și pentru a face corectările de rigoare dacă s-a greșit >

j = MsgBox("A-ți introdus pânã acum :" + Text15 + " . " + t1 + "….E bine ? ", vbYesNo, "Dictionarul explicativ al limbii romane")

< dacă este apăsat butonul Yes înseamnă că este de acord cu ceea ce a scris și i-se permite să introducă alt cuvânt, dacă nu, rămâne în această formă și prin intermediul butoanelor înapoi se pot face corectări >

If j = vbYes Then

DoCmd.Close acForm, "detaliiExplicatii2"

DoCmd.Close acForm, "Cautare-cuvinte"

stDocName = "cuvinte"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord , , acNewRec

End If

Else: If p = 1 Then MsgBox "Alegeți partea de vorbire sau/ți domeniul !!", vbOKOnly, "Dictionarul explicativ al limbii romane"

End If

Exit_Command12_Click:

Exit Sub

Err_Command12_Click:

MsgBox Err.Description

Resume Exit_Command12_Click

End Sub

Forma explicațiilor

Se scriu explicațiile și expresiile aferente, și se continuă introducerea.

Altă explicație cu domeniul și/sau partea de vorbire diferite

Se reintră în forma de alegere a domeniului și/sau părții de vorbire relativ la o nouă înregistrare.

Private Sub Command9_Click()

On Error GoTo Err_Command9_Click

Dim stDocName As String

Dim stLinkCriteria As String

Dim p As String

Dim m As String

Dim v As String

s = Forms!explicatii1!dba

m = Forms![explicatii1]!Text15

l = Forms![explicatii1]![nr explicatiei]

< dacă se păstrează în format numeric nu poate fi tipărit într-un textbox. De aceea se păstrează și în format string pentrua putea fi tipărit

v = Forms![explicatii1]![nr explicatiei]

a = Forms!explicatii1!Text1

t = Forms![explicatii1]!Text22

p = " ; "

If Forms![explicatii1]!explicatie <> "" Then

p = p + Forms![explicatii1]!explicatie + " , "

End If

If Forms![explicatii1]!expresie <> "" Then

p = p + Forms![explicatii1]!expresie + " , "

End If

< se afișează explicația introdusă pentru a fi vizualizată și dacă este greșită pentru a putea fi modificată: dacă este No nu se întâmplă nimic și se poate corecta greșeala >

j = MsgBox("A-ți introdus :Explicația " + v + " ." + p + " ; Dacã este corect apãsați Yes dacã nu apãsați No și corectați ", vbYesNo, "Dictionarul explicativ al limbii romane")

If j = vbYes Then

DoCmd.Close acForm, "omonimie1", acSaveYes

stDocName = "detaliiExplicatii2"

DoCmd.OpenForm stDocName, , , stLinkCriteria

DoCmd.GoToRecord acDataForm, stDocName, acNewRec

Forms![detaliiExplicatii2]![idex] = a

Forms![detaliiExplicatii2]!Text22 = t + v + " . " + p

Forms![detaliiExplicatii2]!nr = l

Forms![detaliiExplicatii2]!Text15 = m

Forms![detaliiExplicatii2]!back = s

Else: o = 0

End If

Exit_Command9_Click:

Exit Sub

Err_Command9_Click:

MsgBox Err.Description

Resume Exit_Command9_Click

End Sub

Altă explicație cu partea de vorbire și domeniul același

Aduce forma explicații intr-o nouă stare, în care poate fi introdusă o nouă explicație relativ la aceeași parte de vorbire și domeniu.

Private Sub Command19_Click()

On Error GoTo Err_Command19_Click

Dim stDocName As String

Dim stLinkCriteria As String

Dim p As String

Dim m As String

Dim v As String

b2 = Forms!explicatii1!dba

b3 = Forms!explicatii1!oba

m = Forms![explicatii1]!Text15

k = Forms!explicatii1!idexplicatie

t = Forms![explicatii1]!Text22

z = Forms![explicatii1]![nr explicatiei]

v = Forms![explicatii1]![nr explicatiei]

s = Forms!explicatii1!back

If Forms![explicatii1]!explicatie <> "" Then

p = p + Forms![explicatii1]!explicatie + " , "

End If

If Forms![explicatii1]!expresie <> "" Then

p = p + Forms![explicatii1]!expresie + " , "

End If

j = MsgBox("A-þi introdus :explicația " + v + "–" + p + " ; Dacã este corect apãsați Yes dacã nu apasaþi No și corectați ", vbYesNo, "Dictionarul explicativ al limbii romane")

< dacă este corect ceea ce a fost introdus continuă, dacă nu rămâne în aceeași formă și înregistrare pentru a se putea face modificări >

If j = vbYes Then

DoCmd.Close acForm, "omonimie1", acSaveYes

DoCmd.Close acForm, "detaliiExplicatii2", acSaveYes

DoCmd.Close acForm, "explicatii1"

DoCmd.OpenForm "detaliiExplicatii2", , , stLinkCriteria

DoCmd.GoToRecord , , acLast

k = Forms!detaliiExplicatii2!idexplicatie

DoCmd.OpenForm "explicatii1", , , stLinkCriteria

DoCmd.GoToRecord acDataForm, "explicatii1", acNewRec

Forms!explicatii1!idexplicatie = k

Forms![explicatii1]![nr explicatiei] = z + 1

Forms![explicatii1]!Text22 = t + v + " . " + p

Forms![explicatii1]!Text15 = m

Forms!explicatii1!dba = b2

Forms!explicatii1!oba = b3

Forms![explicatii1]!back = s

Else: o = 0

End If

Exit_Command19_Click:

Exit Sub

Err_Command19_Click:

MsgBox Err.Description

Resume Exit_Command19_Click

End Sub

Celelalte butoane sunt aproximativ la fel, cu cele similare din formele anterioare, și anume : Vezi, alt omonim, alt cuvânt.

Pe forma detaliiCuv sunt două butoane care de asemenea seamănă cu cele prezentate deja, și anume : alt omonim, alt cuvânt.

Forma modificare-main

Forma conține un combobox cu cuvintele și două butane. Cele două butoane corespund detaliilor despre cuvânt pe care utilizatorul dorește să le modifice.

Butonul de explicații deschide spre modificare explicațiile cuvântului :

Private Sub Command19_Click()

On Error GoTo Err_Command19_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = "modificare_expl"

stLinkCriteria = "[cuvant]=" & "'" & Me![Combo0] & "'"

DoCmd.OpenForm stDocName, , , stLinkCriteria

If Forms![modificare_expl]![explicatie] <> "fara explicatie" Then

l = 0

Else: MsgBox "Cuvântul dorit nu are explicație explicitã ci doar o referințã la alt cuvânt (penru a vedea aceasta referinta apasati butonul Detalii (vezi)", vbInformation

End If

Exit_Command19_Click

Exit Sub

Err_Command19_Click:

MsgBox Err.Description

Resume Exit_Command19_Click

End Sub

Iar butonul detalii (vezi) deschide o formă ce conține detaliile lexicale ale cuvântului care se dorește a fi modificat (această formă poate fi deschisă și din forma care vizualizează explicațiile ).

Private Sub Command21_Click()

On Error GoTo Err_Command21_Click

Dim stDocName As String

Dim stLinkCriteria As String

stDocName = "modificare_det"

stLinkCriteria = "[cuvant]=" & "'" & Me![Combo0] & "'"

DoCmd.OpenForm stDocName, , , stLinkCriteria

Exit_Command21_Click:

Exit Sub

Err_Command21_Click:

MsgBox Err.Description

Resume Exit_Command21_Click

End Sub

Formele de căutare sunt interogări de queriuri, sau vizualizarea unor rapoarte care se crează cu Wizard-ul. Forma de căutare cuvinte este aproximativ identică cu cea de modificare doar că utilizatorul nu are dreptul de a modifica ceea ce îi apare pe ecran.

Concluzii

Necesitatea construirii unei baze de date pentru o aplicație ce se ocupă cu procesarea limbajelor naturale este evidentă și a fost discutată și în primul capitol al acestei lucrări. Aș dori să subliniez însă că doar baza de date lexicală nu constituie un sistem lexical complet. De aceea, aplicația de față este partte componentă a unui sistem informațional, deci a trebuit să existe o continuă conexiune cu celelalte module. În prezentarea etapei proiectării acest lucru nu este atât de evident, de aceea motivațiile alegerii anumitor soluții sunt explicate de existența modulelor „Dex – multiutilizator” și „Analizatorul lexical”.

Lucrul în echipă și utilitatea într-un domeniu exterior specializării informatice sunt cele două elemente definitorii ale acestei aplicații.

Similar Posts

  • Comunicarea Prin Voip

    PROIECT DE DIPLOMĂ Comunicarea prin VoIP Scopul lucrării I Introducere în VoIP 1 Prezentare generală 2. Transportul datelor 2.1 Problemele transportului datelor în timp real 2.1.1 Pierderea pachetelor 2.1.2 Întârzierea pachetelor 2.1.3 Jitterul 2.2 RTP (RFC 1889) 2.3 RTCP (RFC 1889) 2.4 RTSP (Real Time Streaming Protocol – RFC 2326) 3 Semnalizarea 3.1 Introducere 3.2…

  • Proiectarea Unei Aplicatii Magazin Online Folosind Php Si Mysql

    Cuprins Capitolul 1. Introducere 1.1. Tehnologia in ziua de azi…………………………………………………………………..2 1.2. Site-uri si aplicații web………………………………………………………………………….3 1.3. Introducere a conținutului lucrării……………………………………………..7 Capitolul 2. Prezentarea tehnologiilor utilizate 2.1. Internet…………………………………………………………………………………………………9 2.2. World Wide Web…………………………………………………………………………………..11 2.3. HTML…………………………………………………………………………………………………..12 2.4. JavaScript……………………………………………………………………………………………..18 2.5. CSS……………………………………………………………………………………………………….22 2.6. XAMPP…………………………………………………………………………………………………25 2.7. PHP……………………………………………………………………………………………………….26 2.8.MySql……………………………………………………………………………………………………..31 2.9. Apache……………………………………………………………………………………………………40 Capitolul 3. Proiectarea și Implementarea aplicației 3.1. Baza de date utilizată………………………………………………………………………………42…

  • Sistem Informatic pe Platforma Android Pentru Comanda Unui Vehicul

    PROIECT DE DIPLOMĂ Studiul si proiectarea unui sistem informatic pe platforma android pentru comanda unui vehicul Cuprins Introducere Capitolul 1. Aparitia vehiculelor 1.1 Scurt istoric 1.2 Implementarea calculatoarelor de bord in structura vehiculelor Capitolul 2. Sisteme de operare 2.1 Despre MS-DOS 2.1.1 Configurarea sistemului de operare MS-DOS 2.1.2 Comenzile de configurare a sistemului de operare…

  • Implementarea Tranzactiilor Intr Un Sistem Distribuit Bazat PE Componente

    Cuprins Capitolul 1. Introducere…………………………………………………………………………3 Capitolul 2. Fundamentare teoretică……………………………………………………………5 2.1 Introducere în sistemele distribuite…………………………………………………………5 2.2 Modelul Client-Server………………………………………………………………………7 2.3 Protocolul TCP…………………………………………………………………………..…9 2.4 XPCOM……………………………………………………………………………………12 2.4.1 Componente XPCOM……………………………………………………………………14 2.5 Tranzacții………………………………………………………………………………….17 2.6 Mozilla FireFox……………………………………………………………………………19 2.7 API-ul NSPR………………………………………………………………………………20 Capitolul 3. Specificațiile și arhitectura sistemului………………………………………………22 3.1 Schema bloc a sistemulu……………………………………………………………………21 3.2 Arhitectura Coordonatorului de Tranzacții…………………………………………………23 3.3Arhitectura Componentei Tranzacționale………………………………………………….25 3.4 Cazurile de Utilizare……………………………………….………………………………27…

  • Tipuri de Afaceri In Mediul Virtual

    CAPITOLUL 3. TIPURI DE AFACERI ÎN MEDIUL VIRTUAL 3.1. Concept O afacere virtuală se bazează în special pe instrumente electronice moderne pentru a realiza activitatile, spre deosebire de o afacere tradițională care utilizează tranzacții fața în față și lucrează cu documente în formă fizică. În prezent o serie de tipuri de afaceri își desfășoara activitatea exclusiv în…