- 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