Showing posts with label reader. Show all posts
Showing posts with label reader. Show all posts

2 April 2013

Copy or not copy ?

Next important concept to clarify: the copy.
It seems straightforward, but still, one needs to define it well in order to minimise misunderstandings. Here's my attempt at defining the copy based on the previous definitions.
Again, your comments are most welcome.
You can also view the article below with this link : The Copy
Or go back to the contents list : Contents

The copy
Copy or not copy?
By Sylvain Magne
Now that we have shown that everything is code, the question ensues: what makes a particular code a replicator? What sets a replicating code apart from other codes?
In the world of codes there are all sorts of codes that have for effect to change the world in all sorts of different ways. That’s what particles do when they interact with one-another, they keep transforming the universe by attracting each-other, repulsing each-other, bouncing, breaking, merging, spinning, etc. Of all the possible interactions in the world, some may lead to remarkable outcomes. It is the case of the replicator. The particular effect of replicators is that their interaction with a reader leads to the creation of a copy of the original code. Consequently, the next question that needs answering is:
  1. What is a copy?

I have found that such a simple word is not as clearly defined as one may think. Just like we did with the “entity”, we need to define the “copy” more precisely in order to make more sense of the concept of replicator. As I was looking for definitions of “copy”I stumbled upon one that I particularly liked, and that is Google’s definition of a copy . I liked it for its clarity and simplicity, so let’s start with that. Google defines the copy as :
A thing made to be similar or identical to another.
I like this definition because it is very large and encompassing and yet very simple, very much like Richard Dawkins’ definition of the replicator. Only Richard Dawkins may have used the word “entity” instead of “thing”.
There are three elements to be considered here. First there is the copy, here referred as the “thing”. Then there is the original code, here referred as “another” thing. And finally there is a copy maker responsible for the “made to be similar or identical” part. Again this definition seems very straightforward, but we need to understand clearly what each of these elements mean.
  1. What’s that thing?

According to the code centered view of the world that we chose in the previous chapter, the “thing” ( which is equivalent to Richard Dawkins’ “entity” ) is necessarily a code, simply because anything can be regarded as a code, and that is true for the original thing too. So what we are talking about here are copies of codes.
  1. Where is the copy maker?

If any copy is to be made, it needs to be made by a device that can perform actions. Again, as we have seen before, if we have codes we necessarily have readers, and readers can indeed perform actions. Therefore, the copies will necessarily be made by a reader. In other words, anything that makes copies of some code is a reader. For example, in genetics the copy maker is the human body copying genes. In computer science the copy maker is the computer copying programmes. In the printing industry the copy maker is a photocopier copying pages of text and images. In the world of art the copy maker is a painter copying paintings. And so on .. This means that cells, computers, people and photocopiers are all readers.
Just like for any code, the very existence of a copy implies the existence of a reader capable of making copies.
  1. Made to be.
Note how the definition says “made to be similar or identical” and not just “similar and identical”. This implies that things that just “happen to be” similar or identical will not qualify as copies. This point is crucial. For example, two identical molecules in the universe that happen to be the same are not necessarily copies of each other. So what is the difference between something that happens to be similar and something that is made to be similar?
The difference lies in the fact that the original code needs to have been fully involved in shaping the copy. To the point where if any part of the original is missing, the copy will fail. Quite simply, the only way to make a copy with certainty is to make it by letting the original code guide you through the copying process. The reader making the copy needs to read the entire code if it is to copy it faithfully. All the aspects of the copied code will be influenced by the original code and nothing can be left to chance in the copying process because if any part is left to chance, that part fails to be a copy, except maybe if by chance it is similar.

This said. How perfect does a copy need to be exactly? And what would it mean for a copy to be perfect?
  1. Similar or identical?

