What is an object? How are objects constituted? What does it mean for an object to exist? In this article, I want to start to approach these philosophical questions by using some concepts derived from computer science. I will develop this further in later articles. In later articles, I am going to apply these ideas outside the area of computers or technology, but the initial example is from the area of computing. I am planning also, in later articles, to expand this framework of ideas into areas like semantics and the theory of knowledge. So this article is only the beginning (although some ideas from this complex have already shown up in previous articles on The Asifoscope).
I am using a word processor to write this text. The word processor is providing me with a “realm” or “world” of objects like pages, paragraphs, footnotes, headers, footers, etc. The word processor, in turn, is a program “residing” in a world containing “files” and “folders”.
I can create files or open and close them. I can view their content or put information into them. I can store them in folders and copy or move them from one folder to another. I can name files or delete them.
The computer I am writing this on contains an information storage device (a „hard disk“). Information is stored on it in the form of “blocks” that are organized into “tracks”.
Somehow, the files and folders are implemented in terms of blocks and the device “knows” where each block is on the hard drive. The blocks are, in turn, implemented in terms of even smaller storage units, eventually by single “bits”. These are physically represented by the direction of magnetization of small magnetic particles.
Ontological levels and ontological transitions
So there is a hierarchy of levels of description (I am also going to speak of “ontological levels”). The objects on each level are implemented in terms of objects on the level below it. From one level to another, the types of objects we are dealing with are changing. This change is what I call an “ontological transition”.
There are two important properties of ontological levels and the transitions between them that I want to point out in this article:
- To an extent, these levels are independent of each other.
At each moment, each object has a specific implementation in terms of the levels below it, but it can be understood in its own terms, without an understanding of the level(s) below it. I can understand a file and what I can do with it without knowing anything about hard disks, blocks, tracks, and storage addresses etc.
Moreover, the implementation can be changed without changing the high level object and perhaps without the program or user using the object even noticing the change. For example, I can copy the file from the hard disk to an optical disc or to an electronic storage chip. The physical system used to represent the file will change completely, from the magnetized particles of the magnetic disk to the microscopic pits of an optical disk or the distribution of electrical charges in a storage chip. Intermediate levels like blocks might also not exist on another storage medium, so the file might be represented in a different way.
- Secondly, in each instance of ontological transitions, we will find that there is some active process that produces the objects of the higher level.
Some device driver combined with a disk controller, for example, provides a world of data blocks.
The file system is also a running program (or set of such programs) that resides in a realm of low level storage objects like data blocks and uses them to implement files and folders.
The word processor that is using the file system is, again, a running program. It generates a realm of pages and paragraphs.
So on each level, objects are created by processes. I will be calling such a process an “(object) projector” and the objects provided by it “projections” generated by it. As the file system example is showing, objects and worlds or realms of objects can be just viewed or they can be manipulated through the projector.
The concept of a “projector“, as introduced here, bears some resemblance to the concept of “emulations“, as used in computer science. There are a number of similar constructions in computer science, with different names (instances include, for example, drivers/devices, services/servers and so on) and I have chosen the term “projector” in order to have a neutral term covering them all. Moreover, this term is intended to be useful beyond the limits of computer technology. This, however, will be the topic of other articles.
(The picture is from, showing microscopic magnetization structures on the surface of a hard disk, representing bits of data, is from