# Re: TEST: extra credit - arithmetic

From: Peter F. Patel-Schneider <pfps@research.bell-labs.com>
Date: Wed, 19 Feb 2003 14:06:26 -0500 (EST)
Message-Id: <20030219.140626.08902250.pfps@research.bell-labs.com>

```
From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
Subject: Re: TEST: extra credit - arithmetic
Date: Wed, 19 Feb 2003 14:03:51 +0000

[...]

> Taking N=2 and M=3 to make it a little easier ...
>
> only-d = { d }
> p = { <a, d>,  <b, d> }   cardinality of something = 2

p range = { d }
{ d } <= =2 p-

> p is functional

> inv-p has cardinality 2

owl:Thing <= =2 p-

> q = { <A, a>, <B, a>, <C, a>, <D, b>, <E, b>, <F, b> }

....

> q is functional
> inv-q has cardinality 3

owl:Thing <= =3 q-

> r = { <A,d>, <B,d>, <C,d>, <D,d>, <E,d>, <F,d> }

...

> inv-r has cardinality 6

owl:Thing <= =6 r-

> So if I change the test a bit to express the cardinality constraints on the
> inverse properties or perhaps just declare them as InverseFunctional and
> reverse the senses all through, I should be able to arrive at the desired
> effect of having three named numbers N, M and N-times-M which then embed
> multiplication in OWL Full.

I don't see how you get to mulitiplication this way.

> Does this look promising?
>
> ...
>
> ObjectProperty( <#p>, inverse(<#inv-p>), InverseFunctional)
> EnumeratedClass( <#only-d>, { <#d> } )
> Class( <#only-d> complete restriction( <#p> cardinality=<#N> ) )
> Class( <#cardinality-N> complete
>         restriction( <#inv-p>, someValuesFrom( <#only-d> ) )

p is inverseFunctional
{ d }  ==  =N p
cardinalty-N  ==  exists p- { d }

> ObjectProperty( <#q>, inverse(<#inv-q>), InverseFunctional)
> Class( <#cardinality-N> complete
>          restriction( <#q> cardinality=<#M> ) )
> Class( <#cardinality-N-times-M> complete
>         restriction( <#inv-r>, someValuesFrom( <#cardinality-N> ) )

q is inversefunctional
cardinality-N  ==  =M q
cardinality-N-times-M  ==  exists r- cardinality-N

> ObjectProperty( <#r>, inverse(<#inv-r>), InverseFunctional)
> Class( <#only-d> complete restriction( <#p> cardinality=<#N-times-M> ) )
> Class( <#cardinality-N-times-M> complete
>         restriction( <#inv-r>, someValuesFrom( <#only-d> ) )

r is inversefunctional
{ d }  ==  =N-times-M p
If there is no contradiction then  N = N-times-M
cardinality-N-times-M  == exists r- { d }

> in something like the abstract syntax ...

I don't see how you get a multiplication out of this.

[...]

peter
```
Received on Wednesday, 19 February 2003 14:06:46 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 7 December 2009 10:57:57 GMT