Kunskapsbaserad agent. Kunskapsrepresentation. Wumpus-världen. Wumpusvärlden. Bris. Bris. Bris. Bris. Bris. Bris. Stank. Stank.

Relevanta dokument
729G43'Ar*ficiell'intelligens' Kunskapsrepresenta*on' Kunskapsrepresenta*on' Kunskapsbaserade'agenter' Kunskapsbaserad'agent' Arne'Jönsson' HCS/IDA' '

729G43 Artificiell intelligens Kunskapsrepresentation. Arne Jönsson HCS/IDA

Artificiell Intelligens Lektion 4

Normalisering av meningar inför resolution 3. Steg 1: Eliminera alla och. Steg 2: Flytta alla negationer framför atomära formler

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Asymptotisk analys innebär att... man försöker uppskatta vad som händer för stora indatamängder.

Innehåll. Föreläsning 7. Satslogiken är för grov. Samma sak i predikatlogik: Första ordningens predikatlogik. Logik med tillämpningar

HKGBB0, Artificiell intelligens

Antag att b är förgreningsfaktorn, d sökdjupet, T (d) tidskomplexiteten och M(d) minneskomplexiteten.

Grundläggande logik och modellteori (5DV102)

Vad behövs för att skapa en tillståndsrymd?

Antag att följande träd genereras i ett spelförande program om vi applicerar evalueringsfunktionen

*UXSS YQLQJ±/RJLNPHGWLOOlPSQLQJDUYW

de var svåra att implementera och var väldigt ineffektiva.

Artificiell Intelligens Övningsuppgifter

Utsagor (Propositioner) sammansatta utsagor sanningstabeller logisk ekvivalens predikat (öppna utsagor) kvantifierare Section

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

Predikatlogik: Normalformer. Klas Markström

Sanningsvärdet av ett sammansatt påstående (sats, utsaga) beror av bindeord och sanningsvärden för ingående påståenden.

Tommy Färnqvist, IDA, Linköpings universitet. 1 Kursadministration 1. 2 Introduktion Varför logik? Satslogik... 2

MA2047 Algebra och diskret matematik

I en deterministisk omgivning beror nästa tillstånd bara av agentens handling och nuvarande tillstånd.

Probabilistisk logik 1

Robin Stenwall Lunds universitet

Filosofisk Logik (FTEA21:4) föreläsningsanteckningar/kompendium. v. 2.0, den 29/ III. Metalogik 17-19

Datorlingvistisk grammatik I Institutionen för lingvistik och filologi Oktober 2007 Mats Dahllöf

Logik för datavetare DVK:Log Tisdagen 28 oktober Institutionen för dataoch systemvetenskap David Sundgren

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska kunnas?

DD1350 Logik för dataloger. Fö 2 Satslogik och Naturlig deduktion

Robin Stenwall Lunds universitet

D. x 2 + y 2 ; E. Stockholm ligger i Sverige; F. Månen är en gul ost; G. 3 2 = 6; H. x 2 + y 2 = r 2.

Semantik och pragmatik (Serie 4)

Kap. 7 Logik och boolesk algebra

Artificial Intelligence

Föreläsning 8. Innehåll. Satisfierbarhet hos en formel. Logik med tillämpningar

Grundläggande logik och modellteori (5DV102)

Logisk semantik I. 1 Lite om satslogik. 1.1 Konjunktioner i grammatisk bemärkelse. 1.2 Sant och falskt. 1.3 Satssymboler. 1.

Robin Stenwall Lunds universitet

9. Predikatlogik och mängdlära

FÖRELÄSNING 8 ANDERS MÄRAK LEFFLER IDA/HCS

Tommy Färnqvist, IDA, Linköpings universitet. 2 Strukturer Domäner Tolkningar... 3

729G43 Artificiell intelligens Probabilistisk logik. Arne Jönsson HCS/IDA

Föreläsning 5. Deduktion

Anna: Bertil: Cecilia:

FÖRELÄSNING 3 ANDERS MÄRAK LEFFLER IDA/HCS

Grundläggande logik och modellteori

Grundläggande logik och modellteori

A B C D E F A B C D E F (3) Svar: Tabellen ger grafen:

Probabilistisk logik 2

Varför är logik viktig för datavetare?

Beräkning med ord. -hur en dator hanterar perception. Linköpings universitet Artificiell intelligens Erik Claesson

