Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!linus!vaxine!wjh12!genrad!decvax!harpo!seismo!hao!hplabs!sri-unix!STEINBERG@RUTGERS.ARPA From: STEINBERG@RUTGERS.ARPA Newsgroups: net.ai Subject: Re: Stolfo's call for discussion Message-ID: <545@sri-arpa.UUCP> Date: Sun, 1-Apr-84 22:35:06 EST Article-I.D.: sri-arpa.545 Posted: Sun Apr 1 22:35:06 1984 Date-Received: Tue, 10-Apr-84 07:34:12 EST Lines: 34 From: Louis Steinberg One way AI programming is different from much of the programming in other fields is that for AI it is often impossible to produce a complete set of specifications before beginning to code. The accepted wisdom of software engineering is that one should have a complete, final set of specifications for a program before writing a single line of code. It is recognized that this is an ideal, not typical reality, since often it is only during coding that one finds the last bugs in the specs. However, it is held up as a goal to be approached as closely as possible. In AI programming, on the other hand, it is often the case that an initial draft of the code is an essential tool in the process of developing the final specs. This is certainly the case with the current "expert system" style of programing, where one gets an expert in some field to state an initial set of rules, implements them, and then uses the performance of this implementation to help the expert refine and extend rules. I would argue it is also the case in fields like Natural Language and other areas of AI, to the extent that we approach these problems by writing simple programs, seeing how they fail, and then elaborating them. A classic example of this seems to be the R1 system, which DEC uses to configure orders for VAXen. An attempt was made to write this program using a standard programming approach, but it failed. An attempt was then made using an expert system approach, which succeeded. Once the program was in existence, written in a production system language, it was successfully recoded into a more standard programming language. Can anyone out there in net-land confirm that it was problems with specification which killed the initial attempt, and that the final attempt succeeded because the production system version acted as the specs?