Disclaimer: The views and opinions expressed in this article are those of the authors and do not necessarily reflect the official policy or position of Blockgeeks
EthOn — introducing semantic Ethereum
EthOn is a multi-purpose Ethereum ontology. It takes all these blockchain terms you might have heard of (Blocks, Transactions, Contracts, Nonce, …) brings them into relation with each other and gives short and clear definitions.
Back in the days of the DAO, its heist and the subsequent analysis of what happened, I spent a lot of time understanding Ethereum and its concepts. I read the white and the yellow papers (I really did!), crawled through stack exchange, devoured anything there was about Ethereum on Reddit and still many concepts of how it worked were really hard to figure out. Don’t get me wrong; there is no doubt that Ethereum is well defined, but the problem was that the information was not always available in a format that allowed me to comprehensively understand the concept I was interested in.
Since I love the idea of the Semantic Web and have a background in creating formal models, my natural approach is to describe Ethereum as an ontology.
These are some of the benefits that come for free with EthOn:
- With EthOn dumb data turns into smart data — if a dataset references EthOn terms, it becomes self-explanatory
- EthOn provides an automatically generated extensive glossary of Ethereum terms
- by providing unambiguous terms, EthOn is a means to improve communication among developers, technical and non-technical people
- EthOn is a learning resource for understanding how Ethereum works and for reading the yellow paper
- EthOn provides a way to formally describe Ethereum artifacts in a machine readable format
- EthOn provides the ability to semantically annotate content provided by Ethereum based tools and dApps (e.g. block explorers, analysis tools, markets, IPFS, …)
- semantic reasoning about partially described Ethereum artifacts to infer new knowledge
- … use it for YOUR project!
What is an ontology?
Ontologies are formal and schematic descriptions of an area of knowledge. The concepts of the domain are collected into a curated vocabulary and then organized. It can be explicitly defined how concepts relate to each other and what rules there are for their existence and the relations between them. The conclusiveness of concepts and their relations is a function of the desired area of application of the ontology.
Why should there be an ontology for Ethereum?
Ethereum is an ideal field of application for ontologies because a consensus about the semantics of the involved concepts is a prerequisite for reaching consensus about the state of the network. Any deviation from this consensus results in a fork. An Ethereum ontology may serve as a semantic specification of its concepts that complements its technical specification. It is also a learning resource for those trying to understand the yellow paper and a foundation for semantic annotation of Ethereum artifacts.
As an example, in Ethereum there is the concept of a Block. All Blocks must have a parent and child Block. This is true with the exception of the very first block, which only has a child and the newest Block for which the child has not yet been found. Also, a Block contains a list of Transactions (which may be empty). Blocks have an associated miner, who receives the Block reward.
In an ontology, these domain concepts are formalized in an ontology language (e.g. OWL) so that they can be referenced, queried and used for inference. Referencing an ontology can be useful in many scenarios. An Ethereum block explorer could, for example, reference the Block concept of the ontology to state that the term Block used in its user interface is identical to the one defined in the ontology. An API, be it from an Ethereum client or a wallet service, can reference ontological concepts to state compliance with a standard. Then, the ontology can be used to verify that the API actually complies with it. Querying an ontology can be useful to retrieve definitions of technical terms, in order to create a glossary. If a piece of data is retrieved from an API that identifies it as a Block, the ontology can be queried to find out about its structure, ranges of values and relations to other concepts. An ontology can also be used to infer knowledge. If a Block doesn’t have a parent, it can be concluded that it must be the first Block of a blockchain.
What Is Semantic Ethereum? A very short example
This example shows how EthOn can be used to describe Ethereum artifacts. Besides this, there are many other uses for EthOn.
This is how EthOn models an Ethereum Block:
According to the above model, a Block can now be described as Linked Data using the Turtle notation:
The Future of EthOn
When Ethereum changes, e.g. to Proof of Stake, this will be reflected in EthOn. If the ontology changes in an incompatible way, the version number will be increased.
EthOn could in future reuse or reference concepts from a project called BLONDiE, a more general blockchain ontology.
These links may be useful if you want to learn more about EthOn:
- EthOn GitHub repository:
This a talk by Tim Berners-Lee who explains his vision of the Semantic Web
Originally published on Medium