For my doubts about a popular opinion: software is an abstraction of real world, I had a discussion on MDSN. This is a hard topic, some times it appears as a trap. It could be need to think on more underlying issues, such as “what is an abstraction?” “what is the meaning that some things are abstract/concrete?” or “what is so-called abstract level? ”
Two classes of the meanings of ‘abstraction’
Firstly, a basic explanation from Encyclopædia Britannica Online as below:
abstraction, the cognitive process of isolating, or “abstracting,” a common feature or relationship observed in a number of things, or the product of such a process.
Applying this explanation as a boilerplate, say, ‘abstraction’ refer to some process or act, or the product of such a process or act. Then, divide the meanings of ‘abstraction’ into two classes: physical and cognitive.
Abstraction as a physical process
A definition about abstraction from the Oxford Advanced Learner’s Dictionary as below:
3 [uncountable, countable] (technical)
the action of removing something from something else; the process of being removed from something else
* water abstraction from rivers
I think this is the most trivial definition about ‘abstraction’. Notice that, there is no material conversion, that is, obtaining or removing something from a source without a conversion of the material, e.g., water from more water in a river; text from more text in an article: they are abstracted from one place into another place but still (can) keep the original/same materials of the source objects and the abstractions.
Another example is taking photos: to abstract the image of some objects with some media. The important thing is, the materials of a photograph is usually different with the original objects, in addition to some of the optical characteristics.
Abstraction as a cognitive process
This is the main meaning of ‘abstraction’, just as the definition in Oxford Advanced Learner’s Dictionary:
1 [countable, uncountable] (formal)
a general idea not based on any particular real person, thing or situation; the quality of being abstract
There are two sorts of the abstracting process in our mind (mental space):
abstraction within a mental space Most of concepts in our mind is an abstraction from abstract concepts else. For example, the term ‘life’ is abstracted from organisms, it more abstract then ‘organisms’, but the term organisms itself is also an abstract term.
abstraction from the real world The term ‘moon’ is so-called concrete term, it mapping onto the moon of real word, and therefore, according to above definition, it is not an abstraction. However, it is also a symbol onto the aggregation of data in our mind which are the result observed: the time it rose; the color or image; the path; etc., so, I think, it is also an abstraction from the real word, under the sense that based on a aggregation of the data in our mind – they are not particular real thing or situation. This perhaps regards as a duality, but I prefer say it is one of the most concrete abstractions in our mind. There are more reasons to supporting ‘moon’ is also an abstraction yet: such the ‘electron cloud’, it is always an interpretation (the result) of certain theory, regardless of whether there are sufficient observational data to support it. In other words, your can say it is an abstraction or not, with different reasons to different situations, but there is no essential difference or change for the term/idea.
Homogeneity of Abstraction
The above two aspects both involved into the issue about the material of an abstraction and the source objects. I want introduce a concept homogeneity for this situation, say
- An abstraction is non-homogeneous if the abstraction has different materials with the source object(s).
- An abstraction is homogeneous if the abstraction has the same materials with the source object(s).
Obviously, the abstractions in our mind has different materials with the real world objects, so it is non-homogeneous, but the abstractions in our mind has the same material with things else in mind, it is homogeneous.
Consequently, I am sorting the abstractions into four types with the classes of physical and cognitive, and homogeneity, as the table.
Table I-1: Four Types for Abstractions
|homogeneous||water from rivers||‘life’ from organisms|
|non-homogeneous||photo from real world objects||‘moon’ from the real moon|
By the way, I think this classification can also be applied to representations and models.
The writing is very hard, I don’t know whether it’s enough to read. Leave your comment please!