Now, as memeticists, we have a problem with the mentioning of “similar” versus “identical”. It seems fair that the definition says “similar or identical” because we are used to seeing imperfect copies around us and still consider them as copies. Unfortunately, we may not enjoy such flexibility when talking about replicators. Indeed, Richard Dawkins has explained clearly why, when talking about replicators, the copy needs to be identical. There are two simple reasons for why replicators need to be identical :
  1. First, in the case of genes, if one single bit of a gene changes it can cause the gene to have a dramatic effect on its host, possibly deleterious. Therefore loosely copying genes is not a good idea.
  2. Second, genes compete with each other for a chance to survive. On the rare occasions when a gene mutates, this new mutated gene enters the arena, the gene pool, as a new contender which could eventually replace the original gene. The original gene and its new mutated versions become instantly alleles and therefore compete for the same spot in the gene pool. Therefore the new mutated gene cannot be considered as a copy of the original for the fact that it competes with the original.
That is why one single alteration in a gene makes this gene a failed copy, and that is why the copying process needs to be perfect. Not only that but that logic applies to all replicators. Indeed if a replicator, whatever its nature is copied loosely, the new failed copy becomes a new contender and cannot be considered a copy. Therefore we find ourselves with the necessary following rule:
  • The copy needs to be identical to the original code.
Now the question is: can memes actually comply with this and be perfectly copied?
Meme fidelity is a big issue. This is one of the major challenges that memetics is facing since the very beginning, and is still unresolved today. I hope to show here how we could solve this puzzle. From our daily experience we can see for ourselves that a lot of the ideas and cultural traits around us don’t get copied very well and yet seem to spread somehow. Can we create a meme theory that accounts for this loose copying process or do we need to change the way we understand memes? If replicators are meant to be perfectly copied, is a meme theory even conceivable?
The point I am going to make here is simple. I want to show that perfect copying is relative and that, taken from the right point of view, a seemingly lose copying process can appear as a perfectly accurate process, consequently re-establishing the concept of replicator as a valid model for memetics. The solution I am offering lies in a particular branch of mathematics, fuzzy logic.
  1. Fuzzy Logic is not fussy.

Fuzzy logic is interesting to memetics because it gives us a tool to deal with the fact that the world is not perfect. Fuzzy logic and probabilistic logic are crucial to the world of codes and mathematics. Fuzzy logic is no less rigorous than traditional mathematics, it is entirely part of mathematics, with its own set of laws. Fuzzy logic is a tool which accepts that data and calculations can be imprecise, incomplete or mixed up. The world we live in is very much like that indeed. On one hand there are things that we can count in a very binary fashion, like the number of apples on a tree for example, and on the other hand, we sometimes need to measure approximately quantities such as the weight of apples. Unfortunately, where you might be able to give a precise count of the number of apples, there is no device in the world that can give you the exact weight of an apple, simply because any instrument used has a limited precision.
To be fair, even counting apples on a tree is not that straightforward. What do you make of apples that are half eaten by worms or apples that are not fully grown or apples that are rotten? As a matter of fact there is no counting or measuring in this world that can be done perfectly. Even at the level of elementary particles where quantum physics take over.
For any measurement that we make we need to accept a certain level of uncertainty, of fuzziness. Scientists are fully aware of that fact and have to deal with it constantly. Scientists work really hard to measure and reduce the fuzziness of their objects of study in order to gather reliable data. The consequence of this fact is that, if it is impossible to measure something perfectly, then you cannot determine perfect copies. My point here is that a perfect true copy, a replicate, cannot actually exist. No matter how precise your tools are you cannot create an absolute replicate. Ultimately, even if you copy an object atom by atom, as genes do, quantum physics will not allow for the copy to be exactly the same simply because the atoms will move differently in both the original gene and the copy.
So, if there is no such thing as a replicate, what are we to make of the concept of replicator itself? Can replicators actually exist at all?
Well, as a matter of fact, this fuzziness of the world doesn’t stop us from counting apples and hasn’t stopped us from building computers. Somehow our brains can still count apples and our computers can still count bits. How does that work?
It works because, although there is fuzziness, there are also ways of reducing fuzziness, or simply ignoring it. Our brains and our computers can tolerate a degree of uncertainty. If you are a farmer and you are picking the best apples to sell on the market, your brain will look for features and characteristics in the apples that will allow for certain apples to be selected and others not. The brain will define a threshold between green, yellow and red for example and apply that threshold in order to pick the apples with the right colour. A computer will do the same. Within computer chips there are loose electrons that can add background noise to the data. To avoid the noise disturbing the reading of the data, computers have a threshold that will allow for slight fluctuations in the signal and, as long as those fluctuations aren’t too extreme, the signal can be read perfectly despite the background noise.
Thus, despite the fuzziness of the world, our fuzzy-ready brains manage to make sense of it. Similarly, despite the agitation of particles at the gene level, genes still manage to stick together. This tolerance to fuzziness is what allow genetic codes and computer codes to be copied in a way that can be considered “good enough”. The copies are not exact in the absolute, that is a fact, but within the range of tolerance of the gene machines and computers, these copies can still be regarded as identical.
What does fuzzy logic tells us?
  • Fuzzy logic tells us that even though there is no absolute copy that can exist, perfect copies can still exist in a relativistic point of view.
