Using Controlled English as a Knowledge Representation language. By Dana Edwards. Posted on Steemit. April 4, 2017.
Previously I mentioned "controlled English" when discussing the concept of knowledge representation. This post will go into some detail about what controlled English is. In specific I will discuss Kuhn's doctoral dissertation and Attempto Controlled English (ACE).
Computational linguistics is an interdisciplinary field concerned with the statistical or rule-based modeling of natural language from a computational perspective.
There are many different controlled natural languages
First I would like to discuss the fact that controlled English is not the only controlled nature language and Attempto Controlled English is only one particular controlled English. For example 1 there is RuleSpeak which is a controlled natural language for business rules. Another example2 is Quelo Controlled English which is a controlled English for querying, where you would say statements such as: "I am looking for something, it should be located in a city, the city should produce a new car, the new car should be equipped with a diesel engine". In addition to these examples we also have Google which uses Voice Actions where you can speak into your android phone and say something like: "Create a calendar event: Dinner in San Francisco, Saturday at 7:00PM". All of these are examples of controlled natural languages and reveal just how powerful this could be for users and developers.
What is Attempto Controlled English (ACE)?
Attempto Controlled English also known as ACE is a specific controlled natural language. It is likely that at some point in the early stages of development this controlled natural language will be implemented on Tauchain. ACE is like English but relies on following certain rules with a restricted vocabulary.
Rule subject + verb + complements + adjuncts
All simple ACE sentences have the above structure of subject + verb + complements + adjuncts. An example would be the following sentences below:
A customer waits.
To construct sentences without a verb you can rely on:
there is + noun phrase
There is a customer.
And you can add detail with:
A trusted customer inserts two valid cards.
And you can use variables:
How does Attempto Controlled English help with Knowledge Representation?
In specific because anyone who speaks English can quickly learn Attempto Controlled English it will mean anyone will be able to contribute to the process of knowledge representation. Contributing to a knowledge base becomes very easy when you can simply describe in plain English (with restrictions) exactly the knowledge you want to represent. A semantic Wiki can be built out of this process rather easily.
How does Attempto Controlled English relate to Tauchain?
Tauchain requires input from the users to determine a formal specification. Attempto Controlled English is simple enough that anyone can describe a formal specification. For example sentences like:
Every customer inserts a card.
As you see above, we are dealing with types. Human is a type. Human is divided at a minimum between male and female subtypes.
And ACEWiki gives an example of what a formal specification could look like in Tauchain. The example being country, where the knowledge in this case is the concept of a country. Then we describe a country by filling in the Wiki collaboratively, where we know first of all that every country is an area, but then collaboratively we fill in the list of current persons who govern a country. Through this method we add to the knowledge base using the knowledge representation language ACE, and in the case of Tauchain we would be adding to potentially a formal specification which eventually is synthesized (program synthesis) by the Tauchain automatic programmer.
To learn more about Attempto Controlled English Wiki watch the video lecture
Kuhn, T. (2009). Controlled English for knowledge representation (Doctoral dissertation, University of Zurich).
Kuhn, T. (2014). A survey and classification of controlled natural languages. Computational Linguistics, 40(1), 121-170.
Kuhn, T. (2009). How controlled English can improve semantic wikis. arXiv preprint arXiv:0907.1245.
Ranta, A., Enache, R., & Détrez, G. (2010, September). Controlled language for everyday use: the molto phrasebook. In International Workshop on Controlled Natural Language (pp. 115-136). Springer Berlin Heidelberg.
Ross, Ronald G. 2013. Tabulation of lists in RuleSpeak—using “the following” clause. Business Rules Journal, 14(4):1–16.
White, C., & Schwitter, R. (2009, December). An update on PENG light. In Proceedings of ALTA (Vol. 7, pp. 80-88).
Web 2: http://attempto.ifi.uzh.ch/site/resources/
Fuente / Source: Original post written by Dana Edwards. Published on Steemit: Using Controlled English as a Knowledge Representation language. April 4, 2017.
A less understood feature of Tauchain is the feature called "program synthesis" in academic literature. This is a feature that as far as I know no one else in the crypto community is investigating. This feature of program synthesis when combined with the knowledge based AI discussed in my previous posts(1,2), would allow Tauchain to leverage the trend of big data. As the collective knowledge base of Tauchain expands, the capability of this automated programmer will improve. The automatic programmer will reason over an increasing collective knowledge base to allow Tauchain to in a sense "program itself". Smart contract developers will gain piece of mind knowing that their smart contracts are formally verified (for correctness) and users will be able to contribute to the development by joining in as a group to accurately describe the behavior of the code.Haz clic aquí para editar.
The impact of program synthesis and knowledge based AI on the smart contract development community.
Let's discuss what this means for smart contract developer. A smart contract developer today has to deal with creating a white paper, then a formal specification, then do the programming and formal verification themselves. This is very difficult for humans to do and as a result very few people are able to write secure smart contracts yet almost everyone can come up with some interesting idea for a smart contract. Program synthesis will allow individuals or a group of people to specify in a simple yet controlled natural language such as a simple English what they want (this creates the formal specification) and from this description of what they want the automatic programmer will handle the rest. The code will in a sense be written automatically by the AI by reasoning over a knowledge base which could include the knowledge necessary to produce the code for that smart contract.
AI learns to write its own code by stealing from other programs?
In summary, each participant in Tauchain will be able to speak to their "automated programmer" in a language they are comfortable with. They'll describe as accurately as they can the functioning and behavior of the program or smart contract. The automated programmer will then reason over a very large knowledge base and if it is smart enough it will automatically generate the code for the smart contract from their description. The participant will then either be satisfied with what was generated or not satisfied and update their description so as to trigger the process until they are satisfied. This is yet another breakthrough feature which Tauchain may be able to offer to the crypto-community in addition to potentially solving the knowledge acquisition bottleneck problem.
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.