Representatie & Zoeken College 8: Kennisrepresentatie (II)
Kennisrepresentatie: 4 typen • Logica • Procedures • Netwerken Vorig college • Slots/values Dit college
!Frames !Scripts
ademen huid
dier
bewegen vliegen vleugels
vogel
vliegtuig
veren kanarie zingen
struisvogel geel
person:Tom
vliegen
experiencer
747
groot
believe object
Leeswijzer: AI8
Hoofdstuk 6.1.4-6.1.5
person:Jane
1
agent
like
pizza
object
AI8
2
Frames, algemeen
Frames = slots + values
• Organiseer kennis in samenhangende eenheden • Kennis is georganiseerd als eigenschappen van conceptuele eenheden: – Vb: alle kennis over Tom, opgeslagen bij object Tom • Default-reasoning • Twee typen eenheden: – generieke eenheden (type, class) Vb: persoon, auto, land – Specifieke eenheden (individuen, instanties) Vb: tom, mijn-auto, Schotland
• Elke eenheid is een frame met slots (≈ record in Pascal/C, class in Java) • Frames zijn georganiseerd in een hierarchie
AI8
AI8
3
class person slot nr-of-legs = 2 slot nr-of-fingers = 10 ... end class frame person-042 type-of: person slot name = “Tom” slot date-of-birth = 29-10-60 ... end frame
4
Verschillende soorten slots class person slot nr-of-legs = 2 slot nr-of-fingers = 10
Slots & daemons
frame person-042 type-of: person slot name = “Tom” slot date-of-birth = 29-10-60
• slot= eigenschap + waarde
• Daemon = procedure die uitgevoerd wordt bij een bepaald actie op een slot IF-ADDED, IF-NEEDED, ... • Vb 1: (bereken slotwaarde telkens bij opvragen)
name = "Tom" date-of-birth = 29-10-60
class square slot length = ... slot surface-IF-NEEDED length × length end class
• slot = eigenschap + waarde-bereik height = (> 1.50m) & (< 2.00m)
• slot = relatie +ander object(en)
• Vb 1: (onhoud slotwaarde na 1e keer berekenen)
brother = {person-06, person-072}
• slot = eigenschap + procedure AI8
nationality = combine( nationality(father), 5 nationality(mother))
AI8
class square slot length = ... IF-ADDED surface = length × length slot surface = ... 6 end class
Overerving & defaults
Kennis afleiden in frames
• Organiseer frames in een is-a hierarchie • Bereken eigenschappen en waarden door overerving (inheritance) van voorouders in de hierarchy class car
= slot/value aflezen of overerving
slot #wheels=4
class ford slot made-in: USA class fiesta slot #cylinders=4
AI8
instance xy-88-12 slot colour=grey
class lorry slot #wheels=8
generic
}specific 7
class car slot #wheels=4 class ford slot made-in: USA class fiesta slot #cylinders=4
class lorry slot #wheels=8
instance xy-88-12 slot colour=grey
• Vb: slot/value aflezen: • Vb: default inheritance: • Vb: overriding defaults: AI8
colour of xy-88-12: grey #wheels of xy-88-12: 4 #wheels of lorry: 8 8
Essentiële eigenschappen: twee typen variabelen
Essentiële eigenschappen • Sommige eigenschappen mogen niet overschreven worden class polygon
class polygon
class rectangle slot #sides=4
• Instance variables:eigenschappen van specifiek object • Class variables: eigenschappen van generiek object • Class variables kunnen niet worden overschreven class polygon
class rectangle slot #sides=4
class triangle slot #sides=3
class triangle slot #sides=3 AI8
9
Meervoudige overervering (voordelen) verdubbelde representatie
window
window with border
window with border & label
zuiniger, betere stijl
instance r-044 INSTVAR surface=8 AI8
• Beschouw object vanuit verschillende perspectieven Kennis over juridische objecten
Kennis over transport objecten
window with label
Kennis over mechanische objecten
window with label window with border & label
instance t-033 INSTVAR surface=9 10
Meervoudige overervering (voordelen)
window
window with border
AI8
class rectangle class triangle CLASSVAR #sides=4 CLASSVAR #sides=3
11
AI8
class car
12
Meervoudige overervering (problemen)
Meervoudige overervering (problemen) • Wat te doen bij conflicterende overerving? class person
class quaker slot pacifist: yes
class republican slot pacifist: no
• Geef een volgorde aan de ouders (en erf alleen van de eerste ouder die een waarde geeft) – vaste volgorde (bijv. links naar rechts) – geef gewichten aan de links: “Nixon is voornamelijk een republikein, en alleen een quaker als het hem uitkomt” • Maak aparte knoop “republican-quaker”, met een IF-NEEDED daemon voor pacifist: class person
instance Nixon
class quaker
class quaker-pacifist
• Is Nixon een pacifist? AI8
class republican
13
Frames, samenvatting • Frames = slot/values + overervings hierarchie • Voordelen: – goede organisatie van kennis • kennis-structuur analoog aan domein-structuur • alle kennis van een concept bij elkaar – default-redeneren • Nadelen – geen wiskundige fundering – onduidelijke betekenis (meervoudige overerving) – mogelijk misbruik van de hierarchie – geen backtracking – willekeurige programmeertruuks in daemons – Zoek-probleem (meervoudige overerving is NP-hard) AI8 15
AI8
instance Nixon
class quaker-pacifist slot pacifist-IF-NEEDED: if election-year then pacifist = yes else pacifist = no end class 14
Scripts • Organiseer kennis rond prototypische situaties (in frames: rond prototypische concepten) • Vb: scripts voor –eten in restaurant –college geven –verjaardag vieren
Onderdelen van een script
• toepassings-conditie • eindresultaat van een script • objecten in een script • rollen van de objecten •AI8sub-scripts voor deelsituaties
16
Scripts:Vb
Gebruik van scripts • Afleiden van impliciete informatie (= beantwoorden van vragen) – “Ik ging naar het restaurant. Ik bestelde nasi. Bij het betalen kreeg ik ruzie en ging ik naar huis.” !Vraag: Heb ik gegeten? • Oplossen van ambiguïteit – “Ze ging naar het restaurant. De serveerster nam de bestelling op. Ze dronk haar biertje en vertrok.” !Vraag: Wie heeft ‘t biertje besteld? AI8
17
Scene 3: vraag gesteld
" S vraagt D # D antwoord $ Choose: • goto scene 2 • goto scene 3." • goto scene 4
Scene 4: einde college
AI8
• Track: collegezaal • Entry Conditions: • tussen 9 & 5 • op de Universiteit • .... • Props: • projector • transparanten • zaal • Roles: • D=docent • S=student
Scene 1: binnenkomen
" # $ % &
S neemt plaats S praat met buren D komt binnen D praat S wordt stil
Scene 2: lesgeven " D legt sheet neer # D praat $ D haalt sheet weg % Choose: • goto scene 2." • goto scene 3 • goto scene 4
AI8
18
Redeneren met scripts
Scripts (Vb) Scene 2: lesgeven " D legt sheet neer # D praat $ D haalt sheet weg % Choose: • goto scene 2." • goto scene 3 • goto scene 4
Script: College geven
" S gaat weg # D gaat weg $ S praat
19
"Vind juiste script bij bepaalde beschrijving #Beantwoord vragen/doe voorspellingen/etc Maar:
Match & selectie probleem “Ze kreeg twee vliegers voor haar verjaardag” !Bracht ze er één terug? “Ze kreeg twee ijsjes voor haar verjaardag” !Bracht ze er één terug? • Moet weten over: – kadootjes: >1 van hetzelfde is (soms) niet leuk – winkels: sommige dingen kun je niet ruilen – eigenschappen: van ijsjes & vliegers AI8 20 – etc, etc.
Terugblik: Algemene problemen met KR formalismen • • • • • • •
AI8
Volgende keer
Volledigheid Nauwkeurigheid Wiskundige onderbouwing Flexibiliteit Efficientie homomorphie Selecte van primitieve symbolen
Natuurlijke taal: 13.0-13.3 21
AI8
22