Now what is that point of view exactly and what does it take for a copy to be regarded as good enough?
  1. The reader’s point of view.

The replicator is tied to the concept of copy because a replicator simply has to get copied to be a replicator. Not only does it need to be copied, but it needs to be copied well enough. Now who or what decides what is a good enough copy? How can we determine whether a copy is successfully created as such?
For example, how will you determine if a copy of your front door key is a good copy? Well, you will simply try it on your door and see if it opens the door. It seems obvious to say that it doesn’t matter if your key doesn’t open other doors. The only point of view that matters is whether it opens your door and is compatible with the keyhole in yourdoor. Furthermore, the copy doesn’t need to be perfect in every aspect. If your original key is made of iron, but you used copper to create the copy, the key will still work. It won’t matter whether the key is made of iron or copper, or whether it is blue or red. The only thing that matters is for the key to have the right shape and to be strong enough to open the door it is meant to open. This idea can be generalised to any kind of copy. Copies only need to work from a certain point of view which is their reader’s point of view. A Macintosh computer is not fit to say if a PC programme is copied well. Similarly, a camera is not fit to decide if a sound wave is correct. A reader that is fit to make such judgement is a reader that is compatible with the code that we want to evaluate. In the same way that a human gene is evaluated inside a human body and a computer programme is evaluated by compatible computers, all codes and copies need to be evaluated by their compatible readers.
So the best way to determine if a copy is a good copy indeed is to use the right reader. To test the quality of a copy, you simply need to run it through the reader. If when running it through the reader the copy reads just like the original, then the copy is a true copy. Running the original code or running the copied code should result in indistinguishable outcomes. But again, only from the point of view of the reader. That is precisely what a computer does when making copies. It verifies the copy by reading it through the same process as the original and checks if it reads the same way.
As a result:
  • The only meaningful point of view to judge the quality of a replicator is the point of view of its reader.
  • From the point of view of the reader, true copies and replicators can exist.
This is how the concept of copy and replicator need to be understood, if they are to make sense. They need to be understood in a relativistic manner. The quality of codes as replicators is defined by their relationship with their readers. If from the reader’s point of view a specific code is seeing itself successfully copied over and over then it deserves to be labeled a replicator. Judging it from a different point of view could be misleading. You may think that two keys are different because they are coloured differently when in reality they can be regarded as identical from the viewpoint of doors and keyholes.
Therefore there is hope for replicators to exist. If we take the right point of view, we can hope to find true copies of genes, of computer programmes and cultural traits. And that is the very reason why the replicator idea may still work for memetics.
  1. Analog, Digital and Timescales.

