Levels of Abstraction, A Key Concept in Systems Design

Working with complex systems means creating different interpretations of reality.

Daniel Jhin Yoo
4 min readOct 17, 2018

Keanu Reeves Learns about Abstraction

If you’ve seen The Matrix, you might remember this scene where Morpheus breaks the news to Neo that the world he thought was “real” is actually an abstraction — the Matrix.

“Wait, this is just a higher level of abstraction?”

NEO: This, this isn’t real?

MORPHEUS: What is real? How do you define real? If you’re talking about what you can feel, what you can smell, what you can taste and see, then real is simply electrical signals interpreted by your brain. This is the world that you know. The world as it was at the end of the twentieth century. It exists now only as part of a neural-interactive simulation that we call the Matrix. You’ve been living in a dream world, Neo.

Reality according to Morpheus

Morpheus is basically saying that reality is a complex system and it cannot be understood or defined in any one particular way. Reality is better understood as levels of abstraction:

Level 2: Human Perception

At this higher level of abstraction, we experience reality through our five human senses: see, hear, touch, taste, and smell. At this level, the Matrix and Reality are indistinguishable.

This chair is “real” because we can experience it using the five senses.

Level 1: Brain Science

At this lower level of abstraction, different combinations of electrical signals are being interpreted by the brain as our five senses. It is only at this lower level of abstraction we can see that what we thought was reality is being manipulated through high-tech dentist chairs that plug directly into the brain.

This is what the reality of the Matrix looks like at a lower level of abstraction: high-tech dentist chairs that manipulate the electrical signals entering the brain.

Levels of Abstraction in Real Life

Okay, let’s get out of the world of science fiction and look for levels of abstraction in the real world around us. It turns out that levels of abstraction are everywhere, but it is hard to see them because we take them for granted. They are hiding in plain sight.

A Real Life Example: Where do you live?

Imagine that you meet someone new and they ask you, “where do you live?” How would you answer?

  • If you were asked by the IRS or on a government form you would give your exact street address — or else!
  • If you met someone at a local event or school, you might answer: I live in the blue house on Bond street.
  • But what if you were visiting another country? Most likely you would say, I live in the United States.
  • If you were having an extraterrestrial encounter, you might say, I’m from the planet Earth.

Those are all very different answers! Which one is the real answer? All of them of course.

You were using levels of abstraction unconsciously. You responded at the level of detail that would be more helpful and descriptive to the person you were speaking to. In other words, you were choosing the level of abstraction that best supported the purpose of the conversation.

Creating Levels of Abstraction

We can give names to these different levels of abstraction — lower levels of abstraction are more specific and higher levels of abstraction are more general.

7. Planetary— I’m from the planet Earth. Take me to your leader.

6. Country — I’m from the United States.

5. State — I’m originally from Wisconsin.

4. City — I’m live in Chicago, IL.

3. Neighborhood — I live in Jackson Heights, Queens

2. Building — I live in the blue apartment complex on Michigan Ave.

1. Physical address — 476 N Bond St., Fresno, CA 94420.

Defining Abstraction

You’ll find many different definitions and explanations of the word “abstraction” but I found Wikipedia’s definition to be the most helpful when working with complex systems,

Abstractions are created by selecting only the aspects of a complex system which are relevant for a particular subjectively valued purpose.

Consequences of the Definition for Systems Design

  • Abstractions are created for a particular purpose — they are problem-solving tools we create for a particular problem, challenge, or goal.
  • All abstractions are simplifications — we select some aspects of the complex system and purposefully leave out others.
  • Abstractions are useful (or not) — rather than being good/bad or right/wrong, abstractions are more/less useful for helping us solve problems.

Appendix: More Examples

The Treachery of Images by René Magritte

“This is not a pipe”

The famous pipe. How people reproached me for it! And yet, could you stuff my pipe? No, it’s just a representation, is it not? So if I had written on my picture ‘This is a pipe’, I’d have been lying!

René Magritte

Got to love the surrealists and their heavy-handed message that art and reality are different — art is an abstraction of reality.

Computer Programming 101 by Abstruse Goose

There are many layers of abstraction to understand how a computer program works.

Abstraction is a heavily-used concept in computer programming. The levels of abstraction in this cartoon are:

99. Source Code

98. Object Code

97. Machine Code

96. CPU

95. Microprocessor

36. Silicon Chemistry

6. Quantum Mechanics

--

--

Daniel Jhin Yoo

Former software developer, special education teacher, and district administrator. Building @goalbookapp to empower educators.