Difference between revisions of "General Theory of Living Systems"
(→Software as a Living System)
(→Software as a Living System)
|Line 120:||Line 120:|
===Software as a Living System===
===Software as a Living System===
In an example given by Lee<ref name="lee"> Edward E. Lee, ''Is Software the Result of Top-Down Intelligent Design or Evolution?'' (2018-09) ''CACM 61'' No 9</ref> where an individual [[Entity]] is an executing computer program(s). While many are short-lived, others like Wikipedia seem to have a life of their own and even interbreeds with other software systems just like a living system. It reacts to stimulus from its environment and requires energy and information inputs
In an example given by Lee<ref name="lee"> Edward E. Lee, ''Is Software the Result of Top-Down Intelligent Design or Evolution?'' (2018-09) ''CACM 61'' No 9</ref> where an individual [[Entity]] is an executing computer program(s). While many are short-lived, others like Wikipedia seem to have a life of their own and even interbreeds with other software systems just like a living system. It reacts to stimulus from its environment and requires energy and information inputsoperates autonomously, defends itself from attack and replicates (the last 3 with help from humans at this point).
Revision as of 15:55, 28 August 2018
- 1 Full Title or Meme
- 2 Context
- 3 Problems
- 4 Solutions
- 5 References
Full Title or Meme
In order to understand or design any successful, continuing digital ecosystem, it will be highly useful first to have a general theory of living ecosystems that we can use a template to build a theory for a digital ecosystem.
In 1978 James Grier Miller attempted a General Theory of Living systems  which proposed rigid taxonomies of levels of complexity and common processes contained in each level. As with all taxonomies of living systems, this one necessarily has very fuzzing boundaries which help a new learner, but which become an undue burden if carried to extremely fine detail. Miller understood all of this and selected a number of levels that best fit his data. None-the-less, this page will continue in Miller's path and try the same taxonomic approach, but first a short description of alternate methods. Whereas Miller thought that living systems were a subset of all systems, this page takes the view that all complex, successful, enduring systems are subject to the laws of evolution (specifically survival of the fittest) and hence should be considered to be living systems.
In 1979 Douglas Hofstadter started making the case that natural thinking involved "chunking" small ideas together to make a smaller number of classes of objects  that hide the details in ways that were currently in process in "object oriented programming. He continued this line of development into the use of fluid analogies in our own thought as a model for how computer networks should work. Analogies (which we make constantly, relentlessly and mostly unconsciously) are what allow categorization to happen. "Our minds are constructed with an unlimited quality for 'chunking' primordial concepts, which then become larger concepts." As an example the word "hub," as in "Denver is the hub for United Airlines," brings to mind a large linked network of concepts that are "chunked" together to make up the commonly used term. Other examples range from basics like "wheel" and "node" to higher-order concepts like "spoke" and "network." Higher-order concepts are assembled from lower-order concepts. He believes there no fundamental difference in thinking with basic concepts and very large concepts because we don't "see" inside them. We build concepts by putting several concepts together and putting a membrane around them and giving that a name. Kind of miraculously these [interior] concepts disappear into the named high-order concept.
While high-level languages and object-oriented programming (OOP) were present in the early days of computing (e.g. MAD and Smalltalk), they did not capture a significant mind-share of working programmers until the release of Java in 1996. With OOP languages, encapsulation or information hiding became a recognized feature of computer system architectures. While this sound like "chunking", one of its purposes was to hide details. Whereas living systems create abstract chunks, information hiding created pieces that were sealed and did not expose details of the implementation. So information hiding does not allow for level crossing and does not share the capability in open systems for higher level systems to directly interface with lower level systems. Since this is a general theory, we cannot assume that information hiding is necessary or appropriate, although privacy advocates might disagree.
In 2007 Cleland and Chyba wrote a chapter in Planets and Life: "In the absence of such a theory, we are in a position analogous to that of a 16th-century investigator trying to define 'water' in the absence of molecular theory." ... "Without access to living things having a different historical origin, it is difficult and perhaps ultimately impossible to formulate an adequately general theory of the nature of living systems"
Bayesian Identity Proofing provides the means for a collection of authentication and verification steps to be validated.
Human cognitive process are limited and not nearly as logical as some believe.
Human short term memory is extremely limited.
Users come to a web site to get work done, and what are they faced with:
- Choices for privacy, etc. etc
- Stress of normal problems of life
Human learning is based on causal relationships, primarily so that humans can know what to expect of any given situation. When something does not happen as their experience would indicate, they may find that they are at a loss as to how to react to the current situation resulting in confusion, or loss of context. When UX authors talk about tradition, or user expectations, they are really addressing the cognitive dissonance that occurs when thing don't go the way a user expects. Continued cognitive dissonance will lead to anxiety or anger which will drive people away.
Karl Popper started a theory of how people rely on tradition in making sense of this world, which is paraphrased here. A collection of features of our society, its institutions and traditions give a sense of order and discipline to our daily lives, without which we face anxiety and even terror about our future. What we experience as a normal social life can exist only if we can know, and can have confidence, that there are things and events which must continue and will not be different in the near future. To meet our needs for some level of certainty in our lives that the role of tradition can be understood. We will become anxious, frustrated and even terrified with our environment if it does not contain a considerable amount of order, a great number of regularities to which we can adjust ourselves. The mere existence of these regularities is perhaps more important than their particular merits or demerits. They are needed as regularities and therefore handed on as traditions, whether or not they are in other respects rational or necessary or good or beautiful. There is a need for tradition in social life.
A new and unconfirmed theory suggests that perception, motor control, memory and other Brain functions all depend on comparisons between ongoing actual experiences and the brain’s modeled expectations. This is the predictive coding explanation for how the brain works. This theory started from researchers trying to teach a computer to understand images that are fed into it. Its algorithm tries to make predictions about the environment and them compares the predictions to reality, just the way that humans learn to navigate in the real-wold, and now in the digital world. Designers need to be aware of this learning pattern and avoid changes that cause anxiety in users by testing the new designs to see how real users react. Nothing is more frustrating to a user that to have an update to an often used interface suddenly make it behave in unexpected ways. The user's response is unlikely to match the expected response of the designer's and developers.
Each level of complexity depends upon the support of all levels, but specifically on the levels below it.
Just as civilization depends on the good will of the large majority of its citizens, so too a personal computer depends on the existence of some ecosystem where it can successfully be deployed.
Yet even the least complex life form, the virus or the management chip buried deep in some data center, can be the portal for and infection that will have consequences at the highest level.
For an open ecosystem to be successful it must be resilient to change in every one of its components at every level. Since the ecosystem must dynamically evolve as new version of old components are constantly added and the results of many of those changes are unpredictable.
It is not possible to design an ecosystem in advance, just to design components with the best knowledge available at the time and introduce the new component, gradually if there is expected to be a great impact. For ecosystem changes, design thinking involves picking a way that the ecosystem should change and the designing a component that will help it move in that direction. Any design that depends on a completely new ecosystem is not likely to develop as expected. Before designing a change to an existing component, it is necessary first to peel back all of the assumptions that went into the existing design to see which are critical to the continued success of the ecosystem and which are available for alteration.
Taxonomy of Levels of connected Systems
|Level||Name||Typical use||User Experience|
|1||Chip||Management of Computer||Only by Administrators|
|2||Board Computer||Internet of Things||Room temperature or video surveillance|
|3||Single Processor Computer||Accessing Web Sites||Simple Queries of web|
|4||Multiple Processor Computer||Local processing & virtualization||Mobile or Desktop device that maintains user info|
|5||Data Center||Collection of computers in a single location||Only by Administrators|
|6||Cloud (single owner)||Social Network||Interaction of user searches and tracking|
|7||Internetwork of Clouds||Maintenance of Names||User cannot access desired resourced for security reasons|
Miller's "Processes" that work at all levels
Miller had 19 processes, defense and timer were added later. The boxes highlighted with color are the ones that deal with energy or manner, not the primary focus of this presentation. Two special cases are the reproducer, which might include cloning, but is not further discussed here; and the boundary which is important for identity and information hiding and so will be considered here.
|1||ingestor||input food, parts, energy||Energy Matter, important to computers|
|2||distributor||move food, parts, energy||Energy Matter, important to computers|
|3||converter||Change from one form to another||Energy Matter, might be important to computers|
|4||producer||Establish relationships||Energy Matter, important to interconnections|
|5||storage||Could include a variety of back-up||Energy Matter, important for reliability|
|6||extruder||Social Network||Energy Matter, waste heat is an issue|
|7||motor||Maintenance of Names||Energy Matter, important for robots|
|8||supporter||How everything fits together||Energy Matter, important for maintenace|
|9||reproducer||Create new copies of self||Energy Matter and information, future concern|
|10||boundary||Maintains integrity||Energy Matter and information, allows identity|
|11||input transducer||detect changes or commands||all recorded external events|
|12||internal transducer||Internally created events||Tracks changes due to internal operations|
|13||channel and net||Looks externally in all directions||Ethernet, High speed local nets|
|14||timer (added later)||Internally generated events||Could be considered a part of internal transducer|
|15||decoder||Converts data to meaning||For processing at a more abstract level|
|16||associator||Learning||Intelligence, Artificial or otherwise|
|17||memory||static storage and remembering||Allows active searching|
|18||decider||Executive decision maker||Flexibility, reliability, adaptability|
|19||encoder||Converts internal data for reuse||Translation, either for storage or for transmission|
|20||output transducer||Sends messages outbound||Display or speech (user experience)|
|21||defense (recent)||no component survives without it||antigen in component or higher|
Software as a Living System
In an example given by Lee where an individual Entity is an executing computer program(s). While many are short-lived, others like Wikipedia seem to have a life of their own and even interbreeds with other software systems just like a living system. It reacts to stimulus from its environment and requires energy and information inputs. It operates autonomously, defends itself from attack and replicates (the last 3 with help from humans at this point).
- James Grier Miller Living Systems 1978 ISBN 978-0070420151
- Douglas R. Hofstadter, Gödel, Escher, Bach: An Eternal Golden Braid 1979 Vintage ISBN 0-39474502-7
- Douglas R. Hofstadter, Fluid Concepts and Creative Analogies: Computer Models Of The Fundamental Mechanisms Of Thought 1995 ISBN 978-0465024759
- Woodruff, T. Sullivan; John Baross. Planets and Life: The Emerging Science of Astrobiology. 2007-10-08 Cambridge University Press. ISBN 978-0521531023
- Karl Popper, Conjectures and Refutations. (1961) Routledge chapter 4 ISBN 0-415-28594-1
- Jordana Cepelewicz. To Make Sense of the Present, Brains May Predict the Future. Quanta (2018-07) https://www.quantamagazine.org/to-make-sense-of-the-present-brains-may-predict-the-future-20180710/
- Terry Winograd and Fernando Flores, Understanding Computers and Cognition 1986 ISBN 0-201-11297-3
- Edward E. Lee, Is Software the Result of Top-Down Intelligent Design or Evolution? (2018-09) CACM 61 No 9