The Software Individuals Architecture (SIA) is a framework fordefining software systems that are capable of self-modification and of reproductionon the level of an interpretive programming language. In abstractterms, a self-modifying system is a labelled tree containing scripts at someof its nodes; these scripts are effectively programs. A computation in sucha system executes a specific script. In doing so it maintains a local computationalstate, but it also uses and updates the labelled tree. The labelledtree, the local computational state, and the command language used for thescripts are all designed in such a way as to support self-modification andreproduction in a structured and orderly fashion.We have defined a practical system of this kind both on an abstract andformal level and as an implementation using Lisp as the host language. Thisarchitecture has been used as a platform for several applications, including inparticular the speech and natural-language dialogue system for an intelligentautonomous unmanned aerial vehicle (UAV) in the WITAS project. Thearchitecture design has been revised repeatedly as a result of using it for thisapplication as well as several others.