W3C home > Mailing lists > Public > www-ws@w3.org > June 2003

Re: Abstract Process Description

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
Message-ID: <Pine.GSO.4.44.0306151050560.4714-100000@ksl.Stanford.EDU>

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

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.


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

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 23:05:11 UTC