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

Re: Data-flow redux

From: Drew McDermott <drew.mcdermott@yale.edu>
Date: Sat, 11 Oct 2003 20:55:18 -0400 (EDT)
Message-Id: <200310120055.h9C0tIw03044@pantheon-po01.its.yale.edu>
To: www-ws@w3.org


   [Massimo Paolucci]
   I have to confess,  I still do not understand the need of tagged 
   parameters.  Can you please explain?

The tags go on steps, not parameters, but we do need to refer to the
tags in parameter descriptions in order to avoid ambiguity.

Suppose we have a sequence:

   (Sequence (foo) (foo))

where 'foo' is a process with an input parameter 'x'.  If we refer to
'x', which do we mean?

Tagging the instances solves the problem:

    (Sequence (foo) (tag step2 (foo))
        (i(in) => x(in step2)))

Which means, "Transmit the value of input 'i' to the 'x' input of
'step2'.  ('in' is the notation for "input parameter," since
\downarrow isn't often available.)

The surface notation allows an abbreviation that conceals the problem:

    (Sequence (foo) (foo x <= i(in)))

In the deep notation, this isn't available, although perhaps it could
be.  It's conceivable that we could get rid of all uses for 'tag' by
such devices.  But what about:

    (Sequence (tag s1 (toodle))
              (y(out s1) => x(in s2))
	      (toodle)
              (tag s2 (doo)))

Is there a way to avoid tags in a case like this?

                                             -- Drew

-- 
                                   -- Drew McDermott
                                      Yale Computer Science Department
Received on Saturday, 11 October 2003 20:55:22 GMT

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