Kunskapsrepresenta*on' 729G43'Ar*ficiell'intelligens' Kunskapsrepresenta*on' Arne'Jönsson' HCS/IDA' ' Introduk*on' WumpusEvärlden' FOPL,'Inferens' Resolu*on,'Unifiering' Representa*on'av'kunskap' Ontologi' Strukturerad'representa*on/seman*ska'nät' Kunskapsbaserade'agenter' Generell'kunskap'om'världen' Deklara*v'beskrivning'' (jfr'agent'med'procedurell'kunskap)' Resonemang' Flexibla' explicita'mål' ny'kunskap' Par*ellt'observerbara'världar'(jfr'sökning)' Kunskapsbaserad'agent' Har'en'kunskapsbas'som'innehåller'fakta'och' resonemangmekanismer'för'ax'dra'slutsatser'baserat'på' dessa'fakta' Agenten' tolkar'percept'vid'en'*d't' uppdaterar'kb'med'perceptet' väljer'handling'baserat'på'kb' uppdaterar'kb'med'handling'vid't' UZör'handling'och'uppdaterar'*den'
Kunskapsbaserad'agent' WumpusEvärlden' KB = [ ] t = 0 def KBagent(percept): tell(kb, makeperceptsentence(percept, t)) action = ask(kb, makeactionquery(t)) tell(kb, makeactionsentence(action, t)) t = t + 1 return action Stank Stank Stank Bris Bris HÅL Bris HÅL Bris Bris HÅL Bris WumpusEvärlden' Percept'(Stank,'Bris,'GliXer,'Bump,'Skrik)' Wumpusen's*nker'en'ruta'ver*kalt'och'horsiontellt' Hål'ger'bris'en'ruta'ver*kalt'och'horisontellt' Guld'gliXrar' Bump'i'vägg' Döende'wumpus'skriker' WumpusEvärlden' Handlingar'(framåt,'(sväng'höger),'(sväng'vänster),'ta,' skjut,'kläxra)' Om'agenten'är'vid'skaXen'innebär' ta 'ax'agenten'har'guldet' Om'agenten'står'riktad'mot'wumpusen'och'skjuter'dör'wumpusen' Om'agenten'är'vid'startplatsen'och'kläXrar'kommer'den'ut' Om'agenten'hamnar'i'hål'eller'hos'wumpusen'dör'den'
WumpusEvärlden'resonemang' Om'det'blåser'på'ruta'x'och'ruta'a,'b,'c'och'd'är' angränsande'rutor'så'kan'det'finnas'hål'på'a,'b,'c'och'd' Om'det'inte'blåser'på'ruta'x'och'a,'b,'c'och'd'är' angränsande'rutor'så'kan'det'inte'finnas'hål'på'a,'b,'c' eller'd' Om'det'finns'eX'hål'på'ruta'x'eller'y'och'det'inte'finns'eX' hål'på'x'så'finns'det'ex'hål'på'y' Wumpusvärlden' Percept = [Stench, Breeze, Glitter, Bump, Scream] Action = [Forward, Right, Left, Grab, Shoot, Climb] Representera tid och välja handling Ex Antag Percept([s, b, Glitter, m, c], 5) ask( a bestaction(a, 5)) bör ge Grab tell(grab, 5) Representa*on'av'världen' Rutor'[x,'y]' Närliggande'rutor' x,'y,'z,'w'adjacent([x,'y],[z,'w])' '' [z,'w]' '{[x+1,y],'[xe1,y],'[x,'y+1],'[x,'ye1]}' Lagra'uZorskning,'ex' s,t'at(agent,'s,'t)' 'Breeze(t)' 'Breezy(s)' Diagnosregler'(diagnos*cerar'från'effekter'*ll'fakta)' s'breezy(s)' ' r'adjacent(r,s)' 'Pit(r)' Kausalregler'(modellbaserade'resonemang)' r'pit(r)' '[ s'adjacent(r,s)' 'Breezy(s)]'' Hantera'föränding' Vill'uXrycka'hur'en'handling'påverkar'världen'i'FOPL' Inför'situa*onsvariabel'för'fluents'dvs'sådant'som'ändrar' sig'' Ex'At(Agent,'[1,'1],'S0),'At(Agent,'[1,'2],'S1)' Saker'som'inte'ändrar'sig'behöver'ingen'si*a*onsvariabel,'ex'Wall([0,'1])' Uppdatera'världen.'Inför'Result(ac*on,'situa*on)' Result(Forward,'S0)'='S1' Result(Grab,'S1)'='S2'
Situa*onskalkyl' Världen'består'av'en'sekvens'situa0oner2 Handlingar'resulterar'i'nya'situa*oner' Fluents'är'predikat'som'beskriver'rela*oner'eller' egenskaper'som'kan'påverkas'av'handlingar,'' dessa'tar'ex'extra'situa*onsargument' Funk*onen'Result(ac*on,'situa*on)'används'för' representera'övergången'mellan'två'situa*oner' Situa*onskalkyl' 'Exempel' Beskrivning'av'wumpusvärldens'ini*al*llstånd' At(agent,'[1'1],'s0)' Direc*on(agent,'east,'s0)' At(wumpus,'[1'3])' At(pit1,'[3'1])' At(pit2,'[3'3])' At(pit3,'[4'4])' At(gold,'[2'3])' Effektaxiom' Wumpusvärldens'handlingar' s'at(agent,'(x'y),'s)' 'Direc*on(agent,'east,'s)' ' '''''At(agent,'(x+1'y),'Result(forward,'s))' s'direc*on(agent,'east,'s)' ' '''''Direc*on(agent,'north,'Result(turnElen,'s))' s'at(agent,'(x'y),'s)' 'At(gold,'(x'y),'s)' ' '''''Holding(agent,'gold,'Result(grab,'s))' Kallas'effektEaxiom,'beskriver'det'som'förändras' Situa*onskalkyl'E'exempel' Handlingsekvens' s1'='result(forward,'s0)' s2'='result'(turnelen,'s1)' s3'='result(forward,'s2)' s4'='result(forward,'s3)' s5'='result(grab,'s4)'
Förändringar'i'världen' Antag'' At(Agent,'[2,3],'S0),'Portable(guld),'Present(guld,'S0)' Grab'ger'Holding(guld,'S1)' Antag'aX'agenten'går'framåt' At(Agent,'[2,3],'Result(Forward,'S1))'ger' At(Agent,'[2,4],'S2)' Men'agenten'har'också'guldet'med'sig,'dvs' a,x,s'holding(x,'s)' '(a Release)' 'Holding(x,'Result(a,'s))' och' a,x,s' Holding(x,s)' '(a Grab)' ' (Present(x,s)' 'Portable(x))' ' Holding(x,'Result(a,s))' Kallas'frameaxiom' Frameproblemet' Hur'representera'vad'som'påverkas''och'vad'som'inte' påverkas'av'en'handling.' Representa*onsproblemet:'representa*on'av'handlingar' Inferensproblemet:'representa*on'av'sekvenser'av'handlingar' Relaterade'problem:' Qualifica*on'problem' Hur'räknar'vi'upp'under'vilka'omständigheter'en'handling'lyckas' Ramifica*on'problem' Hur'räknar'vi'upp'alla'implicita'konsekvenser'av'en'handling' SuccesorEstateEaxiom' Successor5state2axiom2beskriver'hur'fluents'förändras' över'*d' Kombinera'effektEoch'frameaxiom' Handling'som'gör'något'sant' ' redan'sant'och'ingen'handling'som'gör'falskt' s'at(agent,'(x+1'y),'result(a,'s)' ' '''''[(a'='forward' 'At(agent,'(x'y),'s)' '' ''''''Direc*on(agent,'east,'s))]' ' '''''(a' forward' 'At(agent,'(x+1'y),'s))'' Skapa'en'kunskapsbas' 1. Itera*v'process' 2. Iden*fiera'uppginen' 3. Hämta'relevant'domänkunskap' 4. Definiera'en'vokabulär' 'Ontologi' 5. Skriv'axiom'som'beskriver'domänen' 6. Gör'en'problemkodning' 7. Testa'och'använd' 8. Debug'
Inferens' Tre'typer:' Framåtsökning' Söker'från'reglerna'framåt' Bakåtsökning' Söker'från'reglerna'bakifrån' Resolu*on' Exempel' 1. Rökning' 'Eld' 'Rök' 2. Rök' 'Rökdetektor' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. Rökning' 'Larm' 'Falsklarm' 5. Brandkåren'kommer' 'Falsklarm' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän?' Framå*nferens' 1. Rökning Eld Rök 2. Rök Rökdetektor Larm 3. Larm Brandkåren kommer 4. Rökning Larm Falsklarm Bakå*nferens' 1. Rökning Eld Rök 2. Rök Rökdetektor Larm 3. Larm Brandkåren kommer 4. Rökning Larm Falsklarm Börja'i'någon'premiss' 5. Brandkåren kommer Falsklarm Arga brandmän 6. Rökning Börja'i'slutsatsen' 5. Brandkåren kommer Falsklarm Arga brandmän 6. Rökning 7. Rökdetektor 8. Arga brandmän? 7. Rökdetektor 8. Arga brandmän? Falsklarm Rökdetektor Rökning Rök Larm Brandkåren Arga brandmän Arga brandmän Brandkåren Larm Rök Rökdetektor Falsklarm Rökning
Resolu*on' Mekanisk'bevismetod' Ex,'satslogik' Rökning' 'Rök' Rök' Brandvarnarlarm' Implika*on'transi*v,'dvs'Rökning' 'Brandvarnarlarm' α' 'β'kan'skrivas'som' α' 'β' 'Rökning' 'Rök' ' 'Rök' 'Brandvarnarlarm' Dvs' Rökning' 'Brandvarnarlarm' Kallas'resolvent'' Resolu*on' 1. Konvertera'alla'satser'*ll'konjunk*v'normalform' 2. Negera'vad'som'skall'visas,'konvertera'*ll'konjunk*v' normalform'och'lägg'*ll'kunskapsbasen' 3. Upprepa'*ll'kontradik*on'eller'ingen'förbäXring'eller' annat'stoppvillkor' a. Välj'två'klausuler' b. Resolvera'dessa.'Resolventen'är'disjunk*onen'av'alla'termer' med'lämpliga'subs*tu*oner.' c. Om'resolventen'tomma'mängden'så'returnera'kontradik*on,' annars'lägg'resolventen'*ll'kb' Exempel' 1. Rökning' 'Eld' 'Rök' 2. Rök' 'Rökdetektor' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. Rökning' 'Larm' 'Falsklarm' 5. Brandkåren'kommer' 'Falsklarm' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän?' Gör'om'*ll'konjunk*v'form,'1' 1. (Rökning' 'Eld)' 'Rök' 2. (Rök' 'Rökdetektor)' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. (Rökning' 'Larm)' 'Falsklarm' 5. (Brandkåren'kommer' 'Falsklarm)' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän'
Gör'om'*ll'konjunk*v'form,'2' 1. (Rökning' 'Eld)' 'Rök' '( Rökning' ' Eld)' 'Rök' 1. Rökning' 'Rök' 2. Eld' 'Rök' 2. (Rök' 'Rökdetektor)' 'Larm' '( Rök' ' Rökdetektor)' 'Larm'' 1. Rök' ' Rökdetektor' 'Larm' 3. Larm' 'Brandkåren'kommer' 4. (Rökning' 'Larm)' 'Falsklarm' '( Rökning' ' Larm)' ' Falsklarm'' 1. Rökning' ' Larm' 'Falsklarm' 5. (Brandkåren'kommer' 'Falsklarm)' 'Arga'brandmän' 1. Brandkåren'kommer' ' Falsklarm' 'Arga'brandmän' 6. Rökning' 7. Rökdetektor' 8. Arga'brandmän' Konjunk*v'form' 1. Rökning' 'Rök' 2. Eld' 'Rök' 3. Rök' ' Rökdetektor' 'Larm' 4. Larm' 'Brandkåren'kommer' 5. Rökning' ' Larm' 'Falsklarm' 6. Brandkåren'kommer' ' Falsklarm' 'Arga'brandmän' 7. Rökning' 8. Rökdetektor' 9. Arga'brandmän' Härled'en'motsägelse' Plocka'två'satser,'t.ex.'1+2'och'lägg'*ll'KB' Rökning' ' Eld' 'Rök' Eller'3+8'' Rök' 'Larm' 10+11'ger' Rökning' ' Eld' 'Larm' 6+9'ger' Brandkåren'kommer' ' Falsklarm'' 4+13'ger' Larm' ' Falsklarm' 14+5'ger' Rökning' ' Larm' 15+7'ger' Larm' 3+16'ger' Rök' ' Rökdetektor'' 1+17'ger' ' Rökning' ' Rökdetektor'' 18'+'7'ger' Rökdetektor'' 19'+'8'ger'en'motsägelse' 1. Rökning Rök 2. Eld Rök 3. Rök Rökdetektor Larm 4. Larm Brandkåren kommer 5. Rökning Larm Falsklarm 6. Brandkåren kommer Falsklarm Arga brandmän 7. Rökning 8. Rökdetektor 9. Arga brandmän Resolu*on'för'predikatlogik' Variabler'och'kvan*fierare' Ex'' 1. At(Wumpus,'[1,2],'5)' 2. At(Wumpus,'[1,'3],'6)' Ger'resolventen' At(Wumpus,'[1,'3],'6)' 'At(Wumpus,'[1,2],'5)' medan' 3. ' At(Wumpus,'l,'t)'och'1.' med'{l/[1,2],'t/5}'(l'subs*tueras'med'[1,2]'och't'subs*tueras'med'5)' ger'en'motsägelse,'dvs'en'tom'klausul''
Unifiering' För'aX'lyckas'med'resolu*on'i'FOPL'behöver'man' använda'unifiering' Variabler'byts'mot'andra'variabler'eller'konstanter,'en' subs*tu*on' Ona'söker'man'den'mest'generella'unifieringen,'MGU' Unifiering' 'Exempel' Gillar(Olga,'x)' x/mask' '''''''''''Gillar(y,'mask)' ' ''''''''''''''''''y/olga' ' Gillar(Olga,'mask)' ' Gillar(Olga,'x)'och'Gillar(y,'mask)'kan'alltså'unifieras'med' hjälp'av'subs*tu*onen'{x/mask,'y/olga)' Subs*tu*oner'propageras' 'Ex' x'hund(x)' 'Skäller(x)'kan'konverteras'*ll' Hund(x)' 'Skäller(x)'om'vi'antar'aX'variabler'all*d'är'allkvan*fierade' Hund(Pluto)' 1+2'med'[x/Pluto]'ger'Skäller(Pluto),'dvs'x'har'subs*tuerats'i'båda' predikaten' Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(blå,gul)' {Flagga(blå,x)'='Flagga(blå,gul)}' {blå=blå,'x=gul}' {x=gul}'
Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(y,gul)' {Flagga(blå,x)'='Flagga(y,gul)}' {blå=y,'x=gul}' {y=blå,'x=gul}' Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(y,KomplemenZärg(y))' {Flagga(blå,x)'='Flagga(y,KomplemenZärg(y))}' {blå=y,'x=komplemenzärg(y)}' {y=blå,'x=komplemenzärg(y)}' {y=blå,'x=komplemenzärg(blå)}' Unifiering' 'Exempel' Unifiera'Flagga(blå,x)'med'Flagga(x,gul)' {Flagga(blå,x)'='Flagga(x,gul)}' {blå=x,'x=gul}' {x=blå,'x=gul}' FEL' Unifieringsalgoritmen,'1' def unify(x, y, subst): if subst=="fail": return "Fail" elif x==y: return subst elif variable(x): unifyvar(x, y, subst) elif variable(y): unifyvar(y, x, subst) elif isinstance(x, list) and isinstance(y, list): unify(rest(x), rest(y), unify(first(x), first(y), subst)) else: return "Fail"
Unifieringsalgoritmen,'2' def unifyvar(var, x, subst): if getsubst(var, subst): unify(lookup(var, subst), x, subst) elif variable(x) and getsubst(x, subst): unify(var, lookup(x, subst), subst) elif occursin(var, x, subst): return "Fail" else: extendsubst(var, x, subst) Exempel' Unifiera Smelly([1,2]) och Smelly(l) unify([ Smelly, [1,2] ], [ Smelly,l],[]) x = [ Smelly, [1,2] ], y = [ Smelly,l] 1. subst Fail 2. x y 3. x eller y inte variabler 4. x och y listor 5. unify( [1,2], l, unify([ Smelly ], [ Smelly ],[]) 6. x==y alltså inga nya substitutioner 7. l variabel så unify ger anrop till unifyvar(l, [1,2],[]) 8. unifyvar hittar inga substitutioner så 9. extendsubst(l, [1,2], []) returnerar {l/ [1,2] } Större'exempel'(med'förenklingar)' unify([ F,[ G, A, m], [ F, k, m]], [ F, l, [ F, l, [ G, A, B ]]], [ ]) unify([[ G, A, m], [ F, k, m]], [l, [ F, l, [ G, A, B ]]], unify( F, F, [ ])) [ ] unify([[ G, A, m], [ F, k, m]], [l, [ F, l, [ G, A, B ]]], [ ]) unify([ F, k, m], [ F, l, [ G, A, B ]], unify([ G, A, m], l, [ ])) unify-var(l, [ G, A, m], [ ]) [l/[g, A, m]] unify([k, m], [l, [ G, A, B ]], unify( F, F, [l/[g, A, m]] )) [l/[g A m]] unify([k, m], [l, [ G, A, B ]], [l/[g, A, m]] )) unify(m, [ G, A, B ], unify(k, l, [l/[g, A, m]] )) unify-var(k, l, {l/[g, A, m]}) unify(k, [ G, A, m], [l/[g, A, m]] ) unify-var(k, [ G, A, m], [l/[g, A, m]]) [k/[g A m]] unify(m, [ G, A, B ], [k/[g, A, m], l/[g, A, m]] ) unify-var(m, [ G, A, B ], [k/[g, A, m], l/[g, A, m]] ) [m/[g A B]] [m/[g A B], k/[g A m], l/[g A m]] Konvertering'*ll'konjunk*v'normalform' 1. Eliminera'implika*on' 2. Reducera'nega*onernas'räckvidd' xp(x) x P(x),' xp(x) x P(x),' x P(x) xp(x),' x P(x) xp(x)''' 3. Standardisera'variabler' 4. Eliminera'existenskvan*fierare,'skolemisering' 5. Konvertera'*ll'prenex'form' 6. Skippa'prefix' Allt'är'allkvan*fierat' 7. Konvertera'*ll'konjunk*on'av'disjunk*oner' 8. Bilda'klausuler' 'Implicit'konjuk*on'mellan'klausuler' 9. Döp'om'variabler'
Skolemisering' ErsäXer'existenskvanifierade'variabler'med'konstant,'eller' funk*on'som'vid'behov'tar'fram'den'individ'för'vilken'uxrycket' gäller' Ex.' xp(x)' 'P(S)'där'S'är'en'skolemkonstant'och'står'för'den' individ's'för'vilken'p(x)' Ex.'Alla'har'eX'hjärta' x'person(x)' ' y'hjärta(y)' 'Har(x,y)' Skolemkonstant'ger' x'person(x)' 'Hjärta(S)' 'Har(x,S),'dvs' alla'har'samma'hjärta'vilket'är'fel' Inför'skolemfunk*on,'g(x),'som'beror'av'allkvan*fierade' variabeln'x'ger' x'person(x)' 'Hjärta(g(x))' 'Har(x,g(x))'' Exempel,'1' x'{p(x)' '( y[p(y)' 'P(f(x,'y))]' ' y[q(x,'y)' 'P(y)])}' ' 1'Eliminera'implika*on' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' ' y[ Q(x,'y)' 'P(y)])}' 2'Reducera'nega*onernas'räckvidd' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' ' y[q(x,'y)' ' P(y)])}' 3'Standardisera'variabler' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' ' z[q(x,'z)' ' P(z)])}' 4'Eliminera'existenskvan*fierare' ' x'{ P(x)' '( y[ P(y)' 'P(f(x,'y))]' '[Q(x,'g(x))' ' P(g(x))])}' 5'Konvertera'*ll'prenex'form' ' x' y{ P(x)' '([ P(y)' 'P(f(x,'y))]' '[Q(x,'g(x))' ' P(g(x))])}' Exempel,'2' 6 Skippa prefix { P(x) ([ P(y) P(f(x, y))] [Q(x, g(x)) P(g(x))])} 7 Konvertera till konjunktion av disjunktioner [ P(x) P(y) P(f(x, y))] [ P(x) Q(x, g(x))] [ P(x) P(g(x))] 8 Bilda klausuler P(x) P(y) P(f(x, y)) P(x) Q(x, g(x)) P(x) P(g(x)) 9 Döp om variabler P(x) P(y) P(f(x, y)) P(z) Q(z, g(z)) P(w) P(g(w)) Exempel' 1. Ber*l'var'pudel' 2. Ber*l'föddes'1955' 3. Ingen'hund'lever'längre'än'50'år'' 4. Pudlar'är'hundar' 5. Alla'hundar'är'däggdjur' 6. Nu'är'det'2015' 7. Visa'aX'det'finns'döda'pudlar'nu'
Exempel,'översäX' 1. Ber*l'var'pudel' Pudel(Ber*l)' 2. Ber*l'föddes'1955' Född(Ber*l,'1955)' 3. Ingen'hund'lever'längre'än'50'år' x,s,t'hund(x)' 'Född(x,'s)' 'gt(tes,'50)' 'Död(x,'t)' 4. Pudlar'är'hundar' x'pudel(x)' 'Hund(x)' 5. Alla'hundar'är'däggdjur' x'hund(x)' 'Däggdjur(x)' 6. Nu'är'det'2015' Nu'='2015' 7. Det'finns'döda'pudlar'nu' x'pudel(x)' Död(x,'Nu)' Exempel,'konvertera'1' 1. Pudel(Ber*l)' 2. Född(Ber*l,'1955)' 3. x,s,t'hund(x)' 'Född(x,'s)' 'gt(tes,'50)' 'Död(x,'t)' ' (Hund(x)' 'Född(x,'s)' 'gt(tes,'50))' 'Död(x,t)' ' Hund(x)' ' Född(x,'s)' ' gt(tes,'50)' 'Död(x,t)' 4. s'pudel(x)' 'Hund(x)' Pudel(x)' 'Hund(x)' 5. s'hund(x)' 'Däggdjur(x)' Hund(x)' 'Däggdjur(x)' 6. Nu'='2015' 7. x'pudel(x)' Död(x,'Nu)' ' x'pudel(x)' Död(x,'Nu)' '' x' '(Pudel(x)' Död(x,'Nu))' ' Pudel(x)' ' Död(x,'Nu)' Exempel,'konvertera'2' 1. Standardisera'variabler' 2. Pudel(Ber*l)' 3. Född(Ber*l,'1955)' 4. Hund(x)' ' Född(x,'s)' ' gt(tes,'50)' 'Död(x,t)' 5. Pudel(p)' 'Hund(p)' 6. Hund(h)' 'Däggdjur(h)' 7. Nu'='2015' 8. Pudel(w)' ' Död(w,'Nu)' Resolu*onsstrategier' Ta'bara'satser'med'komplement' Föredra'små'resolventer' Unit'preference' Set'of'support' Behåll'en'bra'delmängd.'Börja'med'slutsatsen' Eliminera'satser'som'subsumeras'av'andra'
1. Pudel(Bertil) 1. Pudel(Bertil) 2. Född(Bertil, 1955) 2. Född(Bertil, 1955) Resolu*onsexempel' (7) (1) 3. Hund(x) Född(x, s) gt(t-s, 50) Död(x,t) 4. Pudel(p) Hund(p) 5. Hund(h) Däggdjur(h) 6. Nu = 2015 Resolu*onsexempel,'2' 3. Hund(x) Född(x, s) gt(t-s, 50) Död(x,t) 4. Pudel(p) Hund(p) 5. Hund(h) Däggdjur(h) 6. Nu = 2015 {w/bertil} 7. Pudel(w) Död(w, Nu) 7. Pudel(w) Död(w, Nu) 8. Död(Bertil, Nu) (6) 10. Hund(Bertil) Född(Bertil, s) gt(2015-s, 50) (2) {Nu/2015} (4) {s/1955} 11. Hund(Bertil) gt(2015-1955, 50) 9. Död(Bertil, 2015) (3) {p/bertil} gt(2013-1955, 50) gt(60,50) T F {x/bertil, t/2015} (1) 12. Pudel(Bertil) 10. Hund(Bertil) Född(Bertil, s) gt(2015-s, 50) Motsägelse, alltså Det finns en död pudel nu Ontologi' Toppontologi' Kategorier'och'objekt' Fysiska'objekt' SammansaXa'objekt' MåX'och'enheter' Handlingar,'situa*oner'och'händelser' Situa*onskalkyl,'Frameproblemet' Tid,'rum'och'förändring' Händelser'och'processer' Abstrakta Objekt Allt Generaliserade händelser Mängder Tal Repr. Objekt Intervall Platser Fysiska objekt Processer Kategorier Meningar Mått Händelser Saker Materia Tidsintervall' Mentala'objekt'och'uppfaXningar' Tider Vikter Djur Agenter Fast Flytande Gas Människor
Exempel'på'genrella'ontologier' CYC' CYC' Thing Stort'(239000'koncept)'AIEKR'projekt' Logikbaserat'representa*onsspråk'CycL' WORDNET' IndividualObject Intangible RepresentedThing Stor'(117000'synsets)'lexikal'taxonomi'' Baserat'på'psykolingvis*ska'studier' Event Stuff IntangibleObject Collection Process IntangibleStuff AtributeValue Relationship Slot WORDNET' {thing, entity} {living thing, organism} {non-living thing, object} {plant, flora} {animal, fauna} {artifact} {food} Kategorier' Resonerar'inte'om'objekt'utan'om'koncept,'kategorier' Ex'Guld,'inte'Guld32' Gör'predikat'*ll'objekt'i'språket' Ex'Guld'refererar'*ll'kategorin'Guld,'x' 'Guld'betyder'aX'x'är'guld.' Kallas'reifica*on'kan'skriva't.ex.'Färg(Guld)'='gul' Kategorier'ärver'egenskaper' Ex'Guld' 'Ädelmetall'betyder'aX'Guld'är'en'subklass'av'Ädelmetall'och' ärver'alla'dess'egenskaper,'t.ex.'ax'vara'värdefull' Ex' x','x' 'Guld' 'GliXrar(x)' 'Dyrt(x)' {person, human being} {natural object} {substance}
Händelser' Situa*onskalkyl'är'diskret.'Behöver'en'kon*nuerlig'variant' Ex.'At(Wumpus,'Gold)'säger'inget'om'när'det'är'sant' T(At(Wumpus,'Gold),'t)'säger'aX'det'är'sant'vid'*dpunkten't' Andra'predikat:' Happens(e,'i)'säger'aX'e'händer'under'intervallet'i' Ini*ates(e,'f,'t)'säger'aX'e'får'f'aX'starta'vid'*den't' Terminates(e,'f,'t)'säger'aX'e'får'f'aX'avslutas'vid'*den't' Clipped(f,'i)'säger'aX'f'slutar'aX'vara'sant'i'intervallet'i' Restored(f,'i)'säger'aX'f'blir'sant'nångång'under'intervallet'i' Tid,'intervall'och'handlingar' Allens'temporala'logik' Definierar'eX'intervall' i'intervall(i)' 'Dura*on(i)'='(Time(End(i))E Time(Start(i)))' Huvudsakligen'fyra'olika'rela*oner' Temporala'rela*oner' Strukturerad'representa*on' Meet(i, j) i,j Meet(i,j) Time(End(i)) = Time(Start(j)) i j Frames'och'seman*ska'nät' Egenskapsärvning' Before(i,j) After(j,i) i,j Before(i,j) Time(End(i)) < Time(Start(j)) i j Default'och'undantag' Mul*pel'ärvning' During(i,j) i,j During(i,j) Time(Start(j)) Time(Start(i)) Time(End(j)) Time(End(i)) i j Förändring,'ickemonotonicitet' Overlap(i,j) i,j Overlap(i,j) k During(k,i) During (k,j) i j
Strukturerad'representa*on' Seman*ska'nät' Baserat'på'associa*onsteorier,'t.ex.'Quillian'&'Collins' 1969' Experiment.'Ställer'olika'frågor,'t.ex.:' Är'undulaten'en'fågel?' Kan'undulater'flyga?' Kan'undulater'sjunga?' Resultat' Kan'undulater'flyga? ''tar'längre'*d'ax'besvara'än' Kan' undulater'sjunga? '' Hypotes' Människor'lagrar'informa*on'så'abstrakt'som'möjligt' Alla'fåglar'flyger'men'inte'alla'fåglar'sjunger'' Vingar har Fjädrar har är en kan sjunga Undulat Djur har Skinn är ett är ett Fågel kan flyga true Fisk är en true Struts kan flyga false Ärvningshierarki' Undulat Sjunger: T Putte Vän: Instans Fågel Flyger: T Ben: 2 Vän Emu Flyger: F Olga Instans Levande varelse Lever: T Djur RörSig: T Elefant Färg: grå Vikt: 3500 Clyde Färg: vit Däggdjur Ben: 4 Hund Vikt: 5 Bertil Vikt: 10 Typ: Pudel Instans Instans Instans Delfin Ben: 0 Vikt: 500 Flipper AXributEvärdestrukturer' Seman*ska'nät'och'frames'lagrar'kunskapen'aXributE värdestrukturer' AXributen'kan'också'ha'egenskaper,'t.ex.:' Tillåtna'klasser,'ex'aXributet'Inkomst'är'inte'intressant'för'objekt'av' typen'emu' Värdebegränsningar,'ex'Vikt(Hund)'<'500'kg' Default' Regler'för'ärvning' Procedurer'för'aX'räkna'ut'värden,'ex'för'aX'räkna'ut'åldern' Kopplar'procedurer'(demoner)'*ll'aXributen.'Kallas'också' procedural' axachements '
Mul*pel'ärvning' Sällskapsfågel Instans Fågel Flyger: T Ben: 2 Emu Flyger: F Instans Sällskapsfågel Fågel Flyger: T Ben: 2 Emu Flyger: F Australisk Emu Västkust Emu Hantering'av'osäker'kunskap' IckeEstandardlogik.' Inte'en'teori'utan'många' Rivaler:'' ' tar'bort'teorem,'t.ex.'a'v' A' Utvidgningar:'' ' lägger'*ll'teorem'som'ona'är'oformulerbara'i'fopl' Olga Instans Olga Instans Väljer den mest specifika Inferensavståndet, dvs undersöker om det finns på vägen IckeEstandardlogik' Rivaler2 Probabilis*sk'logik' logik'baserad'på'sannolikhet' Flervärd'logik' inför'fler'sanningsvärden' Fuzzy'logic' sannolikhet'ax'höra'*ll'en' mängd' Utvidgningar2 Modal'logik' L:'nödvändigt'sann' M:'möjligen'sann' Temporal'logik' *dslogik' IckeEmonoton'logik' *llåter'satser'som'inte' bevisats'