inference mechanisms
Download
Skip this Video
Download Presentation
Inference mechanisms

Loading in 2 Seconds...

play fullscreen
1 / 6

Inference mechanisms - PowerPoint PPT Presentation


  • 105 Views
  • Uploaded on

Inference mechanisms. • Backward chaining - goal-driven reasoning which gathers data as needed - Prolog's default mechanism - good for identification problems • Forward chaining - data-driven reasoning which must be initialized with all data values

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Inference mechanisms' - maxim


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
inference mechanisms
Inference mechanisms

• Backward chaining

- goal-driven reasoning which gathers data as needed

- Prolog's default mechanism

- good for identification problems

• Forward chaining

- data-driven reasoning which must be initialized with all data values

- system refines problem state towards solution state

- good for configuration problems

misc prolog notes
Misc Prolog notes

1. With Sicstus prolog, need to do either a "nl" or a "ttyflush"

command in order to see output on screen before a read

- these commands flush the output buffer (similar things happen in C)

2. With Prolog's "read", a capitalized word will be interpreted as a variable.

eg. read(X) --> enter Yes means X is unified with variable Yes

enter 'Yes' unifies X with constant 'Yes'

enter yes unifies X with constant 'yes'

separation of kb and shell
Separation of KB and shell

• Important to separate declarative KB code from procedural shell utilities

- knowledge base can then be used by other inference schemes

- shell can be altered and made as flexible as one needs, w/o touching KB

- Basically, put each into distinct files.

• In Merritt "bird" system, one line in KB is:

top_goal(X) :- bird(X).

• Then, shell always executes "top_goal(X)".

--> this gives a hook between KB and shell

bowen toy system
Bowen Toy system

• from “Prolog and Expert Systems”, K.A. Bowen (McGraw Hill)

• similar in spirit to Bird

• he handles some things differently

eg. to keep track of similar input words: synonym(pain, severe_pain).

synonym(pain, numb_pain).

...

then you can check synonym for user input X by doing: ?- synonym(S, X).

• he also uses setof(V, synonym(pain,V), Vlist)

--> returns Vlist = [severe_pain, numb_pain, ...]

- setof(Template, Goal, List): successively solves Goal, and saves

variables shared between Goal and Template in List, using Template

- sorts List, and removes duplicates

- Template is a term: a variables, or even a structure eg. p(X,Y)

• bagof: similar, except that it keeps all solutions in the order discovered,

and doesn't sort nor remove duplicates

friendly user input
Friendly User Input

• Prolog's Input-Output is too unfriendly and unforgiving

• should develop a library of user-friendy I/O

• expert system interface:

- users may have little or no computer background

- users may have little or no background in domain area

- recover from errors (typing, misunderstandings, ...)

- avoid unnecessary dialog

- remember input

- use menus

- perhaps remember input from different sessions

- keep a history database

- provide various levels of explanation and help

summary
Summary

• The knowledge base and shell utilities are separate.

• The knowledge base is declarative.

It can be processed by any kind of inference system.

It is easily modified.

• The system prompts user for facts. It remembers input.

• Menu input is used.

• Note that, although shell utilities are procedural, it is possible

to write declarative utilities. This is an ideal, but they might be

inefficient.

• possible enhancements:

- Better text messages for queries

- more error checking

- numeric input with menus (see handout)

- *** explanation ***

ad