|
Politica de confidentialitate |
|
• domnisoara hus • legume • istoria unui galban • metanol • recapitulare • profitul • caract • comentariu liric • radiolocatia • praslea cel voinic si merele da aur | |
Modelul cunostintelor structurate - inteligenta artificiala | ||||||
|
||||||
f1e23ec Modelele de reprezentare prezentate anterior, respectiv logica cu predicate de ordinul I si regulile de productie, sint abordari caracterizate de putere expresiva, metode de inferenta puternice si validitate. Aceste modele nu dau, insa, nici o indicatie asupra modului de organizare si reprezentare interna a cunostintelor in sistem. Construirea bazelor de cunostinte mari si a sistemelor care exploateaza aceste cunostinte trebuie sa tina cont de eficienta reprezentarilor interne asociate unui model, de capacitatea de acces si modificare a cunostintelor. In plus, s-a constatat ca si la nivel simbolic, achizitia cunostintelor, intelegerea, utilizarea si intretinerea bazelor de cunostinte este dificila in lipsa unei organizari conceptuale adecvate. Aceste motive au dus la aparitia unei noi clase de modele de reprezentare a cunostintelor: cunostintele structurate. Spre deosebire de logica cu predicate de ordinul I in care exista o sintaxa si semantica unica, precisa si unanim acceptata, modelul cunostintelor structurate include mai multe paradigme de reprezentare si o adevarata multitudine de limbaje de descriere a cunostintelor. Cele mai importante reprezentari structurate ale cunostintelor sint: retelele semantice si grafurile conceptuale, unitatile, numite in diverse abordari si cadre sau prototipuri, dependentele conceptuale si scenariile. Toate aceste modele prezinta o caracteristica comuna: ofera posibilitatea de a organiza si structura cunostintele in functie de relatiile existente intre obiectele universului problemei. Paradigmele de reprezentare se numesc modele de cunostinte structurate tocmai datorita accentului fundamental pe care il pun pe structura cunostintelor in reprezentare, prin indexarea cunostintelor in functie de obiectele importante in sistem. Daca sistemul bazat pe cunostinte are nevoie de una din informatiile asociate unui astfel de obiect, structura de cunostinte asociata obiectului este regasita si toate faptele relevante despre acel obiect sint identificate deodata. Modelele cunostintelor structurate au asociate metode de inferenta specifice, incluse direct in reprezentare. In acest fel, anumite operatii care ar fi necesitat scrierea si executia unor reguli (logice sau de productie) explicite in alte reprezentari, sint executate automat de mecanismele inferentiale asociate structurii reprezentarii. Conceptul de cadru ca unitate fundamentala de reprezentare a unei structuri de cunostinte a fost propus pentru prima oara de Minsky a1975i intr-un sistem de intelegere a imaginilor. Primul limbaj bazat pe cadre a fost limbajul KRL, prescurtare de la numele Knowledge Representation Language, propus de Bobrow si Winograd a1977i. Limbajul a fost urmat de o multitudine de alte limbaje de acelasi tip, cum ar fi FRL, prescurtare de la numele Frame Representation Language, proiectat de Roberts, Goldstein in 1977, RLL aGreiner,Lenat,1980i, KL-ONE aBrachman, Schmolze,1985i, CYC aLenat,s.a.,1990i si altele. Dependentele conceptuale au fost introduse de Schank in 1973 pentru reprezentarea semnificatiei limbajului natural. Dependentele conceptuale reprezinta o teorie de modelare a cunostintelor despre evenimentele referite, de obicei, in propozitiile limbajului natural. Scenariile, introduse de Schank si Abelson in 1977 reprezinta o combinatie intre modelul cadrelor si dependentele conceptuale, permitind descrierea unei secvente tipice de evenimente intr-un context particular. O prezentare detaliata a diverselor modele structurate de reprezentare a cunostintelor poate fi gasita in Barr, s.a a1982i, Patterson a1990i, Luger si Stubblefield a1993i, Rich si Knight a1991i. Retelele semantice si unitatile pot fi caracterizate drept "structuri slabe" de reprezentare a cunostintelor deoarece modelul nu contine, in sine, informatii despre cunostintele specifice pe care le va reprezenta. Aceste structuri slabe pot fi puse in corespondenta cu strategiile de cautare neinformata, in care tehnica de cautare este independenta de caracteristicile problemei de rezolvat. Spre deosebire de aceste modele, dependentele conceptuale si scenariile pot fi caracterizate drept "structuri tari" de reprezentare a cunostintelor, deoarece ele includ notiuni specifice despre tipul obiectelor si relatiilor existente intre acestea. Structurile tari de reprezentare a cunostintelor pot fi puse in corespondenta, la nivelul controlului, cu strategiile de cautare informata, in care fiecare algoritm de cautare include informatie euristica specifica domeniului problemei. 6.1 De la reprezentarea logica la modelul cunostintelor structurate Fie urmatoarele propozitii, care trebuie reprezentate intr-o baza de cunostinte: Radu i-a trimis Ioanei o scrisoare. Radu este student. Ioana este eleva. Adresa lui Radu este Luterana, 15. Considerind logica cu predicate de ordinul I, aceste cunostinte pot fi reprezentate astfel: Din punct de vedere al facilitatii de acces, este convenabil sa se grupeze faptele care refera un obiect important intr-o singura entitate. Acest lucru se poate face, pentru exemplul de mai sus, astfel: Radu Ioana O schema de reprezentare in care faptele sint indexate in functie de entitati sau obiecte considerate importante in problema, se numeste o reprezentare orientata pe obiecte. Modelul cunostintelor structurate se bazeaza pe aceasta idee, avind deci mai multe caracteristici in comun cu limbajele orientate pe obiecte. Utilizind o reprezentare structurata a cunostintelor, informatiile continute de o predicatele Ocupatie si Adresa, pot fi exprimate astfel: Radu Ioana Ocupatie: student Ocupatie: elev Adresa: luterana-15 Cele mai multe limbaje de descriere a cunostintelor structurate folosesc o forma de predicate binare pentru a reprezenta fapte despre obiecte, asa cum se vede in exemplu. In cazul in care exista predicate de aritate mai mare decit 2, se poate folosi o metoda simpla de transformare a acestora in predicate binare. In exemplul anterior, predicatul poate fi reformulat ca o conjunctie de predicate binare prin postularea existentei unui "eveniment de trimitere", astfel: Predicatul ISA este folosit pentru a exprima apartenenta unui obiect (particular) la o multime. Aplicind skolemnizarea in formula de mai sus, se inlocuieste variabila cuantificata existential x cu o constanta t1 si se obtine: Aceasta exprimare a predicatului Trimite poate fi convenabil reprezentata ca un obiect structurat. In plus, daca se considera ca Radu si Ioana sint persoane, se poate folosi predicatul ISA pentru a-i caracteriza suplimentar ca membrii ai multimii tuturor persoanelor existente. Astfel, se obtine reprezentarea structurata a cunostintelor din Figura 6.1(a). Entitatile descrise de aceasta reprezentare sint obiecte particulare sau instante. Se observa ca structurile care descriu cele doua persoane, Radu si Ioana, sint relativ asemanatoare. Daca ar trebui descris un alt eveniment de trimitere, cum ar fi trimiterea unei carti de catre Ioana lui Radu, acesta ar avea o structura asemanatoare cu T1. Pe baza acestor observatii, se constata necesitatea crearii unor obiecte generale, numite si obiecte generice sau clase, care sa descrie toti membrii unei multimi de obiecte. Pentru exemplul anterior se pot defini doua obiecte generice Eveniment-trimitere si Persoana, obiecte indicate in Figura 6.1(b). Radu Ioana ISA: Persoana ISA: Persoana Ocupatie: student Ocupatie: elev Adresa: luterana-15 T1 ISA: Eveniment-trimitere Expeditor: Radu Destinatar: Ioana Obiect: scrisoare (a) Eveniment-trimitere Persoana AKO: Eveniment AKO: Fiinta Expeditor: Persoana Ocupatie: (student, elev, inginer) Destinatar: Persoana Adresa: sir Obiect: ClasaObiect (b) Figura 6.1 O reprezentare structurata a cunostintelor In definitia de mai sus se observa aparitia unui alt predicat important, AKO, care descrie incluziunea unei multimi intr-o alta multime. Predicatul AKO, specifica faptul ca obiectul generic Eveniment-trimitere face parte din clasa mai larga a evenimentelor si ca obiectul generic Persoana (deci multimea tuturor persoanelor) este inclus in clasa Fiinta (deci in multimea tuturor fiintelor). In logica cu predicate, aceste incluziuni s-ar fi exprimat astfel: Cele doua predicate de apartenenta si de incluziune, ISA si respectiv AKO, definesc doua tipuri de relatii fundamentale in reprezentarea structurata a cunostintelor. Relatia de apartenenta a unui obiect la o multime defineste o relatie individual-generic, sau instanta-clasa si va fi notata in continuare, prin conventie, ISA (prescurtare de la IS A). Relatia de incluziune a unei multimi de obiecte intr-o alta multime defineste o relatie generic-generic, sau subclasa-clasa si va fi notata in continuare, prin conventie, AKO (prescurtare de la A Kind Of). Semnificatia relatiilor ISA si AKO a fost mult discutata in literatura de specialitate deoarece aproape fiecare sistem bazat pe cunostinte structurate a folosit aceste relatii, sub un nume sau altul, cu semnificatii sau nuante semantice diferite. Intr-un articol foarte cunoscut, Brachman a1983i identifica urmatoarele interpretari al acestor relatii, existente in diverse sisteme. Relatie generic-generic * subclasa-superclasa (exemplu: masini de curse-automobile) * specializare-generalizare (exemplu: magazin cu autoservire-magazin) * un fel de (exemplu: un catel este un fel de animal) * incluziune conceptuala (exemplu: un triunghi este un poligon) * multimi si tipul lor (exemplu: elefanti si o multime de elefanti) * restringerea valorilor (exemplu: trompa unui elefant este un cilindru de 1.3 metri) Relatie individual-generic * apartenenta la o multime * proprietati ale obiectelor (exemplu: camila este maro) * abstractizarea (exemplu: ornitorincul este o specie pe cale de disparitie) Reprezentarea structurata a cunostintelor poate fi deci privita ca o multime de obiecte particulare si/sau generice, fiecare obiect fiind descris printr-o multime de atribute (proprietati), numite de obicei sloturi, si valorile lor asociate. In exemplul anterior, obiectul particular Radu este descris prin atributele ISA, Ocupatie si Adresa, cu valorile asociate Persoana, student si luterana-15. Se observa ca valorile atributelor pot fi atit obiecte atomice (nestructurate) cit si obiecte structurate ale reprezentarii (instante sau obiecte generice). Se va vedea mai tirziu ca exista si alte tipuri de valori pentru atribute. O astfel de reprezentare a cunostintelor poate fi imbogatita cu inferente specifice care opereaza pe structura reprezentarii. Aceste inferente au ca suport organizarea obiectelor bazei de cunostinte in clase si a claselor in ierarhii de clase, pe baza relatiilor ISA si AKO. Forma de inferenta specifica fundamentala cunostintelor structurate este mostenirea proprietatilor, in care elemente ale unei clase mostenesc atribute si valori de la clasa sau de la superclasele in care aceasta clasa este inclusa. Mostenirea proprietatilor (atributelor) poate avea doua forme: * Aplicarea mostenirii proprietatilor de la clasa la instanta reprezinta corespondentul regulii Modus Ponens din logica cu predicate in reprezentarea structurata a cunostintelor. Aceasta inferenta specifica are urmatoarea forma: Daca un obiect O1 este o particularizare (legat prin relatia ISA) a unui obiect generic O si obiectul O are un atribut (proprietate) A, atunci si instanta O1 are atributul A. * Aplicarea mostenirii proprietatilor intre o clasa si o superclasa, deci de-a lungul unei relatii sau a unui lant de relatii AKO inseamna mostenirea atributelor de la clasa (obiect generic) la subclasa (obiect generic cu grad de generalitate mai mic). Daca o clasa C1 este o subclasa a unei clase C (legata prin una sau mai multe relatii AKO) si clasa C are proprietatea A, atunci clasa C1 are de asemenea proprietatea (atributul) A. Mostenirea proprietatilor poate fi realizata mult mai eficient in cadrul modelului cunostintelor structurate decit in cazul altor modele, cum ar fi modelul logic in care aceste relatii trebuie definite explicit. Structurile descrise permit realizarea atit a mostenirii monotone (rationament monoton) cit si a mostenirii nemonotone prin prezenta valorilor implicite sau a exceptiilor (rationament nemonoton). Detalii suplimentare despre mostenirea proprietatilor si algoritmii utilizati vor fi prezentate in sectiunile urmatoare. 6.2 Retele semantice Retelele semantice, numite si retele asociative, ofera o modalitate de structurare a cunostintelor pe baza unei reprezentari grafice asociate obiectelor si atributelor universului problemei. Ideea de baza a reprezentarii cunostintelor prin retele semantice este de a explica intelesul unui concept prin modurile in care acest concept este legat de alte concepte. Denumirea de retea semantica, mult mai des folosita decit cea de retea asociativa este justificata prin faptul ca acest model a fost folosit, pentru prima oara, in descrierea semanticii limbajului natural. 6.2.1 Reprezentarea cunostintelor prin retele semantice Retelele semantice sint grafuri orientate in care nodurile si arcele sint etichetate cu nume ale obiectelor, atributelor si relatiilor intre obiectele si atributele universului problemei. De obicei nodurile retelei reprezinta obiecte generice sau particulare, iar arcele reprezinta relatii intre acestea, sau atribute ale obiectelor punctind spre noduri ce contin valorile acestor atribute. Un exemplu de retea semantica este cel prezentat in Figura 6.2(a). Cunostintele continute de reprezentarea structurata din Figura 6.1 pot fi reprezentate sub forma unei retele semantice asa cum se vede in Figura 6.2(b). Figura 6.2 Retele semantice Intr-o retea semantica, la fel ca in orice reprezentare structurata a cunostintelor, pot exista noduri asociate obiectelor individuale (instante), de exemplu nodurile Canar, Ioana, Radu, si noduri asociate obiectelor generice (clase), de exemplu nodurile Pasare si Eveniment-trimitere, Eveniment, Persoana din Figura 6.2. Cunostintele asociate arcelor intr-o retea semantica pot reprezenta relatii specifice problemei de rezolvat, cum ar fi relatiile: are, culoare, poate, Obiect, Expeditor, Destinatar, sau relatii generale care se pot intilni, sub o denumire sau alta, in orice retea semantica. Cele mai frecvente relatii generale sint ISA (instanta-clasa) si AKO (subclasa-clasa); alte relatii generale des intilnite sint: SUBSET-OF (submultime a), HAS-PARTS (este format din), AGENT (agent), OBJECT (obiect), ATTRIBUTE (atribut). Una dintre primele aplicatii ale reprezentarii cunostintelor prin retele semantice a fost gasirea relatiilor intre semnificatia cuvintelor in limbaj natural prin propagarea activarii nodurilor prin retea de-a lungul arcelor si determinarea nodului in care activarile se intilnesc. Acest proces se numeste cautarea intersectiei si a fost folosit de Quillian a1969i. Programul lui Quillian defineste intelesul cuvintelor din limba engleza in acelasi fel in care acesta este definit de un dictionar: un cuvint este definit pa baza altor cuvinte, componentele definitiei sint explicate pe baza altor cuvinte, si asa mai departe. Fiecare nod din reteaua semantica corespunde unui concept-cuvint cu legaturi (arce) spre alte concepte-cuvinte care formeaza definitia conceptului-cuvint. Baza de cunostinte astfel construita poate fi folosita pentru a gasi relatii intre perechi de cuvinte din limba engleza. Procesul de cautare a intersectiei se desfasoara astfel: * Nodurile asociate celor doua concepte-cuvint initiale se activeaza si devin sursa de propagare a activarii. * Activarea unui nod se propaga pe arcele care pleaca din acel nod spre alte noduri, acestea devenind la rindul lor surse de activare. Propagarea activarii se face pe nivel. * Procesul se opreste in momentul in care un nod, numit si concept comun sau nod intersectie, se gaseste la intersectia a doua cai distincte de propagare a activarii. * Caile descoperite in retea catre conceptul comun reprezinta relatia semantica existenta intre cele doua cuvinte-concept initiale. Procesul de cautare a intersectiei descris reprezinta o forma de rationament specifica retelelor semantice propuse de Quillian in care inferenta specifica este activarea unui nod si propagarea activarii de-a lungul unui arc. Cu toate acestea, o astfel de reprezentare nu aduce avantaje semnificative fata de calculul cu predicate, de exemplu, din punct de vedere al capacitatilor de rationament incluse in reprezentare. Puterea expresiva a retelelor semantice consta in definirea relatiilor asociate arcelor si a regulilor de inferenta asociate. 6.2.2 Inferente specifice retelelor semantice Mostenirea proprietatilor (atributelor), forma de inferenta specifica reprezentarilor structurate a cunostintelor, poate fi implementata in cadrul unei retele semantice in care exista relatii (arce) de tip ISA si AKO. Considerind o retea semantica cu noduri asociate obiectelor particulare si generice, si cu relatii de tip ISA, AKO si relatii care descriu atributele asociate obiectelor (in retea pot exista si alte tipuri de relatii sau noduri), instantele vor mosteni atributele claselor carora apartin, iar nodurile clasa vor mosteni atributele nodurilor superclasa de care sint legate prin relatia AKO. Revenind la exemplul din Figura 6.2(b) si presupunind ca orice persoana are un atribut Inaltime, nodurile asociate instantelor Radu si Ioana vor mosteni acest atribut. Considerind exemplul din lumea blocurilor prezentat in Figura 6.3, se poate deduce, pe baza mostenirii proprietatilor, ca Piramida18 are forma triunghi iar Caramida12 are forma dreptunghi. De asemenea, se poate infera ca atit obiectele generice Piramida si Caramida, cit si instantele au valoarea atributului Consistenta mare. Figura 6.3 Mostenirea valorilor in retele semantice Valorile atributelor Forma si Consistenta au fost mostenite de-a lungul relatiilor instanta-clasa si clasa-superclasa. Procedura de mostenire a valorilor de atribute este prezentata in continuare. Algoritm: Mostenirea valorilor atributelor intr-o ierarhie de clase Algoritmul determina valoarea unui atribut A al unei instante O DetVal (O, A, V) 1. Formeaza o lista L cu nodul O si toate nodurile legate de O prin relatia ISA 2. cit timp executa 2.1. Elimina primul nod, N, din lista L 2.2. daca atributul A al nodului N are valoarea V atunci 2.2.1. Depune V in nodul punctat de atributul A al obiectului O 2.2.3. intoarce SUCCES 2.3. Adauga toate nodurile legate prin relatia AKO de nodul N, la sfirsitul listei L 3. intoarce INSUCCES sfirsit. Observatie. In algoritmul prezentat se considera ca ierarhia de clase are o forma de arbore. Problemele care apar in cazul unei ierarhii de tip graf si posibile rezolvari ale acestor probleme vor fi prezentate in Sectiunea 6.3. Dupa cum se vede si din algoritmul prezentat, un obiect poate fi instanta a mai multor obiecte generice, asa cum o clasa poate apartine mai multor superclase. De exemplu, un cub particular poate fi atit o instanta a unei clase Bloc cit si o instanta a unei clase Jucarie. O varianta a acestei situatii este surprinsa de unele modele de retele semantice in care se introduce notiunea de perspectiva. O perspectiva indica faptul ca un obiect poate avea sensuri diferite in contexte diferite, asa cum se vede in Figura 6.4. Figura 6.4 Utilizarea perspectivelor in retelele semantice Daca se doreste aflarea valorii unui atribut pentru o anumita instanta atunci fie exista un atribut unic asociat unui obiect generic si se aplica algoritmul anterior, fie atributul apare in diverse perspective, cum ar fi atributul Scop in Figura 6.4, caz in care trebuie specificata si perspectiva din care intereseaza valoarea atributului. Notiunea de perspectiva este utilizata atit in modelul retelelor semantice cit si in modelul cadrelor. Retelele sementice au fost extinse si prin introducerea unor caracteristici asociate atributelor din retea, numite fatete. Fatetele reprezinta diverse modalitati de considerare a valorilor unor atribute. Cele mai intilnite fatete in retelele semantice sint: fateta valoare, fateta valoare implicita si fateta procedura necesara. Fateta valoare este valoarea obisnuita a unui atribut, considerata in exemplele de pina acum. Fateta valoare implicita este utilizata pentru a caracteriza tipic valoarea unui atribut. De exemplu, se stie ca elefantii au in general culoarea gri, deci se poate considera ca valoarea implicita a atributului culoare a clasei elefantilor este gri. In lipsa unor informatii particulare despre elefantul Jumbo, se poate infera ca Jumbo are culoarea gri. Dar daca se stie ca elefantul Maia este alb, aceasta valoare a atributului culoare va fi introdusa si se va neglija fateta valoare implicita a clasei elefantilor. Utilizarea fatetei valoare implicita este o inferenta specifica a retelelor semantice care poate modela o forma de rationament nemonoton. In lipsa unor informatii contrarii, valoarea unui atribut este data de fateta valoare implicita. Daca ulterior se constata ca valoarea reala a atributului este alta, aceasta noua valoare devine valoarea atributului si valoarea implicita inferata anterior pentru acel atribut este retractata. Tot in lumea blocurilor se considera exemplul din Figura 6.5. Caramida12 va mosteni valoarea implicita a atributului Culoare de la clasa Caramida, dar pentru Caramida0, despre care se stie ca are culoarea alba, aceasta inferenta implicita nu se mai aplica. In continuare se prezinta algoritmul de mostenire a valorilor implicite intr-o retea semantica. Figura 6.5 Mostenirea valorilor implicite in retele semantice Algoritm: Mostenirea valorilor implicite ale atributelor intr-o ierarhie de clase Algoritmul determina valoarea unui atribut A al unei instante O DetValImp(O, A, V) 1. Formeaza o lista L cu nodul O si toate nodurile legate de O prin relatia ISA 2. cit timp executa 2.1. Elimina primul nod, N, din lista L 2.2. daca atributul A al nodului N are valoarea implicita V atunci 2.2.1. Depune V in nodul punctat de atributul A al obiectului O 2.2.3. intoarce SUCCES 2.3. Adauga toate nodurile legate prin relatia AKO de nodul N, la sfirsitul listei L 3. intoarce INSUCCES sfirsit. Fateta procedura necesara asociata unui atribut contine o procedura sau o functie care poate calcula valoarea atributului pe baza altor valori de atribute sau informatii existente in retea sau furnizate de utilizator. Aceasta fateta introduce o componenta procedurala in modelul descriptiv al reprezentarii structurate a cunostintelor. Fateta procedura necesara poate fi mostenita de-a lungul ierarhiei de clase la fel ca si fatele valoare si valoare implicita. Algoritmul utilizat este similar cu cel prezentat anterior, in care se considera insa fateta procedura necesara in loc de fateta valoare implicita, si va fi numit DetProcNec (O,A,V). De exemplu, pentru cazul prezentat in Figura 6.6, greutatea instantei Caramida12 poate fi calculata pe baza valorilor atributelor Volum si Densitate, mostenind fateta procedura necesara a atributului Greutate de la superclasa Bloc de-a lungul unei relatii ISA, apoi a unei relatii AKO. Figura 6.6 Mostenirea procedurilor necesare in retele semantice Desi algoritmul de mostenire a fatetei procedura necesara este asemanator cu cei doi algoritmi prezentati anterior, pot apare complicatii suplimentare in cazul in care valorile de atribute utilizate in procedura de calcul nu se cunosc. In acest caz este necesar apelul subprogramelor de determinare a valorilor sau a valorilor implicite ale acestor atribute. In exemplul anterior, daca nu exista o valoare a atributului Volum asociat instantei Caramida12, procedura de calcul a greutatii trebuie intrerupta temporar pentru a determina valoarea acestui atribut pe baza unuia din algoritmii de mostenire prezentati pentru fatetele valoare sau valoare implicita. Intr-o retea semantica imbogatita cu fatete ale nodurilor, mostenirea fatetelor valoare, valoare implicita si procedura necesara reprezinta forme de inferenta specifice. In functionarea generala a sistemului se pune insa problema executarii repetate, intr-o anumita ordine, a acestor inferente specifice. Strategia de control utilizata poate indica ordinea de aplicare a inferentelor si modul de inspectare a retelei. Exista doua strategii de control de baza: strategia N si strategia Z, a caror nume provine tocmai din disciplina de parcurgere a retelei semantice in inspectarea celor trei fatete existente. In continuare se prezinta algoritmii generali ai celor doua strategii, cititorul fiind indemnat sa descopere de ce ele se numesc N si Z. Algoritm: Strategia N de determinare a valorii unui atribut Algoritmul determina valoarea unui atribut A al unei instante O utilizind strategia N. DetValN (O, A, V) 1. daca DetVal (O,A,V) = SUCCES atunci intoarce SUCCES 2. daca DetValImp (O,A,V) = SUCCES atunci intoarce SUCCES 3. daca DetProcNec (O,A,V) atunci intoarce SUCCES 4. intoarce INSUCCES sfirsit. Algoritm: Strategia Z de determinare a valorii unui atribut. Algoritmul determina valoarea unui atribut A al unei instante O utilizind strategia Z. DetValZ (O, A, V) 1. Formeaza o lista L cu nodul O si toate nodurile legate de O prin relatia ISA 2. cit timp executa 2.1. Elimina primul nod, N, din lista L 2.2. daca fateta valoare a atributului A a nodului N este V atunci 2.2.1. Depune V in nodul punctat de atributul A al obiectului O 2.2.2. intoarce SUCCES 2.3. daca fateta valoare implicita a atributului A a nodului N este V atunci 2.3.1. Depune V in nodul punctat de atributul A al obiectului O 2.3.2. intoarce SUCCES 2.4. daca fateta procedura necesara a atributului A a nodului N este proc (A1,..., An,V) atunci 2.4.1. Determina valorile atributelor A1,..., An ale instantei O 2.4.2. daca s-au gasit valori pentru A1,..., An atunci i. executa proc (A1,..., An,V) ii. Depune V in nodul punctat de atributul A al obiectului O iii. intoarce SUCCES 3. intoarce INSUCCES sfirsit. Strategiile N si Z nu sint singurele strategii de control utilizate in retelele semantice, aceste strategii fiind utilizate numai pentru controlul mostenirii fatetelor valoare, valoare implicita si procedura necesara de-a lungul ierarhiilor de clase definite de retea. In functie de modelul particular de retea utilizat, diverse alte forme de inferenta si strategii de control asociate pot fi utilizate, cum ar fi cautarea intersectiei, pentru a aminti numai un exemplu simplu. Ideea introducerii fatetelor atributelor ce descriu obiecte cit si a mecanismelor de mostenire a valorilor acestor fatete nu este particulara retelelor semantice, ea fiind intilnita si in paradigma unitatilor, in forme mai elaborate, asa cum se va vedea mai tirziu. Retelele semantice au un corespondent direct in calculul cu predicate de ordinul I si, de altfel, modelul logic a fost intens utilizat pentru a explica semantica diverselor variante de retele semantice propuse. Consideratiile asupra legaturii dintre logica cu predicate si modelul reprezentarii structurate a cunostintelor, prezentate in Sectiunea 6.1, se aplica si la retele semantice. Se aminteste ca exemplul din Figura 6.2(b) este o rescriere folosind retele semantice a cunostintelor structurate prezentate in Figura 6.1, cunostinte care au fost initial exprimate utilizind formalismul logic. Pentru rezolvarea problemelor utilizind retele semantice, este necesar sa se defineasca notiunea de identificare a doua retele semantice. In acest scop, se poate descrie un obiect (retea) scop care trebuie sa identifice cu un obiect (retea) din baza de cunostinte. In timpul procesului de identificare diverse noduri ale retelei semantice scop si ale retelelor din baza de cunostinte vor primi valori, de cele mai multe ori pe baza algoritmilor de determinare a valorii unui atribut, prezentati anterior. Identificarea a doua retele semantice se defineste pe baza corespondentei existente intre modelul structurat si logica cu predicate de ordinul I. O prima definitie a identificarii retelelor semantice este urmatoarea. Definitie. Doua obiecte reprezentate prin retele semantice identifica daca si numai daca formulele bine formate asociate celor doua retele unifica. In general, operatia de identificare a retelelor semantice nu este simetrica deoarece, asa cum s-a spus, exista un obiect scop care trebuie identificat cu un obiect al bazei de cunostinte. Din acest motiv se considera urmatoarea definitie relaxata a identificarii a doua retele semantice. Definitie. Un obiect scop identifica un obiect fapt daca formula bine formata asociata obiectului scop unifica cu o subconjunctie a formulelor asociate obiectului fapt. Aceasta a doua definitie revine la a afirma ca identificarea reuseste numai daca formula asociata obiectului scop poate fi demonstrata pe baza formulelor asociate obiectului fapt. De exemplu, pentru retelele semantice prezentate in Figura 6.7, reteaua semantica fapt definita de evenimentul de trimitere T2 identifica cu reteaua scop definita de T3 dar nu identifica cu reteaua semantica scop definita de evenimentul T4. Figura 6.7 Identificarea retelelor semantice Cu toate avantajele prezentate ale retelelor semantice, formalismul nu reuseste sa aiba toata puterea expresiva a logicii cu predicate de ordinul I. Pentru a elimina acest dezavantaj, Hendrix a1977i propune modelul retelelor semantice partitionate ce are ca scop principal posibilitatea reprezentarii intr-o retea a variabilelor cuantificate universal. In acest model extins, reteaua este partitionata intr-o multime de spatii, fiecare spatiu fiind format din anumite noduri ale retelei si reprezentind contextul unei variabile. In plus, exista o clasa speciala a asertiunilor generale cu doua sau mai multe atribute: o forma, care specifica relatia despre care se vorbeste si una sau mai multe relatii (*) care indica variabilele cuantificate universal. 6.2.3 Grafuri conceptuale Prezentarea anterioara a retelelor semantice a fost facuta utilizind numai o reprezentare grafica asociata, fara a specifica un limbaj de reprezentare a cunostintelor. Pina in prezent, s-au dezvoltat o serie de limbaje de descriere a modelului retelelor semantice, neexistind insa o sintaxa unanim acceptata, asa cum exista, de exemplu, in cazul logicii cu predicate. Printre limbajele propuse, cel care pare a se fi impus este teoria grafurilor conceptuale introdusa la inceputul anilor '80 de John F. Sowa. De atunci si pina in prezent, grafurile conceptuale au fost extinse si aplicate in diverse domenii cum ar fi prelucrarea limbajului natural, modelarea bazelor de date si invatarea automata. Un graf conceptual este o reprezentare grafica a perceptiei mentale care consta intr-o multime de concepte primitive si relatiile existente intre aceste concepte. Un astfel de graf este reprezentat printr-un graf finit conex bipartit in care nodurile reprezinta fie concepte, fie relatii conceptuale (relatii intre concepte). Grafurile conceptuale nu folosesc arce etichetate ca in modelul obisnuit al retelelor semantice. Relatiile intre concepte sint reprezentate tot ca noduri, legate prin arce de conceptele implicate in relatie. Unul dintre avantajele reprezentarii relatiilor sub forma de noduri in loc de arce, deci al considerarii unui graf bipartit, este acela de a simplifica reprezentarea relatiilor de diverse aritati. In grafurile conceptuale, nodurile conceptuale pot reprezenta atit concepte concrete (obiecte), cum ar fi Coco, Corb, supa, lingura, cit si concepte abstracte cum ar fi iubire, frumusete, credinta si, in exemplu, maninca. Modelul de reprezentare permite atit reprezentarea conceptelor individuale, deci a instantelor, cit si a conceptelor generice, deci a claselor. Fiecare nod concept reprezinta o instanta apartinind unei anumite clase, deci un concept individual. Conceptul generic care defineste instanta apare in interiorul nodului sub forma unei etichete de tip a conceptului individual respectiv. Conceptul individual se mai numeste si referent. In exemplul din Figura 6.8 conceptul individual Coco face parte din clasa (tipul) Pasare, iar tipul instantei Matei este conceptul generic Persoana. In cazul in care intr-un nod concept apare numai conceptul generic fara specificarea conceptului individual, cum ar fi in exemplul anterior Corb sau lingura, acest lucru indica un concept individual nespecificat de acel tip, deci un oarecare corb sau o lingura oarecare. Figura 6.8 Diferite grafuri conceptuale Relatiile conceptuale agent, obiect si instrument sint relatii standard, care fac parte din multimea de concepte predefinite in reprezentare. In functie de problema particulara de reprezentat, se pot defini noi relatii conceptuale, cum ar fi in exemplu relatiile zboara si culoare. Limbajul de descriere a grafurilor conceptuale este o liniarizare a reprezentarii grafice prezentate. Forma echivalenta a grafurilor din Figura 6.8 in acest limbaj este urmatoarea: (a) aPasare: Cocoi*(zboara) (b) aCorbi*(culoare)*neagra (c) aPersoana: Mateii*(agent)*amanincai*(obiect)*aMincare: supai *(instrument)*alingurai Limbajul grafurilor conceptuale contine urmatoarele conventii sintactice. Parantezele patrate corespund nodurilor concept, iar parantezele rotunde corespund nodurilor relatii conceptuale. Caracterul - indica continuarea unui graf conceptual liniar pe urmatoarea linie. Limbajul mai contine si alte semne speciale, cu semnificatii bine definite, cum ar fi: #, *, ?, @, * si altele. Caracterul # introduce un marcaj al conceptelor individuale (marcaj individual) care pot fi astfel identificate printr-un numar. De exemplu: aPapagal: #120i*(culoare)*agalbenai indica faptul ca o pasare particulara, identificata prin marcajul #120, are culoarea galbena. Marcajele individuale sint diferite de numele conceptelor individuale deoarece, spre deosebire de nume, ele identifica unic acea instanta. In plus, aceste marcaje permit atit exprimarea numelui instantei ca o relatie in graf, cit si asocierea a mai multor nume unei instante, de exemplu: aPapagal: #120i*(culoare)*agalbenai *(nume)*a"Coco"i aPapagal: #121i*(culoare)*agalbenai *(nume)*a"Coco"i *(nume)*a"Chanel"i Semnul intrebarii plasat intr-un nod concept in locul referentului indica o intrebare referitoare la acel concept; de exemplu aCasa: ?i reprezinta intrebarea "Care casa?". Caracterul * este un alt marcaj care indica o variabila sau un concept individual nespecificat (marcaj generic). De exemplu, aCasa: *xi indica o casa oarecare. De multe ori acest marcaj este omis, deci considerat implicit, dar el este necesar in cazul in care doua noduri concept diferite indica aceeasi instanta nespecificata. Folosind aceasta facilitate reprezentarea frazei "Papagalul isi ciuguleste penele cu ciocul." este urmatoarea: aPapagal: *xi*(agent)*aciugulestei*(obiect)*apenei*(parte)*aPapagal: *xi *(instrument)*acioci*(parte)*aPapagal: *xi Caracterul @ indica o cantitate, aCasa: @ni reprezentind n case. Caracterul * are aceeasi semnificatie ca in logica cu predicate de ordinul I, indicind cuantificarea universala. Similar, caracterul I indica negatia logica. Conceptele generice intr-o reprezentare prin grafuri conceptuale sint organizate intr-o ierarhie de clase, numita in acest formalism ierarhie de tipuri. Aceasta ierarhie de tipuri formeaza o latice pe baza relatiei de ordine partiala definita de incluziunea intre tipuri (clase). De exemplu, tipul Papagal este inclus in tipul Pasare care este inclus in tipul Fiinta. Laticea de tipuri include tipul universal, notat cu T, care este un supertip al tuturor tipurilor existente, si tipul absurd, notat cu *, care este un subtip al tuturor tipurilor. Inferentele specifice grafurilor conceptuale sint reprezentate printr-o multime de operatii de transformare a grafurilor care permit crearea de noi grafuri din cele existente, si printr-o serie de inferente inspirate din logica cu predicate de ordinul I. Exista patru operatii de baza pentru transformarea grafurilor conceptuale: copiere, restrictie, reuniune si simplificare. Operatia de copiere permite obtinerea unui nou graf ca o copie exacta a unui graf dat. Operatia de restrictie permite inlocuirea unor noduri conceptuale din graf prin noduri specializate ale acestora, in doua moduri: inlocuirea marcajului generic printr-un marcaj individual si inlocuirea etichetei de tip, deci a tipului unui concept cu un subtip al acestui tip (in ierarhia definita de laticea de tipuri). De exemplu, fiind dat graful conceptual g1: aPasare: Cocoi*(pozitie)*apalmieri *(culoare)*agalbenai se poate obtine urmatorul graf, g2, prin operatia de restrictie g2: aPapagal: Cocoi*(pozitie)*apalmieri *(culoare)*agalbenai Operatia de reuniune permite combinarea a doua grafuri conceptuale intr-unul singur. Daca exista un nod concept C1 in graful g care este identic cu nodul concept C2 din graful g', atunci se poate forma un graf g" prin eliminarea nodului C2 din g' si redirectarea tuturor relatiilor ce refera C2 in g' spre nodul C1 din g. Operatia de reuniune este o regula de specializare deoarece graful rezultat g" este mai putin general decit fiecare din grafurile g si g'. De exemplu, prin operatia de reuniune, din grafurile g2 si g3 descrise mai jos se obtine graful g4. g2: aPapagal: Cocoi*(pozitie)*apalmieri *(culoare)*agalbenai g3: aPapagal: Cocoi*(agent)*amanincai*(obiect)*abananai *(instrument)*acioci *(culoare)*agalbenai g4: aPapagal: Cocoi*(agent)*amanincai*(obiect)*abananai *(instrument)*acioci *(pozitie)*apalmieri *(culoare)*agalbenai *(culoare)*agalbenai Operatia de simplificare este operatia prin care se elimina dintr-un graf relatii duplicate, deci portiuni identice din graf. Relatiile duplicate apar de obicei ca rezultat al unei operatii de reuniune. De exemplu, aplicind operatia de simplificare grafului g4 obtinut anterior se obtine graful g5: g5: aPapagal: Cocoi*(agent)*amanincai*(obiect)*abananai *(instrument)*acioci *(pozitie)*apalmieri *(culoare)*agalbenai Operatia de restrictie a unui graf conceptual poate fi utilizata pentru a identifica doua noduri concept din doua grafuri diferite, pentru ca apoi sa se poata aplica operatia de reuniune asupra acestor doua grafuri. Dintr-un anumit punct de vedere, aceasta operatie poate fi privita ca un echivalent al procesului de unificare din logica cu predicate de ordinul I. Restrictia combinata cu reuniunea permite implementarea mostenirii proprietatilor in cadrul grafurilor conceptuale. De exemplu, inlocuirea unui marcaj generic cu unul individual implementeaza mostenirea atributelor pe baza unei relatii ISA. Inlocuirea tipului individual cu un subtip in ierarhia de tipuri defineste mostenirea proprietatilor pe baza unei relatii AKO. Restrictia si reuniunea sint operatii de specializare a grafurilor conceptuale. Daca se definesc operatiile inverse se obtin operatii de generalizare, pe baza carora grafurile conceptuale pot fi utilizate ca instrument in invatarea automata (Capitolul 9). Alte reguli de inferenta utilizate in grafurile conceptuale reprezinta reformulari ale regulilor de inferenta din logica cu predicate de ordinul I. Acestea sint: * Stergerea. Orice graf conceptual inclus intre un numar par de negatii poate fi sters; * Inserarea. Orice graf conceptual poate fi inserat in contextul altui graf daca acest context este intre un numar impar de negatii; * Iteratia. O copie a oricarui graf conceptual C poate fi introdus intr-un context al altui graf in care apare C sau in care C este dominat de alt concept; * Deiteratia. Orice graf conceptual care ar putea fi rezultatul unei iteratii poate fi sters din graful in care apare; * Negatia dubla. Orice dubla negatie poate fi stearsa sau adusa in fata unui graf conceptual. De exemplu, orice graf g poate fi inclus in implicatia pentru a deriva . Graful este considerat o implicatie deoarece este echivalent cu . Orice graf g poate fi sters din consecinta unei implicatii, deci din se poate obtine . Orice graf g poate fi sters din antecedentul unei implicatii numai daca a fost declarat explicit, adica din graful g si graful se obtine graful . Se observa ca deiteratia si negatia dubla sint reguli de inferenta echivalente cu regula Modus Ponens din logica cu predicate de ordinul I. Fiind dat graful p si graful , deiteratia permite stergerea lui p si obtinerea grafului si, aplicind dubla negatie, se obtine graful rezultat g. Aceste reguli de inferenta impreuna cu operatiile de transformare a grafurilor constituie un sistem inferential complet al modelului grafurilor conceptuale. In plus, exista reguli precise de transformare a unei reprezentari prin grafuri conceptuale intr-o reprezentare in logica cu predicate de ordinul I si invers. De altfel, modelul grafurilor conceptuale este considerat a fi o reprezentare grafica a unei formule logice. De exemplu, formula bine formata din calculul cu predicate care exprima propozitia "Orice papagal are un cioc", poate fi exprimata in modelul grafurilor conceptuale prin aPapagal: *i*(parte)*aCioci Graful g2 prezentat anterior poate fi exprimat in logica astfel: Regulile de inferenta de stergere, inserare, iteratie, deiteratie si negatie dubla sint inferente valide, provenind direct din logica cu predicate de ordinul I. Operatiile de transformare a grafurilor sint reguli de inferenta invalide dar utile si care, in plus, pastreaza sensul. Grafurile conceptuale au fost intens utilizate in reprezentarea cunostintelor necesare prelucrarii limbajului natural. Una din caracteristicile grafurilor conceptuale, care le-au facut interesante in astfel de aplicatii, este capacitatea de a exprima presupunerile implicite continute in propozitiile limbajului natural. Detalii suplimentare asupra modului de utilizare a grafurilor conceptuale in acest domeniu de aplicatie cit si regulile de transformare a grafurilor in logica cu predicate de ordinul I si invers pot fi gasite in Sowa a1984i, Patterson a1990i, Luger si Stubblefield a1993i. 6.3 Unitati Pe masura cresterii complexitatii problemelor abordate creste complexitatea cunostintelor necesare si apare nevoia unei structurari crescute a acestor cunostinte. Din acest motiv, retelele semantice au evoluat spre o alta paradigma de reprezentare structurata a cunostintelor: unitatile, numite si cadre, scheme, prototipuri sau clase. Desi nu exista o distinctie neta intre sistemele bazate pe retele semantice si sistemele bazate pe unitati, cu cit exista o structurare mai accentuata a cunostintelor in sistem, cu atit este mai probabil ca sistemul sa fie considerat un sistem bazat pe unitati. In plus, diversele limbaje bazate pe cadre propuse au dezvoltat o serie de caracteristici suplimentare ale acestei reprezentari fata de retelele semantice, cum ar fi: utilizarea extinsa a sloturilor, atasarea procedurala, metaunitatile si includerea altor paradigme de reprezentare in modelul general al cadrelor. Cadrele au fost propuse de Minsky a1975i pentru a reprezenta si intelege obiectele unui scenariu intr-un sistem de perceptie vizuala automata. In lucrarea lui publicata in 1975, Minsky defineste cadrele astfel aMinsky,1975i: "Esenta teoriei cadrelor este urmatoarea. Cind cineva intilneste o situatie noua (sau face o modificare esentiala a punctului de vedere asupra unei probleme), persoana respectiva selecteaza din memorie o structura numita 'cadru'. Aceasta este o structura amintita si modificata astfel incit sa se potriveasca realitatii prin schimbarea detaliilor in functie de necesitati." 6.3.1 Descrierea modelului unitatilor O unitate este o colectie de atribute, numite de obicei sloturi, cu valorile lor asociate si posibile restrictii impuse asupra acestor valori, care descriu un obiect (entitate) al universului problemei. O singura unitate este rareori folositoare; sistemele bazate pe unitati folosesc o colectie de astfel de structuri legate intre ele pe baza faptului ca valoarea unui atribut al unei unitati poate fi o alta unitate. Cunostintele descrise in Figura 6.1 sint un model simplu de reprezentare bazata pe unitati. La fel ca si in cadrul oricarei paradigme structurate de reprezentare a cunostintelor, unitatile pot desemna obiecte generice, deci multimi de obiecte cu caracteristici comune, sau instante, deci obiecte particulare ale acestor multimi. Relatiile ISA si AKO descrise in Sectiunea 6.1 se reprezinta in cadrul unitatilor sub forma unor atribute speciale si permit organizarea unitatilor unei baze de cunostinte in taxonomii. In continuare, pentru ilustrarea facilitatilor de reprezentare a unitatilor, se va utiliza un limbaj de reprezentare asemanator limbajului KEE aKikes,Kehler, 1985i, dar mult simplificat. Sistemul KEE este un sistem cadru de dezvoltare a sistemelor bazate pe cunostinte impreuna cu un mediu integrat, bazat in principal pe modelul unitatilor si care include cele mai multe din facilitatile propuse pentru acest model. Sistemul KEE s-a impus in ultimul timp datorita dezvoltarii a numeroase aplicatii scrise in KEE si a incorporarii unor tehnici noi de inteligenta artificiala cum ar fi: reprezentarea si utilizarea regulilor de productie prin unitati, compilarea bazei de cunostinte, utilizarea unui sistem de mentinere a consistentei datelor bazat pe presupuneri si integrat intr-un model de lumi posibile aFilman,1988;Filman,s.a.,1992i. In limbajul de descriere a unitatilor folosit in continuare, fiecare unitate este precedata de cuvintul cheie Unit, urmat de numele unitatii. Relatia de incluziune subclasa-clasa existenta intre unitati generice (AKO) este reprezentata prin doua atribute speciale, numite SuperClasses si SubClasses, ale caror valori pot fi alte unitati generice. Relatia de apartenenta a unui membru la o clasa, deci stabilirea unei instante a unei unitati generice (ISA), este reprezentata de atributul special MemberOf. Un obiect particular poate fi instanta a mai multe unitati generice, asa cum o unitate generica poate fi subclasa a mai multe clase. In consecinta, taxonomia de unitati nu mai este un arbore ci un graf (de cele mai multe ori o latice), asa cum se permite in cele mai multe limbaje bazate pe unitati existente la ora actuala. Inferentele specifice de mostenire a atributelor descris de in Sectiunea 6.1 pot fi astfel implementate in modelul unitatilor. Unit Camion SuperClasses: Vehicol SubClasses: CamionMare, CamionMediu, CamionMic MemberOf: ObiecteFizice Unit CamionMare SuperClasses: Camion SubClasses: CamionMareRosu, CamionMareRemorca Unit CamionMareRosu SuperClasses: CamionMare MemberSlot: Sofer Value: necunoscut MemberSlot: Inaltime Value: necunoscut MemberSlot: Culoare Value: rosie MemberSlot: Pret Value: necunoscut OwnSlot: CelMaiMare Value: CMR10 OwnSlot: CelMaiScump Value: CMR210 Unit CMR1 MemberOf: CamionMareRosu, ProprietateFirmaX OwnSlot: Sofer Value: Paul OwnSlot: Inaltime Value: 2.00 OwnSlot: Culoare Value: rosie OwnSlot: Pret Value: 3 000 000 OwnSlot: Proprietar Value: X Unit CMR2 MemberOf: CamionMareRosu OwnSlot: Sofer Value: Toderita OwnSlot: Inaltime Value: 2.00 OwnSlot: Culoare Value: rosie OwnSlot: Pret Value: 10 000 000 Figura 6.9 Descrierea unor unitati generice si a unor instante Sloturile proprii CelMaiMare si CelMaiScump ale unitatii generice CamionMareRosu caracterizeaza clasa in ansamblu si nu mai apar in instantele acesteia. Deci, in urma mostenirii atributelor de la clasa la instanta, sloturile membru ale clasei devin sloturi proprii ale instantei iar sloturile proprii ale clasei nu se mostenesc la instante. Orice slot membru al unei clase este mostenit de subclasele descendente din acea clasa, in urma mostenirii atributelor de la clasa la subclasa. Se observa de asemenea existenta sloturilor membru cu valori "necunoscut", care vor capata valori in instante, cit si existenta sloturilor membru cu valori fixate, cum ar fi slotul Culoare, care indica ca toti membrii acelei clase trebuie sa aiba acea valoare pentru slot. O unitate generica poate fi vazuta atit ca o clasa, cit si ca o entitate de sine statatoare. Asa cum s-a vazut, o unitate generica poate avea proprietati (atribute) care nu apartin instantelor individuale ale clasei, ci intregii clase (sloturile proprii). Din acest punct de vedere, o unitate generica poate fi vazuta ca o instanta a unei alte unitati generice speciale, numita de obicei metaunitate sau metaclasa. In acest fel, o unitate generica poate mosteni sloturile membru ale metaunitatii a carei instanta este, sub forma de sloturi proprii. Unit Clasa SuperClasses: Clasa MemberOf: Clasa MemberSlot: NumarMembrii Unit ObiecteFizice SuperClasses: Clasa MemberOf: Clasa OwnSlot: NumarMembrii MemberSlot: CelMaiMare Unit ProprietateFirma SuperClasses: Clasa MemberOf: Clasa OwnSlot: NumarMembrii Value: necunoscut MemberSlot: ValoareTotala Value: necunoscut Unit ProprietateFirmaX MemberOf: ProprietateFirma OwnSlot: NumarMembrii Value: 100 OwnSlot: ValoareTotala Value: 100 000 000 MemberSlot: Proprietar Value: X Figura 6.10 Unitati generice si metaunitati In exemplul considerat clasa Camion poate fi o instanta a metaclasei ObiecteFizice de la care mosteneste sloturile CelMaiMare si CelMaiScump, (prezentate de abia in unitatea CamionMareRosu din considerente de claritate). In orice sistem bazat pe unitati exista o cea mai generala metaunitate, fiecare clasa (unitate generica) putind fi o instanta a acestei metaunitati. In Figura 6.10 se prezinta o ierarhie de metaunitati. In plus, se detaliaza si unitatea ProprietateFirmaX a carei instanta este unitatea CMR1 (CMR1 este o instanta a doua unitati generice, CamionMareRosu si ProprietateFirmaX, putind mosteni sloturi de la ambele unitati). Metaclasele reprezinta o alta forma de metacunostinte, alaturi de metaregulile descrise in Capitolul 4. Spre deosebire de metareguli care specifica cunostinte de control, metaclasele sint metacunostinte care descriu structura reprezentarii, altfel spus reprezentarea reprezentarii. Modelul unitatilor este de obicei extins prin modalitati de reprezentare a proprietatilor atributelor, numite fatete. Deci orice slot dintr-o unitate poate fi caracterizat printr-o multime de fatete. Dintr-o anumita perspectiva, un slot poate fi vazut ca o unitate ale carei sloturi sint fatetele. Cele mai frecvente fatete utilizate in paradigma unitatilor sint: * fateta valoare care indica una sau mai multe valori ale slotului; in cazul in care nu se stie valoarea unui slot, fateta valoare indica necunoscut; * fateta domeniu de valori care indica tipul admisibil al valorilor unui slot; * fatete care descriu anumite restrictii ale valorilor unui slot, cum ar fi numarul de valori (atribute monovaloare sau multivaloare), limitari ale acestor valori sau conditii pe care aceste valori trebuie sa le indeplineasca; * fateta valoare implicita care are acelasi rol cu cel descris in cazul retelelor semantice: atita timp cit nu se cunoaste valoarea unui slot se poate presupune ca valoarea acestui slot este valoarea implicita; * fateta mostenire care indica explicit regulile de mostenire a valorii slotului de la diverse unitati; de obicei aceasta mostenire se realizeaza implicit de-a lungul relatiilor SuperClasses (AKO) si MemberOf (ISA) dar aceasta fateta poate indica si alte relatii pe baza carora se fac mosteniri de valori, cit si diverse prioritati in mostenire; * fateta valoare activa, echivalenta fatetei procedura necesara din modelul retelelor semantice, si fateta metoda (sau slotul special metoda), fatete care ataseaza componente procedurale unui slot; aceste fatete vor fi discutate in sectiunea urmatoare; * fateta comentariu care descrie semnificatia slotului. In cazul fatetelor restrictii, se observa regasirea ideii de atribut monovaloare si multivaloare mentionate in Capitolul 4 sub forma valorii unice sau a valorilor multiple ale unui slot. Utilizind fatetele prezentate mai sus, descrierea unitatii CamionMareRosu prezentata in exemplul anterior poate fi reformulata asa cum se vede in Figura 6.11. Unit CamionMareRosu SuperClasses: CamionMare MemberSlot: Sofer Value: necunoscut /*fateta valoare */ ValueClass: Persoana /*fateta domeniu de valori; indica unitatea Persoana */ Cardinality: 2 /*fateta numar de valori; un camion poate avea doi soferi posibili */ Default: Paul /*fateta valoare implicita*/ Restrict: (oneof Paul, Toderita, Gelu, Mihai, Barbu) /* fateta de descriere a restrictiei */ MemberSlot: Inaltime Value: necunoscut ValueClass: real Cardinality: 1 Restrict: X.Inaltime > 1.50 MemberSlot: Culoare Value: rosie ValueClass: string Cardinality: 1 Comment: "Culoarea tuturor membrilor unitatii" /* fateta comentariu */ Figura 6.11 Sloturi si fatete intr-o unitate In sistemele actuale bazate pe unitati, sloturile sint instante ale unor metaunitati speciale care le descriu in termenii fatetelor. Aceste metaunitati reprezinta o alta forma de metacunostinte de reprezentare, insa discutarea acestei probleme depaseste cadrul prezentarii de fata. 6.3.2 Inferente specifice unitatilor In cadrul modelului unitatilor, mostenirea atributelor este o forma de inferenta specifica, la fel ca si in cazul retelelor semantice. Daca ierarhia de unitati este arbore, algoritmii de mostenire sint identici cu cei prezentati la retelele semantice, pentru mostenirea valorilor, a valorilor implicite si a procedurilor necesare (Sectiunea 6.2.2). Spre deosebire de retelele semantice, cele mai multe limbaje de reprezentare bazate pe unitati permit mosteniri multiple asa cum s-a vazut in exemplul anterior, forma taxonomiei de unitati fiind in acest caz graf. Acesta este un graf orientat aciclic, in care exista o ordine partiala impusa de relatiile AKO. Existenta unei astfel de ierarhii induce o serie de complicatii conceptuale in realizarea mostenirii valorilor, a caror rezolvare necesita un nou algoritm de mostenire. Fie exemplul din Figura 6.12, in care se revine la o notatie grafica a unitatilor pentru a simplifica prezentarea. Pe baza ierarhiei existente si a relatiei de mostenire se intreaba daca Fifi poate zbura. Raspunsul corect la aceasta intrebare este "nu" deoarece, chiar daca pasarile in general zboara, strutii nu zboara (decit daca sint struti magici, dar in acest exemplu nu ne ocupam de struti magici). Aplicind algoritmul de mostenire a valorilor prezentat anterior pentru slotul Zboara, raspunsul depinde de ordinea de considerare a unitatilor de care este legata instanta Fifi prin relatia ISA (MemberOf), deci poate fi si "da", i.e. Fifi zboara. Este evident ca nu acesta este raspunsul cautat si ca este nevoie de un algoritm de traversare a relatiilor ISA si AKO care sa garanteze prioritatea cunostintelor specifice fata de cele mai generale. Figura 6.12 Taxonomie de unitati de tip graf orientat aciclic O posibilitate de rezolvare a acestei probleme este specificarea explicita a ordinii de mostenire cu ajutorul fatetei mostenire a slotului. Acest lucru este posibil in anumite limbaje bazate pe unitati dar introduce destul de multe complicatii in construirea si specificarea bazei de cunostinte. O alta posibilitate este construirea unui algoritm inteligent care sa rezolve astfel de probleme. O posibila idee care ar sta la baza unui algoritm de mostenire capabil sa rezolve mosteniri multiple de atribute este folosirea lungimii caii intre unitatea curenta U pentru care se doreste aflarea valorii slotului (atributului) S si unitatea U' unde s-a gasit aceasta valoare, considerind valoarea corecta valoarea slotului din unitatea cea mai apropiata de unitatea U. Acest algoritm ar putea fi implementat intr-o maniera similara cu cea prezentata in Sectiunea 6.2.2, selectind din lista unitatilor competitive unitatea cea mai apropiata de unitatea de interes U care are o valoare pentru slotul S. Un astfel de algoritm functioneaza pentru exemplul lui Fifi dar nu functioneaza pentru exemplul descris in Figura 6.13 in care unitatea Pasare se afla la o distanta mai mica de Fifi decit de unitatea Strut din care trebuie obtinuta valoarea corecta a slotului Zboara. Functionarea incorecta a algoritmului propus provine din faptul ca lungimea caii intre doua unitati intr-o ierarhie nu corespunde intotdeauna nivelului de generalitate al unitatilor. De multe ori, nivelul de generalitate al unei unitati generice este dat de gradul de elaborare a unitatilor in baza de cunostinte. Solutia acestei probleme este construirea algoritmului de mostenire pe baza distantei inferentiale aTouretzky,1986i si nu pe baza distantei simple intre unitati. Definitie. Distanta inferentiala intre clase (unitati generice si instante) se defineste astfel: Clasa1 este mai aproape de Clasa2 decit de Clasa3 daca si numai daca Clasa1 are o cale inferentiala care trece prin Clasa2 spre Clasa3. Cu alte cuvinte, Clasa1 este mai aproape de Clasa2 decit de Clasa3 daca Clasa2 este intre Clasa1 si Clasa3 de-a lungul unui lant de relatii ISA si AKO. Figura 6.13 Distanta si distanta inferentiala intre unitati Folosind distanta inferentiala, se poate defini mostenirea proprietatilor astfel: multimea valorilor competitive ale unui slot S intr-o unitate U contine acele valori care pot fi derivate dintr-o unitate X care este mai sus decit U in ierarhie si care nu sint contrazise de valorile slotului S dintr-o unitate Y care are o distanta inferentiala mai mica decit distanta inferentiala a unitatii X fata de U. Folosind aceasta definitie pentru exemplul din Figura 6.13, se deduce valoarea corecta a slotului Zboara al lui Fifi deoarece unitatea Strut are o distanta inferentiala mai mica fata de unitatea Fifi decit distanta inferentiala a unitatii Pasare fata de Fifi. Acest lucru este adevarat deoarece exista o cale inferentiala intre Fifi si Pasare care trece prin unitatea Strut. In continuare se prezinta algoritmul de mostenire a proprietatilor bazat pe distanta inferentiala pentru cazul in care sloturile unitatilor sint monovaloare, deci admit o singura valoare. Algoritm: Mostenirea proprietatilor bazata pe distanta inferentiala. Algoritmul determina valoarea V a slotului S al unitatii U 1. Formeaza o lista L cu unitatea U si toate unitatile legate de U prin relatia MemberOf 2. Formeaza o lista de candidati 3. cit timp executa 3.1. Elimina prima unitate, X, din lista L 3.2. daca slotul S al lui X are valoare atunci 3.3. altfel adauga in lista L toate unitatile legate de X prin relatia SuperClass 4. pentru fiecare unitate executa 4.1. Verifica daca exista un alt element cu o distanta inferentiala fata de U mai mica decit aceea a lui C 4.2. daca C' exista atunci elimina C din CAND 5. daca atunci intoarce INSUCCES /* nu s-a gasit valoare pentru S */ 6. daca atunci 6.1. Fie C1 unicul element al listei CAND 6.2. Depune valoarea slotului S al lui C1 ca valoare a slotului S al lui U 6.3. intoarce SUCCES 7. daca /* contradictie, S este monovaloare */ atunci intoarce CONTRADICTIE sfirsit. Observatii: * Algoritmul este garantat sa se termine deoarece ierarhia de relatii AKO este reprezentata de un graf aciclic orientat. * Distanta inferentiala defineste o relatie de ordine partiala intre unitati. Din aceasta cauza pot exista unitati generice intre care nu se poate defini o distanta inferentiala, cum ar fi exemplul din Figura 6.14. Pentru exemplul lui Cici algoritmul va deduce mai multe valori pentru slotul monovaloare UndeEste, deci se obtine o contradictie, conform pasului 7. Acest lucru este corect deoarece exista doua extensii posibile a bazei de cunostinte prezentata in Figura 6.14: una in care Cici este la Polul Nord si alta in care Cici este pe Raft. * In cazul in care unitatile admit sloturi multivaloare, deci se accepta mai multe valori pentru un slot, algoritmul trebuie modificat in consecinta. Figura 6.14 Situatie contradictorie pentru obtinerea valorii unui slot prin mostenire O alta forma de inferenta specifica unitatilor este atasarea procedurala pe fatetele sloturilor si |
||||||
|
||||||
|
||||||
Copyright© 2005 - 2024 | Trimite document | Harta site | Adauga in favorite |
|