- From: David Martin <martin@ai.sri.com>
- Date: Mon, 09 Jul 2001 09:48:39 -0700
- To: Ian Horrocks <horrocks@cs.man.ac.uk>
- CC: Tim Finin <finin@cs.umbc.edu>, "'Marcelo Tallis'" <mtallis@teknowledge.com>, "'Dan Connolly'" <connolly@w3.org>, www-rdf-logic@w3.org
Ian Horrocks wrote: > > On July 9, David Martin writes: > > > > > > Tim Finin wrote: > > > > > > > From: www-rdf-logic-request@w3.org > > > > [mailto:www-rdf-logic-request@w3.org] On Behalf Of Ian Horrocks > > > > ... > > > > Another possible interpretation is some sort of "role value > > > > map", as it is called in description logics. i.e., we may > > > > want to say that for all pairs of individuals (x,y) related > > > > by some property P (or some chain of properties), the P1 > > > > property of x and the P2 property of y must have the same > > > > individual as their objects. I believe that we can't capture > > > > this in DAML+OIL - if we can then we made some mistake > > > > somewhere as the language would certainly be undecidable. > > > > > > I understood that this was what David needs, or something close to it. > > > > Yes, as I replied earlier, that is what I need. And I appreciate, of > > course, the concern about decideability, with respect to the general way > > this has been framed above. > > > > But what about 2 simpler alternatives: > > > > (1) What about if we could say <P1 sameValuesAs P2> - meaning simply > > that the set of values of all the instances of property P1 is precisely > > the same as the set of values all the instances of property P2 (and > > again, there's no assumption that P1 and P2 have the same domain)? (I'm > > asking, not so much how this might be useful, but whether it would be a > > reasonable addition to DAML+OIL.) > > An instance of a property P is a tuple (x,y) s.t. P(x,y) is true. I > presume that you mean y to be the "value" of such a tuple, Yes. > and that > what you want to state is that P1 and P2 have the same range. No. I'm distinguishing between 2 things: (A) the set of possible values that can be used in instances of P (which I take to be the range), and (B) the set of values that *actually appear* in instances of P (that is, instances that actually appear on the Web somewhere, or perhaps on some delimited part of the Web, if that makes it easier to think about). And I want to make an assertion about (B). Here's an (admittedly contrived :-) example: Suppose, for simplicity, that every person on earth has a unique Personal Identity Number (PIN), which is an integer. Suppose parentedBy is a property declared with domain integer and range integer (so that <parentedBy PIN1 PIN2> is used to indicate the the person with PIN2 is parent of the person with PIN1). Now suppose some marketing firm wants to track who buys different brands of diapers. They have a class DiaperBrand (with instances such as Huggies and Pampers) and they use a property DiapersBoughtBy, which has domain DiaperBrand and range integer (so that <Pampers DiapersBoughtBy 1234> indicates that on some occasion, person 1234 made a purchase of some Pampers). Now suppose that our marketing firm wants to assert that every parent has bought diapers, and that diapers have only been bought by parents; that is, the set of values of all the existing instances of parentedBy is identical to the set of values of all the existing instances of DiapersBoughtBy. (Surely this is not the same thing as saying that the 2 relations have the same range; after all to say that the 2 relations have the same range is just to make the trivial statement that integer is integer.) I'm suggesting that one might want to assert this by saying something like <parentedBy sameValuesAs diapersBoughtBy>. I'm out of time for now, but - for those who have never been in the business of marketing diapers - I'll try to say more about why I think this might be useful in another message. So I guess the questions are - (1) is there any way at present to say something like <parentedBy sameValuesAs diapersBoughtBy>; (2) if not, would it be reasonable to add sameValuesAs into the language? Thanks, - David > This is > easy: just specify the range of P1 and P2 as RangeP1 and RangeP2 > respectively and say (sameClassAs RangeP1 RangeP2). I can't see how > this helps you though as what you want to say (I think) is that the > range of P1 and P2 are the same w.r.t. certain individuals. > > > (2) And if (1) seems reasonable, what about if we could then say <P1 > > sameValuesWithinNamespaceAs P2> - meaning that the set of values of all > > the instances of property P1, for which the domain object is in any > > particular namespace N, is precisely the same as the set of values all > > the instances of property P2, for which the domain object is in that > > same namespace N? Would something like that be reasonable (because I > > can imagine it being very useful)? > > You could also do this for explicit namespaces simply by using named > subProperties in each namespace. E.g., in namespace N1 use P1N1 and > P2N2 s.t. (subPropertyOf P1N1 P1) and (subPropertyOf P2N1 P2) and the > ranges of P1N1 P2N1 are made equal as above. Stating this more > generally (e.g., that such a relationship holds for arbitrary > namespaces) would be tricky I think as it would be giving some sort of > semantic significance to namespaces which they don't really have. > > Again, I am not at all sure that this mechanism would address your > problem. > > Regards, Ian > > > > > - David > > > > > We want to be able to say, for example, that a Process has two > > > steps and that the output of step one must be the same individual > > > as the input of step two. If we don't have this in our language then it > > > may be very hard to model complex processes which have sub-processes > > > that have constraints between them. For that matter, it will be hard to > > > model complex things composed of parts which have constraints among > > > them. > > > > > > Tim
Received on Monday, 9 July 2001 12:50:55 UTC