This paper is about a particular technical problem in the study of autonomy in computational systems: how can a computing system invent and use its own symbols and symbol construction mechanisms? We think this invention is necessary for intelligent behavior in any organism, artificial or otherwise, since it has been observed repeatedly that systems with fixed symbol sets get stuck. This observation is well-known in computing circles, and has been observed in "extensible" languages, large and growing knowledge bases, content-based filing systems for technical literature, and inheritance hierarchies for large object-oriented systems: no matter what elaboration mechanisms are used, no matter what initial structures are used, the structures eventually become too constrained by what is already there, and stagnate. To change that phenomenon, we need construction mechanisms that can themselves be changed and elaborated. We think that if we can change the construction mechanisms (which include the alphabet, as the mechanisms for constructing expressions from nothing), that is, the basic units that combine or are combined to make the structures, then we have another way to escape the trap of creeping rigidity: we can elaborate the units out from underneath the existing structures. This brings us directly to computational semiotics, which for us is the study of the treatment and use of symbols in computing systems. This paper is primarily intended to stimulate discussion and further research in these areas, since the questions are very hard and have no easy answers.
展开▼