Note that the example of the key is not a perfect example because of the way copies of keys are made. After several successive copies of a key, errors will eventually accumulate and the shape of the key will eventually fluctuate. Maybe, after five or ten copies the latest copy may actually fail to open the door. The reason is that the information stored on the key is analog and not digital. The problem with analog codes is that, unlike digital codes, there is no noise reduction system that can allow for the code to be copied perfectly. Analog codes have no inbuilt tolerance for variations like digital codes have. Digital codes are digital in the sense that they are broken down into smaller bits that can be stored and deciphered easily, so that even if the data suffers slight variations, the shape of the bit remains readable. When copying digital codes, we don’t copy every details of the medium carrying the code but we only need to copy the sequence of bits and reproduce that sequence faithfully. This reduces the amount of information needed to make the copy because one can ignore the imperfections of the medium. In the case of analog codes there are no bits that are easily recognisable and therefore every minute aspect of the medium becomes relevant and needs to be copied in order to preserve the code. The problem is that the amount of information needed to copy that code is actually enormous and makes it impossible to be copied exactly. Consequently every copy will suffer some amount of data loss.
An analog code is therefore doomed to fail eventually. What kind of replicator would that be then? This problem is true for all analog recordings and this important point will need to be addressed when redefining the memes. The question this raises is whether memes have an analog nature or a digital nature and how this impacts their replicating abilities. If analog codes are doomed to fail then can they be considered as replicators? In the case of keys, one can’t deny that there is a potential series of copies that will live on for a while. If one considers replicators over a short length of time, then there may be some codes that qualify, but then when considering a larger length of time those codes may not really qualify as replicators if their survival is too short to be significant.
What I am trying to say here is that the nature of a replicator depends on the timescale one may consider. There will be more codes that can qualify as replicators on a short length of time than on a longer one. Simply because codes that can live longer will tend to be more rare. These aspects of evolution can be witnessed in biology. Depending on the timescale, the length of the bits of dna that qualify as replicators will tend to be longer for short periods of time and shorter for long periods of time. The reason is simple, and that is because of the way genes are shuffled in the genepool through sexual reproduction. The more generations of offsprings the higher the chances that a gene may be cut in half and therefore fail to be passed on in its entirety.
Realistically, one can expect replicators of digital nature to be favored by natural selection over analog ones. Also, one can expect that fact to be true for memes as well. Analog memes would tend to be short lived and may not really qualify as replicators. Let’s just hope that memes are more digital than analog if we hope to apply the theory of evolution to culture.
  1. Conclusion.

To sum things up, let's give ourselves our own definition of a copy. It could go like this :
  • A copy is a code made to be identical to an original code, by and from the relative point of view of a reader.
With these new definitions of the terms “entity” and “copy”, we now find ourselves with a new relativistic and more precise definition of the replicator. I believe this definition is compatible with the gene theory and can help opening the doors to a science of memetics and also defining better what Susan blackmore calls temes. We may find that this new definition of the replicator could change not only our perception of memes but could also change somewhat our understanding of genes as well.
Let’s dive into these questions with the next chapter : The new replicators (link coming soon)






24 December 2012

The entity

Finally getting into the details of redefining the replicator. Here we will define Richard Dawkin's "entity" as a code. Comments are very welcome.

You can also view the article below more comfortably with this link : The entity

The entity.
All is code.
By Sylvain Magne
In this chapter, I want to show that the “entity” that R. Dawkins refers to, can be understood as a code, a kind of computer program. And this, whether we are talking about actual computer programs, or genes or cultural traits. I will first remind us that the theory of evolution itself is an algorithm, a kind of code. I will then show how we can rigorously look at the universe and understand it as a pile of codes, by taking what I call the code’s eye view on the universe. Once R. Dawkins’ entity is understood as a code we can finally start describing this elusive “entity” in more practical details.
  1. Evolution is an algorithm

As a matter of fact, the theory of evolution and the concept of replicator are models based on algorithms and mathematics. Mathematics are fundamental to any science indeed but algorithms and computer programs become more and more important in modeling our understanding of the universe. It turns out that algorithms are more universal than one may think at first.
  1. Definition of algorithm

An algorithm consists simply of a series of well defined step by step operations. The concept of algorithm is central to any computing process. Quite simply, every computer program is an algorithm or made of algorithms. But algorithms are also part of our everyday life. A recipe is a form of algorithm as well, and so is a guide to build a piece of furniture or the rules of a board game. These algorithms tell you how to go about executing a specific task with a simple set of rules. Algorithms can also be found in nature. Within the living cells, the replication of DNA molecules follows a very precise step by step algorithm.
  1. Evolution, a recursive algorithm