DD1361 Programmeringsparadigm HT17

Tentamenskod: Inga hjälpmedel är tillåtna

Sats. Om t är en rätvinklig triangel så är summan av kvadraterna på kateterna i t lika med kvadraten på hypotenusan.

729G43 Artificiell intelligens Planering

Övningshäfte 1: Logik och matematikens språk

Fuzzy Logic. När oskarpa definitioner blir kristallklara. Åsa Svensson. Linköpings Universitet. Linköping

Lite om bevis i matematiken

Logik och kontrollstrukturer

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

Lek$on 3: Kunskapsrepresenta$on. Robin Keskisärkkä

Lek$on 4: Kunskapsrepresenta$on. Robin Keskisärkkä och Jonas Rybing

DD1361 Programmeringsparadigm HT15

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Grundläggande logik och modellteori

Grundläggande logik och modellteori

Semantik och pragmatik

Semantik och pragmatik (Serie 3)

Mycket kortfattade lösningsförslag till tenta i AI 6 nov 2003

Innehåll. Föreläsning 4-5. Logiska system. Alfabet. Calculus. Well-formed formulas. Vanliga termer i logik Satslogik. Första ordningens predikatlogik

Avslutning. Vad? Hur? Anmärkningar inför tentan 2. Vad ska ni kunna?

Vad är det? Översikt. Innehåll. Vi behöver modeller!!! Kontinuerlig/diskret. Varför modeller??? Exempel. Statiska system

Vad är semantik? LITE OM SEMANTIK I DATORLINGVISTIKEN. Språkteknologi semantik. Frågesbesvarande

Innehållsförtekning Sida. Inledning 3 Vad är fuzzy logic? 3 Mängder 3 Medlemsfunktioner 5 Operationer 6 Fuzzification 8 Litteraturförteckning 9

Formell logik Kapitel 5 och 6. Robin Stenwall Lunds universitet

Formell logik Kapitel 9. Robin Stenwall Lunds universitet

8. Naturlig härledning och predikatlogik

Fråga 5 (1 poäng) För att definiera ett sökproblem krävs...

DD1361 Programmeringsparadigm HT16

Semantik och pragmatik

Filosofisk logik Kapitel 19. Robin Stenwall Lunds universitet

DD1350 Logik för dataloger

F. Drewes Datavetenskapens grunder, VT02. Lite logik

MATEMATIKENS SPRÅK. Avsnitt 1

DD1350 Logik för dataloger. Vad är logik?

p /\ q r DD1350 Logik för dataloger Kort repetition Fö 3 Satslogikens semantik

Logik och bevisteknik lite extra teori

Logik: sanning, konsekvens, bevis

Om semantisk följd och bevis

En introduktion till predikatlogik

Hornklausuler i satslogiken

Logik. Dr. Johan Hagelbäck.

Språket Python - Del 1 Grundkurs i programmering med Python

Artificiell Intelligens

7, Diskreta strukturer

MATEMATIKENS SPRÅK. Syftet med denna övning är att med hjälp av logik lära oss att uttrycka matematik mer exakt,

FUZZY LOGIC. Christopher Palm chrpa087

Substitution och unifiering

Flera kvantifierare Bevis Direkt bevis Motsägelse bevis Kontrapositivt bevis Fall bevis Induktionsprincipen. x y (x > 0) (y > 0) xy > 0 Domän D = R

Något om logik och logisk semantik

Transkript:

Kunskapsrepresentation Kunskapsbaserad agent! Introduktion! Wumpus-världen! FOPL, Inferens! Resolution, Unifiering! Representation av kunskap! Ontologi! Strukturerad representation/semantiska nät def KBagent(percept): KB = [ ] t = 0 tell(kb, makeperceptsentence(percept, t)) action = ask(kb, makeactionquery(t)) tell(kb, makeactionsentence(action, t)) t = t + 1 return action Wumpus-världen Wumpusvärlden Stank Stank Bris Bris HÅL HÅL Bris! 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) Stank Bris! ASK( a bestaction(a, 5)) bör ge Grab! TELL(Grab, 5) Bris HÅL Bris

