Back in 1990, since my goal back then was to develop a chess playing computer algorithm using prolog, as part of my research, I stumbled into Max Bramer’s book Computer Game Playing: Theory and Practice.  In that book there was a chapter by Ivan Bratko called Knowledge-based problem-solving in AL3, which according to the book the article appeared in Machine Intelligence 10.  In summary the AL3 system was basically a production system for chess problem using the Donald Michie Advice Language concept and utilizing Bratko’s IF condition THEN action rule concept.  At that moment of time, many of the concepts presented in the paper were foreign to me, and unbeknownst to me, many of the ideas are presented in Bratko’s AI book (1990).

Back to the present, I had ordered Bratko’s book (1990) via Amazon as a used book.  The game playing chapter discussed the advice language concept.  He presents the advice language 0 with working code for Edinburgh Prolog.  So I took the time to copy the code from the text and test.  I ran into syntax errors as usual.  However, after the correcting the syntax error, I ran into some run time error, which I had no working knowledge of correcting.  So, therefore, I thought it was not possible to utilize the IF condition THEN action structure.  After all, Luger did not use that type of structure in defining rules utilizing the rule predicate in his expert system examples, which worked quite well during my testing last year.  Also, the AMZI prolog website has an expert system shell, which used standard horn clauses for the rules in the knowledge base.

In my next experiments I took the original code and tested with UNSW4 Prolog – I discovered the IF condition THEN action rules did work, but also noticed the interperter returned all the possible solutions, unlike the SWI prolog which returned the first solution.  This behavior caused the selectors to fail, which lead to the display of the position diagrams to only show just ‘.’ in the screen.  Thus, I had to abandon this prolog.

As I was looking to change the AL0 code to reflect more modern approaches, I was in the google website,  looked in the advance search, and there was a new code search option.  I entered Advice Language, and the result was  sites with word Advice or Language, then there was a link to Bratko’s code for his AI book’s third edition.  Although the link to site was no longer available, Google had a copy of the Bratko.zip file.  In the zip file, a file called chess.pl was present.  I studied it, copied the listing, and uploaded file into my test environment.  I ran a successful test using the examples in the code.  So I decided to compare the code with I had in my files; I discovered that had many typographical errors in source code.  After getting everything corrected in my source files, I ran successful test using my example using a combined file of all three files.

Unfortunately, there was no documentation on how to respond to the input.  According to the code, it uses the read/1 predicate, which, according to the SWI-Prolog manual and the ISO Prolog website, it means the read predicate reads terms.  After some determination and guessing, I realized the input had to terminate with a period.  For example, the king move is written as ‘3:2-4:2.’ without the quotation marks and followed by the return key.  This is not exactly as expected with other programming languages; the older Edinburgh see predicate was more useful.

According to Bratko, the IF condition THEN action structure came from the MYCIN expert system.  One of the criticisms of expert systems is its inability to expand the knowledge base.  Although various authors have presented solutions such as UI for an expert to add new rules.  However, the expert would have to work within the constructs of language.  Such an example is the work by David Wilkins with his PARADISE system.  In this system, a production language was created so that chess positions can be solved.  Once again a chess expert, preferably a grandmaster, is required and ensure the production rules work in all situations.  In both above situations, a meta-interperter with a natural language parser (NLP) is another possible design.

In conclusion, the Advice Language has not been widely utilized as hoped by the researchers.  Promising research by Eduardo Morales with his PAL system used an ILP approach to solving chess problem using knowledge and horn clauses.

Post a Comment

*
*