Algorithms can be “run” once or many consecutive times. By brushing one’s teeth everyday we are using a recursive algorithm. Recursive algorithms are simply algorithms that are typically run again and again. For example, when creating a puff pastry one needs to flatten and fold the dough many times over, thus repeating a simple algorithm in order to create the thin layers of the pastry. Learning a poem by heart through repeated reading and recitation is also a recursive algorithm. With regard to evolution, it is through generations and generations that the genes get selected by natural selection, undergoing the same recurring selective process. Evolution is therefore the result of recursive algorithms.
  1. A replicating recursive algorithm

The particularity of the evolutionary algorithm is that it is circular, by the fact that it applies to itself, making copies of itself, the copies then make more copies of themselves and so on allowing for a continued process that can potentially go on forever. This way, genes make copies of themselves through reproduction into new generations that will, in turn, make copies of themselves, thus allowing for populations to grow and spread. Evolution is a rather simple algorithm that anyone can grasp easily. There is nothing difficult to it. What can be more difficult to grasp is the effect, on the long run, of recursive algorithms, especially when errors and accidents happen along the way, which is the case in nature. Life has been going on for a long time and the algorithm of evolution has had the leisure to run many times indeed. A lot can happen in that time, so much that it can lead to the complexity of life that we know today.

All of this to say that evolution is an algorithm and that the algorithm’s perspective may well be the best angle to study evolution. So let’s try, before we take the point of view of the replicator, to take the point of view of algorithms.
  1. All is code

As it turns out, algorithms are more than “just algorithms”. They’re not just something that sometimes happens to be an algorithm. Indeed, if one looks at the universe from a certain point of view, then everything is algorithm. Or so mathematics say.

Algorithms are nothing else than mathematical objects. Mathematics is the best and only real tool that we have to model the world around us. Mathematics are fascinating for the fact that they allow us to model the world in such simple and elegant ways. A simple mathematical formula can explain and predict the movements of planets with perfect accuracy and scientists find it very efficient to look at the world and make sense of it through mathematics. Evolution is no exception.

Now there are two slightly different angles that one can use to look at the world. Since the boom of computers and their ability to run algorithms we have had a rather new perspective on the world which, in some cases can be easier to grasp. For example, one equation will not be enough to model the formation of galaxies but by using computers and complex algorithms we can simulate the creation of galaxies with our desktop computers. This new approach would simply be impossible and out of reach without the use of computers. Algorithms help us understand the workings of such complex systems as galaxies, the weather, evolution and many complex chaotic systems.

However, the relevance of algorithms goes even further. In fact it has been shown that the relationship between mathematics and computer algorithms is more fundamental than expected. The French mathematician and neuroscientist Jean-Louis Krivine has changed the way one can look at the universe in a rather revolutionary way.
  1. Mathematics' equivalence

Jean-Louis Krivine has helped greatly to demonstrate mathematically the equivalence between maths and a particular programming language called Lambda Calculus. Strictly, for the purpose of this argument, it doesn't really matter to know what the Lambda Calculus is. What is important is to understand what the equivalence means. Basically, J.L.K.’s equivalence means that for all mathematical theorems there exists a computer program that is equivalent, and reciprocally for every computer program there exists an equivalent mathematical object. As a result, there is a strict equivalence between maths and computer programs, in other words, maths are computer programs and computer programs are maths.
  1. The universe is made of codes

What this fact implies is that where we may understand things mathematically, we can also understand them as programs. Science has shown us how we can look at the world and understand it in mathematical terms, in other words, with equations. What J.L.K.’s equivalence tells us, is that we can just as well and rigorously change our perspective and look at the universe as if it were a computer. The laws of gravity, quantum mechanics, and every scientific laws are indeed equivalent to computer programs with this particular fact that the programer and the computer are one and the same, the universe itself. In other words the universe is a giant computing system constantly firing lines of codes.
Now, it’s all very well but why would it be interesting for memetics to look at the universe as a computer? Why take the point of view of the code?
  1. Why take the code's eye view?

