Application of Knowledge Representation & Reasoning to Ethereum

Ever since I found out about knowledge representation ( I have always wondered why more systems weren't built on top of a common semantic framework or metalanguage of some sort. In some areas that are taxonomy-heavy like some biology or medical applications, a type of knowledge representation is being applied regularly. But I always felt that some type of universal semantic framework that allowed for automated processing would be useful as a foundation for computer systems in general, from the lower-level layers and on up.

Some of the common representations for knowledge (semantic data) such as ordinary RDF or OWL are cumbersome. There are nicer notations such as N3. But the serialization is really not the point. The idea is that the level of representation is compatible with different types of projections into different syntaxes, has the ability to be automatically reasoned on with logic, and serves as a common platform for specialized systems at different levels.

So in my imaginary computer that has all of its different programming languages and layers organized this way, the abstract syntax tree created from a parsed programming language fragment might directly reference nodes in this common information system metalanguage knowledgebase. Then another similar but different programming language may use many of those same nodes and some different ones.

I believe that pretty much any information system could benefit from such a common computer system metalanguage knowledgebase, but as a foundational platform, with something like Ethereum it may apply even more.

I suppose EVM is a type of metalanguage. I suspect though that an even higher level language could take more advantage of deduction.

Anyway, not sure it is easy or practical to apply this to any particular area in your system, but I hope programmers involved with Ethereum and Ethereum-based projects will research it and take advantage of KR research or similar concepts if it is readily applicable. Thanks.


  • wireswires Member Posts: 7
    Ok, so the idea to describe knowledge using a "labeled" graph is a great idea, very flexible. (e.g. 'cookie' ---is_a---> 'food'). But the problem is with the labels on the edges 'is_a'.

    Typically these labels come in a set, called a vocabulary. This vocabulary defines what the meaning of the graph is and usually comes with some sort of logic to "explain" it's meaning.

    So for instance the "dublin-core" vocabulary makes a lot of sense, people will probably not argue about this much ('author' means this destination of the edge points to the author of the source of the edge). However, for most more complicated vocabularies there can be issues with the logic. Classical logics allow you to deduce conclusions but without having a concrete justification for them. And if you have limited data (which is usually the case when it involves the internet) you can run into contradictions.

    Anyway, there are more issues, haven't looked at it for a while. But the point is the research is not finished, there is no agreed upon "universal semantic framework".

    (In fact, if you find this interesting, there is an argument by Girard arguing that semantics in the current sense don't make sense. Have a look at his logic book and transcendental syntax 2.0 articles, ludics and related posts)

    Anyway, so your question makes sense. A contract now is defined by it's (stack-machine) source code, which is not necessarily easy to reason about.

    But KR is not in the state that it can be used by Ethereum, IMHO
Sign In or Register to comment.