- From: Norman Walsh <Norman.Walsh@Sun.COM>
- Date: Fri, 23 Dec 2005 09:52:55 -0500
- To: public-xml-processing-model-wg@w3.org
- Message-ID: <87r783g914.fsf_-_@nwalsh.com>
Draft minutes are now available:
http://www.w3.org/2005/12/22-xproc-minutes.html
Text copy below:
W3C[1]
- DRAFT -
XML Processing Model WG
22 Dec 2005
Agenda[2]
See also: IRC log[3]
Attendees
Present
Norm, Rui, AlexM, Paul, Henry, Erik, Andrew, Michael
Regrets
Jeni, Richard, Alessandro
Chair
Norm
Scribe
Norman Walsh
Contents
* Topics
1. 1. Administrivia
2. Administrivia
3. 1.1. Accept this agenda
4. 1.2. Accept minutes from the previous teleconference
5. 1.3. Next meeting: 5 Jan 2006. (No meeting 29 Dec 2005.)
6. 1.4. Tech Plenary registration is now open
7. 2. Technical
8. 2.1. Use Cases
9. 2.1.1. From Alex
10. Use Cases
11. 2.1.2. From Andrew
12. 2.1.3. From Jenni
13. 2.1.4. From Norm
14. 2.1.5. From Rui
15. 2.2. Requirements
16. Any other business
* Summary of Action Items
----------------------------------------------------------------------
<scribe> Scribe: Norman Walsh
<scribe> ScribeNick: Norm
Date: 22 Dec 2005
<AndrewF> ??P7 is AndrewF
1. Administrivia
Administrivia
1.1. Accept this agenda
Accepted
1.2. Accept minutes from the previous teleconference
Accepted
1.3. Next meeting: 5 Jan 2006. (No meeting 29 Dec 2005.)
Regrets for 5 Jan: None
1.4. Tech Plenary registration is now open
URI for registration: http://www.w3.org/2002/09/wbs/35125/TP2006/[4]
Rui: Not sure if I can be present. I'll let you know when I am.
2. Technical
2.1. Use Cases
2.1.1. From Alex
Use Cases
Alex: Use cases:
http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2005Dec/0011.html[5]
... I sent another version this morning. [Scribe notes it isn't in the
archives yet]
... I'm using these pipelines for math, but they aren't specific to math.
... I'm using them for web serves; tagsoup is injected to turn random HTML
back into proper XHTML
<PGrosso> I see Alex's email at
http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2005Dec/0021.html[6]
Alex: Link I sent this morning includes pointers to onlin eexamples
Thank you, PGrosso
Alex: One of the components of my pipeline is the ability to pick out a
subtree
... Important technical feature is the ability to one transform create a
piece of markup that pointed to another transform.
... pipelines are sometimes embedded in the source documents
Norm: Did I understand correctly: you have a pipeline where one step
generates the pipeline that's used for subsequent steps
Alex: No, they generate data.
... your pipeline is what it is, in the apply-xslt example, it's XSLT that
decides what needs to be done next
... what you really want to do is decide based on data what needs to be
done (including possibly making up what needs to be done on the fly)
... In cocoon you do this by redirecting to a new pipeline
... Each step can generate data that might cause subsequent stages to do
something
... The interface to the tides example is a screen-scraping example; the
component (using tag soup? --scribe) extracts data from a web page to find
the tide data
... That's two pipelines that work together
Michael: we shouldn't rathole here, but it's not clear to me how the
facilities that Alex is talking about are and are not feasible in coccoon.
Hopefully this can be clarified in email
Alex: You can do a lot of these in coccoon, but they have a simple
one-level sequence path and I've got a more hierarchical model. Processing
subtrees is like having embedded pipleines. That's hard to do in Cocoon
because of their syntax.
Alex explains that the pipeline steps aren't dynamic but, for example, the
selection of a particular stylesheet in a transfomration step might be
data driven
2.1.2. From Andrew
Andrew: I put two simple cases, but I'm trying to make a couple of points.
... First, conditionality is required. Second, we'd like to have each
componetn be independent, but sometimes we need to pass parameters from
one stage on to the next.
Norm: When I spoke about not needing to pass parameters, it was just an
observation. I'm not surprised that sometimes its needed
Alex: Can a particular step set a parameter for a later step?
Andrew: There are user-set parameters when you invoke the pipeline, but
there's no other kind of input.
Alex: I have an example where stages can bind parameters for later stages.
2.1.3. From Jenni
Jeni isn't here, alas
Alex: Jeni makes the point that some steps are made up of sub-pipelines
Micheal: One thing that becomes very clear is that quite frequently you
seem to have a choice of where to put certain kinds of functionality
... Conditional processing, for exampe, can be handled by choosing whether
to invoke stylesheet a or stylesheet b or by writiing a stylesheet that
checks a condition and then operates in mode a or mode b.
Michael: We seem to get to choose whether to put the complexity in the
pipeline or in the individual stages.
... in her use case, she imagined parsing the ... scribe was distracted
<PGrosso> flanneling around?
Michael: it's not always absolutely clear what the implication of moving
the complexity around is
Alex: putting all the complexity in a stylesheet makes the stylesheet hard
to maintain
Michael: That's one reason to let some of the complexity percolate up. But
it's not clear how to balance those tradeoffs
Alex: you can write extensions to XSLT and one of those could evaluate a
pipeline
Norm: I think it's a mistake to focus so exclusively on XSLT as there are
other kinds of components
<ebruchez> True
ack
<Zakim> ht, you wanted to point to step (1c)
<MSM> alexmilowski: one way to think about these questions is to look at
the kinds of extension functions people have written for XSLT 1 --
sometimes those functions are there only because of deficiencies in the
environment, and represent functionality that 'really' belongs in a
pipelining language
ht: Jeni's step 1c is clear about the fact that it merges the output from
1a and 1b. Maybe Jeni's case is a little simpler than Alex's.
... It's clearly a requirement at some stage, though not clear that it has
to be in V1
2.1.4. From Norm
<ht> Norm: Most of my examples are straightforward
<ht> ... Two interesting wrt V1 or not
<ht> ... First a sub-pipelining example similar to Jeni's 1c
<ht> ... Second where a step produces an indeterminate number of e.g.
chapter.html files, each of which has to go through further processing
<ht> ... When you know exactly how many files will be output, it's clear
how to do this in a fairly simple pipeline language, but when this isn't
known in advance, not clear what to do
<ht> AM: XQuery and XSLT2 are clear examples of this, which I've thought
of in terms of thinking of the output as a sequence of documents
<ht> ... This is parallel to the XPath-based viewport abstraction which I
and others have been using
<ht> EB: Problem with sequence is that the items aren't named
<ht> ... Also, loss of symmetry, wrt names and/or cardinality, wrt inputs
and outputs of steps
<ht> NW: In my example they'd be named
<ht> EB: In XSLT2 case, yes, but not in others. . .
2.1.5. From Rui
<ebruchez> ht, comment about sequences was from Erik
Rui: mine are similar to previous examples.
... In the first use case, if you have an XSLT pagination, you'll create a
huge set of documents. But the main document will not be used further
... should we allow the pipeline author to express this?
... in the next scenario the question is one of reuse and composition of
pipelines
... should we use XInclude, or would we like to have another sort of
language to express the composition
... If you have one pipeline with a component that outputs more than one
document, and those documents are needed by the next component, how can
you be sure that the right documents were generated?
... Do we need a way to specify that a certain number or kind of documents
will be produced at runtime
Erik: it looks like I did not get Rui's use cases. I got a blank email.
Several other people had problems. The MIME seems to have been garbled.
This is probably a consequence of a MIME message being forwarded by
another client that does MIME
Use cases from Erik:
http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2005Dec/0020.html[7]
Erik: I did not really connect those use cases to XPL which is the
language that we have designed and a variation of which we submitted to
W3C
... These are just use cases from actual clients
... I thought it would be useful to categorize the environments where
these are processed.
... I found three broad categories: command-line/batch environments, web
enviromnets, and service environments
... I'm just trying to see if there are requirements that haven't been
mentioned, I don't think so, except perhaps the question of validation
... is validation a custom-component pipeline step or is it something that
is part of the pipeline language
... Very often our use cases start by saying "we need an XML document";
often they begin with a URI, but in some cases you can just consider
passing a document to the pipeline itself, implying that the pipeline
itself can receive and produce XML documents
... Looking at it this way, you can imagine that a pipeline interpreter
might be a component in its own right.
... the second set of use cases involve conditionals. Our current thinking
is that we do have many use cases that require conditionals.
... One of them is a conditional database access logic. Query a document,
look at the content, if there's something then do an update otherwise do
an insert.
... Anther scenario is content-dependent transformation; the
transformation selected is determined by the output of a previous stage.
... Another example is where you want to generate a particular document
for desktop or mobile browsers. The configuration from the outside
determines which stylesheet (or pipeline? or pipeline stage? --scribe) is
used.
... Another common use case is the selection of Atom or RSS1 or RSS2,
etc., when generating feeds
... The next use case is a little different. Here an XML pipeline is used
to implement an XML-RPC service. In the request you have method calls with
method names. The sub-pipeline that's executed is determined by the method
selected in the request.
Norm: I wasn't sure at what level you needed to make conditional selection
Erik: Based on whether an XPath expression returns true, you will execute
a particular branch of the pipeline. Otherwise, you test another
condition, etc. It's completely exeternal to the components.
2.2. Requirements
Erik: there are a few more use cases, that involve iteration.
... consider a collection of files on disk. You'd read a list of
documents, either from a file or with a component that can scan the
filesystem, you want to iterate on that list of docuents and for each
iteration you want to perform a sequence of steps. Alternatively, you may
want to combine all the results together.
Norm: that sounds like a colleciton
Erik: That's almost an implementation question. If your language supports
multiple outputs in a dynamic way then maybe you can do that. But here the
idea is that you want to perform a certain number of tasks, perhaps once
for each element that matches an XPath expression.
Alex: that sounds a lot like the concept of identifying subtrees in an
infoset using an xpath
... I've been experimenting with another kind, where you have a document
that contains 10 entries and points to hte next document with the next 10
entries, etc. That seems completely different.
Erik: we've identified two types of interation; one is a for-each another
is a while.
Any other business
Norm: I propose we continue with iteration next week. And begin looking at
requirements.
Proposal: for 5 Jan, everyone submit a list of possible requirements so
that we can begin to select the ones upon which we have consensus
Accepted.
Norm wishes the group happy holidays
Adjourned
Summary of Action Items
[End of minutes]
----------------------------------------------------------------------
[1] http://www.w3.org/
[2] http://www.w3.org/XML/XProc/2005/12/22-agenda.html
[3] http://www.w3.org/2005/12/22-xproc-irc
[4] http://www.w3.org/2002/09/wbs/35125/TP2006/
[5] http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2005Dec/0011.html
[6] http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2005Dec/0021.html
[7] http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2005Dec/0020.html
Be seeing you,
norm
--
Norman.Walsh@Sun.COM / XML Standards Architect / Sun Microsystems, Inc.
NOTICE: This email message is for the sole use of the intended
recipient(s) and may contain confidential and privileged information.
Any unauthorized review, use, disclosure or distribution is prohibited.
If you are not the intended recipient, please contact the sender by
reply email and destroy all copies of the original message.
Received on Friday, 23 December 2005 14:53:01 UTC