Using Controlled English as a Knowledge Representation languagesteemCreated with Sketch.

in #tauchain6 years ago (edited)

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.
The temperature is -2°C.
A customer owns a card.
A customer gives a card to a clerk.

To construct sentences without a verb you can rely on:

there is + noun phrase
there are + noun phrase

For example:

There is a customer.
There are at least 3 apples.

And you can add detail with:

A trusted customer inserts two valid cards.
There are two valid cards.

And you can use variables:

  • John's customer inserts a card of Mary.

  • John inserts a card A.

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.
Every customer is a human.
Every man is a human.
Every woman is a human.

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:


@dana-edwards since you are closer to the project, do you know if they are active on developing? I mean I can't see any progress the last 6 months on their official repo

PS their site is sadly also very "basic" made .... They should focus a little bit more on marketing and PR... Your posts about the project is the only refreshing and positive activity lately... Am I missing something?

What you see is on Github is what you get. As far as I know it is being researched but is not in active development. If you would like to know more you should ask Ohad, but if the code isn't on Github I assume it doesn't exist until it is, and I track the Github as everyone else does.

As far as approaches to programming, I do believe it is a valid approach to create a detailed specification first and then produce the code to meet it. That is how I would do it, that is how many programmers do it. The spec can be just a description in plain English, as I often describe in my notes in plain English what I the app to do and then research as necessary on how to code it as I go along.

In this case it appears Ohad has completed most of the research so I'm not sure what is holding things back. This is why you must ask him questions like where the code is.

a site for free materials

tnak you Dana ... soo interesting ...
can you tell me for what is the name TAU ... it is for Taurus ... or is the Greek

Coin Marketplace

STEEM 0.22
TRX 0.06
JST 0.028
BTC 23371.36
ETH 1661.29
USDT 1.00
SBD 2.72