A Prolog expert system (APES) supporting querying and extending the knowledge base from a command-line interface using a format oriented on natural language, with the aim of being maintainable by the domain expert (i.e. without requiring programming skills).
The system can be queried like this: "What is
Object-01?"
or "Is Object-A a bird?"
. The sytem will search
the rules and facts in the knowledge base and request missing facts from
the user. When a solution is found, the inference that lead to the
conclusion (i.e. the used rules and facts) and additional solutions can
be displayed.
In a similar manner the knowledge base can be extended from the
command-line interface: "if animal has backbone and animal
has cold-blood then animal is a reptile."
adds a new rule using facts
(indicated by "has"
) that will be searched for and asked
from the user. The added rules can be used in rules again (using "is
a"
): "if animal is a reptile and animal has enormous-size
and animal has hollywood-fame then animal is a godzilla."
, now when the
system is queryed "is Object-A a godzilla?"
it will first
try to satisfy the rule for reptile that was entered before.
The input format is defined as a Definite Clause Grammar (DCG), a grammar description language built into Prolog, and is therefore well-defined and extensible. The knowledge is represented in text files containing Prolog predicates with defined operators to make it a domain-specific language which is not too far from the actual input format, making it maintainable by the domain expert without requiring Prolog or general programming skills.
This leads to the core idea and goal: An expert system where the knowledge base can not only be queried by the domain expert, but can also be built and maintained without requiring programming skills, making this a non-domain-specific expert system that could be used to built expert systems for any domain by experts in that particular domain, not by programmers.
This site was created on 2006-05-19 and last modified on
2009-02-22 by
Fabian Steeg