The point of this is to show that R. Dawkins’ “entity” can be understood as an algorithm, or a code, simply because, as we have just seen, anything in the universe can be understood as a code. The good thing about this is that, unlike the elusive “entity”, the code is something that we can hope to study and understand. We can now try and see what we can learn about replicators from the fact that they are codes and not just vague “entities”. We can now hope to lift the misunderstanding that stems from the mysterious “entity”.
Also depending on what subject scientists are studying it may be easier to take one view or another. When it comes to the movements of planets, a purely mathematical approach may be simpler, but when it comes to chaotic systems such as the weather, algorithms are more practical. It is easy to see that, when studying genes, the code’s eye view may come more naturally, simply because genes are codes and because of the complexity and chaotic nature of it all.

Now that we know that entities can be understood as algorithms or programs or codes, we should hope to use our “code goggles” and reinterpret the concepts of genes and memes. If we know better what a code is, we’ll know better what genes and memes are, right?
So do we actually understand what algorithms and codes are? Again, we’ll have to agree on what a code is exactly in order to be as clear as possible on the nature of replicators. I would like to be sure that we have defined the core concepts of the replicator as accurately as possible. It would be no use replacing the word “entity” with the word “code” if one could not define the latter precisely. In the next chapter we will try and define the codes the best we can.
  1. The code

I have already used several words to talk about codes, such as algorithm and program. I will use the word code instead of algorithm or program for it is less specific to the realm of computer science and applies in practice to more fields. Now the question is; what is a code exactly?

Unfortunately, there is no universal definition of the code, at least none that I know of. This means that we may need to offer our own definition. There are for sure many uses for the word “code” in a wide variety of cultural fields. For example, we speak of highway code, dress code, secret code, penal code, code of honour, bar code, zip code, genetic code, computer code, code of conduct, etc.. the list goes on. On top of that there are many synonyms of the word "code" such as "rule", "law", "theorem", "principle", "policy", “directive”, "program", "algorithm", "recipe", "method", "procedure", etc.
Here, I wish to use the word code to talk about all and any of those types of code. Remember that at the end of the day, all is code. So In order to agree on the meaning of code and for the purpose of better defining the concept of replicator it is important to define the code as precisely as possible. Yet, what I am looking for here is the most general definition possible, a universal definition of code that would be central to any type of code and still be very precise.
In order to be coherent I will start by considering the computer code. After all, this is the code that was shown to be equivalent to mathematical objects and therefore most universal. Given a computer code, what could we say about that code?
Quite simply, a computer code could be said to be a set of instructions. Indeed, all there is in a computer code are series of commands written in computer language for a computer to read and execute, nothing more nothing less than instructions.
By definition, the very existence of a computer code implies that there should be a computer to read that code. If there were no computer to read the code in the first place, there could be no code for it. What else than a computer can read a computer code? This also implies that the computer code is written in a specific language. There are many computer languages and if the language used is not right then the code is unreadable. Also, let’s not forget that computer codes don’t float up in the air, they need a disc or some kind of memory device to be stored on.
All of these elements, such as a storage device, a computer and a compatible language are necessary elements for the code to exist and make sense. They are in fact inseparable. If one of those parts were to be missing, the code would be meaningless. But that’s not all. There is one last piece that is important. The computer which is reading the code needs to be able to perform actions accordingly to the instructions of the code. If the computer could not do that it would be exactly as if it weren’t actually reading the code, it would be as if it were blind, and therefore it would actually simply fail at being the reader of the code. By necessity, the reader needs to be able to perform actions, the very actions that the code commands.
I believe there is no need for anything more other than these conditions to be true for the code to exist. All these parts are necessary and sufficient for a code to be.
I also believe that these elements are necessary for all types of codes, computer codes and others. Take the genetic code for instance. Its medium is made of chains of nucleotides, the reading of the code is done by the cell hosting the genetic material and acting as a computer, the genes need to be written in proper genetic terms to be able to instruct the cell correctly, and finally the cell needs to be able to read and act accordingly to the code. In the same way as the computer code, the genetic code would be lost if any of the reader, the medium or the language were missing or faulty. And again the same could be said of a cultural element such as a recipe for example. Its medium would be the paper and ink it is written on, the reader would be the cook and the language would have to be one which the cook can read so he can cook. And then again, if any of these elements were to be missing the recipe would be unusable.
So, the code, no matter its nature, is part of a necessary group of five elements and cannot work without this group. So again, this group contains:
  • The code itself which contains the instructions
  • The medium that carries the code
  • The language shared by the code and the reader
  • The reader which reads the code
  • The actions carried out by the reader