Representation av världen Hantera föränding! Rutor [x, y]! Närliggande rutor x,y, z, w Adjacent([x, y],[z, w]) [z, w] {[x+1,y], [x-1,y], [x, y+1], [x, y-1]}! Lagra utforskning, ex s,t At(Agent, s, t) Breeze(t) Breezy(s)! Diagnosregler (diagnosticerar från effekter till fakta) s Breezy(s) r Adjacent(r,s) Pit(r)! Kausalregler (modellbaserade resonemang) r Pit(r) [ s Adjacent(r,s) Breezy(s)]! Vill uttrycka hur en handling påverkar världen i FOPL! Inför situationsvariabel för fluents dvs sådant som ändrar sig! Situationskalkyl! Ex At(Agent, [1, 1], S0), At(Agent, [1, 2], S1)! Saker som inte ändrar sig behöver ingen sitiationsvariabel, ex Wall ([0, 1])! Uppdatera världen. Inför Result(action, situation)! Result(Forward, S0) = S1! Result(Grab, S1) = S2 Representation av handlingar Förändringar i världen! Beskrivs utifrån sin effekt på världen! Ex Grab x,s Present(x, s) Portable(x) Holding(x, Result(Grab, s))! Kallas effektaxiom! Annat effektaxiom Holding(x, Result(Release, s))! Ex Portable(guld) Present(guld, S4) betyder att agenten kan göra en Grab och vi kan få Holding(guld, S5)! Antag At(Agent, [2,3], S0), Portable(guld), Present(guld, S0) Grab ger Holding(guld, S1)! Antag att 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 Succesor-stateaxiom Hur representera vad som påverkas och vad som inte påverkas av en handling.! Representationsproblemet: representation av handlingar! Inferensproblemet: representation av sekvenser av handlingar Relaterade problem:! Qualification problem! Hur räknar vi upp under vilka omständigheter en handling lyckas! Ramification problem! Hur räknar vi upp alla implicita konsekvenser av en handling! Kombinera effekt-och frameaxiom genom att se hur fluents ändras över tiden! Handling som gör sann Sant redan och ingen handling gör falsk! Ex a,x,s Holding(x, Result(a,s)) [((a=grab) Present(x,s) Portable(x)) (Holding(x,s) (a!release))]! Löser representationsproblemet Skapa en kunskapsbas Inferens Iterativ process 1. Identifiera uppgiften 2. Hämta relevant domänkunskap 3. Definiera en vokabulär Ontologi 4. Skriv axiom som beskriver domänen 5. Gör en problemkodning 6. Testa och använd 7. Debug Tre typer:! Framåtsökning! Söker från reglerna framåt! Bakåtsökning! Söker från reglerna bakifrån! Resolution

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åtinferens 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 Börja i någon premiss 6. Rökning 7. Rökdetektor 8. Arga brandmän? Falsklarm Rökning Rök Larm Brandkåren Arga brandmän Rökdetektor Bakåtinferens Börja i slutsatsen Brandkåren Arga brandmän Falsklarm 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? Rökdetektor Larm Rök Rökning Resolution! Mekanisk bevismetod! Ex, satslogik Rökning Rök Rök Brandvarnarlarm Implikation transitiv, dvs Rökning Brandvarnarlarm! " # kan skrivas som " # Rökning Rök Rök Brandvarnarlarm Dvs Rökning Brandvarnarlarm Kallas resolvent

Resolution Exempel 1 Konvertera alla satser till konjunktiv normalform 2 Negera vad som skall visas, konvertera till konjunktiv normalform och lägg till kunskapsbasen 3 Upprepa till kontradiktion eller ingen förbättring eller annat stoppvillkor a Välj två klausuler b Resolvera dessa. Resolvent är disjunktionen av alla termer med lämpliga substitutioner. c Om resolventen tomma mängden så returnera kontradiktion, annars lägg resolventen till KB 1. Rökning Eld Rök 2. Rök Rökdetektor Larm 3. Larm Barnkå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 till konjunktiv form, 1 Gör om till konjunktiv form, 2 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 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

Konjunktiv 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 till KB 10. Rökning Eld Rök! Eller 3+8 11. Rök Larm! 10+11 ger 12. Rökning Eld Larm! 6+9 ger 13. Brandkåren kommer Falsklarm! 4+13 ger 14. Larm Falsklarm! 14+5 ger 15. Rökning Larm! 15+7 ger 16. Larm! 3+16 ger 17. Rök Rökdetektor! 1+17 ger 18. Rökning Rökdetektor! 18 + 7 ger 19. 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 Resolution för predikatlogik Unifiering! Variabler och kvantifierare! 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 substitueras med [1,2] och t substitueras med 5) ger en motsägelse, dvs en tom klausul! Att tala om vilka substitutioner som skall göras för att två uttryck skall bli lika! Vill returnera den mest generella unifieringen! Substitutioner måste propageras i hela strukturen! Ex x Hund(x) Skäller(x) kan konverteras till 1. Hund(x) Skäller(x) om vi antar att variabler alltid är allkvantifierade 2. Hund(Pluto) 1+2 med [x/pluto] ger Skäller(Pluto), dvs x har substituerats i båda predikaten

