Re: TEST: extra credit - arithmetic

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 UTC