As a result we could offer a definition of the code as follows:
  • code is a set of instructions which are stored on a specific medium, written in a compatible language and executable by a reader through actions.
Again we may need to go a little further and make sure we define each of these elements as clearly as possible. What more could be said of the code, the medium, the language, the reader and the actions?
  1. Medium

The medium is intimately linked to the code. So much that in some cases we could confuse the code and the medium, and it may be necessary to really look closely to work out which is what. I will elaborate this point in the Code section further down.
The medium allows two things: the storage of the code, of course, but also its transportation, and different media will have different properties. The medium will thus confer to the code its specs such as its physical size, it’s weight, its robustness and longevity, its precision, its accessibility, its manoeuvrability, etc.
This means that codes’ fitness will be very dependent on their media’s properties.
Examples of media are magnetic or optical discs for computer programs, DNA molecules for the genetic code, sound waves for words, etc.
Through evolution, the natural biological media such as DNA or RNA have many great advantages. For instance they are extremely small in size, robust, and of digital type. These are great characteristics for a medium to have. Comparatively, sound waves are a poor medium as they are short lived, large in size and analog. The trend with technology is clearly towards better, stronger, faster, smaller and generally more reliable media. This trend makes perfect sense from an evolutionary perspective.
  1. Reader and Actions

The reader is the code’s best friend. Codes and readers are meant to be together like a specific key is meant for a specific keyhole. The reader is quite simply the device that reads the code. By reading I mean that it understands the code enough to act accordingly to the instructions provided by the code. If the reader cannot follow the instructions with the right actions then it may as well be blind.
To qualify as a reader, this reader must be able to read at least two different codes and must be able to act in at least two distinct ways accordingly to these codes. A reader may act in many various ways by transforming the environment or by transforming itself. Its actions may also consist in writing more code or erasing code. That’s what readers do, they read codes and transform the world.

Although a reader needs to be a proper “actor” there is one particular action which consists in doing nothing. I believe that this act of “doing nothing” can be regarded as an action as well, as long as there is at least one other action possible that does something (anything except for nothing) and which can be differentiated from the “doing nothing” action. These are the two minimum actions that any reader should be capable of: “doing something” and “doing nothing”. This said, pretty much anything can work as a reader for one code or another, even a piece of rock or a single elementary particle can act as a reader to another rock or particle, simply by interacting or not interacting.

The reader includes everything that is directly involved in generating the actions, however large this reader may need to be. It could be as large as being everything that the code is not. This said, although it may seem necessary to include the sun as part of a reader when the sun is providing the main energy source for that reader, it may be more convenient to consider a smaller range for the reader and limit this range to a human body or a laptop computer for example. But it may be necessary in some cases to consider larger readers, particularly when considering larger timescales.

Every reader has a point of entry, a point in space and time where the code is read. This has some importance because the point of entry will have characteristics that the code will need to comply with. This point of entry will confer characteristics to both the reader and the code, just like the medium confers characteristics to the code. A gene needs to find its way into a cell, a sound wave needs to find its way into an ear, and a computer disc needs to find its way into a disk drive. This constraint is actually a good way to find the code. If we ask the “question where is the code?” then one simply need to find the entry point and we should find it there.
Other point of limitation are the actions a reader can achieve. Not all readers are equal and their range of skills vary. A code can only expect of a reader what that reader can do. The nature of the actions of a reader may be just about anything one can think of and again it may consist in modifying the environment as well as modifying itself.
Now if the universe is made of codes then what are readers exactly? Aren’t they supposed to be codes as well?
Yes indeed, readers are codes too. Anything in the universe could be regarded as a code that could be read by some reader. Readers are just codes that can read other codes and readers contain codes that can be read by other readers. It’s all a matter of perspective. A computer programme such as your web browser is a code and this program can also read other codes which are web pages, these web pages can read other codes such as flash files, and so on. Other example, flowers are the readers of their own genes and the bees read the flowers to choose the ones they will harvest.
So the existence of readers is a matter of perspective. Readers and codes exist relatively to one another. All is code but some codes can be the readers of other codes. We could imagine readers that are readers of each other or codes of each other. It’s all relative.
  1. Language

