The power of ambiguity and of ambiguity minimization in communication. By Dana Edwards on Steemit. June 1, 2018.
Formal communication benefits from ambiguity minimization.
So what exactly do I mean by formal communication? Well when we think of how human beings communicate with machines it is in a formal language. This formal language requires minimized ambiguity for security analysis (how can we analyze code if we cannot effectively interpret it?). The other problem is that the machines require for example that if... then... else and similar conditional statements are well defined and unambiguous.
Is it possible to show that a grammar is unambiguous?
To show a grammar is unambiguous you have to argue that for each string in the language there is only one derivation tree. This is how it would be done theoretically speaking.
In computer science, an ambiguous grammar is a context-free grammar for which there exists a string that can have more than one leftmost derivation or parse tree, while an unambiguous grammar is a context-free grammar for which every valid string has a unique leftmost derivation or parse tree. Many languages admit both ambiguous and unambiguous grammars, while some languages admit only ambiguous grammars.
Specifically we know that deterministic context free grammars must be unambiguous. So we know unambiguous grammars exist. It appears the strategy is ambiguity minimization with regard to formal languages (such as computer programming languages).
For computer programming languages, the reference grammar is often ambiguous, due to issues such as the dangling else problem. If present, these ambiguities are generally resolved by adding precedence rules or other context-sensitive parsing rules, so the overall phrase grammar is unambiguous. The set of all parse trees for an ambiguous sentence is called a parse forest.
The parse forest is an important concept to note. All possible parse trees for an ambiguous sentence is called a "parse forest". This concept is key to understanding the strategy of ambiguity minimization. So we can in practice minimize ambiguity and we know for certain that deterministic context free grammars admit an unambiguous grammar but what does that mean? What are the benefits of unambiguous language in general?
A benefit of ambiguity minimization
Simple English is a form of controlled English designed to minimize ambiguity in English. This is important because by using simple English to codify the rules or write the laws it puts it in a language where there is less of a computational expense (in brain power) to process and interpret the statements.
In one of my older blogposts @omitaylor commented and in one of her future posts she asked about the topic of love. In specific her post was titled: "What Does LOVE Mean To YOU"
Her post highlights the fact that there are different love languages and that we don't all speak the same love language. Ambiguity here is actually not a good thing but the simple fact is when someone speaks about love how do we know they are talking about the same thing? As a result we often seek an agreed upon or formally defined "love concept" where we all agree it's love. This is not trivial to find and as a result a topic like love is not easy to discuss in any serious manner. Unambiguous communication or to be more precise (minimized ambiguity) would allow Alice to discuss with Bob the topic of love in a way where they both know exactly what the other is referring to in terms of behavioral expectations, emotions/feelings, etc.
If Alice agrees to love Bob then Bob has no way to determine what Alice means unless he and she agree on a mutually defined concept of love. This highlights how agreement requires very good communication and how minimizing ambiguity can be beneficial at least in this example.
Ambiguity minimization makes sense when you are following a principle of computational kindness. That is if Alice would like to reduce the computational burden on Bob then she can reduce or minimize the ambiguity of her sentence. This is because in order for Bob to interpret an ambiguous sentence Bob must in essence sort all possible interpretations of that sentence from most likely interpretation to least likely interpretation, and before he can even sort he must first search in order to find all possible or at least plausible interpretations.
This is very computationally expensive for Bob but very cheap for Alice. Alice knows exactly what she means but Bob has no clue what Alice REALLY means.
A benefit of ambiguity
There are other examples where increasing ambiguity could be beneficial, such as perhaps when the communication is less than formal, or to share a stream of consciousness without turning it into a formal communication. Humor for example rides on ambiguity and a good joke may have multiple layers. Art also leverages ambiguity because it's perhaps meant to be interpreted 20 different ways all to produce a certain desired affect.
Ambiguity allows more meaning to be packed into fewer words. This in a sense is a sort of compression scheme. So if a sentence has multiple possible meanings the levels or meanings are still finite. It's a fixed amount of meanings and so theoretically speaking a search can be conducted. In fact this is what a human being does when interpreting natural language where a sentence can have multiple meanings (they do a search for all possible interpretations of that sentence). The problem with this is that it is computationally expensive as a process at least for the human being to try to figure out all possible interpretations of a sentence.
Lawyers when they do their work are working with a specific knowledge base of common legal sentences and common interpretations known in their profession but the rest of us might see a sentence in lawyer-speak and not really know what it means because we will not know the common interpretations. This is a big problem of course because to form agreements between two parties both parties need to have a common understanding (a kind of knowledge symmetric understandability) allowing them both to interpret roughly the same sentence to mean the same thing.
Tauchain is not easy to understand but here are some concepts to know to track Ohad's progress. By Dana Edwards. Posted on Steemit. February 28, 2018.
Someone asked over social media why anyone would want to hold onto AGRS tokens merely due to faith in Ohad Asor. This is a good question to ask and a good time to ask it. I'll explain first why I'm holding and then explain how it is important to understand what you invest in.
I hold AGRS because I've communicated with Ohad Asor and he is one of the rare people who is better at research and development than I am. In fact, he is the best I've met so far in the crypto community at that specifically. R&D is the most critical component in software design and we see over and over again if they get that wrong projects are doomed. One of the strengths of Steemit, EOS, etc, is that Dan Larimer is very good at conducting both R&D and at writing the code.
Tauchain currently and unfortunately requires a Phd level understanding of computer science to get very excited about. This is not so good for people who do not really understand their investments but it means that you have the option to ask people who do have Phd level knowledge to either explain Tauchain to you or some aspect of these concepts which I'll list below.
The concepts to understand in order to see what Ohad is attempting on Github.
These concepts may be abstract but they all work together to allow for you the user to input both a document and a grammar into TML and receive a useful output. You have the power of partial evaluation with Futamura Projection. Without going into too much detail here, what it will allow is for the user to provide the input document defining the language and a source code. The first document is the "interpreter" to parse the source code.
So if we look at Github we can see Ohad has completed a rough yet functional implementation of the TML with partial fixed point logic and partial evaluation. The Earley parser takes the source code which is always a string, and parses it. This quote from Wikipedia explains it better:
In computer science, the Earley parser is an algorithm for parsing strings that belong to a given context-free language, though (depending on the variant) it may suffer problems with certain nullable grammars. The algorithm, named after its inventor, Jay Earley, is a chart parser that uses dynamic programming; it is mainly used for parsing in computational linguistics. It was first introduced in his dissertation in 1968 (and later appeared in abbreviated, more legible form in a journal).
In developing compilers we use the grammar to define the syntax of a programming language. TML will require a grammar defining the syntax of the language you want to use and also the source code which are the commands. The AST is an abstract representation of the source code and the logic is applied are part of the syntax analysis phase of compiling. If I did not explain this sufficiently, I apologize as this is again something complicated and requires a lot of prerequisite knowledge.
The point being that if you really want to understand why some of us are so excited about what Ohad Asor is attempting to do then the only way to truly grasp what is at stake is to do the necessary learning. Learn as much as you can about your investment. Study the concepts you have to study in order to keep up with what happens on Github. You don't have to trust the experts if you're willing to gather the knowledge to become an expert yourself. This means reading at minimum all the Wikipedia entries and at maximum it could mean spending hundreds of hours watching Youtube videos, reading academic journals, like some of us have been doing.
If you do not want to invest the time and energy to truly understand Tauchain then maybe it is better that you do not buy a token you cannot understand. Simply wait for it to reach a stage to where you can see what it can do for yourself before making a decision. Do not consider this post or these comments as investment advice but merely a suggestion to use caution with regard to how you spend your money if you do not understand what you are getting into.
Logo by CapitanArt
Enlaces / Links
Logo by CapitanArt
Archivos / Archives
Suggested readings to better understand the Tau ecosystem, Tau Meta Language, Tau-Chain and Agoras, and collaborate in the development of the project.
Lecturas sugeridas para entender mejor el ecosistema Tau, Tau Meta Lenguaje, Tau-Chain y Agoras, y colaborar en el desarrollo del proyecto.