Expert Systems?

Herve Proudhon herve.proudhon at
Wed Oct 9 06:08:01 EDT 2002

I developed and maintained an expert system on asthma management 
(AsthmeExpert) during more than ten years. (this was an academic project 
which stopped only a few weeks ago). This system was originally designed 
for hospital experts and is routinely used (currently 1800 patients with 
4000 visits).

The system was first created with Nexpert Object on Sun then 
NexpertObject with an Hypercard front-end on Macintosh, then Hypercard 
alone, and lastly Metacard alone.

It includes :
    - a fact database. The data format is very simple (text files in the 
first version, custom properties in the second one - an external 
database is certainly preferable). Data are entered via usual controls 
on cards.
    - an inference engine, hard-coded in Metatalk, which records deduced 
facts in the database (see later).
    - various tools : report generator, presentation tools, bibliographic 
and iconographic modules, data analysis and export tools, case study ...

AsthmeExpert includes about 800 production rules (or equivalent) dealing 
with 1500 facts (given and deduced).
There are no speed problems in Metacard.  The whole deduction process 
and report building is terminated within a few seconds in the most 
complex cases. Although directed programmed in Metatalk, the rules are 
easy to write and debug thanks to the language readability.

The use of Metacard was possible because :
    - the system is based on propositional logic only, which can be 
easily coded in conventional languages like xtalks.
    - we need to record complete patient cases (we don't need an 
"intelligent" bevaviour during data entry), so all available data for a 
patient visit are collected before the inference engine runs.
    - the knowledge can be described sequentially : clinical data are 
first processed, then examinations and lastly prescriptions.
    So the inference engine can be easily hard-coded because it has all 
the available data and the sequence of deductions is predictable.
     - time management is limited because each visit is mainly considered 
separately with only a few added time predicates (“the last value”, the 
last available value, “the highest value during the last year”, etc ...)
     - perhaps the fact that the first design was made with Nexpert 
     - Metacard is a wonderful programming tool !

In my experience (and in the narrow limits I described), the main 
problems are not technical but are in the validation process and the 
expertise transfer :
    - how to extract the knowledge from experts
    - how to structure the knowledge (choice of intermediate goals) to 
avoid exponential and completeness problems.

Best regards,

Herve Proudhon

Diondine, a nutrition software

More information about the use-livecode mailing list