A TRANSlator from LAnguage TO Rules

David Hirtle

Last updated:

Quick links:

Demo, Paper, Talk [updated], Thesis, Examples

One explanation as to why the Semantic Web has not quite caught on yet is that the barrier to entry is too high. TRANSLATOR, a free tool available as a Java Web Start application, addresses this problem by allowing anyone, even non-experts, to write facts and rules in formal representation for use on the Semantic Web. This is accomplished by automatically translating natural language sentences written in Attempto Controlled English into the Rule Markup Language, using the Attempto Parsing Engine Web service as a backend. XML representation in RuleML has several advantages, not least of which is compatibility with existing Semantic Web standards.



TRANSLATOR is available as a Java Web Start application: TRANSLATOR demo.

Note: Because the application must use the local machine's internet connection to access the Attempto Parsing Engine webservice, you'll get a warning (like) "The application's digital signature is invalid".


The slides from a talk delivered at the Canadian Symposium on Text Analysis 2006 are available: PDF, PPT.

A detailed description of TRANSLATOR, including the input (ACE), user interface, translation process, output (RuleML), DRS-RuleML mapping, and future work, is available in the form of an honours thesis: TRANSLATOR thesis.

An updated and condensed version of the thesis (e.g. without appendices) is being published: CaSTA paper.

The components and dataflow involved in TRANSLATOR can be visualized as follows:



Current version: 1.4 (April 28, 2006)

Download: binary release (*.class only) or full source release (*.java only)

Required libraries:


(To be expanded.)

To learn more about Attempto Controlled English (ACE), please consult the following resources:

There are also numerous Attempto publications that may be helpful.


Several example input and output pairs for TRANSLATOR have been prepared:

If John does not eat and it is not the case that somebody feeds him then John is hungry. hunger.ruleml
John is hungry if John does not eat and it is not the case that somebody feeds him. (equivalent to above) hunger2.ruleml
If a person X likes the wine then John likes X. Mary likes all wine. (from likes.ruleml) likes-ACE.ruleml
If a person buys an object from a merchant and keeps it then the person owns the object. If a merchant sells an object to a person then the person buys the object from the merchant. John sells the book "XML Bible" to Mary. Mary keeps the book. (from own.ruleml) own-ACE.ruleml
The discount is a:five-percent if the customer is a:premium and the product is regular. The discount is a:seven-and-a-half-percent if the customer is a:premium and the product is a:luxury. A customer is a:premium if the customer's a:previous-year n:spending is at least 5000 n:euro. A n:Porsche is a:luxury. A n:Honda is regular. p:Peter-Miller's a:previous-year n:spending is at least 5000 n:euro. (from discount.ruleml) discount-ACE.ruleml

(All output files are stored in the Examples directory.)

The RuleML output by TRANSLATOR can be shown to be valid (according to the XML Schema for the First-Order Logic) sublanguage of RuleML) by using W3C's XML Schema Validator (XSV).

Site Contact: David Hirtle