Book contents
- Frontmatter
- Contents
- Preface
- 1 Introduction
- 2 Metaphor in practice
- 3 Machinery and dynamics
- 4 Abstraction and implementation
- 5 The digital abstraction
- 6 Dependency maintenance
- 7 Rule system
- 8 Planning and improvisation
- 9 Running arguments
- 10 Experiments with running arguments
- 11 Representation and indexicality
- 12 Deictic representation
- 13 Pengi
- 14 Conclusion
- Notes
- References
- Author index
- Subject index
7 - Rule system
Published online by Cambridge University Press: 07 December 2009
- Frontmatter
- Contents
- Preface
- 1 Introduction
- 2 Metaphor in practice
- 3 Machinery and dynamics
- 4 Abstraction and implementation
- 5 The digital abstraction
- 6 Dependency maintenance
- 7 Rule system
- 8 Planning and improvisation
- 9 Running arguments
- 10 Experiments with running arguments
- 11 Representation and indexicality
- 12 Deictic representation
- 13 Pengi
- 14 Conclusion
- Notes
- References
- Author index
- Subject index
Summary
Using dependencies in a rule system
This chapter discusses one use of dependencies, a programming language called Life. Although the demonstrations of Chapter 9 and 10 will use Life to make some points about improvised activity, this chapter describes Life programming as a technical matter with little reference to theoretical context. Readers who find these descriptions too involved ought to be able to skip ahead without coming to harm.
Life is a rule language, a simplified version of the Amord language (de Kleer, Doyle, Rich, Steele, and Sussman 1978). This means that a Life “program” consists of a set of rules. Each rule continually monitors the contents of a database of propositions, and sometimes the rules place new propositions in the database. The program that does all of the bookkeeping for this process is called the rule system. The rule system functions as the reasoner for a dependency system. The rule system and dependency system both employ the same database, and most of the propositions in the database have a value of IN or OUT. Roughly speaking, when an IN proposition (the trigger) matches the pattern of an IN rule, the rule fires and the appropriate consequence is assigned the value of IN. If necessary, the system first builds the consequent proposition and inserts it in the database. This might cause other rules to fire in turn, until the whole system settles down. In computer science terms, this is a forward–chaining rule system. The role of dependencies is to accelerate this settling down without changing its outcome. The technical challenge is to get the rule system to mesh smoothly with the dependency maintenance system underneath.
One might take two views of the Life rule system in operation. On one view, dependencies are accelerating the operation of rules.
- Type
- Chapter
- Information
- Computation and Human Experience , pp. 124 - 141Publisher: Cambridge University PressPrint publication year: 1997