← back

Philosophical investigations into engineering units

A few days ago, we covered the topic of units. To be more precise, we explained a way to prevent you from getting unit conversions wrong. We closed that post hinting that units are, in a sense, a way engineers “invented” a new mathematical language to accommodate their needs.

It is fascinating to look at the seemingly simple process of converting units in this light. What, if there is much more that we could be doing with this approach? What kind of domain knowledge could we start using with tools at our disposal in the 21st century? To what end could we use new mathematical languages today and why did we not do this already?

In this post, we will try to answer at least some of the questions above. Our investigation will lead us beyond the engineering domain. We will cover mathematics, computer science, and even philosophy. But for now, let’s start with an example.

Semantics, Models, and Reasoning: a perspective on units that nobody ever asked for

This is a rather simple, mathematical equation. Many kids can not only understand its meaning but also solve it themselves. No big deal. Now, what about the following calculation?

What is the result of this equation? 9? 9 Watt? 9 °C? 9 Watt °C? More importantly: what really changed, and why does it mess up our ability to solve what we see. Everything became much more complicated and it’s not entirely obvious what went wrong. Apparently, by adding just a few symbols, we broke something fundamentally.

If you are reading this, you probably have a background that lets you interpret “Watt” and “°C” as units of corresponding physical quantities. What you know about these quantities is what confuses you and prevents you from coming up with a result. Temperatures are just something fundamentally different than powers and therefore can not be added.

It seems, that your knowledge is a large part of the problem here. More than enough reason to look a bit closer and see what exactly just happened.

What happened here? A crash course on semantics

Obviously, by introducing “Watt” and “°C”, we introduced much more than just a few symbols. By doing it, we leave the realm of classic mathematics by breaking its syntax. If our brain was a conventional computer built to solve mathematical equations, it would have immediately protested at the sight of the equation above and wait until we correct our “syntax errors”.

Our brain, however, luckily is still much more than a computer. It tries to interpret the symbols it sees on the fly to make sense of them. By doing so, it comes up with its own syntax and changes the semantics (meaning) of symbols that have been there before.

In doing so, our brain creates a mental model that is consistent with what it sees. If you have an engineering background, chances are very high that your model is based on the assumption that “Watt” and “°C” are both units and correspond with physical quantities “power” and “temperature”. If you had a completely different background, you would potentially interpret these symbols differently or omit them altogether.

For now, however, let’s stick with the case that you have an engineering background. All of a sudden, your brain connected what it sees with a massive body of knowledge we call “physics”. This is beautiful, as it creates a more expressive version of the calculation. However, in doing so, it also finds inconsistencies that have not been there in the beginning. While we had no problem whatsoever adding two numbers “5” and “4” (this was consistent with our body of knowledge), adding numbers representing power and temperature is not consistent with our physics knowledge. Via reasoning, we understand that something is fundamentally wrong with what we see as we struggle to find a model that is consistent with our knowledge and give up.

At this point, we would like to briefly introduce you to Ludwig Wittgenstein. Born in 1889 in Vienna, he originally planned on becoming an engineer. While working on problems in the field of aviation, however, he fell in love with the fundamentals of mathematics and eventually turned towards philosophy.

Neat, you might think, but what does all of that have to do with units? Well, the field that Mr. Wittgenstein worked on was logic. He was particularly interested in language and how it can or can not help us to arrive at assertions about the world. The fact that he, originally, started off as an engineer, to us, is just the icing on the cake.

His findings are the foundations for a beautiful field within computer science- description logics. Scientists in this field use ontologies and knowledge bases to encode human knowledge in a machine-readable manner. Technologies facilitating these are often referred to as symbolic AI.

There would be a whole lot more to say about this, but for now, let’s leave it here and just say: there is a way to make our (engineering) domain knowledge accessible for computers. Amazing, right?

Using domain knowledge to our advantage

Ok, so let’s suppose we can encode domain knowledge in a way that lets computers understand it. What would we do with it? Well, let’s investigate what we already do before we investigate things that go beyond that by picking up where we left our example above.

It seemed like reasoning prevented us from calculating which, at the first glance, seems like a bad thing. Understanding when something does not make sense, however, is still better than just processing it producing gibberish without even knowing.

Using this “constructively”, is something we all do in our daily lives as engineers. Consider, for example, the following equation:

What is the unit of the result of this equation? Exactly, kW. Similar to what we did above, using units, we understand that the result of this calculation needs to also be some sort of power (i.e. have a unit similar to Watt) otherwise, we would have created an inconsistency again. It is, somehow, clear to us that the result of this equation, again, needs to be in kW.

For another aspect, consider the following example:

Naturally, we can derive that the result of the calculation will have the unit km and will therefore be a distance of some sort. Moreover, we can start thinking about a more detailed explanation. This equation might, for example, describe a train driving for 5 hours with an average speed of 100km/h and the result would be the distance that the train traveled: 500km. We can take a similar view on the dishwasher example introduced a few weeks ago:

If we look at engineering equations like this, we start seeing something beautiful. We see that Power is somehow “similar” to velocity and that distance is somehow “similar” to energy. What’s more: the relationship between power and energy is “similar” to the relationship between speed and distance. This also holds mathematically. Both energy and distance are the results of integrating power and velocity over time, respectively. For reference, check out the following picture that illustrates these relationships.

So what?

The examples above show, how powerful domain knowledge can be. Currently available tools and approaches, however, do not include them in our daily work sufficiently. Just think of the computational tool you use most which, for many people will be MS Excel. It is not taking engineering knowledge, or even physics knowledge into consideration. The same is true for other spreadsheet or BI tools. As a result, you need to keep track of things like units and conversion factors yourself. Furthermore, you are missing out on any of the aforementioned reasoning capabilities and, as a consequence waste a lot of time and energy.

We at gnista.io think, that this should end and that engineers deserve a tool that aids them according to the technological abilities of the 21st century. Therefore, we developed a hybrid AI tool that aids our users with engineering knowledge. It learns more parts of human knowledge daily and we are more than excited to see what our users will create with its help.

If this sounds interesting to you, feel free to enter our waitlist so we can give you a beta account!