Kennisacquisitie en - modellering Rogier van Eijk college 4 Domeinmodellering en elicitatie.

Post on 24-May-2015

219 views 0 download

Transcript of Kennisacquisitie en - modellering Rogier van Eijk college 4 Domeinmodellering en elicitatie.

Kennisacquisitie en -modellering

Rogier van Eijk

college 4 Domeinmodellering en elicitatie

Vorige keer: taaktypen en taakmethoden

knowledge-intensive

task

analytictask

classification

synthetictask

assessment

diagnosis

configurationdesign

planning

scheduling

assignment

modelling

prediction

monitoring

design

Vandaag:

• Hoe het domein te modelleren?

• Activity diagrams: Notaties

• Begrijpen van elicitatietechnieken

DOMEINMODELLEREN

Soorten kennis

• Taakkennis– doelgericht– onderverdeeld in functionele stappen

• Domeinkennis– relevante domeinkennis

• Inferentiekennis– basis redeneerstappen die in het domein gemaakt

kunnen worden en die door taken worden toegepast

Kennismodel: overzicht

Disease(type)

Symptom(type)

Test(type)

cover(inference)

verify(inference)

DIAGNOSIS(task)

Task knowledge task goals task decomposition task method

Inference knowledge basic inferences roles

Domain knowledgedomain typesdomain rulesdomain facts

Taakbeschrijving

• “De auto doet het niet. Ik voorzie op dit moment twee voor de hand liggende oorzaken: De benzine is op of de accu is leeg. Als de benzine op is dan zou de benzinemeter op nul moeten staan. Als de accu leeg is dan zou het acculampje op het dashboard moeten branden. Of de auto zou met behulp van een startkabel weer aan de praat gebracht moeten kunnen worden. Een lege accu komt veel vaker voor dan een lege benzinetank. Ik kijk op het dashboard, maar het acculampje brandt niet. Dan probeer ik de auto via een startkabel aan de gang te krijgen. Dat lukt!”

Domeinschema voor auto’s

Grote domeinschema’s

Domeinschema’s

• Domeinschema’s kunnen snel heel groot worden.

• Hoe houd je ze in bedwang?

Gebruik de taakmethode

Domeinschema voor auto-diagnosecar state

status: universalobservable: boolean

invisiblecar state

observable: {false}

visiblecar state

observable: {true}

car observable

value: universal

fuel tank

status: {full, almost-empty, empty}

battery

status: {normal, low}

fuse

status: {normal, blown}

gas in engine

status: boolean

power

status: {on, off}

engine behavior

status: {normal, does-not-start, stops}

fuse inspection

value: {normal, broken}

gas dial

value: dial value

battery dial

value: dial-value

domein schema voor diagnose

systemfeature

systemobservable

value: universal

systemstate

status: universal

fault

prevalence: number[0..1]

systemstate

systemfeature can cause

causaldependency

Configuration: domeinschema

design element

parameter

value: universal

component

model list: list

fix action

action type

constraint

designelement

component

calculationexpression

constraintexpression

computes

implies

1+

1+

1+

1+ fix

has-parameter

0+

definespreference

preference

rating: universal

preferenceexpression

1+

Domeinkennis

• Domeinschema– Schematische beschrijving van het domein door middel

van domeinconstructen (zoals concepten)

• Kennisbank– Instanties van constructen uit het domeinschema

Constructen voor het domeinschema

• Concept– cf. object class (zonder methoden)

• Relatie– cf. association

• Attribuut– primitieve waarde

• Rule type– Relaties tussen expressies (niet standaard OO)

Voorbeeld auto concepten

VALUE-TYPE dial-value; VALUE-LIST: {zero, low, normal}; TYPE: ORDINAL;END VALUE-TYPE dial-value;

CONCEPT gas dial; ATTRIBUTES: value: dial-value;END CONCEPT gas-dial; CONCEPT fuel-tank;

