GIS World

February 1994, p. 62

GIS by Demonstration

reviewed by Nigel Waters

this review is used with the permission of, and is copyrighted by, GIS World

"Any business person will tell you that personal computers are still too difficult to use. Why can't people inside the industry see that?"
-W S. Mossberg

In the above statement, one could easily substitute "GIS" for "personal computers." Many GIS users are end users and want to program their own systems without having to learn all the arcane details of an obscure programming language. They are professionals or entrepreneurs in their own field and want to to able to use their GIS as a tool to do their old job more effectively and to produce new products and new forms of analysis that were impossible without the GIS. They are not professional programmers. It is their hope that whoever programmed the GIS in the first place designed it so they can do their job more efficiently.

Automation Aids

Cypher (1993) notes that there are four approaches used to assist end users in automating the repetitive and complex tasks that occur when operating a program like a GIS: Preferences, Scripting Languages, Macro Recorders and Programming by Demonstration.

Preferences. Preferences are predefined alternatives that are incorporated into many currently available application programs, including GIS packages, as menus. Because of their pre-defined nature they lack the true flexibility required to satisfy all the idiosyncratic needs of a variety of end users. The options available either will be too limited to supply true versatility or they will provide an overwhelming amount of choice that will be just as frustrating.

Scripting Languages. Scripting languages are high-level languages that have a limited instruction set and, as a result, are easy to learn and use. Their simplicity comes from the fact that they function in only a limited application domain. The best known example is the scripting language used with HyperCard. The limitation of this approach is that the end user still has to learn a formal computer language that is based on abstract concepts such as variables, loops and conditional statements.

Macro Recorders. Macro recorders allow the end user to carry out a sequence of actions and have the program record those actions. The sequence of steps then can be replayed whenever the end user wants to duplicate those operations. This approach is useful in spreadsheet and telecommunications packages. Macro languages are likely to increase in popularity with the introduction of such common macro dialects as Microsoft's Visual Basic for Applications, Lotus' LotusScript and Computer Associates' CABLE language. These and other macro languages are designed to work for all of their respective vendors' common application programs (see Barr, 1993; Staff Report, 1993).

Macro recorders also are used in GIS packages that have complex, command line interfaces where an operation may involve many distinct steps such as ARC/INFO, a package developed by Environmental Systems Research Institute, Inc. (ESRI). To assist end users with these operations, ESRI developed the Arc Macro Language (AML). In 1993, the company provided a new manual to assist end users in learning AML (ESRI, 1993).

Programming by Demonstration. The problem with macro recorders is that they are too literal. According to Cypher, to be truly useful to the end user, macro recorders need to operate at a higher level of abstraction. A better solution is Programming by Demonstration, which originally was known as Programming by Example. PBD is more generalized than the macro approach and is akin to programming in the user interface (Halbert, 1993). PBD allows generalized programs with iterative loops and conditional branches to be created using a visual representation of the objects. PBD can be used for a range of programming needs, including tweaking or minor modifications of an application program, automating repetitive tasks and building mini-applications. These systems have been around for almost two decades, ever since Smith programmed Pygmalion in Smalltalk in 1975 (Smith, 1993). PBD received a major boost when a number of these systems were collected together at an Apple-sponsored workshop in March 1992, and 18 of the systems subsequently were published in the book Watch What I Do (Cypher, 1993). Systems built to date have taken their inspiration from macro recorders, from teaching metaphors (i.e., the program must be "taught" by the user) and from traditional programming environments.

PBD is likely to have an important future with many complex application programs, including GIS. For example, Witten's Predictive Calculator (1993), a PBD system, might have many implications for Ganter and Crane's GIS Calculator (1993). These advances will not come quickly since, as Smith (19931 notes, all the PBD systems to date are still essentially toy systems. Nevertheless, given the advances in computer power, visual interfaces and artificial intelligence techniques, one can surely expect PBD to be incorporated into GIS by the end of the decade if not sooner. Computer guru Alan Kay in his "Foreword" to Watch What I Do warns us to beware of handing control over to amanuenses, but this seems a small price to pay for increased usability of GIS packages.


  1. Barr, C. 1993. Application Esperanto: Developers Launch Common Macro Dialects. PC Magazine, vol. 12 (18), p. 29.
  2. Cypher, A. (ed.) 1993. Watch What I Do. MIT Press, Cambridge MA.
  3. ESRI. 1993. ARC Macro Language: Developing ARC/INFO Menus and Macros with AML. ESRI, Inc., Redlands, CA.
  4. Ganter, J. H. and Crane, T. E. 1993. Calculator: A GIS Control Panel for Extent, Scale and Size Manipulation. Proceedings AutoCarto 11, pp. 176-186, American Society for Photogrammetry and Remote Sensing, Bethesda, MD.
  5. Halbert, D. 1993. SmallStar: Programming by Demonstration in the Desktop Metaphor. pp. 102-123, in Cypher, ed., op. cit.
  6. Mossberg, W. S. 1993. They Just Don't Get It. Byte, vol. 18 (9), p. 268.
  7. Smith, D. C. 1993. Pygmalion: An Executable Electronic Blackboard. pp. 19-47, in Cypher, ed., op. cit.
  8. Staff Report. 1993. High Wire Acts. Visual Basic Programmer's Journal, vol. 3 , (6) pp. 18-23.
  9. Witten, I. A Predictive Calculator. pp. 66-76, in Cypher, ed., op. cit.

back to ... Watch What I Do