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

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

Artificiell Intelligens Lektion 4

DD1311 Programmeringsteknik för S1 Laborationer läsåret

729G06 Föreläsning 1 Objektorienterad programmering

Lektion G43 Artificiell intelligens. Robin Keskisärkkä Ellinor Ihs Håkansson Cornelia Böhm

Karlstads Universitet, Datavetenskap 1

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)


Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl

Att referera till objekt

Vill du vara med från starten, rulla då ner till slutet av dokumentet. Nya inlägg alltid först.

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Lektion 2: Sökagenter. Robin Keskisärkkä

Dagens Agenda. Klient- och Serveroperativsystem Installation av Windows Server Genomgång av Windows Server Roller och Funktioner Domänhantering DNS

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 8 10, 7 april 2016

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Objektorienterad programmering i Java I. Uppgifter: 2 Beräknad tid: 5-8 timmar (OBS! Endast ett labbtillfälle) Att läsa: kapitel 5 6

Lek$on 4: Planering. Robin Keskisärkkä

OOP Objekt-orienterad programmering

OOP Tenta

Föreläsning 16 Arv. Jan Lönnberg T Grundkurs i programmering

Andra relationella språk

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

ANVÄNDAR HANDLEDNING FÖR ADVITUMS KUNDPORTAL

KARLSTADS UNIVERSITET 12/8/09 informatik & datavetenskap Johan Öfverberg, Kerstin Andersson Laboration 4, ISG A04 och DVG A08 HT-09

TDDD78 Objektorientering i Java, del 2

Skriftlig tentamen i kurserna TDDD12 och TDDB48 Databasteknik kl

Design och konstruktion av grafiska gränssnitt

Relationsmodellen. Relations modellen är idag den mest änvända datamodellen för kommersiella

DD1311 Programmeringsteknik för CL1 Laborationer läsåret

Statistik över heltal

Uppgifter till tenta i 729G04 Programmering och diskret matematik. 17 december 2015, kl 14:00-18:00

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Lär dig programmera! Prova på programmering med enkla exempel! Björn Regnell

Facit Tentamen TDDC (7)

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Liv och miljö Lärarmaterial

Kopiering av objekt i Java

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

Classes och Interfaces, Objects och References, Initialization

MITT I NATUREN. Uppdrag för åk f-3. Välkommen till uppdraget Mitt i naturen i Universeums utställning Vattnets väg på plan 4.

ID1004 Laboration 4, November 2012

Vad är en databas? Databaser. Relationsdatabas. Vad är en databashanterare? Vad du ska lära dig: Ordlista

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Grunderna för relationsmodellen!

Objektorientering Klasser

Objektorienterad programmering

729G04 Programmering och diskret matematik. Föreläsning 7

Design och konstruktion av grafiska gränssnitt

Kombinatorik Förenkla C(n+1,2)-C(n,2) och C(n+1,3)-C(n,3)

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Laboration 1 - Grunderna för OOP i Java

Malmö högskola 2007/2008 Teknik och samhälle

Joppes djurfamilj v2. Planering. Genomförande. Utvärdering och dokumentation

Databaser - Design och programmering. Programutveckling. Programdesign, databasdesign. Kravspecifikation. ER-modellen. Begrepps-modellering

Dåtid. Nutid. Framtid. Slutuppgift Kultur- och idéhistoria ESM08 och SP08B

Laboration 2 1DV416 Windowsadministraion I

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Uppmärkningsspråk. TDP007 Konstruktion av datorspråk Föreläsning 4. Peter Dalenius Institutionen för datavetenskap

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Trevlig helg Monika och Helene

LDAP i KK2.1. Innehåll. Sammanställt av Roland Hedberg Version: 1.0 Datum:

1(15) Bilaga 1. Av Projekt Neuronnätverk, ABB Industrigymnasium, Västerås Vt-05

Tentamen Programmeringsteknik 2 och MN Skrivtid: Inga hjälpmedel.

TDDC74 Lab 02 Listor, sammansatta strukturer

Laboration i datateknik

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

LEVA LIVET 3. Gunvor Petersson Lilian Nilsson. Arbetsblad

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 18

Produktöversikt BIsmart

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Alva ordnar loppis Lärarmaterial

samma sätt. Spara varje uppgift som separat Excelfil. För att starta Excel med Resampling-pluginet, välj Resampling Stats for Excel i Start-menyn.

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

MITT I REGNSKOGEN. Uppdrag för åk f-3. Välkommen till uppdraget Mitt i Regnskogen i Universeums Regnskog.

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webbtjänster med API er

Tvättstugebokning C200 EM C201 Mifare

Inlämningsuppgift MiniPlotter

OOP Objekt-orienterad programmering

Databaser design och programmering. Fö 2: Design processen, ER-modellering

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Tentamen i Introduktion till programmering

Försättsblad till skriftlig tentamen vid Linköpings Universitet

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

3 Hur ska vi uppfatta naturen?

Innehållet i Snomed CT en översikt

Övningsuppgifter kapitel 8

Människan och självkörande fordon. Mikael Ljung Aust, Volvo Cars

Spel som interaktiva berättelser. Mer teoretiserande!

Tentamen *:58/ID100V Programmering i C Exempel 3

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

Webbprogrammering, grundkurs 725G54

Lab5 för prgmedcl04 Grafik

Kursplanering för Mikrodatorteknik 4p/5p

VÅREN 2015 SNÖVIT 3-8 år lörd 17/1 kl:13:00 & 15:00 ons-tors 21-22/1 kl:9:30 lörd 24/1 kl:13:00 & 15:00 ons-tors 28-29/1 kl:9:30