Unifieringsalgoritmen, 1 Unifieringsalgoritmen, 2 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" 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 Större exempel (med förenklingar) 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] } 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 till konjunktiv normalform Skolemisering 1. Eliminera implikation 2. Reducera negationernas 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 existenskvantifierare, skolemisering 5. Konvertera till prenex form 6. Skippa prefix Allt är allkvantifierat 7. Konvertera till konjunktion av disjunktioner 8. Bilda klausuler Implicit konjuktion mellan klausuler 9. Döp om variabler! Ersätter existenskvanifierade variabler med konstant, eller funktion som vid behov tar fram den individ för vilken uttrycket 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 ett 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 skolemfunktion, g(x), som beror av allkvantifierade variabeln x ger x Person(x) Hjärta(g(x)) Har(x,g(x)) Exempel, 1 Exempel, 2 x {P(x) ( y[p(y) P(f(x, y))] y[q(x, y) P(y)])} 1 Eliminera implikation x { P(x) ( y[ P(y) P(f(x, y))] y[ Q(x, y) P(y)])} 2 Reducera negationernas 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 existenskvantifierare x { P(x) ( y[ P(y) P(f(x, y))] [Q(x, g(x)) P(g(x))])} 5 Konvertera till prenex form x y{ P(x) ([ P(y) P(f(x, y))] [Q(x, g(x)) P(g(x))])} 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 Exempel, översätt 1. Mårten var skåning 2. Mårten föddes 1807 3. Ingen dödlig lever längre än 150 år 4. Alla svenskar är dödliga 5. Alla skåningar är svenskar 6. Nu är det 2010 Visa att Mårten är död nu 1. Mårten var skåning Skåning(Mårten) 2. Mårten föddes 1807 Född(Mårten, 1807) 3. Ingen dödlig lever längre än 150 år x,s,t Dödlig(x) Född(x, s) gt(t-s, 150) Död(x, t) 4. Alla svenskar är dödliga s Svensk(s) Dödlig(s) 5. Alla skåningar är svenskar s Skåning(s) Svensk(s) 6. Nu är det 2010 Nu = 2010 Exempel, konvertera 1 Exempel, konvertera 2 1. Skåning(Mårten) 2. Född(Mårten, 1807) 3. x,s,t Dödlig(x) Född(x, s) gt(t-s, 150) Död(x, t) (Dödlig(x) Född(x, s) gt(t-s, 150)) Död(x,t) Dödlig(x) Född(x, s) gt(t-s, 150) Död(x,t) 4. s Svensk(s) Dödlig(s) Svensk(s) Dödlig(s) 5. s Skåning(s) Svensk(s) Skåning(s) Svensk(s) 6. Nu = 2010 Standardisera variabler och lägg till negerad slutsats 1. Skåning(Mårten) 2. Född(Mårten, 1807) 3. Dödlig(x) Född(x, s) gt(t-s, 150) Död(x,t) 4. Svensk(d) Dödlig(d) 5. Skåning(v) Svensk(v) 6. Nu = 2010 7. Död(Mårten, Nu)

Resolutionsstrategier! 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 Resolutionsexempel (7) (3) {x/mårten, t/nu} 8. Dödlig(Mårten) Född(Mårten, s) gt(nu-s, 150) 9. Dödlig(Mårten) gt(nu-1807, 150) {s/1807} 1. Skåning(Mårten) 2. Född(Mårten, 1807) 3. Dödlig(x) Född(x, s) gt(t-s, 150) Död(x,t) 4. Svensk(d) Dödlig(d) 5. Skåning(v) Svensk(v) 6. Nu = 2010 7. Död(Mårten, Nu) (2) (6) 10. Dödlig(Mårten) gt(2010-1807, 150) Resolutionsexempel, 2 10. Dödlig(Mårten) gt(2010-1807, 150) gt(2010-1807, 150) gt(201,150) T F (1) (5) {v/mårten} 11. Skåning(Mårten) 11. Svensk(Mårten) 1. Skåning(Mårten) 2. Född(Mårten, 1807) 3. Dödlig(x) Född(x, s) gt(t-s, 150) Död(x,t) 4. Svensk(d) Dödlig(d) 5. Skåning(v) Svensk(v) 6. Nu = 2010 7. Död(Mårten, Nu) {d/mårten} (4) Ontologi! Kategorier och objekt! Fysiska objekt! Sammansatta objekt! Mått och enheter! Handlingar, situationer och händelser! Situationskalkyl, Frameproblemet! Tid, rum och förändring! Händelser och processer! Tidsintervall! Mentala objekt och uppfattningar Motsägelse, alltså Död(Mårten, 2008)