To identify and decipher a code, the reader and the code need to share the same language. Without this, the code remains indecipherable and therefore inaccessible.

All languages have specific characteristics. For instance, any language is made of terms, bits of code, just like words make up our own language and genes make up the genetic language. The terms of a language are those specific terms that are irreducible ie the terms that cannot be cut into smaller meaningful pieces. It consists of, on one hand the alphabet, the elementary blocks of the language such as letters, GTCA molecules for genes or “1” and “0” for computer language, and on the other hand a set of predefined combinations or words such as “tree” or “cat” or, in the case of genes, codons. A code is therefore a subset of the language, a specific series of terms. Those terms are derived solely from all the original terms of the language, just like a sentence is made of words from the dictionary. A random set of terms such as “mlCw e8T4t-3n2” will most likely be meaningless and therefore may not constitute a rightful code. Furthermore, languages have rules that define how the terms can be arranged in order for them to make sense. These rules of arrangement are known as grammatical rules. As a consequence, a code needs to respect two things in order to be readable. It needs to use proper terms of the language, i.e. the right words, and it needs to sequence those terms properly according to the grammatical rules.

It is important to notice that it is the reader that sets the rules. For the code to be read it is up to the code to fit the rules of the reader. This means that the meaning of a code is relative to the reader. For example the English word “we”, if heard by a French ear, will be understood as “oui”, meaning “yes” in French. One same code will have different meanings relatively to the reader. This relative aspect is of great importance to my efforts of redefining the replicator, but we will come back to it later.
Here again, languages are not all equal. Just like computer languages have evolved to allow programmers more freedom or ease when programming, any language will offer different possibilities to the code and may influence its fitness.
  1. Code

As mentioned earlier, it can be tricky sometime to make the difference between the code and its medium.
If the code is not the medium, then what is the code? If the ink on the paper is not the code then what is? The code is something rather intangible for it is not in the matter itself but in the arrangement of that matter. For example, in the case of text, the code is in the particular arrangement of the ink, more precisely in the geometric shapes of the letters. When drawing a circle, the circle is not in the ink but in the arrangement of that ink, an arrangement that resembles a circle. It is interesting to note that where letters are two dimensional arrangements of matter, words are one dimensional sequences of letters. The geometric shapes of letters are abstract objects, and this is true of all codes, all codes are abstract objects. The same goes for DNA, quite obviously. The code of genes is not the molecules themselves, but their arrangement, or to be more precise, their sequence. For good reasons, genes are described as sequences of nucleotides. And again, the same goes for computers in very much the same way. Computer programs are indeed written as sequences of elementary “bits” which can be stored on many various types of media. Codes often come in one dimensional sequences of bits. Such is the case for sounds, genes and computer programs. But they can also come in multiple dimensional forms. Such is the case of images. Images are typically two dimensional but can also be three dimensional. Also, everyday objects such as a door key for example can carry three dimensional codes. Food involves usually even higher number of dimensions, putting together shapes, colours, taste, smell and textures. Computers can potentially handle codes of much higher amount of dimensions.

A consequence of this is that one can’t exactly see or touch a code. One can only read a code by interacting with its medium, by seeing or touching its medium or by other means of reading. The procedure of reading is what will turn the code into meaning.
  1. Coding systems

I call a coding system, any system containing codes, media and readers. Our universe is a coding system obviously but computers and brains can be regarded as coding systems on their own. Coding systems can be complex and contain sub coding systems themselves. For example computer run programmes that can run sub programmes with their own codes and so on. Also our brains have their own internal workings but are also part of a larger social coding system that exists only within groups of people.
It can be interesting to study how coding systems may arise by chance, like life arose on earth.
  1. Conclusion

I hope I managed to show clearly that the world can be understood from the point of view of the code. Thus showing that a replicator is itself a code and consequently holds the characteristics of any code. This important fact will now help us understand better what replicators are. We have defined Richard Dawkin’s “entity” as a code and it is time now to tackle the meaning of “copy”.