DD

Transkript:

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

Översikt Laborationerna så här långt Genomgång av Laboration 4 Uppgift Förberedelser Kunskapsrepresentation Framesteori

Uppgi= Implementera ett frames-system Frames-struktur Ärvning Procedural attachments Diskussionsuppgift För VG: Utöka ert system till att stödja multipelt arv

Förberedelser Läs igenom laborationsinstruktionerna Läs om kunskapsrepresentation i R&N (kap. 12) Fokus på frames (kap. 12.5) Förstå frames-strukturen Bestäm domän att representera

Kunskapsrepresenta$on Viktigt inom många områden Robotik Expertsystem Semantic Web Representationstyper Representationsformat Labb 4 fokuserar på frames-system

Frames- system Används för att spara information hierarkiskt Frame-instanser representerar koncept eller objekt Information sparas som attributvärden Attribut hämtas och lagras på olika sätt Ärvning/inte ärvning Ersätt/lägg till Attributvärden kan Vara enkla eller sammansatta värden (strängar, tuplar, listor, etc.) Räknas ut via procedural attachments

Exempel Djur Fågel Kräldjur Amfibie Uggla Struts Krokodil Groda Padda Fjälluggla Molybdophanes Trevor Hedwig Ø Fåglar kan flyga ger ar Hedwig kan flyga. Ø Strutsar kan inte flyga ger ar Molybdophanes inte kan flyga Ø Det finns fem arter av struts. Det finns inte fem arter av Molybdophanes.

Huvudfunk$onalitet Lagra information om ramar och attribut store_frame store_attribute Lagra värden för attribut tell Fråga efter värden på attribut ask

KodskeleR Innehåller tre klasser Frame KnowledgeBase FrameSystem Användaren interagerar endast med systemet via fyra metoder som finns i FrameSystem OBS: I en version av skelettet låg procedural attachment-metoden i KnowledgeBase. Den ska egentligen ligga utanför klassen som en funktion!

KodskeleR: Arkitektur FrameSystem store_frame store_attribute ask tell local inherit add replace KnowledgeBase add_attribute add_frame get_attribute_methods get_frame 1 1 1 * Frame add_attribute_value replace_attribute_value get_attribute_value get_isa

Komma igång Hur samverkar klasserna? Vad gör de andra metoderna? Klurigheter I vilken ordning bör jag implementera mina metoder? Hur kontrollerar man att en metod fungerar när den är beroende av att andra redan finns implementerade? Hur hanterar man fel på bästa sätt?

Hur samverkar klasserna? Användaren kommunicerar bara med FrameSystem Kunskapsbasen lagrar både frames och attribut Utnyttjas av FrameSystem för att hämta frames och för att hantera atttribut på rätt sätt Information om hur ett attribut fungerar är inte samma sak som ett attributvärde Frame-instanser sparar information om ett visst koncept/objekt Innehåller metoder för att hämta och spara attributvärden Håller reda på föräldrarelationen (ISA)

Vad gör de andra metoderna? Både tell och ask kan utföras på två sätt. Vilken metod som väljs beror på attributet i fråga. Tell Ask replace Ersätt redan existerande värde add Lägg till ytterligare ett värde local Om inte värdet finns i denna frame så ge upp inherit Om inte värdet finns i denna frame så fråga föräldern Övriga metoder finns för att underlätta kommunikation mellan klasserna. Dessutom underlättar de felhanteringen.

Förslag på implementa$onsordning 1. Skapa och lagra frames för er domän 2. Specificera tillåtna attribut för er domän 3. Lagra värden på attribut Börja med replace och därefter add 4. Hämta värden på attribut Börja med lokala värden och fortsätt därefter med ärvning 5. Implementera er procedural attachment Exekvera metoden innan värdet returneras till användaren 6. Lägg till felhantering Förutse vilka fel som kan uppstå. Vad returneras och vad skrivs ut? Använd inte try-except

Hur kontrollerar man ar en metod fungerar? Användaren interagerar bara med frame-systemet via endast fyra metoder Men utvecklare kan komma åt klassattribut och metoder! Exempel: Kontrollera om store_frame fungerar: Skriv ut klassattributet i kunskapsbasen som håller reda på frames Kontrollera om klassen Frame fungerar: Skapa en frame utanför systemet och kontrollera att klassen fungerar som förväntat

Hur hanterar man fel på bästa sär? Förutspå fel Anta att användaren kommer att stava fel Anta att användaren kommer att göra saker i fel ordning Försök att hantera fel på så få ställen som möjligt Felutskrifter är bra för människor men inte maskiner. Returnera något om det blir fel så att andra saker som är beroende kan bli meddelade om att något gått snett. Syntaxfel behöver inte hanteras

Frame- system och Seman$c Web Semantic Web bygger på frame-system Attributvärden kan vara Enkla värden (text, siffror) Frames Referenserna/nycklarna till frames

Välja domän Bestäm er för en domän att representera i frame-systemet Domänen ska vara lämplig att representera hierarkiskt Några förslag på domäner: Böcker, växter, fordon, mat, dryck, djur, geografisk information Definiera lämpliga attribut Vilka kan ärvas och vilka ka inte ärvas? För vilka attribut tillåts flera värden? Rita upp er domän som ett klass- eller UML-diagram Fundera över en procedural attachment. Metoden ska bidra till framesystemet på något sätt!

Live- kodning Kolla in skelettet Visa förväntad output Visa hur metoder kan sparas i variabler och exeveras

www.liu.se