- 1 Introduction:
- 2 Abstraction action constants:
- 3 Primary computer user interfaces:
- 4 Commonly practiced, yet to be recognized:
- 5 Economic hindsight projected forward:
- 6 Philosophy:
- 7 References and notes:
The physics of abstraction is of an "outside looking in" perspective (*1), where rather than creating another abstract language (inside), instead sees the underlying action machinery enabling the ability to create languages (outside looking in). Since Abstraction is a human mental characteristic, there is an inherent subjectivity to the topic. However, through the use of computers we can be more objective about abstraction physics. See: Abstraction (computer science)
Abstraction enters the picture of computing with the representation of physical transistor switch positions of ON '1' and OFF '0' or what we call "Binary notation". However, computers have far more transistor switches in them than we can keep up with in such a low level or first order abstract manner, so we create higher level abstractions in order to increase our productivity in programming computers. From Machine language to application interfaces that allow users to define some sequence of action into a word or button press (ie. record and playback macro) so to automate a task, we are working with abstractions that will ultimately access the hardware transistor switches which in turn output to, or control some physical world hardware.
Programming is the act of automating some level of complexity, usually made up of simpler complexities, but done so in order to allow the user to use and reuse the complexity through a simplified interface. And this is a recursive act, building upon abstractions others have created that even our own created abstractions/automations might be used by another to further create more complex automations. In general, if we didn't build upon what those before us have done, we then would not advance at all, but rather be like any other mammal incapable of anything more than, at best, first level abstraction. But we are more, and as such have the natural human right and duty to advance in such a manner.
(*1) "outside looking in" - to use an analogy: imagine a translucent sphere. From the inside looking outward, you can only ever see just part of the sphere at any one time as you have to turn to see the part behind you, etc.. However, from outside and at a reasonable distance, you can see the whole sphere at the same time.
There is an identifiable and definable "physics of abstraction" (abstraction physics), an identification of what actions are required and unavoidable, in order to make and use abstractions. Abstraction Physics is not exclusive to computing but constantly in use by ... well... us humans. Elements of abstraction physics include the actions of abstraction creation and use:
0) Defining a word to mean a more complex definition (word = definition, function-name = actions to take, etc.)
1) Starting and Stopping the interfacing with abstraction definition sequences.
2) Keeping track of where you are in the progress of abstraction sequence usage (moving from one abstraction to another).
3) Defining and changing "input from" direction.
4) Defining and changing "output to" direction.
5) Getting input to process (using variables or place holders to carry values).
6) Sequentially stepping through abstraction/automation details (inherently includes optionally sending output).
7) looking up the meaning of a word or symbol (abstraction) so to determine action upon or with it.
8) Identifying an abstraction or real item value so to determine action upon it.
9) Putting constraints upon your abstraction look ups and identifications -When you look up a word in a dictionary you don't start at the beginning of the dictionary, but begin with the section that starts with the first letter then followed by the second, etc., and when you open a box with many items to stock, you identify each so as to know where to put it in stock.
These placed into a logical integration for versatility and exception handling provides for a "Virtual Interaction Configuration." So named after the diagram of "a network of virtual interactions" from the book "The World of Elementary Particles" by Kenneth Ford, as shown and referenced in Fritjof Capras' The Tao of Physics But here the representation is not of physical particles or of Mysticism, but rather the action constants used in the creation and use of "Abstractions" which are used in both Physics and Mysticism, as well as in the abstraction creating and manipulation profession of computer programming..
Nature likes three (3) in primaries, as color in light (additive - red, blue, green) and paint (subtractive - blue, yellow, red) from which we can create all other colors in the rainbow. This applies to abstraction physics as well, as applied through the tool of computer, for there are three primary user interfaces. The command line, the Graphical User interface (GUI) and the side door port to application and functionality access (known by many different names and application levels such as API, IPC, DCOM, dcop, D-BUS, Plumber, computer sockets, etc., but each having its limitation and typically not so end user friendly as the concept should be.) And like the primary colors, if you take one away or limit its use, you constrain the ability of the user in putting new automations together or modifying existing ones. Causing false limitations in user ability also applies to the abstraction actions mentioned above, constrain access and you constrain users ability to create or modify.
As mentioned above, the application of abstraction physics is a human characteristic and as such, it is inherently common in practice. However abstraction physics has yet to become widely recognized and applied as a science, similar to the difficulty the Hindu-Arabic decimal system had in its acceptance, which included the concept that nothing can have value - re: the Zero , the 0 (number) place holder. It took three hundred years (from inception) for the innovation of the now common decimal system to overcome the far more limited Roman Numeral system. (NOTE: mathematics and the symbol sets used are also abstractions and therefor a subset of abstraction possibilities and certainly an application of abstraction physics.) Though the act of programming is still younger than many who apply it, we are technologically moving at a much faster rate of incorporating innovations and better understandings of reality. The physics of abstraction can be used to model a non-patentable/natural, dynamic, user friendly general automation tool for abstraction creation and usage, including the automation of computer program creation. An abstraction tool that would also allows for organized placement and access of abstractions in a logical or mappable and navigatable manner, not unlike reference books we have today, such as dictionaries, thesaurus, quick reference books to catalogs of parts, products, etc.. Even Wikipedia itself is such a mechanism applying "navigational mapping" as links don't have to yet exist.
When abstraction physics becomes more widely recognized and applied as a science, it will become obvious (an anti-patent facet) that software is of such qualities (natural law, physical phenomenon, abstract ideas, algorithms, etc.) to NOT qualify for patent-ability. Currently patent granting organizations have no solid reference point of "abstraction physics" from which to test software patent applications against, or re-evaluate granted software patents. However, effort is underway to change that through the application of just such an abstraction physics automation tool as mentioned above, but created for the use by patent granting organizations to help them, and other interested parties, to search for, and possibly make use of prior art.
The Hindu-Arabic decimal system enabled much more of the general population to apply mathematics in a more powerful (*2) manner than the Roman Numeral system allowed. Likewise, with the establishment and application of abstraction physics as common knowledge, (as the decimal system is today, even taught in primary school) software will become genuinely free simply because it will be easy enough to create that the general population will be able to create it, or cause the machine to (recursive automation nature of programming), regardless of the resource limitations of the general population user regarding complexity details. Otherwise the act of programming becomes falsely constrained, as the acceptance of the decimal system, and its benefits, was constrained (perhaps by the roman numeral accountants protecting their vested interest.)
(*2) Worth noting: The Roman Numeral system and its mathematical limitation would not have allowed us to develop such a level of math complexity required for us to create/invent much of what we have today, including computers. Yet at the introduction of the Hindu-Arabic Decimal system, such potential creations/inventions were not even imagined. Perhaps the same inability to see where the acceptance and open (free) application of "abstraction physics" will indeed lead us in time, is a natural human constraint that only aids the support of the false constraints of "software patents".
The following is more so a place holder for the subject matter of Philosophy regarding abstraction physics, sadly inspired by the Air France tragedy over the Atlantic as one of many programming failures that have cost lives. Philosophy is meant to be a tool to help us live our lives the way we choose, but often philosophies are in error and fail to help us achieve what we want of our lives. Julian Jaynes book The Origin of Consciousness in the Breakdown of the Bicameral Mind provides a foundation upon which the creation and use of abstractions originated with us humans and as such inherently explores the origin of human philosophies.
Aerospace systems are made by humans, but the way aerospace (life critical and specialized or specific field oriented) software is created, it is highly bug free, quite the opposite of feature creep bloat you see everywhere else, but even at the code level there is avoidance of function calls that can introduce another level of abstraction and complexity and contribute to bugs and failure. It is in this way that using the process of elimination we can come to some conclusions about where error is or can most certainly exist, philosophy.
On a hardware level, we have redundant backups and check system....
As such there is one area that neither software nor hardware has but only as a secondary or implementation of, position. Human error in concepts, beliefs, philosophies, abstraction definition variation, etc... That which exist before the hardware and software and often what hardware and software creation is inspired by, directed by, guide lined by, etc..
If the philosophy base is wrong then its limitations will manifest through the software and hardware created under such a philosophy and eventually show the limitations, via failure to perform.
There are plenty examples of human philosophy errors, such as how it wasn't until the early 1990's that the Catholic Church exonerated Galileo over his observation the earth revolved around the sun. The Atlanta Centennial park bombing where the 911 system failed because no-one gave the park an address..... or is the philosophy of programming a 911 system to require an address the error? Or is it a good thing that all things needing 911 are at an address?
My pet peeve of the computer industry, the button on the front of the computer marked with a 0 & 1 symbol(s), yet over engineering has resulted in the meaning of those symbols to be more than "off & on" and this went further in removing the hard on off switch so that when the software based power switch failed, you have to physically unplug the computer from the wall, or take teh battery out. The correct philosophy for such a switch would be a multi position switch, which the consumer doesn't have to know more than is obvious... And ultimately the motivating philosophy behind the software switch is that of creating an OS that needs a shutdown sequence and time for it. When you think of this "0&1" switch, what better representation of distorting the most basic and fundamental concept of computers with "overcomplexifabulocation" can there possible be?
Software and hardware is not where the error lies in this Air France tragedy, even if there is failure or limitations found there in hardware and software, but the failure is in not providing a manual override. And if the technology has been made to complex for manual control.... then let grandma crawl under the desk to unplug the damn computer....shut it down until the real problem is fixed.
BTW, due to the competitive commercial nature of aerospace software development tools, there is a level of incompatibility between them and as such there is also motive for playing the lockin game regardless of any "unforeseen" risk to others. Perhaps there is a place for open source software here!!!
Don't bow down to the stone image (Stone = computer hardware - Image = software) of the beast of man, for the beast is error prone and his image can be no better. Instead take a closer look at the code.... with many different human eyes.....
More is planned in overview, references and wikipedia integration, and details, such as:
1999 USPTO Publication of comments to an RFC  see comment #4
2005 wiki.ffii.org original article and initial base for this former wikipedia entry 
2006 Project "Open Source as Prior Art" Tagging Prototype 
Functional logic details of "Virtual Interaction Configuration"  (i.e. use of the three values of: current, previous and default on various levels for versatility.)
Simple circular flowcharting 
"Physics of Computational Abstraction" as the closest I could find at the time in reference to "Abstraction Physics".
A patent that has listed in its "other reference" the Virtual Interaction Configuration. This will be interesting to re-write the claims in terms of abstraction physics showing non-novel, and anything else that shows the non-patent-ability of this patent.
A step forward for Abstraction Physics? United States Court of Appeals for the Federal Circuit - IN RE STEPHEN W. COMISKEY The Federal Circuit found the inventor's system unpatentable because it sought to "claim the mental process of resolving a legal dispute" by a human arbitrator. The court warned that "the routine addition of modern electronics to an otherwise unpatentable invention" doesn't make it patentable. And here is the oral argument.
The Semicolon Wars A July/August 2006 article in American Scientist Online regarding "another programming language".
Another attempt to bring in software patents in Europe, with several interesting links.
End Software Patents - A new US based effort to abolish Software Patents
ACLU - First Amendment on Pure Abstraction - A step in the direction of recognizing abstraction is a human right.
Indications of mindset changing at learning institutions towards Abstraction Physics: (Moving Targets)
Great Principles of Computing is an evolving work in progress. Because of this its difficult to tell where it is really going. Could it be another "almost" or will they quantize and simplify the work to recognize "Abstraction Physics"? I found this great_principles_of_computing.lecture.2007.03.29 and left a comment. (note: at some time later my comment regarding Abstraction Physics was removed and eventually comments were turned off)
Computational Thinking seems to lack the tools to apply the learning feedback loop that is so important in using and really understanding the tool of computers. The focus is on claims of a new way of "thinking in terms of". Fails to realize proper priority in what came first, the computer and its programed calculating ability or the common human mental functions that built and programed the computer. But recognizes there is something there regarding common mental functioning across fields, industries and sciences. Just needs the tools of Abstraction Physics so to provide a verification loop for correct human understanding of the contents of "Computational Thinking"
NSF Cyber-enabled Discovery and Innovation (CDI) Program pursuing the ideals of "Computational Thinking" the National Science Foundation has this new CDI grant program. Though I do not fit the qualifications of being a learning institute or not-for-profit group or any group for that matter, just an individual, I'll point them here anyway. I must admit the text body of the "Introduction" and "Program Description" of the "Program Solicitation 07-603" reminds me of marketing hype and Science Fiction. Not that much of what the goals are, can't be reached, as I believe they can, but some of what is written suggest to me they really don't understand the foundation of the unavoidable abstraction physics, from which they are trying to build from. Recorded CDI webcast the day before LOI deadline w/Q&A It will be interesting to see what projects are awarded grants.
ACM Ubiquity symposium 'What is computation?' Clearly the mindset is changing towards Abstraction Physics. Rhetoric at ACM ubiquity is a bit thicker than it needs to be for the general computer users understanding and use, but I suppose ACM ubiquity addresses educational institutes and computing professional interest in doing so. Always an "almost"... for the end users?
Identification of the ten base action constants was done by Timothy Rue in February 1988, while having lunch at Pizza Hut.
Copyright © 2006, 2007 by Timothy V. Rue --- Released under Free Document License