- From: Jeremy Carroll <jjc@hplb.hpl.hp.com>
- Date: Wed, 19 Feb 2003 14:03:51 +0000
- To: "Peter F. Patel-Schneider" <pfps@research.bell-labs.com>
- CC: www-webont-wg@w3.org
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