- From: Michael Kifer <kifer@cs.sunysb.edu>
- Date: Mon, 12 May 2003 02:35:35 -0400
- To: www-ws@w3.org
> On May 7, Ian Horrocks <horrocks@cs.man.ac.uk> writes: > > On April 29, David Martin writes: > > Hello Lei and Ian - > > > > As you know, we had some brief discussion at the SWSI F2F meeting in > > Miami, having to do with effective matchmaking using advertisements and > > queries expressed in description logic (in particular, expressed using > > the DAML-S Profile Ontology). Some concerns have been raised about > > possible cases where an advertisement contains too much information, so > > that it precludes a DL reasoner from finding a subsumption relationship. > > > > This is a very central topic, it seems to me, for the successful use of > > DAML-S (and the soon to be released OWL-S) profiles. The DAML-S > > coalition members are very keen to understand this issue. So I'd like > > to get the ball rolling with a brief request for clarification. > > > > I've read your recent paper, "A software framework for matchmaking based > > on Semantic Web technology", available here: > > > > http://www.cs.man.ac.uk/~horrocks/Publications/download/2003/p815-li.pdf > > > > The point is made there that there may be "too much information inside > > the service profile, and this makes it difficult to use automated > > reasoning techniques to compute Semantic matches between service > > descriptions". (For those who haven't seen the paper, I should say this > > is just one relatively minor point in a broad and interesting paper.) > > > > Anyway, I'm afraid I'm not convinced of the difficulty yet. This may be > > because I've never studied DL subsumption thoroughly. So the purpose > > here is just to get clarification of the problem. > > > > Here is a simplified version of your example: > > > > Advert1 = > > ServiceProfile ^ > > (Sales ^ > > forall[providedBy].(Actor ^ forall[hasName].Georgia) ^ > > ...) > > > > Query1 = > > ServiceProfile ^ > > (Sales ^ > > forall[providedBy].(Actor ^ hasCreditLevel >= 5) ^ > > ...) > > > > Now, it seems clear to me, as the paper states, that Query1 is *not* > > subsumed by Advert1, because the {set of actors with credit level >= 5}, > > specified in Query1, may certainly include actors that aren't named > > Georgia. And thus, Query1 may well have values of providedBy that > > Advert1 doesn't have, and so Advert1 can't subsume Query1. > > > > But, it seems to me that simply by modifying Query1 as follows, it would > > then be subsumed by Advert1: > > > > Query1A = > > ServiceProfile ^ > > (Sales ^ forall[providedBy].(Actor ^ forall[hasName].BOTTOM ^ > > hasCreditLevel >= 5) ^ > > ...) > > > > It seems to me that adding forall[hasName].BOTTOM means that Query1A is > > subsumed by Advert1. (If you'd like me to justify this statement before > > you respond, just let me know, but in the interest of brevity I won't do > > so now.) > > > > If it's true that Query1A is subsumed by Advert1, that suggests to me > > that it could be quite easy in practice to avoid the problem that's been > > raised. I could explain further, but I'd rather not get ahead of > > myself. Could I first just ask you to confirm whether or not Query1A is > > subsumed by Advert1? (And of course feel free to make any other > > clarifying remarks you'd like.) > > It is certainly true that forall[hasName].BOTTOM is subsumed by > forall[hasName].C for any class C (including Georgia, which is this > context probably should have been written {Georgia}, meaning "the > class whose only instance is Georgia"). This isn't really a general > solution to the problem though: > > 1. Adding forall[hasName].BOTTOM would rule out subsumption > relationships that might otherwise have held w.r.t. advertisements > that simply do not specify the name of the provider. > > 2. There may be lots of additional information, as in the case of > Advert1, (more specific forms of) which would also need to be added to > the query. In some cases this may not be appropriate (you may end up > getting spurious matches). > > Regarding this 2nd point, I have to say that the example is not well > chosen as an illustration of the point about "providedBy", because > Advert1 and Query1 specify 2 different PC features (memory and > processor) which mean that they would not be in a subsumption > relationship even if neither mentioned the provider. If, however, the > PC specification in a query was identical or more general than that in > an advertisement, then one would like to find an exact or subsume > match respectively. This would not happen if forall[hasName].BOTTOM > were added to the query. > > Our "solution" was to separate parts of the service profile that are > almost certainly not of interest in the matching phase so they could > be ignored by the subsumption based matcher. This does not, however, > address the wider problem that is illustrated by the example - the > fact that it may very often be the case that, even after discarding > these "irrelevant" parts of the descriptions", advertisements and > queries will not be in subsumption relationships, but satisfy only the > very weak "intersection" matching condition (i.e., their intersection > is not a contradiction). This is because advertisers and queriers may > choose to be more specific about different aspects of the description > (memory and processor in this example). > > Regards, Ian I agree with Ian. The point is that you can't do everything with subsumption. Matchmaking can be much more complex than that. I think this is a good case for why more expressive languages might be needed. For instance, you might have to specify your policy for matching using Prolog-style rules. And you very well might want to use negation-as-failure type of stuff in those rules, so it won't be a simple extension of a DL. regards --michael
Received on Monday, 12 May 2003 02:36:05 UTC