<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/style/atom2html.xsl"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/"
      xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
      xml:lang="EN-us">
   <title>XProc Minutes</title>
   <subtitle>A feed of W3C XML Processing Model WG Minutes</subtitle>
   <link rel="alternate" type="text/html" href="http://www.w3.org/XML/Processing/"/>
   <id>http://xproc.org/atom/minutes.xml</id>
   <updated>2007-04-05T21:09:30Z</updated>
   <author>
      <name>xproc</name>
   </author>
   <entry>
      <title>XML Processing Model WG -- 28 Sep 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/09/28-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/09/28-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-09-29T11:01:02Z</published>
      <updated>2006-09-29T11:01:02Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>- DRAFT -</h1>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 37, 28 Sep 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/09/21-agenda.html" shape="rect">Agenda</a>
            </p>
            <p>See also: <a href="http://www.w3.org/2006/09/28-xproc-irc" shape="rect">IRC
  log</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Alex, Rui, Paul, Henry, Murray, Mohamed, Richard, Erik, Michael, Norm</dd>
                  <dt>Regrets</dt>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>Contents</h2>
            <ul>
               <li>
                  <a href="#agenda" shape="rect">Topics</a>
               </li>
               <li>
                  <a href="#ActionSummary" shape="rect">Summary of Action Items</a>
               </li>
            </ul>
            <hr/>
            <div class="meeting">
               <p class="phone">Norm is late to the call, Henry begins the meeting (thanks, Henry!)</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; <a href="http://www.w3.org/XML/XProc/2006/09/28-agenda.html" shape="rect">http://www.w3.org/XML/XProc/2006/09/28-agenda.html</a>
               </p>
               <p class="irc">&lt;<cite>ht</cite>&gt; Agenda agreed</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; Accept minutes of
    previous meeting as a valid record</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; Apologies for next week
    from HST, Norm</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; Tentative agreement from
    MSM to chair next week</p>
               <p class="phone">
                  <cite>Michael:</cite> Suggest we do 2
    minutes around the table, then discuss</p>
               <p class="phone">
                  <cite>Alex:</cite> Pop the whole
    discussion up several levels<br clear="none"/>
    ... The level of detail
    shown in these diagrams is too great to be helpful to
    readers<br clear="none"/>
    ... I use that level in
    my implememntation, but I wouldn't expose it to users<br clear="none"/>
    ... Maybe we should even
    just drop all mention of graphs from the spec<br clear="none"/>
     ... and not constrain
    implementaitons</p>
               <p class="irc">&lt;<cite>alexmilowski</cite>&gt; Clarification:
    I mean delete the computer science terminology of a "directed
    acyclic graph"</p>
               <p class="phone">
                  <cite>Murray:</cite> Like what Alex said. Move
    to a higher level. Don't need to talk about graphs.<br clear="none"/>
    ... Can move this discussion elsewhere.</p>
               <p class="phone">
                  <cite>MoZ:</cite> Need to have a formal
    semantics in the near future.<br clear="none"/>
    ... Agree we don't need to talk about this now.<br clear="none"/>
    ... Go further with semantics and models in parallel.<br clear="none"/>
    ... Don't want to loose focus on semantics.</p>
               <p class="phone">
                  <cite>Richard:</cite> I think graphs are
    great. They're easy to understand and we should have lots of
    them in the spec.<br clear="none"/>
    ... But they aren't the semantics. We should have a
    straightforward semantics written in English.<br clear="none"/>
    ... They should work in a natural way describing each of the
    components.<br clear="none"/>
    ... Don't need to describe the semantics of the whole flow; do
    it in a modular way for each component.<br clear="none"/>
    ... We don't need to decide how the diagrams look because they
    aren't in the semantics.<br clear="none"/>
    ... They don't even have to be right; they can give the users
    an idea without mapping onto the semantics.</p>
               <p class="irc">&lt;<cite>alexmilowski</cite>&gt; +1 to that
    !</p>
               <p class="phone">
                  <cite>Richard:</cite> It's irrelevant whether
    or not the pictures are accurate as long as they're helpful to
    the reader.</p>
               <p class="phone">
                  <cite>Erik:</cite> I like what Richard
    said.</p>
               <p class="phone">
                  <cite>Michael:</cite> I'm made nervous by some
    of what I've heard.<br clear="none"/>
    ... I think we need two things, or one thing with two
    aspects.<br clear="none"/>
    ... 1. We need to understand what we think pipelines are; and
    2. we need a story.<br clear="none"/>
    ... I'm not committed to the graph description as the best or
    only story<br clear="none"/>
    ... But at some level it's clearly appealing.<br clear="none"/>
    ... I'm made nervous about the proposals that say let's not go
    there, unless they mean let's find another way to reach
    clarity.<br clear="none"/>
    ... I worked on a spec 10 years ago that has worked pretty
    well, and I remember Dan Connolly pushing often to answer the
    question "what is an XML document".<br clear="none"/>
    ... I didn't think we needed that kind of clarity; everyone
    knows what we mean.<br clear="none"/>
    ... But many of the hardest problems have come from the fact
    that we didn't answer the question that Dan asked.<br clear="none"/>
    ... I now think that it would have been useful<br clear="none"/>
    ... I'm not sure defining a pipeline as a graph is useful, but
    it may tell a good story.<br clear="none"/>
    ... My goal here is clarity.<br clear="none"/>
    ... If we don't say a pipeline is a graph, I want something
    similarly concise and suggestive.</p>
               <p class="phone">
                  <cite>Rui:</cite> I tend to be pragmatic; I
    agree with Alex and almost everyone else.</p>
               <p class="phone">
                  <cite>Norm:</cite> I'm happy to move on to
    something else for a bit. I'll assume to the extent that people
    agree or disagree with what the spec says, they'll comment on
    the words in the spec.<br clear="none"/>
    ... Sorry I missed what Alex said.</p>
               <p class="phone">
                  <cite>Henry:</cite> My experience producing
    these diagrams: <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Sep/0071.html/"
                     shape="rect">http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Sep/0071.html/</a>
                  <br clear="none"/>
    ... I started trying to produce diagrams that were faithful to
    my understanding.<br clear="none"/>
    ... Convinced me of two things: a lot of detail is necessary
    and when we state the semantics of the components, it will not
    be appropriate to try to do so in terms of the diagrams<br clear="none"/>
    ... We'll want to use words like the spec currently does
    perhaps with a more explicit abstract model.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; Henry, can you say a
    bit more about what kind of detail you found necessary and why
    it proved essential?</p>
               <p class="phone">
                  <cite>Henry:</cite> It did help me
    understand</p>
               <p class="phone">
                  <cite>Henry:</cite> If we look at figure 1a, a
    nested graph mode of a for-each<br clear="none"/>
    ... The distinction between thick gray lines and dotted black
    lines are that the gray lines are the pies and the dotted lines
    that are the lines of the approrpiate type for the
    component.<br clear="none"/>
    ... Documents flow down think gray lines.<br clear="none"/>
    ... What a dotted line means is context dependent, in 1a the
    top dotted line means send a single document down this
    repeatedly.<br clear="none"/>
    ... The bottom dotted line is the concatenation of the output
    of all the iterations.<br clear="none"/>
    ... Now compare with figure 1b</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; and why is it essential
    to distinguish single-document data flows from multi-document
    data flows / loops?</p>
               <p class="phone">
                  <cite>Henry:</cite> In the computed schema
    case, I've put the computation outside the for-each<br clear="none"/>
    ... There is an auxilliary input to the for-each because I need
    a new kind of connection.<br clear="none"/>
    ... The dotted line from the XSLT result to the XInclude port.
    This time the dotted line means repeatedly include the same
    component.</p>
               <p class="phone">
                  <cite>Alex:</cite> This is where we need to
    pop up a level.<br clear="none"/>
    ... There are some constraints here, but the schema is not an
    input to the for-each. It's used inside, so your implementation
    has to do something about it.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; At the point where we
    start saying it's essential to distinguish three kinds of
    edges, I think we have left any story about graphs behind.</p>
               <p class="phone">
                  <cite>Alex:</cite> I think there needs to be a
    line that crosses the red box. It's not formally an input to
    the for-each.<br clear="none"/>
    ... I don't do it that way and it works just fine.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Sep/0073.html"
                     shape="rect">
    http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Sep/0073.html</a>
               </p>
               <p class="phone">
                  <cite>Alex:</cite> There's a constraint here
    that you can describe to the user, that the scheme has to be
    the same each time. You don't have to say that it's an
    input.</p>
               <p class="phone">
                  <cite>Murray:</cite> In fact, isn't the
    computed schema a pull? It's not a computed input, it's a pull
    from the validate.</p>
               <p class="phone">
                  <cite>Norm:</cite> No, it's not a pull, it's
    not a URI, it's computed by a previous step.</p>
               <p class="phone">
                  <cite>Alex:</cite> That's the kind of clarity
    we need. It's not something you're iterating over, it's a value
    that goes along from the ride.</p>
               <p class="phone">
                  <cite>Richard:</cite> I don't think we want
    any diagrams like this in the spec. A diagram with three kinds
    of lines just isn't useful to a new user.</p>
               <p class="irc">&lt;<cite>alexmilowski</cite>&gt; +1 to that</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; +1 to opposition to
    three kinds of dotted lines</p>
               <p class="phone">
                  <cite>Richard:</cite> They're useful to us to
    argue about what we actually mean.<br clear="none"/>
    ... OTOH, I think diagrams like the ones currently in the spec,
    which are much more informal, are what we need.<br clear="none"/>
    ... I'd like to compare the XML spec to the Schema spec. I
    don't want this spec to be like the Schema spec where you have
    to analyze every sentence for meaning.<br clear="none"/>
    ... There should be a place where the semantics are spelled out
    clearly. If there are errors there, we should fix them. If
    there are other descriptions that seem to say something
    slightly different, that shouldn't matter.<br clear="none"/>
    ... If in the course of producing the semantics, it turns out
    to be useful to produce a specialized diagram, we can do
    so.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [I agree with Richard
    that we don't want readers to have to be language lawyers. But
    I believe one reason the schema spec is unclear is that we did
    not insist on clear common understanding of what schemas and
    schema components are. That means the prose has to avoid saying
    things clearly, it has to say things obscurely so different WG
    members can each think it's saying what they mean.]</p>
               <p class="phone">
                  <cite>Richard:</cite> (replying to MSM's
    comment above) I don't think that has anything to do with
    what's wrong with the Schema spec. It simply tries too hard to
    be declaritive. It lays things out as discrete declarations
    instead of providing a place to read from to understand
    procedurally what validation does.</p>
               <p class="phone">
                  <cite>Alex:</cite> I'm looking at things that
    say, if you used an input inside a for-each that isn't
    something you're iterating, then it's constant during
    iteration.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [I think part of the
    reason the validation rules are hard to read is that they
    aren't in fact declarative, they are an algorithm pretending
    not to be an algorithm. What the spec needs is more
    declarativity not less.]</p>
               <p class="phone">
                  <cite>Richard:</cite> I think the easiest way
    to describe this is in terms of the documents produced by
    ports.<br clear="none"/>
    ... The fact that there's a line going across a box simply
    means that this document is used in each iteration.</p>
               <p class="phone">
                  <cite>Alex:</cite> It turns out that
    implementations are going to have to do something to make that
    work.</p>
               <p class="phone">
                  <cite>Richard:</cite> We can simply describe
    what happens (the component gets that document) without
    describing how the component achieves that result.</p>
               <p class="phone">
                  <cite>Alex:</cite> I wonder if we can try to
    restate what was going on in the deleted section 4.1.3.<br clear="none"/>
    ... I think there are a handful of rules that we could say
    concretely without going into particular implementation
    semantics.</p>
               <p class="phone">
                  <cite>Henry:</cite> The only reason that I'm
    unsure of our ability to do that is that I'm worried about the
    cross-product phenomenon.<br clear="none"/>
    ... The reason for stating things in terms of the
    auxillary-input story has the advantage that there are no
    cross-prodcut problems.<br clear="none"/>
    ... It worries me that it's not going to be the case that if
    you refer to a port across a choose boundary and say "thus and
    such"<br clear="none"/>
    ... Instead, you're going to have to say "if you refer to one
    across this boundary and that boundary"...<br clear="none"/>
    ... I can't prove that, but I'm worried that it won't be
    possible to say things once.</p>
               <p class="phone">
                  <cite>Alex:</cite> I think we have two kinds
    of things we have to worry about, output of regular steps and
    these "dangling" inputs.</p>
               <p class="phone">
                  <cite>Norm:</cite> I'm also worried about the
    choose component and dealing with branches that don't
    execute.</p>
               <p class="phone">
                  <cite>Henry:</cite> I thought about that too
    and I'm less worried. Outputs are always produced (crucially),
    the fact that it's input is plugged into the branch of a choose
    that doesn't execute can't matter, because the producer of the
    unused input might have side effects, and they must always
    happen.</p>
               <p class="phone">
                  <cite>Richard:</cite> The flow and pipe
    metaphor is unuseful in this case. It works much better to
    explain it in terms of a document being produced and saying
    that it will be availble if it is executed.</p>
               <p class="phone">
                  <cite>Alex:</cite> I think for-each and
    viewport have a similar but somewhat simpler story. So if we
    get it right it should work everywhere.<br clear="none"/>
    ... As a concrete exercise, can we think about those
    constraints.</p>
               <p class="phone">
                  <cite>Richard:</cite> Michael said earlier
    that conceptualizing this as a graph is very attractive, but it
    seems to me that it has not so far proved to be a useful way of
    describing the details.<br clear="none"/>
    ... In a regular programming language, this sort of problem
    never arises and that's an indication that perhaps it's not
    useful here.</p>
               <p class="phone">
                  <cite>Alex:</cite> I agree.</p>
               <p class="phone">
                  <cite>Norm:</cite> Perhaps that's the highest
    level take away from three weeks of discussion.</p>
               <p class="phone">
                  <cite>Richard:</cite> If we use graphs but
    they don't map to the semantics, Micheal will tell us we're
    being misleading, right?</p>
               <p class="phone">
                  <cite>Michael:</cite> It depends. I notice
    that lots of people draw pictures and can't actually tell you
    what the lines and symbols mean.<br clear="none"/>
    ... If we have a coherent explanation of what the symbols mean,
    that might be sufficient.<br clear="none"/>
    ... If they don't depict graphs, then we shouldn't say they
    are. We should say they "show the data flow" or something like
    that.<br clear="none"/>
    ... There's a distinction between drawing something that is
    false and something that is a simplification.</p>
               <p class="phone">
                  <cite>Richard:</cite> Maybe we should instead
    say that even if we use graphs as diagrams, we shouldn't use
    formal graph-theory language in any kind of prose if we aren't
    intending to be precise.<br clear="none"/>
    ... Perhaps we shouldn't say that a pipeline is a directed
    acyclic graph...I'd rather keep the lines and boxes as informal
    descriptions than to formalize them so that they are consistent
    with graph theoretic terms.</p>
               <p class="phone">
                  <cite>Michael:</cite> It's not entirely clear
    to me that the complications Henry found it necessary to
    introduce are in fact necessary.<br clear="none"/>
    ... If you just say that for any pipeline we can struct a graph
    with nodes and arcs, that's much simpler. That doesn't draw you
    a picture of parameter passing or flow of control, but as long
    as you don't say it does, you're not telling a lie.</p>
               <p class="phone">Norm describes next steps: changes to the
    document to remove graph theoretic terms we aren't apparently
    comfortable with and another to propose areas where the spec
    needs more prose.</p>
               <p class="phone">
                  <cite>Henry:</cite> I'm going to take a stab
    at writing some class definitions for a few of the
    constructs.<br clear="none"/>
    ... To see if the lessons I learned can be expressed in one way
    or the other.</p>
               <p class="phone">
                  <cite>Alex:</cite> I'm going to try to
    recodify some of my constraints.</p>
               <p class="phone">
                  <cite>Norm:</cite> (Planning for next week.) I'll see what develops in
    email and publish an agenda next Wednesday either cancelling
    the call or proposing an agenda.</p>
               <p class="phone">Adjourned</p>
            </div>
            <h2>
               <a name="ActionSummary" id="ActionSummary" shape="rect">Summary of Action
  Items</a>
            </h2>
            <!-- Action Items -->
  [End of minutes]<br clear="none"/>
            <hr/>
            <address>
    Minutes formatted by David Booth's <a href="http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm"
                  shape="rect">
    scribe.perl</a> version 1.127 (<a href="http://dev.w3.org/cvsweb/2002/scribe/" shape="rect">CVS log</a>)<br clear="none"/>
    $Date: 2006/09/29 11:01:02 $
  </address>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 21 Sep 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/09/21-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/09/21-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-09-21T16:34:07Z</published>
      <updated>2006-09-29T11:01:02Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 36, 21 Sep 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/09/21-agenda.html" shape="rect">Agenda</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Norm, Alex, Michael, Mohamed, Henry, Erik, Richard</dd>
                  <dt>Regrets</dt>
                  <dd>Paul, Andrew, Murray</dd>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>
               <a name="minutes" id="minutes" shape="rect">Minutes</a>
            </h2>
            <pre xml:space="preserve">[Norm struggles, fails to get an internet connection. ]

Topic: Accept this agenda?
-&gt; http://www.w3.org/XML/XProc/2006/09/21-agenda.html

Accepted.

Topic: Accept minutes from the previous meeting?
-&gt; http://www.w3.org/XML/XProc/2006/09/14-minutes.html

Accepted.

Topic: Next meeting: telcon 28 Sep 2006

No regrets given; Norm, Henry give regrets for 5 Oct 2006.

Topic: Review of open action items

   1. A-35-01: Norm to fix Figure 2 in XProc language specification

Completed.

   2. A-35-02: Norm to request permission to publish FPWD

Completed.

   3. A-13-01: MSM to draft a complete table in Requirements document

Continued.

We have a FPWD, http://www.w3.org/XML/XProc/docs/WD-xproc-20060928/

Topic: Technical discussion

Norm: I drew the analogy with compiler optimizations. The "single
graph" looks to me a little like loop unrolling or procedure inlining.
While that's reasonable, I don't think any modern languages are
described that way.

Alex: But they aren't data flow languages.

Henry: I think the major reason for the non-single graph approach is
that I want to be able to pick up chunks of the pipeline document and
paste them and not worry about name conflicts. The encapsulation that
you get from the nested graph model seems to be a crucial gaurantor of
the validity of doing that.

... We need to say something about the validity of a "global variable
reference" and I think what Norm originally proposed goes the right
way.

Alex: I don't think we have the cut-and-paste semantics that you think we do.

Henry: I think we do.

Alex: We don't have scoping of step names right now.

Michael: What troubles me about Henry's cut-and-paste argument is that
I don't think that the ability to omit declarations actually supports
that use case. You might not get an error, but who knows what that
points to.

... There was an example of references outside a container and I don't
think there's anything in there that would provide a gaurantee. It was
just like global variables.

... Even explicit declarations don't help since they have references
outside as well.

Henry: I think Michael is right. I can imagine that we might approach
this in the following way: the basic fact of the matter is that
components inside subpipelines can only refernece steps that are their
siblings or ports on the container by which they are immediately
contained. Then there are two directions one could go: one is to say
"that's it"; if you want to refer out then you have to put a
declaration on the margin that bridges that. If we wanted to adopt any
kind of shorthand or automatic bridging, then there ought to be two
modes of operation: one in which you bridge silently and another in
which you don't.

... What I want to avoid is something that has no bridges becoming
invalid by moving it.

Richard: Looking back at the messages, sometimes people seem to be
talking about how to view the pipeline, other times people are talking
about visibility of names from inside a component to outside. These
aren't necessarily the same thing.

... I think we should assume that any kind of naming scopes that we
have in pipelines will all match up or be reducable to a single issue
about how the diagrams are nested. In particular, when you draw the
diagrams, all the names have gone.

Norm: Fair point.

Henry: There's still a question in the drawings. In the nested model,
the boxes have substance. Sometimes the lines cross box boundaries and
sometimes they don't.

Henry: In the nested model, no pipe crosses a box boundary. In the
flat graph model, the dotted line that reconstructs the original has
lines that cross it.

Richard: In Michael's graphic, there are no lines crossing anywhere.

Alex: To some extent you have that problem. There are still inputs that
come to you inside things that are arbitrarily deep.

Norm: I had in mind an inner-to-outer build model that would remove
all the crossing lines.

Richard: If that's the case, then we have something more rigid than
what Henry said. Pipes are only connected to boxes inside that box,
not even to any ancestor boxes.

... You could, in the syntax, allow you to refer to things all over
the place, but this would be equivalent of adding ports where
necessary. You can do it the opposite way around, allowing connections
only to ports of siblings. But then you could still have a flat graph.

Norm: That's why it feels like compiler optimization.

Michael: I agree that it feels like loop unrolling. One of the
concerns that I have about the nested model is that if you want the
kind of reference to ancestors that we used to have, then I can
understand that much better in the flat view than I can in the nested
view.

... If we want strong encapsulation, then we should learn from
languages that have it. All of the bindings of arguments to parameters
happens outside not inside the lexical scope of the thingy. The fact
that the examples feel "ok" when they violate that modularity means
that the flat graph seems like a much closer reflection of my user
model looking at those examples.

... The nested model would be much closer if, as in the case of
function declarations, the function wasn't declared inline. Each of
the graphs in the nested drawing would be a contiguous bit without
interruptions.

Richard: One way to look at it is that in the flat view, the box is
like a closure. It has it's parameters, but it also closes over any
external ports that it references. You can turn a closure into a more
normal view by adding parameters.

Norm: That sounds right to me.

Richard: One thing that we have now that we didn't have before is the idea
that we have explicit semantics. We can either say that the convenient 
syntax is a shortcut for something or we can simply say that it has the
more verbose semantics.

Michael: Please, let's not.

Norm: Indeed, let's not.

Richard: From the point of view of what the language actually is, the
question is whether we allow a short form. If we allow a short form,
then we can do it either way. If we don't allow a short form, then
doing it the short way seems pointless.

Alex: Part of this thread started with the uncomfortableness of the
former section 4.1.3. My main thrust is that I don't want the ability
to do this latice-based model to go away. I don't care if we describe
it that way.

... My problem is with describing this in terms of fabricating
declarations that don't exist.

... I'd rather talk about this stuff in terms of what happens to
inputs. We need to make sure that inputs don't get provided to
components when you're on the wrong branch of a choose.

... But let's not talk about fabricated declarations.

Norm outlines his view again.

Alex: I'd be a lot more happy if the syntax was legal.

Richard: You're talking about things being delivered to the wrong
branches. We don't have a pull model. All the things outside the box
will happen, even if the things inside the box don't read them.

... The strange thing that can happen is that some component outside
the box can produce output that will never be consumed. But it's still
going to produce the output.

Norm describes his idea of the semantics of choose, where it has all
the inputs that it might need before it starts.

Alex: You have talked about reading inputs, but I have a model where
inputs are delivered asynchronously.

... In the flow model, all of those inputs are in fact connected, it's
just a question of which ones have water in them.

... You have to build a "valve" in the lattice.

More discussion about implementation models.

Alex: I'd much prefer the closure story to the notion of fabricating
declarations.

Richard: The closure story and the fabricating declarations story are
essentially equivalent. If you have something like a closure in our
pipeline language, you could implement it as a box with extra inputs.

Michael: In our FPWD, we have a definition that I think feels right: a
pipeline is a directed, acyclic graph of components.

Norm attempts a description

Michael: So "the pipeline" has no knowledge of the "make FO" component.

Henry: Although there are two levels of nesting in the element
structure. There's only one level of nesting in the box. Whereas
viewport has a single subpipeline, the choose has several but they are
not more nested.

Michael: Attempt to say as a shorthand that it's a directed, acyclic
graph of components is wrong. The story you're telling is a lot more
complicated than that.

Henry: Complex components like choose are black boxes, I don't think
we every said that the subpipelines are black boxes.

Richard: The when branches of a choose are not themselves black boxes?

Henry: No, they're directly part of the choose.

Norm: Alas, we're out of time. Hopefully we can come to closure on
this next week.

Topic: Any other business?

None.

Adjourned.</pre>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 14 Sep 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/09/14-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/09/14-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-09-14T17:57:49Z</published>
      <updated>2006-09-21T16:34:07Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 35, 14 Sep 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/09/14-agenda.html" shape="rect">Agenda</a>
            </p>
            <p>See also: <a href="http://www.w3.org/2006/09/14-xproc-irc" shape="rect">IRC
  log</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Alex, Andrew, Henry, Michael, Mohamed, Norm, Paul,
      Rui</dd>
                  <dt>Regrets</dt>
                  <dd>Alessandro, Erik, Murray, Richard</dd>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>Contents</h2>
            <ul>
               <li>
                  <a href="#agenda" shape="rect">Topics</a>
                  <ol>
                     <li>
                        <a href="#item01" shape="rect">Accept this agenda?</a>
                     </li>
                     <li>
                        <a href="#item02" shape="rect">Accept minutes from the previous
        meeting?</a>
                     </li>
                     <li>
                        <a href="#item03" shape="rect">Next meeting: telcon 21 Sep
        2006</a>
                     </li>
                     <li>
                        <a href="#item04" shape="rect">Review of open action items</a>
                     </li>
                     <li>
                        <a href="#item05" shape="rect">Technical discussion</a>
                     </li>
                     <li>
                        <a href="#item06" shape="rect">Any other business?</a>
                     </li>
                  </ol>
               </li>
               <li>
                  <a href="#ActionSummary" shape="rect">Summary of Action Items</a>
               </li>
            </ul>
            <hr/>
            <div class="meeting">
               <h3 id="item01">Accept this agenda?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/09/14-agenda.html" shape="rect">http://www.w3.org/XML/XProc/2006/09/14-agenda.html</a>
               </p>
               <p class="irc">&lt;<cite>alexmilowski</cite>&gt; pre coffee,
    only partially present...</p>
               <p class="phone">Accepted.</p>
               <h3 id="item02">Accept minutes from the previous meeting?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/09/07-minutes.html" shape="rect">http://www.w3.org/XML/XProc/2006/09/07-minutes.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item03">Next meeting: telcon 21 Sep 2006</h3>
               <p class="phone">Possible regrets: Rui</p>
               <h3 id="item04">Review of open action items</h3>
               <p class="phone">
                  <cite>A-13-01:</cite> Continued.</p>
               <p class="phone">
                  <cite>A-34-01:</cite> Completed</p>
               <h3 id="item05">Technical discussion</h3>
               <p class="phone">Discussion of draft</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; <a href="http://www.w3.org/XML/XProc/docs/ED-xproc-20060912/#steps" shape="rect">http://www.w3.org/XML/XProc/docs/ED-xproc-20060912/#steps</a>
               </p>
               <p class="phone">
                  <cite>Henry:</cite> I'd like to talk about
    steps and components</p>
               <p class="phone">
                  <cite>Alex:</cite> I'd like to talk about
    4.1.3</p>
               <p class="phone">
                  <cite>Henry:</cite> I'd like to see if we
    can't reach consensus before the end of this call.</p>
               <p class="phone">
                  <cite>Alex:</cite> I'd like to see about
    fixing my example too.</p>
               <p class="phone">
                  <cite>Henry:</cite> Everything up to 2.1 is
    fine except that figure 2 needs a transform step at the end,
    not a validate step</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; also
    s/rerpesents/represents/</p>
               <a name="action01" id="action01" shape="rect"/>
               <p class="irc">&lt;<cite>scribe</cite>&gt;
    <strong>ACTION:</strong> Norm to fix figure 2 [recorded in
    <a href="http://www.w3.org/2006/09/14-xproc-minutes.html#action01" shape="rect">http://www.w3.org/2006/09/14-xproc-minutes.html#action01</a>]</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; also s/Definition: A
    step which contains other steps is called a step
    containers./...container./</p>
               <p class="phone">
                  <cite>Henry:</cite> Steps ought to be bits of
    markup; but we talk about step containers which ought to be
    about components<br clear="none"/>
    ... All of sections 2 and 3 don't need any notion of
    representation or anything like that<br clear="none"/>
    ... The introduction of the notion of representation and the
    XML level in section 2 is a mistake and you don't stay with
    it.</p>
               <p class="phone">Norm tries to explain his view</p>
               <p class="phone">
                  <cite>Norm:</cite> Steps are syntax and some
    of them have steps inside them. Components get instantiated and
    some of them contain subpiplines.</p>
               <p class="phone">
                  <cite>Henry:</cite> Maybe we can just try to
    write the first two sentences of 2.1 without saying anything
    about pipeline documents or represents<br clear="none"/>
    ... You've chosen "component" as the over-arching term.<br clear="none"/>
    ... Some components are atomic like xslt and atomic and others
    are "constructs" or "step containers"<br clear="none"/>
    ... Except that we have components now so they ought to be
    component containers.<br clear="none"/>
    ... Many components are simple and atomic and correspond to a
    single operation. An XSLT component, for example...<br clear="none"/>
    ... However, some components are containers for other
    components...called a container...called contained
    components</p>
               <p class="phone">
                  <cite>Alex:</cite> Step and step container is
    still an abstract concept, it's not just markup.<br clear="none"/>
    ... Component is something that has to be bound and has to have
    all that information.<br clear="none"/>
    ... I'm not sure that drawing an analogy between the language
    constructs and a component is the right thing.<br clear="none"/>
    ... Components containing components seems awfully technical,
    do we really need to go there?</p>
               <p class="phone">
                  <cite>Henry:</cite> I like the way the first
    section reads</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; if a pipeline is a DAG
    of (atomic) components, then we've got: graphs, subgraphs, and
    nodes</p>
               <p class="irc">&lt;<cite>Zakim</cite>&gt; MSM, you wanted to
    suggest that the absence of a definition of 'step' is
    symptomatic of a problem. I'm not entirely certain which
    problem. But a problem.</p>
               <p class="phone">
                  <cite>Michael:</cite> I have an unease similar
    to Henry's: as a first time reader, I can't tell if step is an
    abstract unit that may correspond to a subgraph or an XML thing
    (or both). And so I agree with Henry that there's room for
    improvement here.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; So, Alex, note in
    section 1 we have "The standard “choose” component
    evaluates"</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; which reads just fine to
    me</p>
               <p class="phone">
                  <cite>Michael:</cite> Unfortunately, Henry's
    proposal has a contradition: either components nest and they're
    similar to blocks in Algol style programming languages *OR*
    pipelines are DAGs of components.</p>
               <p class="phone">
                  <cite>Henry:</cite> I've come to think that
    that's not the best way to think about these things.<br clear="none"/>
    ... At the same time, a component container is a node in one
    graph and has a graph inside it.</p>
               <p class="phone">
                  <cite>Michael:</cite> Then the definition of
    pipeline as "a graph" is misleading.</p>
               <p class="phone">
                  <cite>Henry:</cite> Look at figure 2. The
    Choose box contains a subgraph.<br clear="none"/>
    ... There are important constraints that are captured naturally
    by saying that the nodes are either atomic or contain
    subgraphs.</p>
               <p class="phone">
                  <cite>Michael:</cite> Then we should say that
    the graphs inside are separate.<br clear="none"/>
    ... Let's talk about it in sort of purely graph terms. I think
    there are two ways to tell the graph story.<br clear="none"/>
    ... One way is to say that the graphs are contained inside and
    don't connect.<br clear="none"/>
    ... Another way is to say that there is a graph that has all
    the components in it. The way to view choose is a subgraph of
    that larger graph.<br clear="none"/>
    ... If we think of it in terms of the latter approach, then the
    drawing here is not the flat graph either. You need a splitter
    node and ajoiner node as well.<br clear="none"/>
    ... Steps then always correspond to subgraphs; atomic steps
    just correspond to a single node.</p>
               <p class="irc">&lt;<cite>Zakim</cite>&gt; alexmilowski, you
    wanted to modify that definition of subgraph</p>
               <p class="phone">
                  <cite>Norm:</cite> I prefer the former
    definition.</p>
               <p class="phone">
                  <cite>Alex:</cite> I prefer the latter.<br clear="none"/>
    ... My model is that there is a single graph. I think of choose
    being a node in the graph.</p>
               <p class="irc">&lt;<cite>Zakim</cite>&gt; ht, you wanted to
    point back to the agreement from Ontario</p>
               <p class="phone">
                  <cite>Henry:</cite> I'm happy with the first
    story. I don't understand the second yet.</p>
               <p class="phone">
                  <a href="http://www.flickr.com/photos/ndw/211253174/in/set-72157594234207396/"
                     shape="rect">
    http://www.flickr.com/photos/ndw/211253174/in/set-72157594234207396/</a>
               </p>
               <p class="phone">
                  <cite>Henry:</cite> Having the language
    constructs like choose and for-each be a locus of ports (of
    nodes in the graph) and a scope all seem to work well
    together.<br clear="none"/>
    ... It must be the case in some sense that the stories are
    isomorphic, but I think the story that's in the document is
    much closer to the first story.</p>
               <p class="phone">Norm proposes to talk about 4.1.3 for a bit as
    it seems directly relevant to which story we're telling.</p>
               <p class="phone">
                  <cite>Alex:</cite> What happens when some
    contained step points off to something that it's allowed to
    access.<br clear="none"/>
    ... In 4.1.3 we say that we have some fabricated
    declaration.<br clear="none"/>
    ... It's going to be a mess to report errors.<br clear="none"/>
    ... It's not helpful to make this thing self contained.</p>
               <p class="phone">Norm and Alex go back and forth a bit about
    what the right answer is.</p>
               <p class="phone">
                  <cite>Alex:</cite> I see two ways out of this,
    allow declare input and actually make 4.1.3 valid against our
    current specification and acknowledge that people can do this.
    Or have a different model for how we talk about these
    things.<br clear="none"/>
    ... There's an inconsisentency here that bothers me.<br clear="none"/>
    ... There's a problem with for-each and view-port where you'd
    have to be able to tell *which* for-each was the important one
    and which are the others.<br clear="none"/>
    ... Maybe it would be better to draw a picture.</p>
               <p class="phone">
                  <cite>Norm:</cite> I propose dropping 4.1.3
    for FPWD</p>
               <p class="phone">
                  <cite>Alex:</cite> I'd be happy with that,
    perhaps with the ednote placed somewhere else with more
    explanation</p>
               <p class="phone">Resolved, we'll drop 4.1.3 for FPWD</p>
               <p class="irc">&lt;<cite>MoZ</cite>&gt; +1 but letting know
    that the WG will propose shortcut syntax</p>
               <p class="phone">
                  <cite>Henry:</cite> My feeling is that I don't
    care if we don't settle this question in this WD either.<br clear="none"/>
    ... I'd like to see slightly more consistency in the story we
    tell in parts 2 and 3.<br clear="none"/>
    ... I'll volunteer to work on a new draft over the weekend.</p>
               <p class="phone">
                  <cite>Proposal:</cite> The WG will publish the
    current draft as the FPWD (with 4.1.3) removed.</p>
               <p class="phone">So resolved.</p>
               <a name="action02" id="action02" shape="rect"/>
               <p class="irc">&lt;<cite>scribe</cite>&gt;
    <strong>ACTION:</strong> Norm to request permission to publish
    [recorded in <a href="http://www.w3.org/2006/09/14-xproc-minutes.html#action02" shape="rect">http://www.w3.org/2006/09/14-xproc-minutes.html#action02</a>]</p>
               <p class="phone">
                  <cite>Proposed:</cite> If an alternate draft
    is proposed by close-of-business (Boston time) on Monday, the
    WG will have until close-of-business Wednesday to veto. If
    there are no veto's, the alternate draft will be published
    instead. The only plans for the alternate draft are to improve
    wording in sections 2 and 3.</p>
               <p class="phone">Accepted.</p>
               <p class="phone">Proposed publication date: 28 Sep 2006</p>
               <p class="phone">Accepted.</p>
               <h3 id="item06">Any other business?</h3>
               <p class="phone">None.</p>
            </div>
            <h2>
               <a name="ActionSummary" id="ActionSummary" shape="rect">Summary of Action
  Items</a>
            </h2>
            <!-- Action Items --><strong>[NEW]</strong>
            <strong>ACTION:</strong> Norm to fix
  figure 2 [recorded in <a href="http://www.w3.org/2006/09/14-xproc-minutes.html#action01" shape="rect">http://www.w3.org/2006/09/14-xproc-minutes.html#action01</a>]<br clear="none"/>
            <strong>[NEW]</strong>
            <strong>ACTION:</strong> Norm to request
  permission to publish [recorded in <a href="http://www.w3.org/2006/09/14-xproc-minutes.html#action02" shape="rect">http://www.w3.org/2006/09/14-xproc-minutes.html#action02</a>]<br clear="none"/>

   <br clear="none"/>
  [End of minutes]<br clear="none"/>
            <hr/>
            <address>
    Minutes formatted by David Booth's <a href="http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm"
                  shape="rect">
    scribe.perl</a> version 1.127 (<a href="http://dev.w3.org/cvsweb/2002/scribe/" shape="rect">CVS log</a>)<br clear="none"/>
    $Date: 2006/09/21 16:34:07 $
  </address>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 7 Sep 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/09/07-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/09/07-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-09-07T16:07:51Z</published>
      <updated>2006-09-14T17:57:49Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 34, 7 Sep 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/09/07-agenda.html" shape="rect">Agenda</a>
            </p>
            <p>See also: <a href="http://www.w3.org/2006/09/07-xproc-irc" shape="rect">IRC
  log</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Norm, Paul, Murray, Mohamed, Henry, Alex, Richard,
      Michael, Andrew</dd>
                  <dt>Regrets</dt>
                  <dd>Alessandro, Erik</dd>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>Contents</h2>
            <ul>
               <li>
                  <a href="#agenda" shape="rect">Topics</a>
                  <ol>
                     <li>
                        <a href="#item01" shape="rect">Accept this agenda?</a>
                     </li>
                     <li>
                        <a href="#item02" shape="rect">Accept minutes from the previous
        meeting?</a>
                     </li>
                     <li>
                        <a href="#item03" shape="rect">Next meeting: telcon 14 Sep
        2006</a>
                     </li>
                     <li>
                        <a href="#item04" shape="rect">Review of open action items</a>
                     </li>
                     <li>
                        <a href="#item05" shape="rect">Liaison with GRDDL WG?</a>
                     </li>
                     <li>
                        <a href="#item06" shape="rect">Technical discussion</a>
                     </li>
                     <li>
                        <a href="#item07" shape="rect">Any other business</a>
                     </li>
                  </ol>
               </li>
               <li>
                  <a href="#ActionSummary" shape="rect">Summary of Action Items</a>
               </li>
            </ul>
            <hr/>
            <div class="meeting">
               <h3 id="item01">Accept this agenda?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/09/07-agenda.html" shape="rect">http://www.w3.org/XML/XProc/2006/09/07-agenda.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item02">Accept minutes from the previous meeting?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/31-minutes.html" shape="rect">http://www.w3.org/XML/XProc/2006/08/31-minutes.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item03">Next meeting: telcon 14 Sep 2006</h3>
               <p class="phone">No regrets given</p>
               <h3 id="item04">Review of open action items</h3>
               <p class="phone">
                  <cite>A-13-01:</cite> Continued.</p>
               <h3 id="item05">Liaison with GRDDL WG?</h3>
               <p class="phone">Tag, you're it, Murray.</p>
               <a name="action01" id="action01" shape="rect"/>
               <p class="irc">&lt;<cite>scribe</cite>&gt;
    <strong>ACTION A-34-01:</strong> Norm to send mail to the GRDDL WG
    chair [recorded in <a href="http://www.w3.org/2006/09/07-xproc-minutes.html#action01" shape="rect">http://www.w3.org/2006/09/07-xproc-minutes.html#action01</a>]</p>
               <h3 id="item06">Technical discussion</h3>
               <p class="phone">Step Container Proposal: -&gt; <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Sep/0003.html"
                     shape="rect">
    http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Sep/0003.html</a>
               </p>
               <p class="phone">
                  <cite>Alex:</cite> First, I'd like to
    introduce the concept of a Component Type<br clear="none"/>
    ... Viewport and other language constructs create their own
    component type.</p>
               <p class="phone">
                  <cite>Henry:</cite> I agree with the idea.
    Viewports and things like them need declare-outputs.<br clear="none"/>
    ... Are there any substantive differences from the UML I sent
    out last week?</p>
               <p class="phone">Some discussion of how Alex's proposal and
    HT's diagram differ</p>
               <p class="phone">
                  <cite>Richard:</cite> Is there a distinction
    between the signature and the type?</p>
               <p class="phone">
                  <cite>MSM:</cite> If I have two components
    with the same inputs and outputs, are they the same type or
    different?</p>
               <p class="phone">
                  <cite>Alex:</cite> I think they'd be different
    because they'd have different names.</p>
               <p class="phone">
                  <cite>MSM:</cite> I'm perfectly happy to say
    that the name is part of the component type.</p>
               <p class="phone">
                  <cite>Richard:</cite> Type and signature seem
    to cover the two cases here.</p>
               <p class="phone">
                  <cite>HT:</cite> In my diagram, the signature
    includes the kind so they're the same.</p>
               <p class="phone">
                  <cite>MSM:</cite> I like the word signature
    without the kind.</p>
               <p class="phone">
                  <cite>HT:</cite> I don't see any need for a
    signature without the kind, but I'm happy to change the name on
    the diagram</p>
               <p class="phone">
                  <cite>Richard:</cite> We can introduce it as a
    term that may be useful without having an impact on the
    semantics.<br clear="none"/>
    ... We could say that the connections to a component must match
    its signature.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; One point worth
    considering: it's useful to define terms if they will be useful
    to people discussing the spec, whether they have work to do in
    normative spec prose or not.</p>
               <p class="irc">&lt;<cite>Zakim</cite>&gt; MSM, you wanted to
    ask whether 'component type' as described in 1 has anything to
    do with what actually happens to the data - or is it just a
    signature?</p>
               <p class="phone">
                  <cite>Richard:</cite> Alex, you're proposing
    that we create subtypes that only have one instance.</p>
               <p class="phone">
                  <cite>Alex:</cite> yes.</p>
               <p class="irc">&lt;<cite>Zakim</cite>&gt; Norm, you wanted to
    point out that the spec currently uses the word "signature"</p>
               <p class="phone">
                  <cite>Norm:</cite> We already use the word
    "signature" in the spec.</p>
               <p class="phone">
                  <cite>Alex:</cite> I'm happy to say that the
    component type is a signature with a name.<br clear="none"/>
    ... I wanted to have a name for these things like viewport, and
    for-each, etc. that contain steps.<br clear="none"/>
    ... I called them "step containers"</p>
               <p class="irc">&lt;<cite>richard</cite>&gt; I suggest
    "container step" rather than "step container", to emphasize
    that it's a step</p>
               <p class="phone">
                  <cite>Norm:</cite> I was resistant, because I
    don't want to make them too special, but it will help in the
    exposition of where bindings can occur.<br clear="none"/>
    ... I sort of like "container step" better</p>
               <p class="phone">
                  <cite>Richard:</cite> It's only one of the
    aspects of the steps that they're containers. They have other
    specialnesses to them.<br clear="none"/>
    ... In particular, they provide control flow.</p>
               <p class="phone">
                  <cite>Murray:</cite> Can I suggest the word
    "procedure" as a grouping of steps.</p>
               <p class="phone">
                  <cite>MSM:</cite> There's lots of baggage
    connected with that term.</p>
               <p class="phone">
                  <cite>Alex:</cite> Maybe we need more terms,
    but having a term for just the container nature seems
    useful.</p>
               <p class="phone">
                  <cite>Richard:</cite> I agree. It may not be
    immediately apparent that there's an analogy between these
    control structures and pipelines themselves.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [Would 'compound step'
    be a useful term?]</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [by analogy with
    'compound statement' in other pgoramming langauges]</p>
               <p class="phone">
                  <cite>HT:</cite> Pipelines are not in the
    category of things that a graph is made of. I'd rather not give
    this a name thta's associated with stage.</p>
               <p class="phone">
                  <cite>Alex:</cite> But a pipeline library is
    for pipelines that you use as steps</p>
               <p class="phone">
                  <cite>HT:</cite> I thought we said that there
    may be a component that allows you to call a component by name,
    but you can't put a p:pipeline inside a choice.<br clear="none"/>
    ... There are common or garden steps and language constructs
    which assemble into the graph.<br clear="none"/>
    ... We distinguished from that pipelines that are packaging for
    graphs for unitary invocation.<br clear="none"/>
    ... I thought on that basis that pipeline was special.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; so is there a name for
    what you write when you invoke a pipeline as a step?</p>
               <p class="phone">Yes, MSM, p:step component="pipelineName"</p>
               <p class="phone">
                  <cite>HT:</cite> We need a category for the
    things you can join up with inputs and outputs. Pipeline is not
    in that category.</p>
               <p class="phone">
                  <cite>Alex:</cite> Pipelines are pretty much
    exactly like group. One way out of this box is to say that a
    pipeline is an extension of a group.<br clear="none"/>
    ... When you use it in a step you're invoking that group.</p>
               <p class="phone">
                  <cite>HT:</cite> But it may be named, may
    contain component declarations, etc.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [It seems we are
    talking about two sets: the set of things that contain steps,
    and the set of things that can go inside a choice or other
    container. Set 1 seems to be equal to Set 2 + {p:pipeline}.</p>
               <p class="phone">
                  <cite>Murray:</cite> Rather than simply saying
    that it has a lot of baggage, can someone explain why
    "procedure" is not a good choice?</p>
               <p class="phone">
                  <cite>Richard:</cite> I find it
    anti-intuitive. In other programming languages, procedures are
    the things that aren't syntactic constructs.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [My concern with the
    term "procedure" is that it suggests to me very strongly an
    association with parameters and arguments, which I think
    doesn't match up very well with these constructs.]</p>
               <p class="phone">
                  <cite>Richard:</cite> In C or Algol, or any of
    those things, a procedure is something you call, it's not a
    control structure. "If" is not a procedure in any language like
    that.</p>
               <p class="phone">
                  <cite>Murray:</cite> But in everyday language,
    it is fine.</p>
               <p class="phone">
                  <cite>Richard:</cite> Indeed, but in the
    context of programming languages, it doesn't match very
    well.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [I think Richard has
    enunciated another aspect of my concerns, too.]</p>
               <p class="phone">
                  <cite>Murray:</cite> We seem to have trouble
    sticking with the metaphore of pipelines that we've
    adopted.<br clear="none"/>
    ... In wikipedia, the description of a pipeline includes
    "processes"<br clear="none"/>
    ... I keep tripping on various english language constructs
    where there seem to be simpler english words.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; I think 'procedure'
    would be a good alternative for what we have called 'group'
    heretofore</p>
               <p class="phone">
                  <cite>MSM:</cite> I think that there are two
    different sets we're talking about.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; but not for the category
    including group-as-was and choose and for-each</p>
               <p class="phone">
                  <cite>MSM:</cite> One is the set of constructs
    that can contain other constructs, of which the pipeline
    element is clearly a member<br clear="none"/>
    ... And the other is non-atomic constructs that can occur as
    constructs, of which pipeline is not a member.</p>
               <p class="phone">
                  <cite>HT:</cite> They both need names. One
    needs input/output decls everytime they're used and the other
    is something that can be connected together.<br clear="none"/>
    ... Stages is the word in the diagram for things that you can
    connect with pipes.<br clear="none"/>
    ... It doesn't have a name for the superclass of things that
    have things inside them.</p>
               <p class="phone">
                  <cite>Richard:</cite> I find Alex's
    description quite compelling. We need a name for things which
    contain steps and need declarations.<br clear="none"/>
    ... Then we can say that so-and-so is a step container and you
    know how it's connected up.</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; [The need for the
    latter is: what can go into a 'when' ? ]</p>
               <p class="phone">
                  <cite>Richard:</cite> In HT's diagram, stage
    is that plus ordinary steps.</p>
               <p class="phone">
                  <cite>Alex:</cite> I want to observe that
    pipelines are a lot like a group.</p>
               <p class="phone">
                  <cite>Murray:</cite> Group is a local scope
    for a set of parameters.</p>
               <p class="phone">
                  <cite>Norm:</cite> Is one of these names the
    least controversial?</p>
               <p class="phone">Step container</p>
               <p class="phone">Container step</p>
               <p class="phone">Procedure</p>
               <p class="phone">Compound step</p>
               <p class="phone">Some discussion</p>
               <p class="phone">
                  <cite>Norm:</cite> Step container looks to be a minimally
    controversial choice</p>
               <p class="phone">Murray objects but encourages us to proceed
    anyway</p>
               <p class="phone">We'll go with "step container"
    provisionally.</p>
               <p class="phone">
                  <cite>HT:</cite> This is the first time where
    I'm moved to do double inheritence in the diagram</p>
               <p class="phone">
                  <cite>Norm:</cite> Where?</p>
               <p class="phone">
                  <cite>HT:</cite> Pipeline and construct are
    both going to be subclasses of step-container<br clear="none"/>
    ... And step container will have a body that is a flow
    graph<br clear="none"/>
    ... Which is fine, that is actually accurate.</p>
               <p class="phone">
                  <cite>Norm:</cite> I think the rest of Alex's
    message describes the constraints on input/output bindings in
    terms of what we've just discussed.</p>
               <p class="phone">
                  <cite>Alex:</cite> Yes. We don't say enough
    about this yet.<br clear="none"/>
    ... This is the point that we had heartburn about at the
    f2f.</p>
               <p class="phone">
                  <cite>Richard:</cite> Step containers bind
    their input ports to other steps. Right.</p>
               <p class="phone">
                  <cite>Alex:</cite> The input binding can't be
    to something inside you.<br clear="none"/>
    ... You could bind to the input of some ancestor.<br clear="none"/>
    ... It might be nice if we could get away from this
    input/output problem.</p>
               <p class="phone">
                  <cite>Richard:</cite> We bind inputs to
    sources and sources can either be outputs of siblings or
    declare-inputs of ancestors.</p>
               <h3 id="item07">Any other business</h3>
               <p class="phone">
                  <cite>Alex:</cite> I sent out a standard
    library definition. I think it would be good to start writing
    definitions of the standard components.<br clear="none"/>
    ... I could start with the use cases and put it together in a
    more formal way.</p>
               <p class="phone">
                  <cite>Norm:</cite> Go, man, go!</p>
               <p class="phone">
                  <cite>Murray:</cite> I've come up with another
    term.<br clear="none"/>
    ... How about a work flow?</p>
               <p class="phone">Norm expresses reservations because we're not
    doing choreography</p>
               <p class="phone">Adjourned.</p>
            </div>
            <h2>
               <a name="ActionSummary" id="ActionSummary" shape="rect">Summary of Action
  Items</a>
            </h2>
            <!-- Action Items --><strong>[NEW]</strong>
            <strong>ACTION A-34-01:</strong> Norm to send mail
  to the GRDDL WG chair [recorded in <a href="http://www.w3.org/2006/09/07-xproc-minutes.html#action01" shape="rect">http://www.w3.org/2006/09/07-xproc-minutes.html#action01</a>]<br clear="none"/>

   <br clear="none"/>
  [End of minutes]<br clear="none"/>
            <hr/>
            <address>
    Minutes formatted by David Booth's <a href="http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm"
                  shape="rect">
    scribe.perl</a> version 1.127 (<a href="http://dev.w3.org/cvsweb/2002/scribe/" shape="rect">CVS log</a>)<br clear="none"/>
    $Date: 2006/09/14 17:57:49 $
  </address>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 31 Aug 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/08/31-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/08/31-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-08-31T20:12:57Z</published>
      <updated>2006-09-12T17:39:42Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 33, 31 Aug 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/08/31-agenda.html" shape="rect">Agenda</a>
            </p>
            <p>See also: <a href="http://www.w3.org/2006/08/31-xproc-irc" shape="rect">IRC
  log</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Rui, Norm, Paul, Henry, Andrew, Michael, Richard,
      Mohamed, Alex</dd>
                  <dt>Regrets</dt>
                  <dd>Alessandro, Erik</dd>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>Contents</h2>
            <ul>
               <li>
                  <a href="#agenda" shape="rect">Topics</a>
                  <ol>
                     <li>
                        <a href="#item01" shape="rect">Accept this agenda?</a>
                     </li>
                     <li>
                        <a href="#item02" shape="rect">Accept minutes from the previous
        meeting?</a>
                     </li>
                     <li>
                        <a href="#item03" shape="rect">Next meeting: telcon 7 Sep
        2006</a>
                     </li>
                     <li>
                        <a href="#item04" shape="rect">Comments on the draft</a>
                     </li>
                     <li>
                        <a href="#item05" shape="rect">The select attribute on
        p:param</a>
                     </li>
                  </ol>
               </li>
               <li>
                  <a href="#ActionSummary" shape="rect">Summary of Action Items</a>
               </li>
            </ul>
            <hr/>
            <div class="meeting">
               <h3 id="item01">Accept this agenda?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/31-agenda.html" shape="rect">http://www.w3.org/XML/XProc/2006/08/31-agenda.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item02">Accept minutes from the previous meeting?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/17-minutes.html" shape="rect">http://www.w3.org/XML/XProc/2006/08/17-minutes.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item03">Next meeting: telcon 7 Sep 2006</h3>
               <p class="phone">No regrets given.</p>
               <h3 id="item04">Comments on the draft</h3>
               <p class="phone">Four things: add a description for
    p:declare-parameter</p>
               <p class="phone">
                  <cite>scribe:</cite> Document select on
    p:param (we need to determine the context)<br clear="none"/>
    ... Remove the special case in 4.1.1 for a source w/o
    step<br clear="none"/>
    ... Add text about extension attributes and elements<br clear="none"/>
    ... Do we allow p:declare-input on for-each, choose, etc.</p>
               <p class="phone">
                  <cite>Henry:</cite> We've talked about
    components and steps as quite different things<br clear="none"/>
    ... in the draft, you've moved the other way. Now there are
    just classes of components.<br clear="none"/>
    ... I think that's a good idea, but I don't think we decided
    it.</p>
               <p class="irc">&lt;<cite>alexmilowski</cite>&gt; I've always
    thought of it that way too...</p>
               <p class="phone">
                  <cite>Henry:</cite> In that case, we need to
    speak of allowing users to create classes of components</p>
               <p class="phone">
                  <cite>Richard:</cite> I think the draft is
    confusing, it speaks of a graph of components, but choose and
    for-each aren't described as components.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; HST likes 'construct'
    for the language constructs</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; and 'component' for XSLT
    and user-defined stuff</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; and 'step' for the union
    of the two</p>
               <p class="phone">Norm describes how in fact he thinks
    "for-each" is now in fact a component</p>
               <p class="phone">
                  <cite>Micheal:</cite> I'm a little concerned
    about losing the distinction between steps and
    components.<br clear="none"/>
    ... Personally, I believe that people have a tendency to get
    confused about class/instance distinctions.</p>
               <p class="phone">Norm describes pipelines as a graph of
    components and steps as a mechanism for instantiating those
    components.</p>
               <p class="phone">
                  <cite>Michael:</cite> I've got a pipeline with
    three XSLT stylesheets applied in sequence. I think I have
    three XML constructs in the XML description of the pipeline. I
    think I have three steps/stages in an abstract description of
    the pipeline.<br clear="none"/>
    ... and three control blocks in memory, but perhaps only one
    copy of the processor if it's renetrant. But I have one of
    something, what is that?<br clear="none"/>
    ... I had thought that that was a component.</p>
               <p class="phone">
                  <cite>Richard:</cite> A shell script may run a
    sequence of two or three programs and two of them may be the
    same.<br clear="none"/>
    ... The fact that in the first case I meant programs and in the
    second I meant executable file doesn't seem confusing.</p>
               <p class="phone">
                  <cite>Michael:</cite> In some contexts, I can
    certainly imagine getting confused if we didn't have
    conventions for distinction between those things.</p>
               <p class="phone">
                  <cite>Richard:</cite> One reason I don't want
    to elaborate a whole set of names is because there is in fact
    at least a third case for each one. Suppose you run a pipeline
    twice. Now, not only are there are the layers we already had,
    there's also the instances of them running.</p>
               <p class="phone">
                  <cite>Henry:</cite> And this is entirely
    parallel to any description of an OO system.</p>
               <p class="phone">
                  <cite>Richard:</cite> There's also the fact
    that we have constructs that run a component repeatedly within
    the same pipeline.</p>
               <p class="phone">
                  <cite>Alex:</cite> Do we have to dig that
    deep?</p>
               <p class="phone">
                  <cite>Richard:</cite> Let's look at it from
    the other end.<br clear="none"/>
    ... We seem generally happy with the term "step" for the things
    that aren't built into the language.<br clear="none"/>
    ... We need something for both language constructs and things
    not built into the language.</p>
               <p class="phone">
                  <cite>Michael:</cite> You'd rather say we plug
    the output ports of the X component into the input ports of the
    Y component. Why not step?</p>
               <p class="irc">&lt;<cite>MSM</cite>&gt; one syllable vs three
    syllables</p>
               <p class="phone">
                  <cite>Richard:</cite> The only reason I don't
    want to use step there is because we have a step element in the
    language.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Aug/0095.html"
                     shape="rect">
    http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Aug/0095.html</a>
               </p>
               <p class="phone">Norm describes his situation where components
    are synthesised sometimes</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; See above for the
    diagram Richard just referred to</p>
               <p class="phone">
                  <cite>Richard:</cite> I also want to be able
    to be able to have steps in the document correspond to single
    components in the semantics</p>
               <p class="phone">
                  <cite>Henry:</cite> The only thing worth
    noting right now about the diagram is that it goes backwards
    wrt the current discussion. It uses step for the union.</p>
               <p class="phone">
                  <cite>Michael:</cite> I continue to be a
    little concerned about the absence of a term for the
    abstraction who's most obvious instantiation is a software
    module that a user might add to an available library<br clear="none"/>
    ... what I'm hearing people say is that they want to use
    "component" for one of the constiuent parts of the
    pipeline<br clear="none"/>
    ... I don't have a particular desire to use component in a
    slightly different way. I just don't think of invocations as
    instances of programs.</p>
               <p class="phone">
                  <cite>Richard:</cite> Defining a component,
    writing a component, is like defining a function. So XSLT would
    be a function that you called.<br clear="none"/>
    ... A line of the program that called that function would be a
    "function call"<br clear="none"/>
    ... And there would be other constructs that weren't function
    calls like conditionals and loops.<br clear="none"/>
    ... In our language, "steps" are like function calls because we
    don't call the conditional things steps.</p>
               <p class="phone">
                  <cite>Henry:</cite> The problem with "step"
    for "statement" is that we have have an element named "step"
    which is the equivalent of "function call"</p>
               <p class="phone">Norm proposes to try to use step and component
    consistently in the document and see if that helps</p>
               <p class="phone">
                  <cite>Michael:</cite> When CMS pipelines were
    introduced, the authors thought hard about the
    terminology.<br clear="none"/>
    ... They used the term "stage" for the things that go between
    the pipeline characters.<br clear="none"/>
    ... and for the processes that get connected up.<br clear="none"/>
    ... I think in the abstract that step would be nicer, but stage
    does not have the collision with the usage of step as something
    which invokes something like XSLT</p>
               <h3 id="item05">The select attribute on p:param</h3>
               <p class="phone">Norm summarizes the current state of the
    document</p>
               <p class="phone">
                  <cite>Norm:</cite> I think we need to allow
    source/href/here on p:param</p>
               <p class="phone">
                  <cite>Alex:</cite> I thought we agreed to do
    that, even though it gives me heartburn.<br clear="none"/>
    ... I was surprised not to see that in the document.<br clear="none"/>
    ... I think we should be clear that if you create a param that
    uses an input that isn't otherwise an input to the step, you're
    creating a new input dependency.</p>
               <p class="phone">
                  <cite>Richard:</cite> It's easy to statically
    determine what the dependencies are.</p>
               <p class="phone">Norm will update the document to allow p:param
    elements to specify a context for the select attribute.</p>
               <p class="phone">
                  <cite>Henry:</cite> I expect in due course
    that we'll have a shortcut for this.</p>
               <p class="phone">Norm asks about allowing declare-input on
    p:choose, p:for-each, etc.</p>
               <p class="phone">
                  <cite>Richard:</cite> What about a
    declare-input that you don't use?</p>
               <p class="phone">
                  <cite>Norm:</cite> Uhm</p>
               <p class="phone">
                  <cite>Richard:</cite> It doesn't seem to
    usefully document anything if you can't prevent dangling
    inputs.</p>
               <p class="phone">
                  <cite>Norm:</cite> Does anyone else want to be
    able to declare those inputs?</p>
               <p class="phone">
                  <cite>Murray:</cite> I don't see any reason
    not to</p>
               <p class="phone">
                  <cite>Richard:</cite> But unless we have rules
    that say that if you declare one, you must declare them
    all.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; MSM, see <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Aug/0096.html"
                     shape="rect">
    http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Aug/0096.html</a>
    for an attempt to follow up your suggestion wrt 'Stage'</p>
               <p class="phone">
                  <cite>Richard:</cite> The effect of declare
    input is simply to alias an existing name. So how come you're
    only allowed to use it in these particular places.<br clear="none"/>
    ... My inclination is not to allow it unless we work out what's
    allowed.</p>
               <p class="phone">
                  <cite>Norm:</cite> My middle ground is to say
    that a declare-input that you don't use is an error.</p>
               <p class="phone">
                  <cite>Henry:</cite> I feel that you should
    minimize the amount of work on the draft in this area.</p>
               <p class="phone">
                  <cite>Norm:</cite> Ok, we'll leave it alone,
    but not record that as a decision.</p>
               <p class="phone">Norm proposes revising the draft before next
    week in an effort to get FPWD out</p>
            </div>
            <h2>
               <a name="ActionSummary" id="ActionSummary" shape="rect">Summary of Action
  Items</a>
            </h2>
            <!-- Action Items -->
  [End of minutes]<br clear="none"/>
            <hr/>
            <address>
    Minutes formatted by David Booth's <a href="http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm"
                  shape="rect">
    scribe.perl</a> version 1.127 (<a href="http://dev.w3.org/cvsweb/2002/scribe/" shape="rect">CVS log</a>)<br clear="none"/>
    $Date: 2006/09/12 17:39:42 $
  </address>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 17 Aug 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/08/17-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/08/17-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-08-17T20:09:24Z</published>
      <updated>2006-08-31T20:12:57Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 32, 17 Aug 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/08/17-agenda.html" shape="rect">Agenda</a>
            </p>
            <p>See also: <a href="http://www.w3.org/2006/08/17-xproc-irc" shape="rect">IRC
  log</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Norm, Mohamed, Alex, Alessandro, Richard, Paul, Henry,
      Andrew, Murray, Michael[xx:37-]</dd>
                  <dt>Regrets</dt>
                  <dd>Rui</dd>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>Contents</h2>
            <ul>
               <li>
                  <a href="#agenda" shape="rect">Topics</a>
                  <ol>
                     <li>
                        <a href="#item01" shape="rect">Accept this agenda?</a>
                     </li>
                     <li>
                        <a href="#item02" shape="rect">Accept minutes from the previous
        meeting?</a>
                     </li>
                     <li>
                        <a href="#item03" shape="rect">Next meeting: telcon 31 Aug
        2006</a>
                     </li>
                     <li>
                        <a href="#item04" shape="rect">Allow input declarations? Implicit
        input declarations?</a>
                     </li>
                     <li>
                        <a href="#item04b" shape="rect">Treat multiple references as an implicit tee?</a>
                     </li>
                     <li>
                        <a href="#item05" shape="rect">Any other business?</a>
                     </li>
                  </ol>
               </li>
               <li>
                  <a href="#ActionSummary" shape="rect">Summary of Action Items</a>
               </li>
            </ul>
            <hr/>
            <div class="meeting">
               <h3 id="item01">Accept this agenda?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/17-agenda.html" shape="rect">http://www.w3.org/XML/XProc/2006/08/17-agenda.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item02">Accept minutes from the previous meeting?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/02-minutes.html" shape="rect">http://www.w3.org/XML/XProc/2006/08/02-minutes.html</a>
               </p>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/03-am-minutes.txt" shape="rect">http://www.w3.org/XML/XProc/2006/08/03-am-minutes.txt</a>
               </p>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/03-pm-minutes.html" shape="rect">http://www.w3.org/XML/XProc/2006/08/03-pm-minutes.html</a>
               </p>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/04-am-minutes.txt" shape="rect">http://www.w3.org/XML/XProc/2006/08/04-am-minutes.txt</a>
               </p>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/08/04-pm-minutes.txt" shape="rect">http://www.w3.org/XML/XProc/2006/08/04-pm-minutes.txt</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item03">Next meeting</h3>
               <p class="phone">Cancel 24 Aug, next meeting 31 Aug.</p>
               <p class="phone">Accepted.</p>
               <p class="phone">The WG thanks Murray for his wonderful hosting
    of our F2F meeting.</p>
               <h3 id="item04">Allow input declarations? Implicit input
    declarations?</h3>
               <p class="phone">
                  <cite>Norm:</cite> Users are allowed to refer
    to inputs outside of for-each, choose, etc.<br clear="none"/>
    ... I think it would be more convenient if this was done by
    implicitly inserting declarations.</p>
               <p class="phone">a</p>
               <p class="phone">
                  <cite>Alex:</cite> You're proposing that from
    the graph-dependency perspective, the way to interpret these
    constructs is that those dependencies exist.</p>
               <p class="phone">
                  <cite>Murray:</cite> I think it would make
    more sense to me if I read that you could put them in, but you
    didn't have to. If you put them in, this is what it means, if
    you don't, it infers them.</p>
               <p class="phone">
                  <cite>Henry:</cite> I'm inclined to go further
    and say that defaulting an optionality are for the next WD.
    Let's make them required now.</p>
               <p class="phone">
                  <cite>Alex:</cite> These don't seem quite the
    same kind of defaulting to me.</p>
               <p class="phone">
                  <cite>Murray:</cite> The way we left things is
    that there were no declarations. Norm wants to act as if they
    were there. I'm suggesting we go further, but we make them
    optional so that we effectively have the status quo.</p>
               <p class="phone">
                  <cite>Mohamed:</cite> I was just thinking that
    it's the same problem as scoping. Do we have to handle the
    problem as a whole, or just inputs.</p>
               <p class="phone">
                  <cite>Richard:</cite> I think that I'm
    slightly dubiuos about this. For a start, you're doing it for
    inputs but you haven't suggested doing it for parameters.<br clear="none"/>
    ... You could say that everything that introduce a scope would
    be required to copy all the inputs and variables.</p>
               <p class="phone">
                  <cite>Murray:</cite> I think this gives a
    simpler story about pipelines.</p>
               <p class="phone">
                  <cite>Richard:</cite> I don't object, I just
    think that if this is an instance of a more general scoping
    problem, and we wouldn't necessarily want to do it all this
    way.</p>
               <p class="phone">
                  <cite>Henry:</cite> I think these are
    different, and I don't mind if we have two different
    mechanisms.</p>
               <p class="phone">Norm will write the draft that way.</p>
               <h3 id="item04b">Treat multiple references as an implicit tee?</h3>
               <p class="phone">
                  <cite>Norm:</cite> The second question has to
    do with pointing multiple pipes at the same port.<br clear="none"/>
    ... I'd like to imply a "tee"</p>
               <p class="phone">
                  <cite>Richard:</cite> if two things inside
    refer to the same port inside and outside, are you going to say
    where the "tee"s occur?</p>
               <p class="phone">
                  <cite>Alex:</cite> I wonder if we can talk
    about this in terms of infoset instances instead.</p>
               <p class="phone">
                  <cite>Richard:</cite> We did decide that we
    were having copy semantics.</p>
               <p class="phone">
                  <cite>Alex:</cite> Then we'd have to say
    explicitly where all the "tee"s have to go.</p>
               <p class="phone">
                  <cite>Richard:</cite> I think it would be very
    worrying if it turned out not to be equivalent to the "tee"</p>
               <p class="phone">
                  <cite>Henry:</cite> I don't see what this is
    buying us and it's costing us considerably.<br clear="none"/>
    ... Can't we just say "no side effects" (copy semeantics or
    whatever you call it) and well-formed graphs have the property
    that there can be one input and any number of output
    connections.<br clear="none"/>
    ... I see no value whatsoever in saying in a fully articulated
    picture that you have to have tee components.<br clear="none"/>
    ... This will be confusing and give rise to useless discussions
    like this one.</p>
               <p class="phone">
                  <cite>Murray:</cite> Taking things one at a
    time. Anyone who's done any plumbing knows what a "tee" is.</p>
               <p class="irc">&lt;<cite>Zakim</cite>&gt; ht, you wanted to
    disagree about T</p>
               <p class="phone">
                  <cite>Murray:</cite> The value of having a tee
    is that it allows me to do some renaming, so I can divide it up
    in my pipeline.<br clear="none"/>
    ... What Norm is suggesting is that every output is a virtual
    manifold. You don't have to have all these different
    names.<br clear="none"/>
    ... Henry pointed out that we need rules about what can appear
    on an output port.<br clear="none"/>
    ... I see what Norm's suggesting as a manifold and as many
    pipes as can hook up to it as they want. And you can create a
    manifold yourself, if you want.<br clear="none"/>
    ... And it appears right at the output port.</p>
               <p class="phone">
                  <cite>Richard:</cite> You mentioned that we
    had agreed to have arbitrarily many outputs.</p>
               <p class="phone">Some discussion of whether or not a component
    can have an arbitrary number of outputs.</p>
               <p class="phone">
                  <cite>Henry:</cite> Do we have runtime
    multiplicity.</p>
               <p class="phone">s/multiplicity? We don't have a use case yet,
    I don't think/</p>
               <p class="phone">
                  <cite>Henry:</cite> I come back to saying that
    we don't have a requirement for naming multiple identical
    outputs.</p>
               <p class="phone">
                  <cite>Alex:</cite> The tee component is the
    case we haven't discussed yet.</p>
               <p class="phone">
                  <cite>Murray:</cite> Use case: I've got a book
    and my first step is to validate it, then I have steps 2a, 2b,
    2c, and 2d. Each is going to create a rendering.<br clear="none"/>
    ... They're all getting their output from step 1.</p>
               <p class="irc">&lt;<cite>ht</cite>&gt; But why not have them
    all refer to 1!output</p>
               <p class="phone">
                  <cite>Murray:</cite> We could put a component
    in between steps 1 and 2a-d, to put it on four separate ports.
    Or we could leave that step out and all refer to the output of
    step 1 by the same name.<br clear="none"/>
    ... What this does is allow you to point to the port with one
    name.</p>
               <p class="phone">
                  <cite>Norm:</cite> I wanted it to make the
    ports to pipes 1:1. But we need to solve the multiple output
    problem first.</p>
               <p class="phone">
                  <cite>Richard:</cite> I like the idea, but I'm
    not sure we're ever going to need it.<br clear="none"/>
    ... One of the things you could do with a tee is subsume other
    things (a sink, port renaming, etc.) but I think there are
    other ways to deal with those problems.<br clear="none"/>
    ... Port renaming doesn't make any sense anyway since you have
    to point to the step by name.<br clear="none"/>
    ... You might have to rename steps, but tee doesn't help with
    that.</p>
               <p class="phone">
                  <cite>Norm:</cite> I'm satisfied that we don't
    need to do any of this for the FPWD.</p>
               <p class="phone">
                  <cite>Henry:</cite> I have found some of our
    conversations difficult to work with because people are
    discussing naming proposals in terms of "lets use this name for
    that name" where "that name" is just part of other naming
    proposals.<br clear="none"/>
    ... I've made an attempt to make pictures for the things that
    we've agreed.<br clear="none"/>
    ... Hopefully, by pointing at bits of the picture, we can say
    unambiguously what we're talking about.</p>
               <h3 id="item05">Any other business?</h3>
               <p class="phone">None.</p>
               <p class="phone">Adjourned</p>
            </div>
            <h2>
               <a name="ActionSummary" id="ActionSummary" shape="rect">Summary of Action
  Items</a>
            </h2>
            <!-- Action Items -->
  [End of minutes]<br clear="none"/>
            <hr/>
            <address>
    Minutes formatted by David Booth's <a href="http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm"
                  shape="rect">
    scribe.perl</a> version 1.127 (<a href="http://dev.w3.org/cvsweb/2002/scribe/" shape="rect">CVS log</a>)<br clear="none"/>
    $Date: 2006/08/31 20:12:57 $
  </address>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 03 Aug 2006 (afternoon)</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/08/03-pm-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/08/03-pm-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-08-03T21:16:02Z</published>
      <updated>2006-08-03T21:16:02Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <div style="text-align: center">
               <h1/>
               <div>Henry S. Thompson</div>
               <div> 3 Aug 2006</div>
            </div>
            <h2>1. 
    
   for-each</h2>
            <p>
               <b>Agreed:</b> (over-riding yesterday's decision) Syntax/semantics for <code>for-each:</code>
            </p>
            <blockquote>
               <div>
                  <pre class="code" xml:space="preserve">&lt;for-each name="p"&gt;
 &lt;decl-input name="chap" ref="a!b"/&gt;
 &lt;decl-output name="out" ref="s2!out"/&gt; 
 &lt;decl-output name="err" ref="s2!err"/&gt;
 &lt;step kind="xslt" name="s1"&gt;
  &lt;input name="document" ref="p!chap"/&gt;
  &lt;input name="stylesheet" source="..."/&gt;
 &lt;/step&gt;
 &lt;step kind="..." name="s2"&gt;
  . . .
 &lt;/step&gt;
&lt;/for-each&gt;</pre>
               </div>
            </blockquote>
            <p>Constraints:</p>
            <ul>
               <li>Exactly one <code>decl-input</code>
               </li>
               <li>Zero or more <code>decl-output</code>s</li>
               <li>Input is a sequence (either pre-existing, or created via
<code>select="..."</code> on the <code>decl-input</code>, or both)</li>
               <li>
                  <code>decl-output</code> must have a <code>ref</code>, and it must
refer to an output port of a step in the contained 'pipeline' body</li>
               <li>The contained 'pipeline' body consists of zero or more
<code>step</code>, <code>choose</code> or <code>for-each</code> elements</li>
               <li>So content model is
     <blockquote>
                     <div>
                        <pre class="code" xml:space="preserve">(decl-input|decl-output|param),(step|choose|for-each)*</pre>
                     </div>
                  </blockquote>
               </li>
            </ul>
            <p style="width: 20%; float: right; clear: right">
               <small>
                  <i>Unclear what happens if there are no steps, what's possible for the decl-outputs</i>
               </small>
            </p>
            <p>
               <code>for-each</code> is magic:</p>
            <ul>
               <li>Its one <code>decl-input</code> identifies the input for the entire
<code>for-each</code>, and <i>also</i> names the port to which the
contained 'pipeline' body steps can refer for the individual document (the iterator
variable, as it were)</li>
               <li>Its outputs are all aggregated into sequences from the successive
values presented at the ref'ed ports</li>
            </ul>
            <p>
               <b>Agreed:</b>
               <code>choose</code>, <code>when</code> and
<code>for-each</code> may all contain <code>param</code> (or
<code>decl-param</code>, issue open).</p>
            <h2>2. 
    
   viewport</h2>
            <p>Lengthy discussion, including a brief recap of the "We don't need this to
be special, you could do it with <code>for-each</code> and a 
'splice sequence
in where xpath matches" component'.  A fair amount of dissatisfaction with the way in
which the <code>select</code> attr works differently for <code>for-each</code>
(if present on the <code>decl-input</code>) and for <code>viewport</code>.</p>
            <p>
               <b>Agreed:</b>Syntax/semantics for <code>viewport:</code>
            </p>
            <blockquote>
               <div>
                  <pre class="code" xml:space="preserve">&lt;viewport name="p"&gt;
 &lt;decl-input name="chap" ref="a!b" select="/book/chap"/&gt;
 &lt;decl-output name="out" ref="s2!out"/&gt;
 &lt;step kind="xslt" name="s1"&gt;
  &lt;input name="document" ref="p!chap"/&gt;
  &lt;input name="stylesheet" source="..."/&gt;
 &lt;/step&gt;
 &lt;step kind="..." name="s2"&gt;
  . . .
 &lt;/step&gt;
&lt;/viewport&gt;</pre>
               </div>
            </blockquote>
            <p>Constraints:</p>
            <ul>
               <li>Exactly one <code>decl-input</code>
               </li>
               <li>Exactly one <code>decl-output</code>s</li>
               <li>Input is a document</li>
               <li>
                  <code>decl-output</code> must have a <code>ref</code>, and it must
refer to an output port of a step in the contained 'pipeline' body</li>
               <li>The contained 'pipeline' body consists of zero or more
<code>step</code>, <code>choose</code> or <code>for-each</code> elements</li>
               <li>So content model is
     <blockquote>
                     <div>
                        <pre class="code" xml:space="preserve">(decl-input|decl-output|param),(step|choose|for-each)*</pre>
                     </div>
                  </blockquote>
               </li>
            </ul>
            <p style="width: 20%; float: right; clear: right">
               <small>
                  <i>Unclear what happens if there are no steps, what's possible for the decl-output</i>
               </small>
            </p>
            <p>
               <code>viewport</code> is magic:</p>
            <ul>
               <li>Its one <code>decl-input</code> identifies the input for the entire
<code>viewport</code>, and <i>also</i> names the port to which the
contained 'pipeline' body steps can refer for the individual document (the iterator
variable, as it were), and <i>also</i> provides (via <code>select</code>)
the pattern which determines what is in fact iterated over.</li>
               <li>The successive
values presented at the port ref'ed by the <code>decl-output</code> are plugged
into the original input at the points corresponding to the successive internal inputs to
produce the overall output</li>
            </ul>
            <p>'viewport' is not universally admired, alternatives are being sought.</p>
            <h2>3. 
    
   Names of attributes on (decl-)input/output. . .</h2>
            <p>'name' or 'port'?  Straw poll 2 1/2 prefer each.  'inputPort name=' and
'outputPort name=' also attracted some support.  If we use 'name=', we could
replace 'ref=' with 'port='.</p>
            <p>New straw poll: (in_favour(+2ndchoice), -(can't live with)</p>
            <dl>
               <dt>
                  <b>input name=</b>
               </dt>
               <dd>2, -1</dd>
               <dt>
                  <b>input port=</b>
               </dt>
               <dd>3(+1)</dd>
               <dt>
                  <b>input-port name=</b>
               </dt>
               <dd>3(+1), -1</dd>
            </dl>
            <p>Decision postponed. . .</p>
            <h2>4. 
    
   inline sub-pipelines</h2>
            <p>Spec'd and invoked by-name sub-pipelines (i.e. <code>&lt;pipeline&gt; inside &lt;pipeline&gt;</code>
            </p>
            <p>Inline pipeline -- possible problem is that it has to have a name, so
that its output can be refed, but that would encourage invoking the thing
itself.  So, we need a nearly-neutral wrapper -- we'll use <code>block</code>
as a working name.</p>
            <p>Straw poll, initial list div (1), block (5), steps (2), step-group (3),
group (2), let (2),
scope (0), wrapper (0), sub-pipeline (1), push (1), begin (2), xh (1),
diversion (1)</p>
            <p>Final two rounds (2votes/1vote)</p>
            <dl>
               <dt>
                  <b>
                     <a name="block" shape="rect">block</a>
                  </b>
               </dt>
               <dd>5/3</dd>
               <dt>
                  <b>
                     <a name="steps" shape="rect">steps</a>
                  </b>
               </dt>
               <dd>0</dd>
               <dt>
                  <b>
                     <a name="step-group" shape="rect">step-group</a>
                  </b>
               </dt>
               <dd>3/0</dd>
               <dt>
                  <b>
                     <a name="group" shape="rect">group</a>
                  </b>
               </dt>
               <dd>4/4</dd>
            </dl>
            <p>Conclusion, use 'group' for now</p>
            <p>So, three new constructs: embedded named pipelines, invocation of same, 'group'</p>
            <p>Can embed pipelines in the top-level document. 
Considerable discussion about whether the top-level elt is 'pipeline' or
something else, and what was visible outside, and how to support pipeline libraries.</p>
            <p>Wrt invocation, we maybe have the following situation:  An implementation
starts from a set of components and (possibly empty)
sets of inputs and parameters.  Components
come from individual pipeline documents, pipeline libraries (which might be
documents, or might be built-in to implementations) and basic component
libraries (which are built-in to implementations).  Implementations may define
a way for users to define components, but that's not required.  How to determine what to run:</p>
            <ol>
               <li>If there's only one user-specified pipeline, that's the one</li>
               <li>If there's only one user-specified library with a designated component, run that one.</li>
               <li>If a name is be given, run the named component</li>
               <li>Otherwise, implementation-defined</li>
            </ol>
         </div>
      </summary>
   </entry>
   <entry>
      <title>Minutes for the XML Processing Model WG f2f 2006 August 2</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/08/02-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/08/02-minutes.html</id>
      <author>
         <name>PaulGrosso
$ </name>
      </author>
      <published>2006-08-03T14:04:05Z</published>
      <updated>2006-08-03T15:52:27Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="/" shape="rect">
                  <img alt="W3C" border="0" height="48" src="/Icons/WWW/w3c_home.gif" width="72"/>
               </a>
               <a href="/Architecture/" rel="in-domain" shape="rect">
                  <img alt="Architecture Domain" border="0" src="/Icons/arch"/>
               </a>
               <a href="/XML/" rel="in-area" shape="rect">XML</a>
            </p>
            <div>
               <h1 align="center">Minutes for the XML Processing Model WG f2f 2006
August 2</h1>
               <p align="center">2006 August 2</p>
               <div>
                  <h2>General</h2>
                  <p>The XML Processing Model WG held a face-to-face meeting 2006 August
2-4.</p>
                  <div>
                     <h3>
                        <a id="agenda" name="agenda" shape="rect">Agenda for the entire
f2f</a>
                     </h3>
                     <dl>
                        <dt>
                           <strong>Wednesday Morning</strong>
                        </dt>
                        <dd>
                           <ol>
                              <li class="agendum">Roll call.</li>
                              <li class="agendum">Accept this <a href="http://www.w3.org/XML/XProc/2006/08/02-04-agenda.html" shape="rect">agenda</a>.</li>
                              <li class="agendum">Accept the <a href="http://www.w3.org/XML/XProc/2006/07/27-minutes.html" shape="rect">minutes</a> of 27 July 2006.</li>
                              <li class="agendum">Next meeting: 17 August 2006.</li>
                              <li class="agendum">Syntax wrangling</li>
                           </ol>
                        </dd>
                        <dt>
                           <strong>Wednesday Afternoon</strong>
                        </dt>
                        <dd>
                           <ol>
                              <li class="agendum">Syntax wrangling</li>
                           </ol>
                        </dd>
                        <dt>
                           <strong>Thursday Morning</strong>
                        </dt>
                        <dd>
                           <ol>
                              <li class="agendum">Parameters</li>
                           </ol>
                        </dd>
                        <dt>
                           <strong>Thursday Afternoon</strong>
                        </dt>
                        <dd>
                           <ol>
                              <li class="agendum">Core language constructs</li>
                           </ol>
                        </dd>
                        <dt>
                           <strong>Friday Morning</strong>
                        </dt>
                        <dd>
                           <ol>
                              <li class="agendum">Issue review</li>
                           </ol>
                        </dd>
                        <dt>
                           <strong>Friday Afternoon</strong>
                        </dt>
                        <dd>
                           <ol>
                              <li class="agendum">Discussion of language specification</li>
                              <li class="agendum">Any other business</li>
                           </ol>
                        </dd>
                     </dl>
                  </div>
               </div>
               <div>
                  <h2>Wednesday minutes</h2>
                  <div>
                     <h3>Attendees</h3>
                     <ul>
                        <li>Murray (host)</li>
                        <li>Norm (chair)</li>
                        <li>Paul (scribe for Wednesday)</li>
                        <li>Alex M</li>
                        <li>Richard</li>
                        <li>Mohamed</li>
                        <li>Jeni</li>
                        <li>Henry (11:00)</li>
                     </ul>
                  </div>
                  <div>
                     <h3>Administrivia</h3>
                     <p>We accepted the <a href="#agenda" shape="rect">agenda</a> for this f2f.</p>
                     <p>We accepted the <a href="http://www.w3.org/XML/XProc/2006/07/27-minutes.html" shape="rect">minutes</a> of 27 July 2006.</p>
                     <p>We agreed to cancel next week's telcon; our
next telcon will be August 17.</p>
                  </div>
                  <div>
                     <h3>Syntax wrangling</h3>
                     <p>We looked at <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Aug/0001"
                           shape="rect">Norm's example</a> in email. The first pipeline uses names on steps
and then compound names on outputs (using the ref attribute).  The
second pipeline uses names on outputs and declare-outputs and uses
refs with simple names to connect the outputs with declare-outputs.</p>
                     <div>
                        <h4>Choose and related issues</h4>
                        <p>We then spent a fair amount
of time discussing how to structure and refer to inputs/outputs of
chooses.</p>
                        <p>At least for the present, we have <strong>decided</strong> that:</p>
                        <ol>
                           <li>we will have two attributes:<ul>
                                 <li>
                                    <code>source</code> which will be a URI reference to a web resource</li>
                                 <li>
                                    <code>ref</code> which will point to a port within the current
pipeline</li>
                              </ul>
                           </li>
                           <li>we will use compound names to reference ports, and the character
separating step names from ports will be something like <code>!</code> (but possibly some other non-name, ascii character).</li>
                           <li>choose has a number of when's and an otherwise, and each when
and the otherwise includes declare-output statements for the outputs
it creates, and the all the branches declare the same set of output
ports.</li>
                        </ol>
                        <p>Port names and references are scoped by the component that
defines them.</p>
                        <p>We <strong>decided</strong> that we would allow
ref/source on choose to specify the context for the when tests; one
can also have ref/source on when's that override that (if any) on
the choose; finally one doesn't need to specify a context at all if
the xpath tests on the when's don't require a context. (Henry would
like, in the future, to be able to have the output of the last step
be the default context, but we are holding defaulting to later.)</p>
                        <p>It is an error for any choose or when to have both <code>ref</code> and <code>source</code> assigned. It is an error for the <code>ref</code> attribute to return zero or more than one document.</p>
                     </div>
                     <div>
                        <h4>for-each and related issues</h4>
                        <p>We had an extended discussion
that seguéed into other questions such as whether inputs can
have selects.</p>
                        <p>We <strong>decided</strong> (at least for the
moment):</p>
                        <ol>
                           <li>we would stick with declare-input, input, and add iteration-input</li>
                           <li>a for-each would have exactly one input, zero or more declare-output,
exactly one iteration-input, and one iteration-output for each declare-output</li>
                           <li>we would allow <code>select</code> on input</li>
                           <li>for-each would have input, output, iteration-input, iteration-output
per something like the following example:<pre xml:space="preserve">&lt;for-each name="x"&gt;
  &lt;input port="primary" ref="..." [select="..."]/&gt;
  <span class="grayed">&lt;declare-output port="result"/&gt;</span>
  &lt;iteration-input port="chap"/&gt;
  &lt;iteration-output ref="b!c" aggregation-ref="result"/&gt;
  &lt;step name="b" kind="xxx"&gt;
    &lt;input port="document" ref="x!chap"/&gt;
    . . .
  &lt;/step&gt;
&lt;/for-each&gt;</pre>where “c” is some output port declared
on components of type xxx.</li>
                        </ol>
                        <p>We then agreed that the declare-output above is obvious and
can be omitted (and, therefore, we will perhaps require it to be omitted
in the final syntax).</p>
                        <p>Let the minutes record that about half
the august assembly felt the above was terribly gross, but some (including
your faithful scribe) felt this was the most understandable proposal
discussed during the day.</p>
                        <p>Though we had previously decided (based
on Richard's suggestion) that steps don't need output statements,
Norm suggested we allow (optionally) the (appropriate) output statement
on which we'd allow some attribute(s) to indicate that the given output
is tossed (without error) and/or how to serialize it.</p>
                        <p>
                           <strong>Issue</strong>: It is unclear how to provide the documents produced
by other steps in your pipeline to an xquery or xslt component as
a collection. (It is unclear whether we need to solve this in V1.0
of the pipeline language.) This led to a discussion of a possible
“resource” element that mapped URIs to ports and to issues
of running the pipeline in document order.</p>
                     </div>
                  </div>
               </div>
               <address> Henry Thompson <tt>
                     <a href="mailto:ht@w3.org" shape="rect"> &lt;ht@w3.org&gt;</a>
                  </tt> , staff contact <br class="html_compat" clear="none"/> Norman Walsh <a href="mailto:Norman.Walsh@Sun.com" shape="rect">
                     <tt>&lt;Norman.Walsh@Sun.com&gt;</tt>
                  </a>, chair <br class="html_compat" clear="none"/> $Revision: 1.3 $ by $Author: PaulGrosso
$ <br class="html_compat" clear="none"/> $Date: 2006/08/03 15:52:27 $ </address>
            </div>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 27 Jul 2006</title>
      <link rel="alternate" type="text/html"
            href="http://www.w3.org/XML/XProc/2006/07/27-minutes.html"/>
      <id>http://www.w3.org/XML/XProc/2006/07/27-minutes.html</id>
      <author>
         <name>Norman Walsh</name>
      </author>
      <published>2006-07-27T16:01:04Z</published>
      <updated>2006-07-27T16:01:04Z</updated>
      <summary type="xhtml">
         <div xmlns="http://www.w3.org/1999/xhtml">
            <p>
               <a href="http://www.w3.org/" shape="rect">
                  <img src="http://www.w3.org/Icons/w3c_home" alt="W3C" border="0" height="48"
                       width="72"/>
               </a>
            </p>
            <h1>- DRAFT -</h1>
            <h1>XML Processing Model WG</h1>
            <h2>Meeting 30, 27 Jul 2006</h2>
            <p>
               <a href="http://www.w3.org/XML/XProc/2006/07/27-agenda.html" shape="rect">Agenda</a>
            </p>
            <p>See also: <a href="http://www.w3.org/2006/07/27-xproc-irc" shape="rect">IRC
  log</a>
            </p>
            <h2>
               <a name="attendees" id="attendees" shape="rect">Attendees</a>
            </h2>
            <div class="intro">
               <dl>
                  <dt>Present</dt>
                  <dd>Alex, Alessandro, Andrew, Mohamed, Norman, Richard,
      Rui</dd>
                  <dt>Regrets</dt>
                  <dd>Paul</dd>
                  <dt>Chair</dt>
                  <dd>Norm</dd>
                  <dt>Scribe</dt>
                  <dd>Norm</dd>
               </dl>
            </div>
            <h2>Contents</h2>
            <ul>
               <li>
                  <a href="#agenda" shape="rect">Topics</a>
                  <ol>
                     <li>
                        <a href="#item01" shape="rect">Accept this agenda?</a>
                     </li>
                     <li>
                        <a href="#item02" shape="rect">Accept minutes from the previous
        teleconference?</a>
                     </li>
                     <li>
                        <a href="#item03" shape="rect">Next meeting: Face-to-face: 2-4 Aug
        2006</a>
                     </li>
                     <li>
                        <a href="#item04" shape="rect">Review of open action items</a>
                     </li>
                     <li>
                        <a href="#item05" shape="rect">Agenda for the f2f</a>
                     </li>
                     <li>
                        <a href="#item06" shape="rect">XProc syntax</a>
                     </li>
                     <li>
                        <a href="#item07" shape="rect">Any other business?</a>
                     </li>
                  </ol>
               </li>
               <li>
                  <a href="#ActionSummary" shape="rect">Summary of Action Items</a>
               </li>
            </ul>
            <hr/>
            <div class="meeting">
               <h3 id="item01">Accept this agenda?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/07/27-agenda.html" shape="rect">http://www.w3.org/XML/XProc/2006/07/27-agenda.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item02">Accept minutes from the previous
    teleconference?</h3>
               <p class="phone">-&gt; <a href="http://www.w3.org/XML/XProc/2006/07/20-minutes.html" shape="rect">http://www.w3.org/XML/XProc/2006/07/20-minutes.html</a>
               </p>
               <p class="phone">Accepted.</p>
               <h3 id="item03">Next meeting: Face-to-face: 2-4 Aug 2006</h3>
               <p class="phone">Make sure your arrangements are in order.</p>
               <h3 id="item04">Review of open action items</h3>
               <p class="phone">
                  <cite>A-23-02:</cite> Richard to write a
    syntax proposal</p>
               <p class="irc">&lt;<cite>scribe</cite>&gt; Withdrawn.</p>
               <p class="phone">
                  <cite>A-13-01:</cite> MSM to draft a complete
    table; ETA: 20 July 2006</p>
               <p class="irc">&lt;<cite>scribe</cite>&gt; Continued.</p>
               <h3 id="item05">Agenda for the f2f</h3>
               <p class="phone">Proposed:</p>
               <p class="phone">1. Finish the syntax wrangling</p>
               <p class="phone">2. Define the core language constructs</p>
               <p class="phone">3. Make a first pass at identifying a list of
    required components</p>
               <p class="phone">4. Make a list of standard but optional
    components (if any)</p>
               <p class="phone">5. Review our open issues</p>
               <p class="phone">Norm will try to draft an agenda this week</p>
               <h3 id="item06">XProc syntax</h3>
               <p class="phone">Lots of good discussion on the list, any
    burning issues?</p>
               <p class="phone">None suggested.</p>
               <p class="phone">Alessandro's proposal:</p>
               <p class="irc">&lt;<cite>Alessandro</cite>&gt; <a href="http://avernet.googlepages.com/xproc-syntax" shape="rect">http://avernet.googlepages.com/xproc-syntax</a>
               </p>
               <p class="phone">Alex suggests looking at for-each</p>
               <p class="phone">
                  <cite>Alessandro:</cite> On the for-each it
    looks like we want to reference a sequence of documents that we
    want to iterate on, we want the option of providing an XPath
    expression.<br clear="none"/>
    ... In the for-each we need to be able name the outputs</p>
               <p class="phone">Norm did something alternate:</p>
               <p class="phone">-&gt; <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jul/0138.html"
                     shape="rect">
    http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jul/0138.html</a>
               </p>
               <p class="phone">
                  <cite>Alex:</cite> If you're iterating over a
    document and using an XPath expression, you have to specify a
    replacement<br clear="none"/>
    ... When you're iterating over a sequence of documents, that's
    not necessarily true.<br clear="none"/>
    ... There are way more options when you're iterating over a
    collection of documents.</p>
               <p class="phone">Some discussion of whether we're talking about
    for-each or peephole</p>
               <p class="phone">Norm tries to outline how for-each and
    peephole differ. For-each just returns the sequence of things
    generated, peephole wraps the original document around the
    replaced matches.</p>
               <p class="phone">
                  <cite>Richard:</cite> I think there should be
    something that does a body for each document in a sequence and
    something else that does each matched part in a single
    document.</p>
               <p class="phone">
                  <cite>Norm:</cite> We could have for-each and
    for-each-document, I just didn't think it was necessary.</p>
               <p class="phone">
                  <cite>Richard:</cite> The output is a sequence
    of documents. The peephole mechanism can be build out of that,
    I think.<br clear="none"/>
    ... A component that takes the original and an XPath and a
    sequence of documents, the sequence could be plugged in where
    the matches occurred.</p>
               <p class="phone">
                  <cite>Alex:</cite> It could be done that way,
    but I'm not sure I want to do it that way.</p>
               <p class="phone">Norm wonders if there's a practical use for a
    component that works that way.</p>
               <p class="phone">Richard proposes that there are some uses,
    whether they're practical or not...</p>
               <p class="phone">Some more discussion of how for-each and
    peephole are similar.</p>
               <p class="phone">
                  <cite>Richard:</cite> Do they between them
    cover all the looping functionality we need?</p>
               <p class="phone">
                  <cite>Alex:</cite> Can we add a
    peephole/viewport element?<br clear="none"/>
    ... I don't much like "peephole".</p>
               <p class="phone">
                  <cite>Norm:</cite> Anyone like peephole better
    than viewport?</p>
               <p class="phone">
                  <cite>Murray:</cite> I don't like either.</p>
               <p class="phone">-&gt; <a href="http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jul/0138.html"
                     shape="rect">
    http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jul/0138.html</a>
               </p>
               <p class="phone">Norm asks about for-each-output and observes
    he tried to show how declare-output could be used in each
    case.</p>
               <p class="phone">
                  <cite>Norm:</cite> On the subject of name, I
    assume we're still sort of evenly divided about how we want to
    do the naming.</p>
               <p class="phone">Yeah, pretty much.</p>
               <p class="phone">
                  <cite>Richard:</cite> On for-each, the name
    attribute is used for the binding. Does that make it a
    variable?</p>
               <p class="phone">
                  <cite>Alessandro:</cite> Yes.</p>
               <p class="phone">
                  <cite>Norm:</cite> Huh?</p>
               <p class="phone">
                  <cite>Alessandro:</cite> No, actually, it's
    just used when you want to ref= to the output.</p>
               <p class="phone">
                  <cite>Murray:</cite> I don't understand why we
    have ref= and href=</p>
               <p class="phone">
                  <cite>Norm:</cite> I think we might be able to
    combine them.</p>
               <p class="phone">Some discussion of the direction things
    flow</p>
               <p class="phone">
                  <cite>Alessandro:</cite> In my example, the
    direction is the same</p>
               <p class="phone">-&gt; <a href="http://avernet.googlepages.com/xproc-syntax-parse-import" shape="rect">http://avernet.googlepages.com/xproc-syntax-parse-import</a>
               </p>
               <p class="phone">
                  <cite>Norm:</cite> I see, the name is
    repeated. This really only works in the case where you name
    individual outputs.<br clear="none"/>
    ... If you were using the compound naming system, then each
    when would have to have a *step* with the same name and that
    step would have to have an output port with the same name, in
    order to make this work.<br clear="none"/>
    ... So if we go with #name/port it's much harder to always
    point from the output to the input in the conditional
    case<br clear="none"/>
    ... (Where "much harder" means "impossible", I think)</p>
               <p class="phone">
                  <cite>Richard:</cite> When I was thinking
    about conditionals, I was going to have each of the when's
    declare their outputs.<br clear="none"/>
    ... Then the choose referred to those names.</p>
               <p class="phone">
                  <cite>Norm:</cite> Yes, that would work as
    well, but it's pretty verbose to have to declare all the
    outputs on every branch.</p>
               <p class="phone">Scribe apologizes for failure to capture
    several minutes of minutes...</p>
               <p class="phone">
                  <cite>Murray:</cite> Can't the p:when's output
    bubble up?</p>
               <p class="phone">
                  <cite>Norm:</cite> Not when there's more than
    one output from the p:choose</p>
               <p class="phone">
                  <cite>Richard:</cite> But when there is only
    one, we might be able to abbreviate it</p>
               <p class="phone">
                  <cite>Norm:</cite> Yes, and it's the idea of
    abbreviations in the future that makes me have a slight
    preference for the compound naming choice.</p>
               <h3 id="item07">Any other business?</h3>
               <p class="phone">None.</p>
               <p class="phone">Adjourned.</p>
            </div>
            <h2>
               <a name="ActionSummary" id="ActionSummary" shape="rect">Summary of Action
  Items</a>
            </h2>
            <!-- Action Items -->
  [End of minutes]<br clear="none"/>
            <hr/>
            <address>
    Minutes formatted by David Booth's <a href="http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm"
                  shape="rect">
    scribe.perl</a> version 1.127 (<a href="http://dev.w3.org/cvsweb/2002/scribe/" shape="rect">CVS log</a>)<br clear="none"/>
    $Date: 2006/07/27 16:01:04 $
  </address>
         </div>
      </summary>
   </entry>
   <entry>
      <title>XML Processing Model WG -- 20 Jul 2006</title>
      <l