CYC este un proiect în domeniul inteligenței artificiale în cadrul căruia s-a creat ontologa globală și o bază de cunoștințe cu toate cunoștințele omenești avînd drept scop obțierea inteligenței artificiale cu capacitatea de a raţiona în modul omenesc. Cunoștințele sunt reprezentate în formă de predicate ce descriu unități de informație. Pentru codificarea informației a fost folosit un limbaj CycL, ce este bazat pe calculul predicatelor și are sintaxa similară cu sintaxa limbajului de programare logică Lisp. Unitățile de informație ce formează baza de cunoștințe sunt de tipul: “Orice copac este o plantă”, “Pe plante înfloresc flori”, “Ființele vii mor la un moment dat”.
Proiectul a fost lansat în 1984 de Douglas Lenat la Microelectronics and Computer Technology Corporation. Din 1994 a fost creată Cycorp care și a dezvoltat baza de cunoștințe. CYC (de la enCYClopedia, se pronunță la fel ca și în cuvînt “saic”) este marca comercială a companiei. Sistemul creat este produs commercial.
În 2002 a fost lansat OpenCyc (http://www.opencyc.org/), versiunea non-comercială a sistemului ce prezintă o parte a bazei de cunoștințe. Prima versiune din 2002 conținea numai 6000 concepte și 60 000 fapte. Ultima versiune din 2009 conține 47 000 concepte și 306 000 fapte și poate fi accesată on-line pe situl OpenCyc.
În 2006 Cycorp a lansat o altă versiune numită ResearchCyc dedicată cercetătorilor. În afară de datele din OpenCyc ResearchCyc conține multe cunoștințe semantice și anume fapte despre conceptele bazei, un lexicon vast, programe pentru analiza și generarea textului în limba engleză și o interfață pentru editarea și interogarea bazei de cunoștințe.
Baza de cunoștințe
Cum a fost descris mai sus, baza de cunoștințe conține un volum vast de piese de informație reprezentate în limbaj logic creat special pentru baza dată. Logica a fost preluată din calculul predicatelor de ordinul întîi, însă limbajul dat a fost înlărgit în scopul reprezentării tutror cunoștințeor necesare.
Elementele de bază pentru reprezentarea cunoștințeor sunt:
Constante. Constantele în Cyc denotă conceptele sau obiectele mediului înconjurător. Constantele pot reprezenta:
Obiecte individuale ( individuals ), de exemplu, #$BillClinton sau #$France.
Colecții sau mulțimi ( collections ), de exemplu, #$Tree-ThePlant (mulțimea tuturor copacilor) sau #$EquivalenceRelation (mulțimea de relații de echivalență). Eementul mulțimii (colecției) este numit instanța (instance) colecției date. Unele constante prezintă seturi întregi de concepte ca #$AnimalWalkingProcess, toate maniere de a umbla a animalelor.
Funcții (Functions) care pot forma concepte noi din cele deja definite. De exemplu, funcţia #$GovernmentFn formează concepte noi aşa ca #$GovernmentOf #$Canada sau #$GovernmentOf #$Moldova. Alt exempu este #$FruitFn, care avînd ca argument un pom formează conceptul fructul pomului dat. Toate funcțiile au sufixul "Fn".
Truth Functions pot fi aplicate la la unul sau mai multe concepte și pot avea una din doua valori: adevărat sau fals. De exemplu #$siblings este relația care are doua argumente și obține valoarea adevărat dacă argumentele sunt frați. Aceste funcții se construiesc din predicate care se unesc cu conectori logici: #$and, #$or, #$not, #$implies. #$implies are sensul “urmează” și este utilizat cînd o funcție urmează di alta. Alte elemente posibile în funcții sunt cuantifcatori: #$forAll, #$thereExists, și altele.
Unele din cele mai importante predicate sunt #$isa și #$genls. Predicatul #$isa descrie un element ca fiind instanța unui grup (colecției), de exemplu:
(#$isa #$BillClinton #$UnitedStatesPresident)
Exprimarea dată indică că Bill Clinton este o instanță a colecției președintelor SUA.
Predicatul #$genls descrie relația de includere între o colecție mai largă și subcolecție a primei, de exemplu:
(#$genls #$Tree-ThePlant #$Plant)
indică că colecția de copaci este o subcolecție a colecției plantelor. Astfel de descrieri formează exprimările bazei de cunoștințe. Sintaxa exprimărilor este prezentată în exemplul următor:
(#$capitalCity #$France #$Paris)
Exprimarea indică că Paris este capitala Franței.
În exprimările pot fi utilizate variabile în modul similar variabilelor în limbaj logic. Variabile se încep cu semnul ?
Exprimările ce conțin variabile se numesc reguli. Una din cele mai importante reguli formată cu predicatul #$isa arată astfel:
(#$implies
(#$and
(#$isa ?OBJ ?SUBSET)
(#$genls ?SUBSET ?SUPERSET))
(#$isa ?OBJ ?SUPERSET))
și are sensul următor: dacă OBJ este instanța colecției SUBSET și SUBSET în rîndul său este subcolecție a colecției SUPERSET, atunci OBJ este instanța colecției SUPERSET.
Fiecare constantă în Cyc are una sau mai multe afirmări care o descriu. Spre exemplu, constanta #$Green este descrisă ca:
(#$isa #$Green #$Color)
ce înseamnă că verdele este o culoare și este instanța colecîiei de culori. Culoarea este utilizată în afirmarea:
(#$colorOfObject #$Grass #$Green)
ce descrie culoarea ierbii. La fel ea este folosită în regula:
(#$forAll ?O
(#$implies
(#$isa ?O #$Tree-ThePlant)
(#$colorOfObject ?O #$Green)))
Regula dată descrie variabila ?O și are următorul sens: pentru orice obiect este adevărat că dacă obiectul dat este copac, culoarea lui este verde.
Taxonomia bazei de cunoștințe
Taxonomia bazei de cunoștințe Cyc este arborescentă și la vîrf are un singur concept #$thing. Reprezentarea grafică a taxonomiei este reluată de pe http://www.cyc.com/cyc/technology/whatiscyc_dir/maptest și prezentată în figura 1.
Baza de cunoștințe Cyc este împărțită în microteorii (Mt), care încapsuează conceptele și faptele dintr-un domeniu de cunoștințe. Spre deosebire de toată baza de cunoștințe microteoriile nu conțin exprimări contradictorii. Fiecare microteorie are denumire care este reprezentată în formă de o constantă simplă; acestea pot fi usor deosebite prin sufixul «Mt» ce conțin toate denumirile microteoriilor. De exemplu, #$MathMt este microteoria ce descrie cunoștințe matematice. Microteiriile sunt organizate într-o ierarhie, de exemplu, microteoria despre geometrie #$GeometryGMt este submicroteoria microteoriei #$MathMt ce descrie matematica în general.
Figura 1. Taxonomia bazei de cunoştinţe
Procesarea limbajului natural în Cyc
Procesarea limbajului natural în Cyc se efectuiază de trei componente de bază: lexicon, sintactic parser și interpretator semantic, însă pentru obținerea sensului corect a propoziției sunt activate mai multe părți a bazei de cunoștințe.
Lexiconul
Lexiconul în Cyc este un element important al sistemului care conţine toată informaţia despre cuvintele engleze. În Cyc toate cuvintele formează setul #$EnglishWord. În lexicon este prezentată informaţia următoare:
partea de vorbire a cuvîntului şi altă informaţie morfo-sintactică;
corespondenţa cu conceptul general reprezentat în baza de cunoștințe.
Informaţia sintactică este codificată în predicate care formează setul #$NLSyntacticPredicate.
De exemplu, substantivele în Cyc sunt prezentate în următorul mod:
La fel sunt prezentate adjectivele, adverbele şi alte părţi de vorbire. Pentru descrierea caracteristicilor morfologice se folosesc predicate speciale:
Informaţia semantică în Cyc este introdusă prin legăturile dintre conceptele generale ale ontologiei şi cuvintele lexiconului. Legăturile acestea sunt reprezentate cu predicatele #$denotation. Mai jos sunt prezentate exemple de legături:
Primul argument în predicat este cuvîntul, al doilea argument prezintă partea de vorbire, al treilea indică numărul de ordine a sensului cuvîntului dat şi ultimul este conceptul general. Spre exemplu, în primul predicat este notat că sensul numărul zero al cuvîntului batca substantiv este bat-mammal; al doilea predicat idică următorul sens al cuvîntului batca substantiv și anume bățul special cu care în baseball (fotbalul american) lovesc mingea; al treilea exemplu indică sensul cuvîntului bat în calitate de verb. Alt tip de relaţie semantică este introdus folosindu-l predicatul #$denotationRelatedTo. Predicatul acesta se foloseşte în cazurile cînd un cuvînt nu prezintă exact conceptul, dar sensul lui este legat de conceptul dat. Spre exemplu:
(#$denotationRelatedTo
#$Shuffle-TheWord #$Verb 0 (shuffle – târşâire, mers târşâit)
#$AnimalWalkingProcess)
(#$denotationRelatedTo
#$Perambulate-TheWord #$Verb 0 (perambulate – a se plimba)
#$AnimalWalkingProcess)
(#$denotationRelatedTo
#$Stride-TheWord #$Verb 0 (stride – a merge cu paşi mari)
#$AnimalWalkingProcess)
Toate conceptele prezentate descriu modurile de a se deplasa pe pamînt.
Pentru majoritatea substantivelor legătura cu conceptul se realizează folosind predicatul #$denotation şi reprezintă sensul lui. În unele cazuri sensul este mai complicat şi este nevoie de predicatul #$nounSemTrans ca în următorul exemplu:
(#$maritalStatus :NOUN #$Single)))
Pentru verbe, adverbe şi adjective de asemenea sunt create predicatele #$denotation dar deseori sunt introduse şi predicatele pentru precizarea sensului. Verbele acţionează ca elementul principal în propoziţie, ele unesc alte elemente ale propoziţiei. Astfel, pentru verbe sunt create şabloanele sintactice care denotă argumentele ce apar pe lîngă fiecare verb. Pentru crearea şabloanelor sintactice se folosesc predicatele #$verbSemTrans. Spre exemplu, regula pentru verbul eat tranzitiv arată astfel:
(#$verbSemTrans #$Eat-TheWord 0
#$TransitiveNPCompFrame
(#$and
(#$isa :ACTION #$EatingEvent)
(#$doneBy :ACTION :SUBJECT)
(#$inputsDestroyed :ACTION :OBJECT)))
În regula prezentată sunt rezervate poziţiile pentru două variabile: subiect (SUBJECT) şi complement direct (OBJECT). Altă regulă este prevăzută pentru verbul feed folosit în structura cu compliment direct și indirect ca în propoziţia I fed the horse an apple:
În regula aceasta sunt rezervate poziţiile pentru subiect (SUBJECT), complement direct (OBJECT) şi complement indirect (INDIRECT-OBJECT). Regulile prezentate în exemplele anterioare descriu nişte evenimente care sunt denotate cu elementul (#$isa :ACTION #$FeedingEvent). A treia regulă conţine un verb care descrie nu o acţiune, dar o stare:
(#$verbSemTrans #$Like-TheWord 0
#$TransitiveNPCompFrame
(#$likesObject :SUBJECT :OBJECT))
În cazul verbului like se formează predicatul #$likesObject cu subiectul şi complementul direct din propoziție.
Fiecare din regulile prezentate se referă la predicatul #$SubcategorizationFrame potrivit.
Mopfologia în Cyc este o componentă care recunoaşte şi generează cuvintele sub toate formele posibile. În structurile logice Cyc sunt folosite cuvintele în forma lor de bază, schimbarea formei se execută de componenta morfologică.
Pentru substantive unica formă flexionară este pluralul care se formează adăugînd –s sau –es la forma de bază. Pentru verbe forma de bază este infinitivul, iar forme flexionare sunt gerunziu, timpurile trecut, perfect şi persoana a treia singular. Toate formele acestea se formează corespunzător prin adăugarea –ing, -d sau –ed, şi –s sau –es. Pentru substantivele şi verbele neregulate sunt folosite #$plural, #$gerund, #$pastTense, #$thirdPersonSg şi #$perfect.
Generatorul de text în limba naturală (engleză) traduce formulele limbajului intern de reprezentare în text în limba engleza, folosind şabloane sintactice.
Analiza propozițiilor engleze în Cyc
Prima etapa de analiză a propoziției este analiza morfologică a cuvintelor. Este cunoscut că cuvintele limbii engleze ca regulă sunt polisemantice și pot să apară în text ca diferite părți de vorbire. De exemplu, în propoziția John saw the light with the telescope. sunt posibile următoarele părți de vorbire:
John
saw
the
light
with
the
telescope
proper noun
verb
noun
determiner
verb
noun
adjective
preposition
determiner
verb
noun
Analizator morfologic atașează la cuvintele propoziției toate etichetele părților de vorbire posibile și lasă sarcina de alegere pentru etapele următoare. La etapa următoare parser sintactic formează toate structurile sintactice posibile cu părțile date de vorbire și le analizează din punct de vedere a sensului corect.
Analiza sintactică constă dintr-un set de componente. Strategia este compusă din top-down şi bottom-up metode pentru optimizarea vitezei şi flexibilităţii. Procesul de analiză sintactică este condus de reguli euristice care reduc numărul de variante posibile. Diferite unităţi ale propoziţiei se analizează folosind analizatori diferiţi. În set sunt incluse: Analizatorul bazat pe şabloane (Template parser), Analizatorul de grupuri nominale (Noun Compound parser) şi Analizatorul structurii frazei (Phrase Structure parser). Analizatorul bazat pe şabloane este relativ simplu şi rapid, dar puţin flexibil. Analizatorul de grupuri nominale este creat pentru recunoaşterea grupurilor nominale ca, de exemplu, country parliament decision. În procesul analizei componenta dată foloseşte partea semantică a sistemului în scopul formării corecte a sensului grupurilor nominale. Ea poate distinge aşa fel de grupuri nominale ca Mozart symphonies (simfoniile create de Mozart) şi Mozart expert (expert ce studiază viața și creația lui Mozart) ce este imposibil la nivelul pur sintactic.
Pentru propoziția prezentată mai sus se formează două structuri sintactice arborescente:
{:SENTENCE
{:NP
{:N-BAR {#$ProperNoun [John]}}}
{:VP
{#$Verb [saw]}
{:NP {:DETP {#$Determiner [the]}}
{:N-BAR {#$SimpleNoun [light]}}
{:PP {#$Preposition [with]}
{:NP {:DETP {#$Determiner [the]}}
{:N-BAR {#$SimpleNoun [telescope]}}}}}}}
{:SENTENCE
{:NP
{:N-BAR {#$ProperNoun [John]}}}
{:VP
{#$Verb [saw]}
{:NP {:DETP {#$Determiner [the]}}
{:N-BAR
{:N-BAR {#$SimpleNoun [light]}}
{:PP {#$Preposition [with]}
{:NP {:DETP {#$Determiner [the]}}
{:N-BAR {#$SimpleNoun [telescope]}}}}}}}}
De fapt, cum se vede din rezultatul prezentat mai sus parser sintactic deja a ales părțile de vorbire corecte pentru cuvintele ambigue. Două structuri formate reflectă ambiguitatea structurală, nu cea morfologică. În prima structură fragmentul "with a telescope" este atașat la verb reprezentînd sensul: "John a folosit telescopul pentru a vedea lumina". Într-a doua structură fragmentul "with a telescope" este atașat la grup nominal și sensul este: "John a văzut lumina și acolo era telescopul".
Structurile acestea apoi sunt prelucrate de interpretator semantic care alege structura corectă și o traduce în limbajul logic. Astfel, propoziția poate deveni un element a bazei de cunoștințe sau dacă propoziția este interogativă sistemul va căuta răspuns în baza sa de cunoștințe.
Interpretarea semantică.
Reprezentarea semantică a propoziției se formează prin metoda bottom-up, structuri semantice se formează pentru fragmentele structurii sintactice și apoi se unesc în structuri mai mari. Pentru fiecare grup sintactic există reguli semantice corespunzătoare. Ca și în alte sisteme verbul este considerat nucleul propoziției. În lexicon pentru fiecare verb sunt prezentate cadre sintactico-semantice carea ajută în traducerea propoziției în forma logică a limbajului intern Cyc. De exemplu, "believe" este însoțit de cadrul (#$believes :SUBJECT :CLAUSE). Cadrul acesta este aplicat în cazul propozițiilor de tipul "Mary believes that the blue hat is pretty". Respectiv reprezentarea semantică pentru alte elemente a propoziției se plasează în loc de SUBJECT și CLAUSE în structura semantică formată.
Dacă revenim la propoziția cu lumina și telescopul din exemplul nostru, componenta semantică CYC verifică ambele structuri sintactice formate. Se analizează două exprimări formate: "lumina cu telescopul" și "a văzut cu telescopul". Baza de cunoștințe a sistemuui conține informația că telescopul este utilizat pentru a vedea ceva iar informație că lumina este ceva, unde telescopul se află nu se găsește în baza de cunoștințe. Respectiv, prima structură este respinsă și a doua structură este considerată corectă. Astfel, a doua structură se transformă în exprimarea logică în limbajul formal CYC.
Sistemul utillizează cunoștințele din baza sa de cunoștințe pentru rezolvarea problemelor ambiguității cuvintelor și a propozițiilor fără a apela la metode statistice.
Spre exemplu, analizînd propozițiile următoare:
Fred saw the plane flying over Zurich.
Fred a văzut avionul zburînd deasupra orașului Zurich.
Fred saw the mountains flying over Zurich.
Fred a văzut munții zburînd deasupra orașului Zurich.
Oamenii nu întîlnesc dificultăți în înțelegere că în primul caz zbura avionul și Fred l-a văzut (evident, de pe pămînt) și într-a doilea caz zbura Fred (cu avionul, pentru noi și asta este clar) și a văzut munții sub avion. Însă sistemele computaționale ca regulă au probleme în analiza astfel de propoziții. CYC în rîndul său are o bază vastă de cunoștințe în care este indicat că zboară avioanele și oamenii le folosesc iar munții nu pot zbura; cunoștințele acestea și sunt folosite pentru interpretarea corectă a propozițiilor date.
Dezvoltarea CYC
Pe data de 1 ianuarie 2009 baza de cunoștințe CYC conținea aproape 500000 termeni, 15000 tipuri de relații și aproximativ 5000000 de fapte (exprimări) despre termenii dați. Exprimațiile se adăuga în continuare utilizînd combinația metodelor automate și manuale; astfel, CYC poate adauga milioane de exprimări folosind regulile din baza de cunoștințe și motorul de inferență încorporat.
În afară de această CYC a lansat un sit http://game.cyc.com/ pentru obținerea cunoștințelor de la utilizatorii internetului. Doritorii de a completa baza de cunoștințe sunt invitati să participe în așa numită joacă cu un scop (game with the purpose). Sistemul propune utilizatorilor afirmații și întreabă dacă aceste afirmații sunt adevărate sau false.
Cycorp a declarat că va publica un lexicon semantic pentru utilizarea în dezvoltarea Web Semantic. Taxonomia OpenCyc în formatul OWL (Web Ontology Language) deja este prezentată pe situl proiectului.
Utilizarea bazei de cunoştinţe CYC: La momentu de faţă partea comercială a proiectului oferă baza de cunoştinţe creeată cu scopul dezvoltării sistemelor de expert în diferite domenii.
Critica proiectului CYC
CYC este descris ca "una din cele mai controversate încercări în istoria inteligenței artificiale". Necatînd la faptul că creatorii bazei de cunoștințe declară că sistemul lor este o inteligența artificială creată, sistemul este criticat din multe puncte de vedere:
Sistemul este foarte complex, ce este evident din scopul sistemului de a cuprinde toate domeniile de cunoștințe, însă din cauza complexității lui este foarte greu de utilizat și de adăugat exprimări noi.
Unele concepte nu sunt tratate suficient de bine.
Necatînd la volumul informației în baza de cunoștințe, există o mulțime de lacune în privința informației despre obiecte ordinare.
Documentația despre sistem este foarte limitată și nu sunt manuale on-line ce crează dificultăți pentru persoane care doresc să folosească sistemul.
Sistemul nu a fost evaluat în comparație cu alte sisteme.
Mikrokosmos Noţiuni generale, arhitectura sistemului
Fig. 1. Arhitectura generală a sistemului de traducere Mikrokosmos
Mikrokosmos (uK) este un sistem de traducere automată bazat pe cunoştinţe (knowledge-based) care a fost creat la universitatea statului New Mexico, SUA. Sistemul dat de traducere utilizează un limbaj formal pentru reprezentarea sensului. Pentru traducerea corectă a fost proiectat un format de reprezentare a sensului independent de limba analizată numit format interlingual (text meaning representation - TMR). TMR serveşte ca rezultat al analizei limbii de întrare şi în corespondenţă cu datele de întrare pentru formarea traducerii în limba finală. Sensul textului este reprezentat în TMR ca elementul modelului global de cunoştinţe (ontologie). Legătura între ontologie şi TMR este realizată prin lexicon unde cuvintele se referă la conceptele ontologiei şi astfel servesc la formarea reprezentării semantice TMR. Un rol important în lucrul sistemului joacă microteoriile. Microteoria este un set de reguli din baza de cunoştinţe unite după domeniu, presupuneri şi surse, care descriu un fragment de cunoştinţe.
Iniţial proiectul era concentrat în dependenţa lexico-semantică, apoi pentru prezentarea timpului, relaţiilor discursului, referinţelor, elipselor erau dezvoltate teorii suplimentare numite microteorii.
Reprezentarea sensului în TMR este creată aplicând analiza sintactică, semantică şi pragmatică a textului. Limbajul de reprezentare a sensului este intenţionat eliberat de aşa elemente ca clauze, propoziţii, timpul verbelor şi alte noţiuni sintactice. TMR conţine informaţia despre structura lexico-semantică a textului, relaţiile discursului, atitudinile autorului, stilul lui şi alţi factori pragmatici. TMR este bazat pe cadre (frames) în care se înscriu noţiunile ontologiei.
Ontologia Mikrokosmos-ului Ontologia Mikrokosmos-ului include majoritatea conceptelor limbii. În afară de substantive ea conţine o taxonomie de evenimente şi legături între evenimente şi obiecte. Pentru a servi drept sursă de cunoştinţe în analiza textului, ontologia trebuie sa fie strâns legată cu alte elemente ale sistemului. În aplicaţia data ea conţine o mulţime de legături cu lexiconul ce serveşte ca sursă de informaţie în analiza textului. Partea de vîrf este destul de stabilă, pe când la capetele ramurilor conceptele urmează să se mai adauge. Numărul de ramuri care reiese dintr-un concept este destul de mic (în jur de 5-10) fapt ce la rindul său măreşte numarul de niveluri care depăşeşte 10 pentru majoritatea lexemelor.
Ontologia ajută în procesarea limbajului natural pentru stabilirea sensului şi anume:
ea reprezintă preferinţele semantice în cadrul relaţiilor dintre concepte;
ea ajută să facem concluzii despre conceptele folosite în text şi după necesitate să completăm neajunsul de informaţie în text;
ea poate fi folosită in căutarea legăturii semantice dintre două concepte în cazurile când în text apare problema dezambiguizării grupurilor nominale complexe sau la înţelegerea anaforei când constrângerile semantice nu permit formarea sensului;
În figură este reprezentat fragmentul de vârf al ontologiei mikrokosmos-ului care conţine trei concepte de bază: obiect, eveniment şi proprietate.
Figura 2. Schema ontologiei Mikrokosmos.
Lexicon semantic În modelul prezentat lexiconul este sursa principală a cunoştinţelor. Majoritatea informaţiei este sau reprezentată direct în lexicon sau indexată şi referită din lexicon. Unitatea de lexicon cuprinde un număr de zone în care sunt prezentate diferite tipuri de informaţie: fonologică, morfologică, lexico-semantică, pragmatică. Mai jos este prezentat un exemplu de unitate de lexicon spaniol, şi anume cuvântul „adquirir”. Prima zonă conţine descrierea generală a cuvântului şi sensului corespunzător (cuvântul dat are mai multe sensuri şi, deci, mai multe unităţi în lexicon).
Figura 3. Descrierea elementului lexiconului Mikrokosmos.
A doua zonă – Syn Struc - conţine descrierea sintactică a cuvântului. În zona aceasta pentru fiecare lexem este prezentat structura sintactică în care ea poate să apară şi rolul ei în structura dată. Informaţia prezentată in zona aceasta prezintă un fragment din arborele sintactic in care lexemul dat apare mai des. Ea poate să conţină câteva niveluri de structură sintactică în jurul lexemului dat. In modelul ales pentru verbe sunt indicate toate argumentele lor, pentru modificatori elementele de bază, pentru prepoziţii sunt prezentate atât argumente cât şi elementele, la care ele sun ataşate. Aşadar, în zona aceasta sunt prezentate structurile de legături sintactice cu variabile care trebuie să fie înlocuite de lexemele din propoziţie.
Variabilele introduse în Syn-Struc zone interacţionează cu şablonul în SEM zone formând reprezentarea semantică. De exemplu, pentru verbul prezentat subject şi object se înlocuesc cu Agent şi Theme, prezentate de variabile $var1 şi $var2.
Zona semantică (SEM zone) prezintă un fragment specific al TMR care conţine atât informaţia, cât şi o poate extrage din cuvintele procesate. Adăugător la fragmentul TMR SEM zona poate să includă informaţia specifică pentru limbajul natural analizat. Concatenarea zonelor SEM cuvintelor din propoziţie produce TMR final al propoziţiei în întregime.
Analiza propoziţiilor în Mikrokosmos Analizatorul semantic combină cunoştinţele din ontologie şi lexicon pentru analiza textului şi crearea TMR textului. Problema centrală în procesul acesta este examinarea constrângerilor semantice pentru sensurile cuvintelor în text şi selectarea sensurilor potrivite cărora, luate în combinaţie, cel mai bine satisfac constrângerile semantice.
Pasul iniţial în analiza textului prezintă analiza sintactică. Pentru această este folosit un parser deja creat Pangloss MT care practic formează structura propoziţiei şi legăturile între unităţi. Pasul următor este extragerea din lexicon a tuturor sensurilor posibile pentru cuvintele în propoziţie. Apoi structura sintactică creată se compară cu şabloane sintactice prevăzute pentru lexemele extrase. Dacă şabloanele se potrivesc, variabile sunt înlocuite cu elementele propoziţiei. După înlocuirea variabilelor pot fi aplicate constrângerile semantice din SEM zone. De exemplu, pentru cuvântul ‚acquire’ există două sensuri: ‚de a primi(obţine) ceva’ si ‚de a însuşi ceva’. Pentru sensurile date restricţiile sunt:
‚acquire1’ (Agent: HUMAN ) (Theme: OBJECT (not human)),
‚acquire2’ (Agent: HUMAN ) (Theme: INFORMATION)
Pentru substantive se controlează elementele vecine in şabloanele semantice, care trebuie să coincidă cu condiţiile descrise in lexemul ales. Câteodată apar descrieri dependente de domeniu pentru un lexem anumit. Alte constrângeri pot fi adăugate de grupurile prepoziţionale, care modifică fie predicatul fie alte elemente in propoziţie. Având toate aceste constrângeri sistemul se adresează către ontologie si analizează legaturile intre lexemele din text si noţiunile notate in constrângeri.
Iniţial sistemul era creat pentru analiza textelor despre cumpărarea şi unirea firmelor, deaceea verbul dat în textele acestea deseori avea sensul ‚de a cumpăra’ şi avea ca argumente organizaţii. Un exemplu de propoziţie analizată poate fi:
The Roche group, through its company in Spain, acquired Doctor Andrew, it was announced today.
Conceptul central în propoziţia dată este verbul ACQUIRED. Pentru cuvântul ‚acquire’ exista mai multe sensuri:
Ontology concepts for “ACQUIRE”:
ACQUIRE-129 ACQUIRE -76
Definition – the transfer of possession Definition – the obtaining of some knowledge
Is-a – transfer-possession Is-a – mental activity
Theme – object (not human) Theme – information
Agent – human Agent – human
Precondition – own Purpose-of – educatoin
ACQUIRE-142
Definition – the engaging and others…
Is-a – engaging
Theme – human
Agent – organisation
Purpose-of – occupy the post
După analiza sintactică a propoziţiei din lexicon se extrag toate sensurile posibile ale cuvintelor. În cazul examinat The Roche group se defineşte ca organisation după cuvântul-cheie group. Doctor Andrew obţine două sensuri posibile – ca person şi ca organisation. După formarea şablonului semantic şi adăugarea sensurilor din lexicon obţinem:
‚acquire’ (Agent: The Roche group ) (Theme: Doctor Andrew)
ACQUIRE-129 organisation organisation
ACQUIRE-142 person
ACQUIRE-76
Pasul următor este verificarea restricţiilor semantice. Din toate combinaţiile sensurilor poate fi acceptată varianta:
‚acquire’ (Agent: The Roche group ) (Theme: Doctor Andrew)
ACQUIRE-142 organisation person
Sistemul foloseşte un algoritm special de căutare prin ontologie check-onto-con care calculează distanţa între concepte. Spre exemplu, în sistem există legătura între ORGANIZATION şi HUMAN şi anume ORGANIZATION HAS-MEMBER HUMAN. Astfel de relaţie este numită metonimie şi este codificată în sistem. Deci, algoritmul întoarce scorul 1:0 pentru perechea (ACQUIRE EVENT) fiindcă în ontologie ACQUIRE este un tip de eveniment. Pentru (ORGANIZATION HUMAN) scorul este 0:9 ce arată că organizaţia poate să ocupe locul în şablonul semantic unde se cere o persoană. sistemul calculează scorul unit pentru toate combinaţiile posibile şi alege combinaţia cu scorul maximal. Pentru alte cuvinte din propoziţia din exemplu se fac următoarele decizii:
- pentru cuvântul through sunt posibile două sensuri: ca instrument şi ca location; se alege sensul instrument;
- pentru cuvântul Spain există un sens: country şi, deci ea are rol location;
- pentru cuvântul company sunt posibile două sensuri: organization şi social-event din care sitemul nu poate alege unul fiindcă şi unul şi altul pot fi locate într-o ţară şi ambii pot fi instrumente în fragmentul through its company in Spain;
- Doctor Andrew poate fi atât person cât şi organsation, în dependenţă de sensul verbului. Dacă este ales conceptul ACQUIRE-129 atunci Doctor Andrew este organsation.
Pentru luarea deciziei sistemul poate să se consulte cu informaţia statistică care este obţinută în baza documentelor de afaceri deja procesate de către sistem şi să observe că mai des folosit este conceptul ACQUIRE-129 cu argumentele organsation.
După selectarea sensurilor potrivite pasul următor este analiza pragmatică sau contextuală. În cadrul ei se analizează anafore şi alte elemente ale discursului. Pe parcursul analizei în baza informaţiei contextuale se rezolvă problemele de dezambiguizare care nu au fost rezolvate la etapa analizei semantice a propoziţiei.
FrameNet
Ideea de bază Framenet este un proiect condus de Charles Fillmore, autorul teoriei cazurilor semantice sau tematice (case grammar). Teoria cazurilor semantice presupune că:
nucleul propoziției este verbul (predicatul);
grupurile nominale (Noun Phrase - NP) și prepoziționale (Prepositional Phrase - PP) ale propoziției care au relații sintactice cu verbul (predicatul) dat (în calitate de subiect și complemente) au roluri semantice (tematice) în relație semantică cu verbul (predicatul) dat;
analogic cu setul cazurilor sintactice, setul de cazuri semantice este comparativ mic.
Însă, aplicarea teoriei cazurilor semantice în practică a demonstrat că numărul restrîns de cazuri semantice nu acoperă toate relațiile semantice între predicat și complemente care apar în text. În aplicații practice cercetătorii au fost nevoiți să mărească setul de roluri semantice. Practic numărul de roluri utilizat variază de la 30 pînă la 80.
Charles Fillmore a continuat dezvoltarea teoriei sale și a transformat-o în teoria cadrelor (frames theory). Teoria cadrelor descrie modul de utilizare a limbii de către oameni. În teoria dată se consideră că oamenii păstrează în memoria lor o mulţime de şabloane (cadre) sintactico-semantice asociate cu diferite obiecte, situații, acțiuni, stări, şi le folosesc după necesitate. De exemplu, noțiunea “a cina”, “cină” este partea din structura cunoștințelor legate de mîncare, modul de a lua masa de oameni. Structura dată include cunoștințe despre faptul că oamenii mînîncă de trei ori pe zi, ce se numește “micul dejun”, “prînz” și “cină”, despre timpul lor, despre feluri de bucate ce se prepară pentru fiecare mîncare, etc.
Noțiunea de cadru (frame) este folosită și în alte domenii de cercetare cum ar fi inteligența artificială și psihologia cognitivă. În lingvistica computațională noțiunea dată a fost întrodusă de M. Minsky cu definiția "o structură de date ce reprezintă o situație stereotipică". În teoria lui C. Fillmore noțiunea de cadru (frame) este apropiată de text, cadrul este descrierea lexicală a unei situații. Astfel, C. Fillmore a hotărît să creeze o bază de date cu descrieri lexicale pentru situaţii, obiecte, noţiuni diferite. Acestea au fost numite cadre (FRAMES).
Respectiv, baza de cunoştinţe FrameNet constă din:
setul de cadre (frames) ce sunt descrise în HTML pagini și se află în mapa frames;
seturi de elemente a fiecărui cadru (Frame Element - FE) ce au un rol specific în stuația dată sau pentru noțiunea dată; ele sunt descrise împreună cu descrierea cadrului;
setul de unități texicale (Lexical Units - LU) ce se utilizează în descrierea cadrului dat și evocă situația sau noțiunea cadrului dat; acestea sunt cuvintele cu definiţia sensului său, ele sunt descrise în HTML pagini care se află în mapa leHTML;
seturi de structuri sintactico-semantice care descriu situația sau noțiunea dată. Structurile date sunt propoziții ce conțin unități lexicale, descriu cadrul dat și sunt marcate semantic și sintactic ce permite stabilirea relațiilor între sintaxa și semantica. Acestea sunt prezentate în formă de HTML pagini și se află în mapa annoHTML.
Structura bazei de date create în cadrul proiectului este prezentată în figura ??.
Proiectu a fost lansat în 1997 și se află în continuă dezvoltare. Rezultatele proiectului sunt expuse în întregime on-line pe adresa: http://framenet.icsi.Berkeley.edu/~framenet/. Toată baza de cunoștințe poate fi descărcată gratis de orice utilizator. La catedră se utilizează o versiune a bazei FrameNet descărcată. Toată informația este prezentată codificată în HTML pagini cum a fost descris mai sus. Toate fișierele acestea sunt create în scopul reprezentării mai accesibile pentru utilizatorii bazei acestea de cunoștințe. FrameNet este folosit de învățători de limba engleză și studenți ce învață limba. O altă utilizare FrameNet a găsit în lingvistica computațională. Cadrele, propozițiile marcate și statistica structurilor sintactico-semantice pentru unitățile lexicale este o sursă de cunoștințe ce pot fi aplicate în anaiza și generarea propozițiilor engeze. În acest scop descrierea cadrelor, unităților lexicale și marcarea propozițiilor este dublată în XML documente care sunt prevăzute pentru prelucrarea automată de către programe. Fișierele XML sunt stocate în mapele frXML, leXML și luXML (luPosXML).
Cadrele descriu diferite tipuri de concepte:
evenimente;
artefacte, obiecte create;
obiecte naturale, părţi şi seturi;
caracteristicile terrane;
organizaţii, reguli, ocupaţii;
timpul, spaţiu, locul, mişcarea;
etc.
Între cadrele ce descriu concepte apropiate au fost stabilite legături semantice care pot fi vizualizate on-line utilizînd instrumentul special numit FrameGrapher. In exemplu de legături între cadre est prezentat în figura ??. Reciprocality (ceea ce se efectuiază reciproc) este o noțiune mai generală și are multe sub-cadre printre care este și cadrul Commercial_transaction. Acest cadru are în rîndul său două cub-cadre care în același timp sunt sub-cadre și la cadrul Transfer.
Figura 1. Arhitectura bazei de date FrameNet.
Cadre de evenimente Pentru a înțelege mai bine structura elementelor bazei de cunoștințe FrameNet om face cunoștințe cu un cadru în detalii. Ca exempu o sa luăm un cadrul ce reprezintă un eveniment.
Cadre de evenimente (Event Frames) sunt unele în care sunt implicate mai multe cuvinte şi care au structura ce include vector temporal. Evenimente au constrângeri în privinţa evenimentelor precedente, subevenimentelor, care se întâmplă în timpul lor şi pentru starea lucrurilor după ce evenimentul se termină. De exemplu, evenimentul de tranzacţie comercială are următoarele constrîngeri:
Figura 2. Exemplu de legături semantice între cadre.
Starea Iniţială:
Vînzătorul are Marfa, și dorește să obțină Bani; Cumpărătorul dorește să obțină Marfa și are Bani
Starea Finală: Vînzătorul are Bani; Cumpărătorul are Marfa De fapt descrierea tranzacţiei comerciale este mai complicată decât acea prezentată aici, dar sensul rămâne acelaşi. Aceasta este descrierea cadrului. În procesul descrierii se stabilesc rolurile semantice ale elementelor participanților în evenimentul cadrului dat. În cazul nostru acestea sunt Cumpărătorul, Vînzătorul, Marfa şi Banii – elmentele principale (Frame Elements - FE) în cadrul dat.
Apoi se defineşte lista cuvintelor (Lexical Units - LE) pentru cadrul descris. În cazul cadrului de tranzacţie comercială sunt utilizate următoarele unități lexicale:
Verbe: pay, spend, cost, buy, sell, charge
Substantive: cost, price, payment
Adjective: expensive, cheap
În descrierea cadrului de eveniment rolul principal au verbele. Legătura dintre sens şi sintaxă este reprezentată prin faptul că diferite verbe prezintă situaţia în diferite moduri şi unesc participanţii evenimentului folosind diferite structuri sintactice.
Cum a fost menționat mai sus, identificatorii conceptelor-participanţilor evenimentului dat sunt: Cumpărătorul, Vînzătorul, Marfa şi Banii (buyer, seller, goods, money). În dependenţă de verb identificatorii apar în propoziţie în diferite roluri sintactice. În exemplele de propoziții ce urmează participanţii evenimentului
Cumpărătorul, Vînzătorul, Marfa şi Bani
sunt evidenţiate prin scrisul diferit:
Shebought some carrots from the greengrocer for a dollar.
Shepaid a dollar to the greengrocer for some carrots.
Shepaid the greengrocer a dollar for the carrots.
Shespent a dollar on the carrots.
The greengrocer sold some carrots to her for a dollar.
The greengrocer soldher some carrots for a dollar.
The greengrocer charged a dollar for a bunch of carrots.
The greengrocer chargedher a dollar for the carrots.
A bunch of carrots costs a dollar.
A bunch of carrots costher a dollar.
Itcosts a dollar to ride the bus.
Itcostme a dollar to ride the bus.
Shema prezintă grafic relaţiile între participanţii evenimentului descrise în prima propoziţie, unde Cumpărătorul este subiectul propoziţiei, Marfa este complement direct, iar Vînzătorul, şi Bani sunt complemente întroduse cu prepoziţiile from şi for.
Respectiv, propozițiile sunt cele srtucturi sintactico-semantice în care este codificată legătura între sintaxa și semantica. Fiecare propoziție obține patru tipuri de marcare:
marcarea elementului principal – cuvîntului cheie în propoziție – Target (în exemple acesta este subliniat);
marcarea semantică, prin care se evidențiază cu culori diferite rolurile semantice (Frame Elements);
marcarea gramaticală care evidențiază rolurile sintactice a elementelor propoziției (subiect, predicat, complement, etc.);
Numai primul și al doilea tip de marcare este evidențiat pentru utilizatori. Altele două tipuri de marcare sunt ascunse. Este imposibil de demonstrat toate tipuri de marcare pe o propoziție, ea va deveni necitibilă. Marcarea dată este codificată în XML utilizînd așa numite straturi (layers). Mai jos vor fi demonstrate toate patru tipuri de marcare pe o propoziție.
Target
You can't BUY me with a few armfuls of flowers .
buyer goods money - FE: Frame Elements
NP NP PP - PT: Phrase Types
Ext Obj Dep - GF: Grammatical Functions
(External Argument) (Object) (Dependent)
Toate tipurile de marcare sunt descrise în detalii în documentația proiectului FrameNet. În urmare este prezentat un fragment de fișier XML in care este codificată marcarea propoziției.
Shamlou 's smile vanished as fast as it had come .
Tag annotationSet (prima și ultima linie a exemplului, 1 și 34)conține toată marcarea unei propoziției. Cum a fost menționat, marcarea este codificată în straturi (layers). Tag sentence (linii 31-33) conține propoziția marcată ce se află încă în tag text. (linia 34). Liniile 2-30 conțin straturi de marcare în tag layers. Primul strat (linii 3-9) conține marcarea cu roluri semantice, Frame Elements – FE. Sunt prezentate două roluri Theme și Manner (linii 5,6), a treilea rol Source (linia 7) nu este prezentat în propoziție și este considerat subînțeles din text. El este marcat cu DNI ce înseamnă Defined Null Instantiation. Legătura între elemente și textul propoziției se realizează prin atributele start și end ce codifică numărul de ordine a caracterelor în propoziție. start="0" end="15" înseamnă că elementul dat reprezintă fragmentul propoziției ce conține caracterele cu numerele de ordine de la 0 pînă la 15. În cazul nostru acestea sunt Shamlou 's smile. Respectiv, înseamnă că fragmentul dat este marcat cu rolul semantic Theme.
Liniile 16-21 conțin stratul ce codifică tipuri de fraze (Phrase Type - PT). Observăm, că fragmentul propoziției cu rolul semantic Theme este un grup nominal (NP – Noun Phrase) și grupul adverbial (AVP – Adverbial Phrase) are rolul Manner.
Linia 26 indică cuvîntul cheie a propoziției date ce este vanished. În linia 29 este indicat că cuvîntul dat este verb.
Etapele de creare a elementelor bazei de cunoştinţe FrameNet Etapele de creare elementelor bazei de cunoştinţe FrameNet sunt:
1. Caracterizarea cadrelor: se descriu structurile conceptuale pentru diferite noţiuni şi concepte; se definesc rolurile semantice (Frame Elements) pentru cadrul dat.
2. Determinarea terminologiei: găsirea cuvintelor care reprezintă conceptele principale ale cadrului.
3. Extragerea exemplelor- propozitii: propoziţiile care conţin cuvintele analizate sunt extrase dintr-un corpus voluminos de texte engleze pentru adnotare.
4. Marcarea exemplelor selectate: studenţi-adnotatori selectează fragmentele care identifică rolurile semantice particulare în propoziţiile date şi le marchează cu denumirile elementelor cadrului (Frame Elements FE).
5. Extragerea descrierilor valente: un sistem automat numără şi sortează propoziţiile marcate, stocând informaţia gramaticală despre cuvintele-concepte şi argumentele lor din propoziţiile adnotate.
Etapele de lucru vor fi exemplificate în baza cadrului evenimentului de răzbunare ( Revenge frame):
Prima etapă. Descrierea evenimentului. Se descrie situaţia şi se numesc conceptele-participante la evenimentul dat (frame elements - FE) care apoi se folosesc în adnotarea fragmentelor în propoziţile din corpus. Următorul paragraf reprezintă descrierea dată pentru evenimentul de răzbunare în FrameNet.
•Frame Definition: Because of some injury to something or someone important to an avenger, the avenger inflicts a punishment on the offender. The offender is the person responsible for the injury. The injured_party may or may not be the same individual as the avenger.
•FE List: avenger, offender, injury, injured_party, punishment.
Din cauza unei Pagube la ceva sau cineva important la un Răzbunător, Răzbunătorul cauzează o Pedeapsă pe Răufăcător. Răufăcătorul este persoana care răspunde de Pagubă. Partea_ofensată poate fi aceeaşi persoană ca şi Răzbunătorul sau poate fi o altă persoană.
Conceptele-participante în cadru dat: Răzbunător, Răufăcător, Pagubă, Partea_ofensată, Pedeapsă.
A doua etapă. Completarea vocabularului pentru descrierea situaţiei date. Fiecare cuvânt evocă diferite structuri pentru descrierea evenimentului.
•Verbe: avenge, retaliate, revenge, get back (at), get even (with), pay back (a răzbuna, a întoarce);
•Adjective: vengeful, vindictive (răzbunător, vindicativ).
A treia etapă - extragerea exemplelor-propozitii. Din corpus se extrag automat propoziţiile care conţin cuvintele din vocabularul creat. Propoziţiile conţin colocaţii frecvente şi concepte-participante (FE).
A patra etapă - marcarea exemplelor selectate. Propoziţiile extrase sunt marcate manual de către studenți cu culorile stabilite pentru elementele cadrului (FE) definite anterior. Manual se marchează doar rolurile semantice (FE). Apoi marcarea este verificată de către specialiști. Pentru marcare a fost creat un program cu interfața ce facilitează marcarea manuală. Interfața este demonstrată în figura 3.
Figura 3. Interfața programului pentru marcarea propozițiilor FrameNet.
A cincia etapă – analiza sintactică a propoziţiilor. Propoziţiile adnotate sunt stocate în baza de date şi procesate automat. Se execută analiza rolurilor sintactice ale conceptelor-participante la eveniment. Se acumulează informaţia statistică despre rolurile gramaticale ale conceptelor-participante în diferite propoziţii.
Rezultatul este o bază de date care poate fi accesată on-line pe adresa proiectului, obţinând informaţia necesară in XML format. În urmare este prezentat un exemplu de tabel în care sunt analizate realizările sintactice a rolurilor semantice pentru verbul revenge.v, Frame: Revenge.
În tabelu 1 sunt presentate toate rolurile semantice marcate, numărul lor și realizarea lor sintactică.
De exemplu, Partea Ofensată (Injured_Party) a fost marcată în 8 propoziții, din care în 2 aceasta este subiectul propoziției, în 4 ea este complement direct (Obj) și în 2 – complement indirect.
Răufăcatorul (Offender) în 6 propoziții nu a fost reprezentat în cuvinte, a fost doar subînțeles și în 2 propoziții a apărut în grup prepozițional cu prepoziția by.