- From: Sheila McIlraith <sam@ksl.Stanford.EDU>
- Date: Sun, 15 Jun 2003 11:24:39 -0700 (PDT)
- To: Jan Ortmann <j.ort@web.de>
- cc: www-ws@w3.org
Hi Jan, Good question. This is something that we did in a semantic web service composition application using first-order logic a few years ago. The intention was to build a library of services. See [1] for a few details. It's trickier to do this in DAML-S, and this is something a subset of the DAML-S Coalition discussed at some length in late 2001 but never resolved entirely. I think what you're trying to do is a compelling thing to want to do and one that is not handled seamlessly in DAML-S right now. The biggest challenge in doing this is with how to handle inheritance within a composition. What I would recommend that you try is use the simpleProcess class in DAML-S to define both the abstract composition and the individual abstract processes. Recall that the process class in DAML-S has 3 subclasses - atomicProceds - compositeProcess - simpleProcess The purpose of the simpleProcess subclass is precisely to define abstract processes. Nothing precludes you from defining a hierarchy of processes in the process model, but you have to be careful about what properties you use in the abstract processes so that the inheritance works out as you intend it to. [1] McIlraith, S., Son, T.C. and Zeng, H. ``Semantic Web Services" , IEEE Intelligent Systems. Special Issue on the Semantic Web. 16(2):46--53, March/April, 2001. Copyright IEEE, 2001. http://www.ksl.stanford.edu/people/sam/ieee01.pdf Regards, Sheila McIlraith On Sun, 15 Jun 2003, Jan Ortmann wrote: > > Hi all. > > I would like to know whether there is some way of defining an abstract process > description envisioned. By this, I mean a process description, which cannot > be executed directly, but which gives a guideline for reasoners (such as > graphplan), how a process basically looks like, so that agents can do some > planning. > > Lets say I want to travel to New York. In order to do this, an abstract > process description might tell me something > like: > Travel2NY = > GetFlight2NY > GetAccomadationInNY > GetFlightBack > OR > GetFlight2NYandBack > GetAccomodationInNY > > This would be close to a CompositeProcess description, but on the profile > level, since the process description hierarchy is build on that level. Now > with the description given above, my agent could check the profile hierarchy > for instances of GetFlight2NY. These might be instances of GetFlight or a > subclass with hasValue of destination set to NY. Then it could do the same > with GetAccomodation where location is set to NY. > Now some of these processes could themselves be abstract and my agent has to > find some instances of subprocesses and so on. This would however mean that > the whole descriptive power of CompositeProcess had to be doubled and fit in > the ProfileDescription somehow. However, this way one could build a library > of profiles defining either concrete processes or abstract processes. > > Is there a way to do something like this or is this simply out of the scope of > DAML-S and should be done by some other means. > > > Regards, > > Jan Ortmann > University of Hamburg, Germany > > ============================================================================== Sheila McIlraith, PhD Phone: 650-723-7932 Senior Research Scientist Fax: 650-725-5850 Knowledge Systems Lab Department of Computer Science Gates Sciences Building, 2A-248 http://www.ksl.stanford.edu/people/sam Stanford University E-mail: sam-at-ksl-dot-stanford-dot-edu Stanford, CA 94305-9020
Received on Sunday, 15 June 2003 14:24:55 UTC