ATTRIBUTES status: {full, almost-empty, empty};END CONCEPT fuel-tank;

gas dial

value: dial-value

fuel tank

status: {full, almost-empty, empty}

Sub/super en part/whole

• ouder– vader of moeder– disjunctieve combinatie– sub/supertype

• ouders– vader en moeder– conjunctieve combinatie– part/whole

Example: auto subtypes

car state

status: universalobservable: boolean

invisiblecar state

observable: {false}

visiblecar state

observable: {true}

car observable

value: universal

fuel tank

status: {full, almost-empty, empty}

battery

status: {normal, low}

fuse

status: {normal, blown}

gas in engine

status: boolean

power

status: {on, off}

engine behavior

status: {normal, does-not-start, stops}

fuse inspection

value: {normal, broken}

gas dial

value: dial value

battery dial

value: dial-value

Modelleren van regels

• Kennis wordt vaak uitgedrukt in regels

• Kennismodelleren is er op gericht om regels te vinden die een gezamenlijke structuur hebben

• Een regel is dan een instantie van een regeltype

Structuring a knowledge base

Rule 1: IF ... THEN ...

Rule 2: IF ... THEN ...

Rule 3: IF ... THEN ...

Rule 12: IF ... THEN ...

Rule 4: IF ... THEN ...

Rule 5: IF ... THEN ...

Rule 6: IF ... THEN ...

Rule 7: IF ... THEN ...

Rule 8: IF ... THEN ...Rule 9: IF ... THEN ...Rule 10: IF ... THEN ...Rule 11: IF ... THEN ...

<plus many others>

single flat knowledge base

multiple rule setscontaining rules

with similar structure

rules of type A

rules of type D

rules of type B

rules of type C

Regeltype

• Modelleert een relatie tussen expressies over attribuutwaarden van concepten, bijv:

gas-dial.value = zero -> fuel-tank.status = empty

• Staat voor een verzameling concrete regels die een gezamenlijke structuur hebben

• Omdat regels niet strict logisch hoeven te zijn bevat het ook een zogenaamd ‘connection symbol’

Example rule type

loanconstraint

restricts

person.income <= 10,000 RESTRICTS loan.amount <= 2,000

person.income > 10,000 AND person.income <= 20,000 RESTRICTS loan.amount <= 3,000

person

name: stringincome: integer

loan

amount: integerinterest-rate: number

1+

Structuur van regeltypen

<antecedent> <connection-symbol> <consequent>

Rule types for car diagnosis

invisiblecar state

car state

car observable

invisiblecar state

manifestationrule

statedependency

causes

hasmanifestation

1 1

11

Kennisbank

• Regeltypes staan in het domeinschema• Regels in de kennisbank

• Bevat instanties (regels) van regeltypen

• structuur– USES: <types used> from <schema>– EXPRESSIONS: <instances>

Voorbeeld kennisbank

KNOWLEDGE-BASE car-network; USES: state-dependency FROM car-diagnosis-schema,

manifestation-rule FROM car-diagnosis-schema; EXPRESSIONS:

/* state dependencies */ fuse.status = blown CAUSES power.status = off;

battery.status = low CAUSES power.status = off; ….

/* manifestation rules */ fuse.status = blown HAS-MANIFESTATION

fuse-inspection.value = broken; battery.status = low HAS-MANIFESTATION

battery-dial.value = zero; …..END KNOWLEDGE-BASE car-network;

Begrijp de schema’s uit het boek

design element

parameter

value: universal

component

model list: list

fix action

action type

constraint

designelement

component

calculationexpression

constraintexpression

computes

implies

1+

1+

1+

1+ fix

has-parameter

0+

definespreference

preference

rating: universal

preferenceexpression

1+

ACTIVITY DIAGRAMSPracticum

Action state

• Basisingredient

• Toestand waarin iets gedaan / een taak uitgevoerd wordt