Toppontologi Kategorier Abstrakta Objekt Allt Generaliserade händelser Mängder Tal Repr. Objekt Intervall Platser Fysiska objekt Processer Kategorier Meningar Mått Händelser Saker Materia! Resonerar inte om objekt utan om koncept, kategorier! Ex Guld, inte Guld32! Gör predikat till objekt i språket! Ex Guld refererar till kategorin Guld, x Guld betyder att x är guld. Kallas reification kan skriva t.ex. Färg(Guld) = gul! Kategorier ärver egenskaper! Ex Guld Ädelmetall betyder att Guld är en subklass av Ädelmetall och ärver alla dess egenskaper, t.ex. att vara värdefull! Ex x, x Guld Glittrar(x) Dyrt(x) Tider Vikter Djur Agenter Fast Flytande Gas Människor Händelser Tid, intervall och handlingar! Situationskalkyl är diskret. Behöver en kontinuerlig variant! Ex. At(Wumpus, Gold) säger inget om när det är sant! T(At(Wumpus, Gold), t) säger att det är sant vid tidpunkten t Andra predikat:! Happens(e, i) säger att e händer under intervallet i! Initiates(e, f, t) säger att e får f att starta vid tiden t! Terminates(e,f,t) säger att e får f att avslutas vid tiden t! Clipped(f, i) säger att f slutar att vara sant i intervallet i! Restored(f, i) säger att f blir sant nångång under intervallet i! Allens temporala logik! Definierar ett intervall i Intervall(i) Duration(i) = (Time(End(i))-Time(Start(i)))! Huvudsakligen fyra olika relationer

Temporala relationer Strukturerad representation! Meet(i, j) i,j Meet(i,j) Time(End(i)) = Time(Start(j)) i j! Frames och semantiska 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! Multipel ärvning! Förändring, ickemonotonicitet! During(i,j) i,j During(i,j) Time(Start(j)) $ Time(Start(i)) Time(End(j)) % Time(End(i)) i j! Overlap(i,j) i,j Overlap(i,j) k During(k,i) During (k,j) i j Strukturerad representation Ärvningshierarki! Baserat på associationsteorier, 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 tid att besvara än Kan undulater sjunga?! Hypotes Människor lagrar information så abstrakt som möjligt Alla fåglar flyger men inte alla fåglar sjunger 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

Attribut-värdestrukturer! Semantiska nät och frames lagrar kunskapen attributvärdestrukturer! Attributen kan också ha egenskaper, t.ex.:! Tillåtna klasser, ex attributet 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 att räkna ut värden, ex för att räkna ut åldern! Kopplar procedurer (demoner) till attributen. Kallas också procedural attachements Multipel ärvning Sällskapsfågel Instans Fågel Flyger: T Ben: 2 Olga Emu Flyger: F Instans Väljer den mest specifika Sällskapsfågel Instans Fågel Flyger: T Ben: 2 Olga Emu Flyger: F Australisk Emu Västkust Emu Instans Inferensavståndet, dvs undersöker om det finns på vägen Hantering av osäker kunskap Icke-standardlogik Icke-standardlogik. Inte en teori utan många! Rivaler: tar bort teorem, t.ex. A v A! Utvidgningar: lägger till teorem som ofta är oformulerbara i FOPL Rivaler Probabilistisk logik! logik baserad på sannolikhet Flervärd logik! inför fler sanningsvärden Fuzzy logic! sannolikhet att höra till en mängd Modal logik Utvidgningar! L: nödvändigt sann! M: möjligen sann Temporal logik! tidslogik Icke-monoton logik! tillåter satser som inte bevisats