[Attempto] OWL_1 -> ACE -> OWL_2

Normunds Grūzītis normundsg at ailab.lv
Sun Oct 17 22:57:38 CEST 2010


Hi Kaarel,

I discussed this issue with my colleagues who work on a UML-style editor for OWL (http://owlgred.lumii.lv). Actually, they are facing similar problems even when developing an ontology with the graphical editor (OWLGrEd) and Protege in parallel - the roundtrip from Protege to OWLGrEd and back, in general, introduces some structural changes.

But you are right - preserving the structure is not so important - for each notation there is a different "normal form" that suites best. What is important is to perfom some refactoring of the ontology *before* it is presented in the one or another notation - similary as it is done by your OWL verbalizer. Unfortunately, neither OWLGrEd nor Protege provide any refactoring yet.

In the case of OWLGrEd, yes, the main problem is due to the general class inclusion axioms that cannot be visualized. For instance:

SubClassOf(:herbivore ObjectAllValuesFrom(:eat :plant))
is verbalized as
"Everything that is eaten by a herbivore is a plant."
and is translated back to OWL as
SubClassOf(ObjectIntersectionOf(ObjectSomeValuesFrom(ObjectInverseOf(:eat) :herbivore)) :plant)

In some cases, the allValuesFrom construct is explicitly conveyed to ACE (in relative clauses):

SubClassOf(:herbivore ObjectIntersectionOf(:animal ObjectAllValuesFrom(:eat :plant)))
"Every herbivore is an animal that eats *nothing but* plants."

But, again, it is lost when translating back to OWL:

SubClassOf(:herbivore ObjectIntersectionOf(:animal ObjectComplementOf(ObjectSomeValuesFrom(:eat ObjectComplementOf(:plant)))))
"Every herbivore is an animal that does not eat something that is not a plant."

This, of course, is not a problem of ACE, but if something can be done without pain while translating form ACE to OWL (e.g. by targeting the disjointWith and domain/range constructs, as you mentioned), it would be nice. Also, if "nothing but" construction is used by the OWL verbalizer, perhaps it can be preserved as allValuesFrom when translated back to OWL.

Regards,

Normunds


On 2010.6.10, at 12:03, Kaarel Kaljurand wrote:

> Hi,
> 
> 2010/10/1 Normunds Grūzītis <normundsg at ailab.lv>:
>> If I pass an ontology OWL_1 to the ACE verbalizer, I get Text_1 that, if passed back to APE, produces OWL_2 that, if verbalized again, produces Text_2.
>> 
>> OWL_2 is semantically equal to OWL_1 (i.e., the reasoning works the same), but syntactically (structurally) they are different (in general). Thus, Text_2 syntactically differs from Text_1 as well - it has been semantically paraphrased. (Actually, axioms of certain patterns are being paraphrased already at the OWL2DRS step - while generating Text_1.)
> 
> Note that there is no OWL2DRS: OWL is mapped directly to ACE with a DCG,
> without using DRS as interlingua.
> But you are right, a lot of OWL axioms are rewritten into a general
> form before this DCG is applied.
> 
>> As I read in Kaarel's dissertation [1] (Section 5.3.2), preserving the structure is considered as *not* important.
> 
> Yes, when designing the ACE->OWL mapping we considered the existing
> OWL syntaxes and OWL tools (such as Protege) unimportant. For two reasons:
> first, in this way the focus was more fixed on how to express OWL in
> _natural English_, and secondly the implementation was simpler because
> we had to target only a small subset of the OWL syntax.
> This subset does not include disjointWith, domain, range, etc.
> 
>> While we are considering only the CNL interface (the domain expert point of a view), this makes no problem, but if a knowledge engineer works in parallel (using a different interface and a lower-level formalism), this makes problems: axioms containing allValuesFrom restrictions are "detached" from the respective classes and are converted to general class axioms (using negation and someValuesFrom), disjointWith is converted to complementOf etc. This is not anymore convenient for a Protege user, for instance.
>> 
> 
> I agree.
> 
> 
>> Moreover, instead of (or in parallel with) the engineer (i.e., Protege interface) there could be another (more advanced) domain expert, who uses a graphical notation (e.g., the UML profile for OWL) instead of CNL. In this case the visualization suffers from drammatical changes, and many axioms can not be visualized anymore.
> 
> Can you be more specific? Which type of axioms cannot be visualized?
> The general class inclusion axioms? Do these tools visualize the
> syntax of the constructs rather than the semantics? E.g. I would
> visualize "disjoint(dog, cat)" and "dog subclassof not cat" in the same way
> to show that they are semantically equivalent.
> 
>> Is there some principal problem, why the structure cannot be (or is hard to be) preserved? It would be useful to have such an *option*. I mean, not a 100% equivalence is important but certain aspects, like:
>> - the topic-focus articulation should be preserved (e.g., "Every herbivore eats nothing but plants." vs. "Everything that is eaten by a herbivore is a plant.", i.e., allValuesFrom should not be changed to someValuesFrom);
>> - disjointWith should not be changed to complementOf;
>> - the unnecesarry owl:Thing references sould not be generated for ".. something that ..";
>> - and perhaps some other constraints.
> 
> The principle reason is that the OWL->ACE->OWL tool is composed
> of two tools: OWL->ACE and ACE->OWL and that the second component
> does not know what is the input to the first component.
> Secondly, OWL->ACE->OWL is not syntax-preserving, simply because
> OWL and ACE offer different kinds of syntactic sugar
> e.g. in order to say that dogs
> and cats have no common member, in OWL one would use one of the following forms:
> 
> 1. disjoint(dog, cat)
> 2. dog subClassOf not cat
> ...
> 
> but in ACE one would use one of the following forms:
> 
> 1. No dog is a cat.
> 2. If there is a dog then it is not a cat.
> 3. It is false that a dog is a cat.
> ...
> 
> I don't think there exists a mapping between these sets of forms
> such that the mapping is both a bijection and useful.
> 
> 
> I agree that something could and should be done to fix the problem that
> you describe. I'm not sure how much can be done with OWL->ACE, but ACE->OWL
> could be changed to target a richer syntactic fragment of OWL, including:
> disjointWith, domain, range. Also the unnecessary owl:Thing in OWL
> intersections should not be there. I'm not sure what to do with allValuesFrom,
> this has always been a complex construct...
> 
> I'll try to get something in these lines into the next release of APE.
> Then we can see if this meets your requirements.
> 
> --
> kaarel



More information about the attempto mailing list