26.12.2013 Views

AI - a Guide to Intelligent Systems.pdf - Member of EEPIS

AI - a Guide to Intelligent Systems.pdf - Member of EEPIS

AI - a Guide to Intelligent Systems.pdf - Member of EEPIS

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

310<br />

KNOWLEDGE ENGINEERING AND DATA MINING<br />

Mac system start-up, the first clause <strong>of</strong> all rules will identify this task. For<br />

example,<br />

Rule: 1<br />

if task is ‘system start-up’<br />

then ask problem<br />

Rule: 2<br />

if task is ‘system start-up’<br />

and problem is ‘system does not start’<br />

then ask ‘test power cords’<br />

Rule: 3<br />

if task is ‘system start-up’<br />

and problem is ‘system does not start’<br />

and ‘test power cords’ is ok<br />

then ask ‘test Powerstrip’<br />

All the other rules will follow this structure. A set <strong>of</strong> rules <strong>to</strong> direct<br />

troubleshooting when the Mac system does not start (in Leonardo code) is<br />

shown in Figure 9.3.<br />

Now we are ready <strong>to</strong> build a pro<strong>to</strong>type, or in other words <strong>to</strong> implement the<br />

initial set <strong>of</strong> rules using an expert system development <strong>to</strong>ol.<br />

How do we choose an expert system development <strong>to</strong>ol?<br />

In general, we should match the features <strong>of</strong> the problem with the capabilities <strong>of</strong> the<br />

<strong>to</strong>ol. These <strong>to</strong>ols range from high-level programming languages such as LISP,<br />

PROLOG, OPS, C and Java, <strong>to</strong> expert system shells. High-level programming<br />

languages <strong>of</strong>fer a greater flexibility and can enable us <strong>to</strong> meet any project requirements,<br />

but they do require high-level programming skills. On the other hand, shells,<br />

although they do not have the flexibility <strong>of</strong> programming languages, provide us with<br />

the built-in inference engine, explanation facilities and the user interface. We do not<br />

need any programming skills <strong>to</strong> use a shell – we just enter rules in English in the shell’s<br />

knowledge base. This makes shells particularly useful for rapid pro<strong>to</strong>typing.<br />

So how do we choose a shell?<br />

The Appendix provides some details <strong>of</strong> a few commercial expert systems shells<br />

currently available on the market. This can help you <strong>to</strong> choose an appropriate<br />

<strong>to</strong>ol; however the internet is rapidly becoming the most valuable source <strong>of</strong><br />

information. Many vendors have Web sites, and you can even try and evaluate<br />

their products over the Web.<br />

In general, when selecting an expert system shell, you should consider how<br />

the shell represents knowledge (rules or frames), what inference mechanism it<br />

uses (forward or backward chaining), whether the shell supports inexact reasoning<br />

and if so what technique it uses (Bayesian reasoning, certainty fac<strong>to</strong>rs or<br />

fuzzy logic), whether the shell has an ‘open’ architecture allowing access <strong>to</strong>

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!