590 likes | 708 Views
Kennisacquisitie en - modellering Rogier van Eijk. college 5 Inferentie en communicatie. Kennismodel: overzicht. Task knowledge task goals task decomposition task method. DIAGNOSIS. (task). Inference knowledge basic inferences roles. cover. verify.
E N D
Kennisacquisitie en -modelleringRogier van Eijk college 5 Inferentie en communicatie
Kennismodel: overzicht Task knowledge task goals task decomposition task method DIAGNOSIS (task) Inference knowledge basic inferences roles cover verify (inference) (inference) Domain knowledge Symptom Disease Test domain types (type) (type) (type) domain rules domain 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!”
taakmethode in CML CONTROL-STRUCTURE: REPEAT cover(complaint -> hypothesis); predict(hypothesis -> expected-finding); obtain(expected-finding -> actual-finding); evidence := evidence ADD actual-finding; compare(expected-finding + actual-finding -> result); UNTIL "result = equal or no more solutions of over"; END REPEAT IF result == equal THEN fault-category := hypothesis; ELSE "no solution found"; END IF
Overzicht • iedereinferentieuit de taakmethode • heeftkennisrollen • die worden via domain mappings • aanconcepten en regeltypesgekoppeld • waarvan de daartoebehorendeinstanties (feiten en regels) in de kennisbankstaan. • alshulpmiddeldaarbijgebruiken we eeninferentiestructuur met annotaties
Van taakmethodenaarinferentiestructuur CONTROL-STRUCTURE: REPEAT cover(complaint -> hypothesis); predict(hypothesis -> expected-finding); obtain(expected-finding -> actual-finding); evidence := evidence ADD actual-finding; compare(expected-finding + actual-finding -> result); UNTIL "result = equal or no more solutions of over"; END REPEAT IF result == equal THEN fault-category := hypothesis; ELSE "no solution found"; END IF
Een inferentie … • is een atomaire redeneerstap.
Inferentie • De algemene vorm van een inferentie is als volgt: inferencen input: a output: b static: r
observable hypothesis specify system model In grafischenotatie
Maakhiervaneeninferentiestructuur while new-solution cover(complaint -> hypothesis) do differential := hypothesis add differential; end while repeat select(differential -> hypothesis); specify(hypothesis -> observable); obtain(observable -> finding); evidence := finding add evidence; for each hypothesis in differential do verify(hypothesis + evidence -> result); if result == false then differential := differential subtract hypothesis until size differential =< 1 or “no more observables left” faults := differential;
dynamic input role inference dynamic output role observable hypothesis specify system static role model Kennisrollen
Kennisrol in CML INFERENCE cover; ROLES: INPUT: complaint; OUTPUT: hypothesis; STATIC: causal-model; SPECIFICATION: "Each time this inference is invoked, it generates a candidate solution that could have caused the complaint. The output thus should be an initial state in the state dependency network which causally ``covers'' the input complaint."; END INFERENCE cover;
dynamic domain mappings in CML KNOWLEDGE-ROLE complaint; TYPE: DYNAMIC; DOMAIN-MAPPING: visible-state; END KNOWLEDGE-ROLE complaint; KNOWLEDGE-ROLE hypothesis; TYPE: DYNAMIC; DOMAIN-MAPPING: invisible-state; END KNOWLEDGE-ROLE hypothesis;
static domain mapping in CML KNOWLEDGE-ROLE causal-model; TYPE: STATIC; DOMAIN-MAPPING: state-dependency FROM car-network; END KNOWLEDGE-ROLE causal-model;
kennisbank met regels 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;
Wat is een regel? • Binnen KAM beschouwen we regels van de vorm: als … dan …
Wat is een regel? • De algemene manier van noteren van regels is: a b • Een regel brengt twee zaken met elkaar in verband: a heet 'antecedent' en b'consequent'
Elicitatie: De waaromvraag • Kinderen in een bepaalde leeftijdscategorie zijn er heel goed in A: Waarom b? E: Omdat a! • waarmee de regel a b boven tafel is gekomen.
Regels • hebben een richting. • maar ze kunnen ook in de omgekeerde richting worden gebruikt. • er zijn verschillende soorten redeneringen. We onderscheiden: deductie, abductie en inductie.
Deductie • is het toepassen van een algemene regel op een specifiek geval: a en a b dus b
Abductie • is het in omgekeerde richting toepassen van een algemene regel op een specifiek geval: b en a b dus a
Inductie • is het vormen van een algemene regel op basis van een aantal specifieke gevallen.
Modelleren van regels Connection symbols
Connectionsymbols • In CommonKADS komen onder andere de volgende relaties tussen a en b voor: • causation • manifestation • indication • implication • bstraction • …
Causation • is de oorzaak-gevolgrelatie. Het één is de oorzaak van de ander, de ander is het gevolg van het één.
Manifestation • Manifestation betreft de relatie tussen oppervlakkige of direct observeerbare eigenschappen en dieperliggende of niet direct observeerbare eigenschappen. • Het een manifesteert zich als de ander. De ander is een manifestatie van het één.
Implication en indication • zijn algemener van aard • Bij indicationduidthet één op de ander. • Bij implication is het één een logisch gevolgvan de ander. • Indication is zwakker dan implication
Abstraction • Bij abstraction is het één een abstractie van de ander, d.w.z. bevat informatie van een hogere graad van abstractie.
Dus schrijf geen ‘a b’ maar: a CAUSES b a HAS MANIFESTATION b a INDICATES b a IMPLIES b a HAS ABSTRACTION b …
Opdracht: Vul in • x is 67 jaar oud … x is 65+-er. • x is een mannetje … x heeft oranje vleugelpunten • x heeft iets verkeerds gegeten … x heeft last van buikpijn
Communicatie met de buitenwereld Transferfuncties
Transferfuntie • verschil met inferentie? • geen statische kennis! • als er redeneren aan te pas komt dan gebeurt dit buiten het kennissysteem.
attribute obtain feature Transferfunctie • Een transferfunctie is onderdeel van de taakmethode van het kennismodel • Het is een abstractie van de communicatie met de buitenwereld. • Typen: receive, obtain, provide, present
Nogmaals • inferentie • kennisrollen • domain mappings • regeltype • regels
hypothesis complaint cover causal model Hoe koppelen? ? fuel-tank.status = empty CAUSES engine-behaviour.status = does-not-start battery.status = low CAUSESpower.status = off
consequent antecendent rule type verzin een naam: ‘state-dependency’ connection symbol fuel-tank.status = empty CAUSES engine-behaviour.status = does-not-start battery.status = low CAUSES power.status = off
Definitie van regeltype RULE-TYPE state-dependency ANTECEDENT: invisible-car-state CONSEQUENT: car-state CONNECTION-SYMBOL: CAUSES