XProc Minutes 4 May 2006

See http://www.w3.org/XML/XProc/2006/05/04-minutes.html

W3C[1]

                                   - DRAFT -

                            XML Processing Model WG

Meeting 19, 4 May 2006

   Agenda[2]

   See also: IRC log[3]

Attendees

   Present
           Alessandro, Andrew, Henry, Michael, Norman, Paul, Richard, Rui,
           Alex, Murray

   Regrets
           Erik, Mohamed

   Chair
           Norm

   Scribe
           Norm

Contents

     * Topics
         1. Accept this agenda?
         2. Accept minutes from the previous teleconference?
         3. Next meeting: 11 May telcon
         4. Face-to-face meeting
         5. Open action items
         6. Issue 3113: Does the pipeline engine act as a resource manager?
         7. Issue 3118: Should an implementation of the language be allowed
            to perform caching?
         8. Issue 3114: Are explicit dependencies required?
         9. Face-to-face meeting
     * Summary of Action Items

     ----------------------------------------------------------------------

  Accept this agenda?

   -> http://www.w3.org/XML/XProc/2006/05/04-agenda.html

   Accepted

  Accept minutes from the previous teleconference?

   -> http://www.w3.org/XML/XProc/2006/04/27-minutes.html

   Accepted

  Next meeting: 11 May telcon

   Any regrets?

   Andrew is on vacation 11, 18 May

   Michael is away for 11, 18, 25 May

   Paul is away 11 May

   Henry is away 18 May

  Face-to-face meeting

   Registration: http://www.w3.org/2002/09/wbs/38398/XProcFTF2/[6]

   Local arrangements: http://www.w3.org/XML/XProc/2006/08/02-04-f2f.html[7]

   That's the beginnings of a local arrangements page, more details to follow

  Open action items

   A-18-01 is continued

   A-17-02 is in progress

   A-13-01 is continued, new ETA 15 June 2006

  Issue 3113: Does the pipeline engine act as a resource manager?

   ->http://www.w3.org/Bugs/Public/show_bug.cgi?id=3113

   Richard: I posted a couple of messages today, but looking at the example
   the email was talking about: XSLT importing a document produce somewhere
   else.
   ... This is a conventional temporary file problem
   ... Simply store things in files with generated names and then convey that
   name elsewhere.
   ... There are other examples, such as XIncluding things.
   ... You can simply transform the documents to refer to the generated file
   names.
   ... As a concrete proposal for the temporary file system; I suggest a
   component that takes a document as input, stores it somewhere, and returns
   the URI that it used.

   Alex: Do we have to do anything about this?

   Norm: I don't think consensus is moving towards support for this proposal

   HT: We'll need to spec quite carefully our story about pipeline
   parameters, variables, and their relationship to component and step
   variables.
   ... We've been postponing that for some time. But to make the workarounds
   work most gracefully, that mechanism is going to have to be there.

   Proposal: No, the pipeline engine is not required to act as a resource
   manager.

   Accepted

   Norm asks HT to expand on his pipeline/parameter variable story

   HT: Consider that I want to do something like this: take the output of
   Richards write input to temp file component and mediate between that and a
   component that will substitute the value into a document.
   ... I have a general purpose component that has two parameters, an XPath
   and a string. Wherever the XPath matches, it replaces what it finds with
   the string.
   ... The obvious thing to do is set the value of attributes or the text
   content of elements.
   ... Now I can get very close to doing the XInclude example if only I can
   get the result of Richards temporary component into a variable so that I
   can get it into a parameter.
   ... That's appealing to some fairly natural concepts of pipeline variables
   and ways of using pipeline variables to supply component parameters

   Alex: I wanted to second what Henry said. This is an important use case
   for lots of piplines I've built. I need to be able to bind to variables in
   a uniform way and be able to point into documents and update them.
   ... Deleting whole subtrees is an example.
   ... Renaming elements and attributes, namespaces, etc.

   Norm: I think it's important to make sure that we get the framework right
   to support all the kinds of components that we need.

   <scribe> ACTION A-19-01: Norm to create an issue for this [recorded in
   http://www.w3.org/2006/05/04-xproc-minutes.html#action01[9]]

   <scribe> ACTION A-19-02: Alex to send mail describing his ideas about
   variables [recorded in
   http://www.w3.org/2006/05/04-xproc-minutes.html#action02[10]]

   Richard: I wanted to mention a relationship between variable mechanisms
   and one of the issues that came up with the resource manager issue.
   ... If some component writes something to a temporary file, it's important
   that a component consuming it not try to read it before it's done.
   ... Using a variable to communicate the location of the temporary files
   gives you a mechanism for managing that.
   ... If a component can't start before the variable is set, then the
   process is managed by that variable.
   ... You might use variables for other kinds of synchronization as well if
   we did that.

   Norm: From the end of this discussion last week, how do we identify the
   inputs and outputs. By naming the endpoints or the things that flow
   through the pipe.
   ... From the list, I think consensus is moving towards identifying the end
   points.

   HT: Having worked for a while with the alternative, I think this is the
   right thing to do but we need to live with it for a while.
   ... It's not as immediately obvious to see what a graceful surface syntax
   is going to be.

   Alex: Internally, this is the right model. I'm just not convinced that
   there aren't cases where there are implicit connections to happen.
   ... But I'm willing to push that off to the future.

   HT: Absolutely.
   ... You don't want to see any of the low-level stuff at the authoring
   level

   Richard: Abbreviation still leaves the question of what to do for the
   low-level syntax.
   ... Recall that there are two ways to do this: by having names on each
   input/output or by naming the steps and having standard names for the
   inputs/outputs on each component

   Alex: We can work on the shortcuts after we have a full syntax.

   Richard: I think you're basically right. There's an obvious back-door into
   a resource manager if you give all the inputs/outputs names that are URIs.

   Norm expresses some concern about readability of a naming scheme that
   relies on knowledge of the underlying component input/output names.

   <ht> Unabbreviated abstract syntax consists of:

 Component((String)shortName,
           (ImplDependent)functionality,
           (Set of String)inputPorts,
           (Set of String)outputPorts,
           (Set of String)parameters)

 - ---------------

 Pipeline((Set of Component)components,
          (Set of String)parameters,
          (Set of Step)steps,
          (Set of Pipes)pipes,
          (InputPort)input?,
          (OutputPort)output?)

 Step((String)name,
      (Component)component,
      (Set of Binding)arguments)

 Pipe((OutputPort)source,
      (InputPort)destination)

 Port((String)step,
      (String)port)

 OutputPort == Port such that port is in |step|.component.outputPorts
 InputPort == Port such that port is in |step|.component.inputPorts

 Binding == ExplicitBind((String)name,(String)value) |
            BindByRef((String)name,(String)parameter) where parameter
              is in surrounding pipeline.parameters

 Invoke a pipeline with input?, output? and (Set of ExplicitBinding).

   Extracted by scribe from 2006May/0012.html[11]

   HT: Definition of a component in some implementation independent way

   HT: A step is a binding to a component

   HT: A pipe is a connection from an orgin to a destination
   ... In order to specify a pipe, you need to know the name of the step and
   the name of the port for each connection
   ... Note that ports have constant names and all that need to have ad hoc
   names are steps
   ... All components should have universal standard names for their primary
   input and primary output

   Norm: I think I hear consensus that we're going to take a stab at this by
   naming the endpoints that are bolted together.

   <richard> I gave an XML syntax for this way of expressing it in
   http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Apr/0119.html[12]

  Issue 3118: Should an implementation of the language be allowed to perform
  caching?

   ->http://www.w3.org/Bugs/Public/show_bug.cgi?id=3118

   <Alessandro> Absolutely

   Norm: I propose that in light of our decision about the "functionality" of
   components, this is purely a quality-of-implementation issue

   Accepted.

  Issue 3114: Are explicit dependencies required?

   ->http://www.w3.org/Bugs/Public/show_bug.cgi?id=3114

   Norm: I don't think we have enough information to answer this yet.

   Richard: I think there's a simple synch. mechansim: have a component that
   waits until it has received a whole document.
   ... Then you use that component as input.
   ... Suppose you wanted to stop an XSLT component from running until some
   document had been generated. Then you could not give it its stylesheet
   until that document was ready.
   ... You could do that by passing the stylesheet through some component
   that waits until another document is fully written.

   Murray: How is it going to do that? By checking that it exists and is
   closed?

   Richard: I imagine that this is a special purpose component that reads the
   document.
   ... The mechanism for sync. can probably be achieved by components in the
   pipeline.

   Alex: In some sense I agree that having input dependencies is a great way
   to do this. But that may be confusing to users.
   ... But if we do synch. components then we have to deal with deadlock and
   other non-trivial issues.

   Murray: It occurs to me that if we had a p:depends element that named an
   input and an output then we could describe the dependency
   ... In addition to resolving the dependencies, it would provide an
   opportunity to rename things.

  Face-to-face meeting

   Murray: There's updated information on the page provided. In the comments
   section of the registration, please indicate how you planned to arrive and
   how you'd hope to travel.
   ... I'll send suggestions for how to get from the airport to here.
   ... This is a four-seasons resort area, so book rooms early.

   ADJOURNED

Summary of Action Items

   [NEW] ACTION A-19-01: Alex to send mail describing his ideas about
   variables [recorded in
   http://www.w3.org/2006/05/04-xproc-minutes.html#action02[15]]
   [NEW] ACTION A-19-02: Norm to create an issue for this [recorded in
   http://www.w3.org/2006/05/04-xproc-minutes.html#action01[16]]
   **
   [End of minutes]

     ----------------------------------------------------------------------

   [1] http://www.w3.org/
   [2] http://www.w3.org/XML/XProc/2006/05/04-agenda.html
   [3] http://www.w3.org/2006/05/04-xproc-irc
   [6] http://www.w3.org/2002/09/wbs/38398/XProcFTF2/
   [7] http://www.w3.org/XML/XProc/2006/08/02-04-f2f.html
   [9] http://www.w3.org/2006/05/04-xproc-minutes.html#action01
   [10] http://www.w3.org/2006/05/04-xproc-minutes.html#action02
   [11]
   http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006May/0012.html
   [12]
   http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Apr/0119.html
   [15] http://www.w3.org/2006/05/04-xproc-minutes.html#action02
   [16] http://www.w3.org/2006/05/04-xproc-minutes.html#action01
   [17] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
   [18] http://dev.w3.org/cvsweb/2002/scribe/

    Minutes formatted by David Booth's scribe.perl[17] version 1.127 (CVS
    log[18])
    $Date: 2006/05/04 16:32:08 $

Received on Thursday, 4 May 2006 16:33:43 UTC