herve.proudhon at medecine.univ-mrs.fr
Wed Oct 9 06:08:01 CDT 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
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
- 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.
Diondine, a nutrition software
More information about the use-livecode