• Toetstand eindigt als de taak klaar is

• Dan kan er een overgang plaatsvinden naar een nieuwe taak

• Er zijn speciale symbolen voor de begintoetstand en de eindtoestand

Basic notation for activity diagram

data entry

processinggenerateoutput

Keuze

• Overgangen zijn deterministisch

• Als een overgang afhangt van de resultaten van een activiteit voeg dan een keuze-constructie toe.

data entry

dump in waste basket

furtherprocessing

[data correct]

[data incorrect]

Parallelle activiteiten

• Als activiteiten tegelijkertijd plaatsvinden voeg dan de constructie voor parallelle activiteiten toe

• Zorg dat het duidelijk is wanneer de parallelliteit weer ophoudt.

Parallelle activiteitenbuy food

and drinks

cook dinneropen wine

bottle

have dinner

Swim lanes

• Als een proces over meerdere agents gedistribueerd is maak dan gebruik van zogenaamde swim lanes.

• Laat voor elke agent zien hoe deze bij het proces betrokken is.

Swim laneswrite tender

get customerinformation

SALESDEPARTMENT

calculatecost

DESIGNDEPARTMENT

designelevator

Objecten

• Als er informatie-afhankelijkheden tussen activiteiten zijn kun je deze door middel van objecten in het actitivity diagram weergeven

Informatie- afhankelijkheden

standarddesign

write tender

get customerinformation

SALESDEPARTMENT

decide about design type

customdesign

costcalculation

elevatordesign

DESIGNDEPARTMENT

non-standard standard

CUSTOMER

tender

customerinformation

Ander voorbeeldprimaryprocess

secondaryprocess

data entryof applications

magazineproduction

applicationassessment

residenceassignment

statisticalanalysis

policyinformation

:residenceassignments

Activity diagram voor taakmethodes

cover

predict

obtain compare

[no more solutionsof cover]

[new solutionof cover]

[result = equal]

[result = not equal]

solution found

no solution found

startdiagnosisthrough

generate-and-test

ELICITATIE

KAM

• Elicitatietechnieken: laddering, card sorting, repertory grid.

Repertory grid

George Kelly: “Elke mens is een wetenschapper”

Repertory Grid

• Basismechanisme:• vergelijk steeds 3 elementen• waarop zijn twee gelijk en verschillen ze van de

derde?

• Eliciteert constructen• scalair en bipolair

Voorbeeld

Repertory Grid

• Pas toe op:1. appel, citroen, sinaasappel2. appel, citroen, banaan3. bloemkool, citroen, banaan4. Gordon, Jeroen van der Boom, Rene Froger5. diagnose, monitoring, assignment6. diagnose, monitoring, assessment7. repertory grid, concept sorting, protocol

analysis

Repertory grid

• Hoe komt de knowledge acquisiteur aan de geschikte elementen?

• En hoe worden deze gepresenteerd?

En nu andersom

• Vul aan met een interessant 3e element:• waarom interessant?

1. havik, valk, …2. tahoe, tempeh, … 3. assignment, scheduling, … 4. accu, benzinetank, …

Opdracht

• Jurjen stelt de volgende variatie op ‘repertory grid’ voor: neem in plaats van groepjes van drie elementen (‘triads’) steeds groepjes van twee elementen.

• Welke effecten heeft dit op het elicitatieproces?

firma interview – part 3

http://www.youtube.com/watch?v=FfxHwaFlqTM

http://www.cs.uu.nl/docs/vakken/kam

Week 46

Week 47

Week 48

Week 49

Week 50

Week 51

Week 52

Week 1

Week 2

Week 3

Week 4

Week 5

College 1

Geen college + opdracht 1

College 2 + opdracht 2

College 3

College 4 + opdracht 3

College 5

kerstvakantie

herkansingweek

Geen college + Opdracht 4

College 6 Roel van den Broek

Eindpresentaties + eindrapport

Tentamen