See also: IRC log
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
Local arrangements: http://www.w3.org/XML/XProc/2006/08/02-04-f2f.html
That's the beginnings of a local arrangements page, more details to follow
A-18-01 is continued
A-17-02 is in progress
A-13-01 is continued, new ETA 15 June 2006
Richard: I posted a couple of
messages today, but looking at the example the email was
talking about: XSLT importing a document produce somewhere
... 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.
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]
<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]
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.
... 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
... 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
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
Norm: I propose that in light of our decision about the "functionality" of components, this is purely a quality-of-implementation issue
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.
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.