reprezentarea cunostintelor folosind retele semanticesoftware.ucv.ro/~cbadica/ai/cap8.pdf · 2017...
Post on 03-Feb-2018
225 Views
Preview:
TRANSCRIPT
2017
Reprezentarea cunostintelor folosind
retele semantice
Capitolul 8
2017
Alegerea unui limbaj de reprezentare
• Exprimarea unei solutii presupune folosirea unui limbaj (formalism) de
reprezentare a problemei.
• Doua criterii de baza pentru compararea a doua logici: expresivitatea si
complexitatea.
• L1 este mai putin expresiv decat L2 daca orice problema care poate fi
reprezentata in L1 poate fi reprezentata si in L2.
• Complexitatea se refera la complexitatea rezolvarii celei mai dificile
probleme care se poate reprezenta intr-un formalism dat.
• Complexitatea si expresivitatea sunt in conflict.
• Este dorit un formalism cu expresivitate mare si complexitate mica.
• Un alt criteriu este naturaletea. Se refera la usurinta de interpretare a
reprezentarii de catre un agent uman. Naturaletea distinge reprezentarile
folosite in IA de celelalte reprezentari folosite in ingineria programarii.
2017
Clasificarea limbajelor de reprezentare
• Formalisme bazate pe logica simbolica
– Clauze precise, clauze Horn, logici nemonotone, etc
• Formalisme de reprezentare procedurala:
– Sisteme bazate pe reguli de productie (ex.Clips)
• Formalisme de reprezentare bazate pe grafuri (retele)
– Retele semantice
• Formalisme de reprezentare structurata:
– Cadre (engl.frames), scenarii (engl.scripts), obiecte
• Un formalism de reprezentare este caracterizat prin:
– Sintaxa
– Semantica
– Proceduri de rationament
2017
Trecerea de la problema la reprezentare
• Trebuie avute in vedere urmatoarele elemente:
– Alegerea nivelului de abstractizare
– Identificarea obiectelor si relatiilor
– Alegerea unui mod de reprezentare natural, modular si usor mentenabil
• Alegerea nivelului de abstractizare
– Un nivel inalt de abstractizare poate fi mai usor de inteles si de intretinut
– Un nivel coborat poate oferi o acuratete mai mare a reprezentarii. Insa cu
cat nivelul este mai coborat, cu atat rationamentele sunt mai greu de
efectuat. In plus, informatia la un nivel coborat de abstractizare poate sa nu
fie disponibila.
– Se pot folosi niveluri multiple de abstractizare in reprezentarea problemei.
Problema se va rezolva intai la nivelul cel mai inalt de abstractizare, apoi
solutia se rafineaza la nivelele mai coborate de abstractizare pana la
obtinerea unui rezultat satisfacator, suficient de detaliat.
2017
Identificarea obiectelor si relatiilor
• Fiind dat un domeniu si o logica se pune problema stabilirii obiectelor si relatiilor care se vor referi in reprezentare. Pentru aceasta trebuie stabilita o ontologie a domeniului.
• Nu lumea determina obiectele si relatiile dintr-un anumit domeniu, ci observatorul lumii respective.
• Sa presupunem ca dorim sa reprezentam urmatoarea propozitie: “marul este rosu”. Avem alternativele:
rosu(mar)
culoare(mar,rosu)
prop(mar,culoare,rosu)
• Cu prima reprezentare putem intreba “Cine este rosu ?”
?rosu(X)
• Cu a doua reprezentare putem intreba “Ce culoare are marul ?”
?culoare(mar,X)
• Cu a treia reprezentare putem intreba: “Ce proprietate a marului are valoarea rosu ?”
?prop(mar,P,rosu)
2017
Reprezentare obiect-atribut-valoare
• Presupune o reprezentare obiectuala a lumii: lumea este formata din
obiecte, obiectele au proprietati si proprietatile au valori.
• Schema de reprezentare este:
prop(Obiect,Atribut,Valoare)
• Pentru a reprezenta: “Marul este un fruct” putem folosi:
prop(mar,este_un,fruct)
• Pentru a reprezenta: “Prelegerea 8 a cursului de IA a fost planificata la
ora 10 in sala N10)” se reprezinta prin inventarea unui obiect rez1 care
reprezinta “rezervarea unei sali de curs”. El va avea atributele: curs,
sectiune, ora si sala. Reprezentarea cu prop va fi:
prop(rez1,curs,ia)
prop(rez1,prelegere,8)
prop(rez1,ora,10)
prop(rez1,sala,n10)
2017
Retele semantice
• Relatia prop se poate interpreta in termeni de grafuri. Obiectele si valorile sunt noduri si proprietatile arce. Astfel prop(Obj,Atr,Val) se va desemna grafic printr-un arc etichetat cu Atr de la nodul Obj la nodul Val. Val poate fi o valoare primitiva sau un alt obiect.
• Multimea arcelor dintr-o astfel de reprezentare formeaza o retea semantica (engl.semantic network).
Valoare Primitiva Obiect
Atribut
Obiect
Atribut
Valoare Obiect
2017
RDF
• Recent s-a propus o modalitate de reprezentare a resurselor in Web. Aceasta se numeste Resource Description Framework – RDF.
• O reprezentare RDF este o multime de triplete ce definesc un graf orientat. Un arc reprezinta o proprietate (atribut). Nodul sursa al unui arc reprezinta un subiect (obiect). Nodul destinatie al unui arc reprezinta un obiect (valoare).
• Proprietatile, subiectele si obiectele sunt resurse – tip universal.
• Obiectele dintr-un triplet pot fi resurse sau literali (valori primitive).
2017
Exemplu de retea semantica
este
VasDeSange
Artera
Vena
Aorta
este
contine sange
fibros
muscular
2.5
tubulara este
forma
perete
perete
diametru
sarac in oxigen
Artera mare
sange
bogat in oxigen
sange
7
procent
Artera brahiala stanga
sarac in oxigen
sange
Artera mica
20
procent
este
este
este
2017
Terminologii si asertiuni
• Cunoasterea terminologica: T-Box
– Se refera la clasificarea obiectelor in functie de descrierile acestora
– De obicei pentru reprezentare se foloseste o retea semantica cu mostenire :
– Se bazeaza pe definirea de clase
• Cunoastere asertionala: A-Box
– Reprezinta o multe de fapte referitoare la o stare de lucruri
– De obicei se refera la existenta unor obiecte si la caracteristicile lor particulare; caracteristicile pot fi indicate explicit sau rezulta prin declararea obiectului ca apartinand unei clase
2017
Mostenire
• Relatia este sta la baza implementarii unei proceduri de rationament
numita mostenire (engl.inheritance).
• De exemplu se deduce ca: “Aorta are perete muscular”.
• La determinarea tipului de sange transportat de artera brahiala stanga apare
conflict. Aplicand mostenirea cu suprascriere (engl.overriding
inheritance), adica valoarea mai specifica suprascrie valoarea mai
generala, deducem:
“Artera brahiala stanga transporta sange sarac in oxigen”.
• Anumite atribute nu se mostenesc, ele caracterizand multimea tuturor
instantelor unei clase, nu o singura instanta. De exemplu atributul procent
reprezinta procentul de sange continut de o multime de vase de sange.
• Daca se face distinctie intre relatia este intre doua clase si relatia este intre
o instanta si o clasa atunci in primul caz relatia se interpreteaza ca relatie
submultime intre instantele claselor si in al doilea caz ca relatie de
apartenenta a instantei la clasa.
2017
Mostenire multipla
• Mostenirea cu suprascriere functioneaza doar pentru retelele semantice structurate arborescent in raport cu relatia este.
• Pe cazul general putem avea mostenire multipla: un atribut mosteneste valori diferite de-alungul unor cai care nu se suprapun.
elefant
elefant alb
elefant regal
mitica
alba
gri
culoare
culoare
este
este este
este
2017
Distanta inferentiala
• Daca clasele A si B sunt stramosi ai clasei X si X mosteneste pentru un atribut m o valoare a de la A si o valoare b de la B astfel incat a b si A este stramos al lui B atunci X va mosteni valoarea pentru m de la B, deoarece se considera ca dpdv inferential, X este mai aproape de B decat de A.
A
B
X
In exemplul anterior culoarea lui Mitica
va fi alba.
Altfel apare o situatie de conflict care se
rezolva prin metode ad-hoc.
2017
prop(artera, perete, muscular)
prop(artera, procent, 20)
prop(artera, sange, bogat_in_oxigen)
prop(artera_mare, este, artera)
prop(aorta, este, artera_mare)
prop(aorta, diametru, 2.5)
...
• Daca o clasa are pentru atributul A valoarea V, atunci orice clasa B care este subclasa a sa are aceeasi proprietate. Cu alte cuvinte pentru orice arc etichetat cu A de la o clasa C la o valoare V avem:
prop(O,A,V)
prop(O,este,C)
• De exemplu:
prop(O,contine,sange)
prop(O,este,vas_de_sange)
Reprezentarea retelelor semantice prin clauze precise
C V
A
2017
Exemplu de retea
V2 C2
a
V1 C1
a
V C
a
V3 C3
a
W
b
este este
este este
2017
Translatarea exemplului in Prolog
prop(c,este,c1).
prop(c,este,c2).
prop(c1,este,c3).
prop(c2,este,c3).
prop(c,a,v).
prop(c1,a,v1).
prop(c2,a,v2).
prop(c3,a,v3).
prop(c3,b,w).
% c2 -> a -> v2
prop(O,a,v2) :-
prop(O,este,c2).
% c2 -> este -> c3
prop(O,este,c3) :-
prop(O,este,c2).
% c1 -> a -> v1
prop(O,a,v1) :-
prop(O,este,c1).
% c1 -> este -> c3
prop(O,este,c3) :-
prop(O,este,c1).
% c3 -> a -> v3
prop(O,a,v3) :-
prop(O,este,c3).
% c -> a -> v
prop(O,a,v) :-
prop(O,este,c).
% c -> este -> c1
prop(O,este,c1) :- !,
prop(O,este,c).
% c -> este -> c2
prop(O,este,c2) :-
prop(O,este,c).
% c3 -> b -> w
/* prop(O,b,w) :-
prop(O,este,c3). */
top related