| Deutsch English Français Italiano |
|
<2025Jan5.094909@mips.complang.tuwien.ac.at> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail
From: anton@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Expert systems in forth
Date: Sun, 05 Jan 2025 08:49:09 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 88
Message-ID: <2025Jan5.094909@mips.complang.tuwien.ac.at>
References: <069d1724f6056b4c36d9e1ffaa3d606d@www.novabbs.com> <a489c8f27620718e4eb53a7fd349040e@www.novabbs.com> <b535bfcb55635df60139b1842074ebc4@www.novabbs.com> <d30f7d0abe74cbfd703742036441c630@www.novabbs.com>
Injection-Date: Sun, 05 Jan 2025 10:47:26 +0100 (CET)
Injection-Info: dont-email.me; posting-host="f49e48ee6e609beb7f510050b181a33b";
logging-data="1034467"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX186MhjiuXyEUWHCUGu9Ct2w"
Cancel-Lock: sha1:6UO/Fs6t8L7P++678+uzh1N2ruA=
X-newsreader: xrn 10.11
Bytes: 4113
minforth@gmx.net (minforth) writes:
>Thank you for sharing your outstanding work here!
>
>I don't think I understand the details of your program
>but it seems to me way simpler than the famous Warren
>Abstract Machine.
That would not surprise me, because Ahmed Melahi is implementing an
expert system framework, not Prolog (the progamming language for which
the WAM was designed). Like for all other expert system examples I
have seen (several, but no production expert systems), the examples do
not include any logic variables, and I guess that his system does not
support them; the majority of the complexity of implementing Prolog
and of the WAM comes from dealing with logic variables, which can
contain structures that themselves contain logic variables.
OTOH, Ahmed Melahi's expert system framework supports forward
chaining, while Prolog does not.
Another difference is that Prolog uses the closed-world-assumption (if
there is no fact for <something>, <something> is false), while Ahmed
Melahi's framework (and expert systems in general) asks the user for
input when it does not have a fact about <something>.
Unlike expert systems examples I have seen earlier, where the rules
led to a decision tree, trying some example leads to asking
apparently-redundant questions (not answering "yes" is the same as
answering "no"), e.g.:
verify: feathers <---
verify: wings <---
verify: lay-eggs <---
verify: hair <--- yes
apparently,
apparently,
verify: eat-vegetals <---
verify: eat-meat <--- yes
apparently,
apparently,
verify: hoofs <--- yes
apparently,
apparently,
verify: swim <--- yes
verify: black&white <---
verify: bird <---
verify: long-neck <---
verify: not-fly <--- yes
verify: black-stripes <---
verify: tawny-color <---
verify: herbivore <---
verify: long-legs <---
verify: dark-spots <---
verify: fly-well <---
verify: fly <---
apparently,
final result:
-------------
finally, ok
It seems that these additional questions are from having alternative
rules for the same thing, e.g.:
s" bird :- feathers .;"
>rules
s" bird :- wings , lay-eggs .;"
>rules
However, given that I answered "" (i.e., "no") to wings, there is no
reason for the system to ask me "lay-eggs". So I think that the
redundant questions are not just due to alternative rules, but also a
shortcoming of the system. Finally, the system could have found out
earlier (and printed more clearly that it knows of no animal that has
the properties that I answered with "yes". As for the animal
database, the Platypus would be an interesting addition.
- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: https://forth-standard.org/
EuroForth 2024: https://euro.theforth.net