[Attempto] algebraic expressions in ACE - continued

Kaarel Kaljurand kaljurand at gmail.com
Fri Jun 11 07:36:52 CEST 2010


Hi Jean-Marc,

2010/6/10 Jean-Marc Vanel <jeanmarc.vanel at gmail.com>:
>
> After the acceleration formula, I tried a simpler example, with two
> variants, and with ACE mainly, but with no more success in the way of
> obtaining an OWL-RDF output.
>
> If a rectangle R has a length L1
>
> and R has a length L2
>
> then R has-surface ( L1 * L2 ) .
>
> The OWL Functional-Style Syntax gives:
>
> Ontology(
>    http://attempto.ifi.uzh.ch/ontologies/owlswrl/test
>    Implies(
>       Antecedent(
>          description(
>             Class(:rectangle)
>             I-variable(1)
>          )
>          description(
>             Class(:length)
>             I-variable(2)
>          )
>          description(
>             ObjectProperty(:have)
>             I-variable(1)
>             I-variable(2)
>          )
>          description(
>             Class(:length)
>             I-variable(4)
>          )
>          description(
>             ObjectProperty(:have)
>             I-variable(1)
>             I-variable(4)
>          )
>       )
>       Consequent(
>          description(
>             DataProperty(:has-surface)
>             I-variable(1)
>             expr(
>                *
>                $VAR(
>                   2
>                )
>                $VAR(
>                   4
>                )
>             )
>          )
>       )
>    )
> )
>
> I also tried this variant with equality instead of the verb to be :
>
> If a rectangle R has a length L1
>
> and R has a length L2
>
> then R has-surface S, and S = ( L1 * L2 ) .
>
> The consequent side is different:
>
>       Consequent(
>          description(
>             Class(owl:Thing)
>             I-variable(6)
>          )
>          description(
>             ObjectProperty(:has-surface)
>             I-variable(1)
>             I-variable(6)
>          )
>          builtIn(multiply, I-variable($VAR(6)), $VAR(2), $VAR(4))
>       )
>
> Comments:
>
> DataProperty is apropriate in first variant,
> builtIn(multiply  seems apropriate in second variant;
> the paraphrase is incorrect in case 2 (then missing) :
>
> If a n:rectangle X1 has a n:length X2 and the n:rectangle X1 has a n:length
> X3 and X4 = ( X2 * X3 ) and the n:rectangle X1 v:has-surface X4.
>
> Hopefully these tests could allow the experts to correct easily the issues.

Thanks for the testcases.
They indeed point out some issues that need to be fixed, namely:

* wrong (and even syntactically incorrect) paraphrase
* choice between object and data properties
* representation of variables (the '$VAR'/1 should not occur in the output)
* both of your sentences should maybe get an identical representation in SWRL

Added to the TODO list...

--
kaarel


More information about the attempto mailing list