# Re: TEST: extra credit - arithmetic

From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
Date: Wed, 19 Feb 2003 14:03:51 +0000
Message-ID: <3E538EC7.3000802@hpl.hp.com>
To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>

Thanks Peter for looking at these,
I am not very surprised that you found mistakes!

Peter F. Patel-Schneider wrote:

> As far as I can see the first test here is
>
> only-d == { d }
> only-d == =15 p
>
> only-e == { e }
> only-e == =23 p
>
> d-and-e == { e, d  }
> d-and-e == = N-plus-M p
>
> This is a contradiction, so any conclusion can arise.

Oh yes - completely broken - I will try again.
I had something more complicated to begin with, it seems like my
oversimplification was unsound - or maybe what I started with.

>
> The second test is, as far as I can see
>
> p,q,r are functional properties
>
> only-d == { d }
>
> cardinality-N == all p only-d ^ = 15 p
>
> cardinality-N-times-M == all q cardinality-N ^ =23 q
>
> cardinality-N-times-M == all r only-d ^ =N-times-M r
>
>
> Here q is functional so =23q is empty.
> Therefore cardinality-N-times-M is empty.
>
> What values of N-times-M make all r only-d ^ =N-times-M r empty?
> Well, as r is functional, any value greater than 1 will do, so the
> conclusion does not follow.
>

Again, you are right.

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 is functional
inv-p has cardinality 2
q = { <A, a>, <B, a>, <C, a>, <D, b>, <E, b>, <F, b> }
q is functional
inv-q has cardinality 3
r = { <A,d>, <B,d>, <C,d>, <D,d>, <E,d>, <F,d> }
inv-r has cardinality 6

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.

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> ) )

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> ) )

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> ) )

in something like the abstract syntax ...

> I haven't looked at the remaining tests.

No need - they depend on the same structure.

>
> peter
>

thanks again

Jeremy
Received on Wednesday, 19 February 2003 09:04:07 GMT

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