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

Re: DAML-S formal semantics

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Wed, 17 Sep 2003 13:20:33 -0400 (EDT)
Message-Id: <200309171720.h8HHKX522742@pantheon-po04.its.yale.edu>
To: www-ws@w3.org


   [Massimo Paolucci & the other CMU people]

   As a general comment we wonder about the value of a denotational
   semantics as opposed to an operational semantics as it is used to
   describe the semantics of distributed programming languages, which faces
   the same types of problems that we have.  This has been the guiding
   principle of the semantics for DAML-S that we proposed in [1].  

For some reason when I think "semantics" I think "denotational
semantics."  It's more of a habit than anything else.  I believe I
read Ankolekar et al. before, but I'll take a look.  (I had forgotten
that they propose a surface syntax for DAML-S; I think choosing the
syntax is probably more urgent right now than getting the semantics
right). 

   The semantics of concurrent executions (both of different
   agents/web services and processes within the same process model) is
   difficult to represent in a denotational semantics because the
   domain can be modified in unpredictable ways.  Indeed, your
   semantics is based on atree like representation that forces you to
   represent every case, which becomes virtually impossible when we
   need to represent the inherent non-determinism of concurrently
   running processes.  For example, you are forced to make the
   assumption that parallel processes are "comparable and inertial.'
   This assumption holds for channels because only one process can
   write in them, but it does not hold for the complete situation
   which is part of the VS (valuated situation) since multiple
   processes may change the domain and there is no restriction on who
   can do what.  The other problem is the representation of loops
   where you are presumably forced to represent every single loop as a
   different banch of the tree.

It seems to me that these problems are intrinsic to the problem area,
and not a particular problem with denotational semantics.  I proposed
a semantics for autonomous processes in [1], and I sure hope it can be
made compatible with my DAML-S proposal.

What's the problem with a "tree-like representation"?  Well, there's a
problem with the word "representation."  I'd rather say "tree-like
denotation."  And it doesn't have to literally be tree-like; I'd
actually rather have separate timelines with various
alternative-worlds relationships among them.  But, yes, things are
tree-like in the sense that once you jump to an alternative world you
don't come back to this one.

"...forces you to represent every case": Again with the word
"represent."  I have to _say_ there are a lot of cases, but there are,
aren't there?  I mean, suppose I am making a binary decision, and
meanwhile 9 other autonomous agents are making indepedent binary
decisions.  Aren't there going to be at least 1024 possible worlds?

I didn't say parallel processes are comparable and inertial.  I said
that in any given possible world they were.  Comparability just means
that all the situations in a given scenario come from the _same_
possible world, which is a minimal requirement.  Inertia means that
nothing happens without a cause; it's much trickier to formalize, but
the intuition seems right.  I mentioned that in classical planning
"nothing happens without a cause" reduces to "nothing happens," but I
immediately pointed out how inappropriate that framework is for web
services. 

   Aside from the genral comments we have the following questions about the
   semantics.

   1.  The concept of Tag Tree was very difficult to grasp, but it seems to
   be equivalent to a parse tree where each node is annontated with a VSI.

No.  Consider a statement of the form "if a then b else c" (taking a
much simplified syntax).  In each possible world the tag tree either
has an occurrence of 'b' or an occurrence of 'c', not both.  

Loops, which I didn't talk about, would show another divergence.  In
each possible world, the tag tree for a loop has one subtree per
iteration.  

    Also, does a Tag Tree represents one particular trace or a set of
   traces?   

One trace.

   This is also related to the semantics of Sequences and other
   constructs;  why do they generate set of trees rather than one tree?

Because even a sequence can be executed in an infinite number of
different situations.

   2.  There is no concept of "open VSI" which does not specify what the
   end state is.  This seems to be useful to describe processes that
   have not terminated yet.

Yes.  I ducked that issue so I didn't have to commit to a particular
ontology for, say, the situation infinitely far in the future.  
I have a preference for how it should be done, but there is a
divergence of opinion.  (One reason for why DAML-Time kind of chugged
to a halt.)

   3.  Why the definition of meaning (p 11) is a couple <channel,
   denotation>, why is it not just denotation?  Why can't channels be just
   part of the environment?

They could, but they have enough special properties that I split them
off. 

   4.  In the semantics of call (p. 12), you seem to mix the values and
   structure, because you have a set of trees that depend on the values of
   an atomic process, but this could be infinitly large.

The denotation of an atomic process is an infinitely large set of
execution traces.

   5.  Related to the general comment above,  how strong of an assumption
   are you making on the inertia of parallel processes?

Hopefully not strong at all.  Two VSIs can be consecutive in the tag
tree (i.e., from the point of view of the target agent), but an
arbitrary amount of other stuff can be going on.

   6.  On page 8, why does piece(m,l) resets to x?

I had to have some convention for the meaning of $m + l\mapsto x$ in the
case where $m$ already has $l$ mapping to something.

   7.  What are the advanages of using channels for data flow as opposed to
   owl:sameAs?

I don't know.  The first step in answering the question is for me to
show a mapping from surface syntax to the Martin-Paolucci PAI-in-RDF
syntax.  Maybe channels will turn out to be expressible in terms of
owl:sameAs.  

[1] <a href="http://cs-www.cs.yale.edu/homes/dvm/papers/pddl-proc-sem.pdf">
The Formal Semantics of Processes in PDDL. Proc. ICAPS Workshop on PDDL</a>

                                             -- Drew
Received on Wednesday, 17 September 2003 13:20:34 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 3 July 2007 12:25:44 GMT