This demo shows how an ontology that is written in OWL 2 XML is verbalized in Attempto Controlled English (ACE). This conversion is designed to be reversible, i.e. one can convert the ACE representation back into OWL so that no loss in meaning occurs.
The source code, issue list, documentation etc. of the OWL verbalizer are available at https://github.com/Kaljurand/owl-verbalizer.
If the ontology contains a syntax error or takes too long to verbalize then an error message is returned.
We first rewrite the class expressions and axioms via a limited number of more basic class expressions and axioms. The motivation behind this step is to replace axioms like
ObjectPropertyDomain(R C)
which have very little syntactic structure and contain logic-specific words like `domain'.
The remaining class expressions are mapped to ACE noun phrases and the remaining axioms to ACE sentences. OWL properties are ACE verbs or of-constructs and OWL individuals are ACE proper names. The following table shows an example how the OWL constructs are mapped to ACE constructs.
OWL | ACE |
Named property | Transitive verb, e.g. own; or of-construct, e.g. father of |
ObjectInverseOf(R) | Passive verb, e.g. is owned by; or Saxon genitive, e.g. X's father |
Named class | Common noun, e.g. person |
owl:Thing | something, thing, X, Y, ... |
ObjectComplementOf(C) | something that is not a person; something that does not own a car |
ObjectIntersectionOf(C1 ... Cn) | something that is a person and that owns a car |
ObjectUnionOf(C1 ... Cn) | something that is a wild-animal or that is a zoo-animal |
ObjectOneOf(a) | Proper name, e.g. John |
ObjectSomeValuesFrom(R C) | something that owns a car |
ObjectHasSelf(R) | something that likes itself |
ObjectMinCardinality(n R C) | something that borders at least 2 countries |
SubClassOf(C D) | Every country that borders no bodies-of-water is a landlocked-country. |
SubObjectPropertyOf(ObjectPropertyChain(R1 ... Rn) S) | If X owns something that is-part-of Y then X owns Y. |
DisjointObjectProperties(R S) | If X is-child-of Y then it is false that X is-spouse-of Y. |
ACE allows relative clause coordination and embedding of relative clauses into other relative clauses. This gives us quite a bit of flexibility in expressing more complex OWL class expressions. For example,
ObjectSomeValuesFrom(eat ObjectComplementOf(ice-cream))
would be verbalized as an ACE noun phrase
something that eats something that is not an ice-cream
Still, verbalizing very complex class expressions would require a support for parentheses which ACE does not offer. We do not see it as a shortcoming, rather it is a natural restriction on the complexity of class expressions (which should be readable for others to understand).
Finally, we apply some simple modifications to make the sentences more readable, e.g. we try to remove negations and reorder the elements in coordination.
The quality of the verbalization depends somewhat on the morphologic and orthographic nature of the names used for individuals, classes and properties in the input ontology. The verbalizer assumes that all individuals are denoted by singular proper names (preferably capitalized), classes by singular common nouns, and properties by transitive verbs in their infinitive form or as singular nouns. These restrictions are needed because the names will be used in certain syntactic constructions or will undergo certain morphological changes.
The default synthesis of entity IRI surface forms just preserves the IRI fragment (the part after '#' or the last '/') but one can add annotations to the input ontology to specify the desired surface form, e.g.
<AnnotationAssertion> <AnnotationProperty IRI="http://attempto.ifi.uzh.ch/ace_lexicon#CN_pl"/> <IRI>#man</IRI> <Literal>men</Literal> </AnnotationAssertion>
The following annotation properties are supported:
Annotation property IRI | Meaning | Example IRI | Example literal |
http://attempto.ifi.uzh.ch/ace_lexicon#PN_sg |
singular form of a proper name | #John | John |
http://attempto.ifi.uzh.ch/ace_lexicon#CN_sg |
singular form of a common noun | #man | man |
http://attempto.ifi.uzh.ch/ace_lexicon#CN_pl |
plural form of a common noun | #man | men |
http://attempto.ifi.uzh.ch/ace_lexicon#TV_sg |
singular form of a transitive verb | #man | mans |
http://attempto.ifi.uzh.ch/ace_lexicon#TV_pl |
plural form of a transitive verb | #man | man |
http://attempto.ifi.uzh.ch/ace_lexicon#TV_vbg |
past participle form a transitive verb | #man | manned |
In the csv-mode, the IRI is returned as it is together with the morphological type that applies in the given context, e.g:
pn_sg http://www.example.org/story.owl#John f is f a cn_sg http://www.example.org/story.owl#man f .
In the ace-mode, in case an object property has the CN_sg
annotation
then the property is verbalized as a relational noun, using an of-construct,
Saxon genitive, or the whose relative pronoun. Examples:
John is a father of Mary. Mary's father is John. Everything whose father is John ...
This is an experimental feature which does not always work correctly.
Kaarel Kaljurand 2015-04-11