IRC log of xproc on 2005-12-22

Timestamps are in UTC.

15:50:28 [RRSAgent]
RRSAgent has joined #xproc
15:50:28 [RRSAgent]
logging to
15:50:31 [Norm]
rrsagent, pointer
15:50:31 [RRSAgent]
15:54:09 [Norm]
Meeting: XML Processing Model WG
15:54:13 [PGrosso]
PGrosso has joined #xproc
15:54:16 [Norm]
Scribe: Norman Walsh
15:54:19 [Norm]
ScribeNick: Norm
15:54:24 [Norm]
Date: 22 Dec 2005
15:54:28 [Norm]
Chair: Norm
15:54:32 [Norm]
15:55:56 [Norm]
Regrets: Jeni, Richard, Alessandro
15:56:19 [ruilopes]
ruilopes has joined #xproc
15:56:22 [Norm]
zakim, list agenda
15:56:23 [Zakim]
I see 16 items remaining on the agenda:
15:56:24 [Zakim]
1. 1. Administrivia [from Norm]
15:56:26 [Zakim]
2. 1.1. Accept this agenda [from Norm]
15:56:28 [Zakim]
3. 1.2. Accept minutes from the previous teleconference [from Norm]
15:56:30 [Zakim]
4. 1.3. Next meeting: 5 Jan 2006. (No meeting 29 Dec 2005.) [from Norm]
15:56:32 [Zakim]
5. 1.4. Tech Plenary registration is now open [from Norm]
15:56:34 [Zakim]
6. 2. Technical [from Norm]
15:56:36 [Zakim]
7. 2.1. Use Cases [from Norm]
15:56:38 [Zakim]
8. 2.1.1. From Alex [from Norm]
15:56:39 [Zakim]
9. 2.1.2. From Andrew [from Norm]
15:56:40 [Zakim]
10. 2.1.3. From Jenni [from Norm]
15:56:41 [Zakim]
11. 2.1.4. From Norm [from Norm]
15:56:42 [Zakim]
12. 2.1.5. From Rui [from Norm]
15:56:44 [Zakim]
13. 2.2. Requirements [from Norm]
15:56:45 [Zakim]
14. 2.2.1. From XML Core WG [from Norm]
15:56:47 [Zakim]
15. 2.2.2. From ISO SC34/WG1 [from Norm]
15:56:48 [Zakim]
16. 3. Any other business [from Norm]
15:56:50 [Zakim]
XML_PMWG()11:00AM has now started
15:56:52 [Zakim]
15:58:00 [alexmilowski]
alexmilowski has joined #xproc
15:58:13 [Zakim]
15:58:27 [Norm]
zakim, +[IPcaller is ruilopes
15:58:27 [Zakim]
sorry, Norm, I do not recognize a party named '+[IPcaller'
15:58:32 [Norm]
zakim, IPcaller is ruilopes
15:58:32 [Zakim]
+ruilopes; got it
15:59:25 [Zakim]
16:00:07 [Zakim]
16:00:47 [ht]
zakim, please call ht-781
16:00:47 [Zakim]
ok, ht; the call is being made
16:00:48 [Zakim]
16:01:02 [Zakim]
16:01:12 [Norm]
zakim, ipcaller is ebruchez
16:01:12 [Zakim]
+ebruchez; got it
16:01:43 [AndrewF]
AndrewF has joined #xproc
16:01:53 [Norm]
zakim, who's on the phone?
16:01:53 [Zakim]
On the phone I see Norm, ruilopes, Alex_Milows, PGrosso, Ht, ebruchez
16:02:13 [MSM]
MSM has joined #xproc
16:02:37 [Zakim]
16:02:44 [AndrewF]
??P7 is AndrewF
16:03:07 [Norm]
zakim, who's on the phone?
16:03:07 [Zakim]
On the phone I see Norm, ruilopes, Alex_Milows, PGrosso, Ht, ebruchez, ??P7
16:03:14 [Norm]
zakim, ?p7 is AndrewF
16:03:14 [Zakim]
sorry, Norm, I do not recognize a party named '?p7'
16:03:16 [MSM]
zakim, please call Michael-Office
16:03:16 [Zakim]
ok, MSM; the call is being made
16:03:17 [Zakim]
16:03:18 [MSM]
zakim, who is on the phone?
16:03:18 [Zakim]
On the phone I see Norm, ruilopes, Alex_Milows, PGrosso, Ht, ebruchez, ??P7, Michael (muted)
16:03:19 [Norm]
zakim, ??p7 is AndrewF
16:03:21 [Zakim]
+AndrewF; got it
16:03:26 [Norm]
zakim, who's on the phone?
16:03:26 [Zakim]
On the phone I see Norm, ruilopes, Alex_Milows, PGrosso, Ht, ebruchez, AndrewF, Michael (muted)
16:03:40 [ebruchez]
Zakim, list
16:03:40 [Zakim]
I see DIG_(6.898)11:00AM, XML_PMWG()11:00AM active
16:03:42 [Zakim]
also scheduled at this time are I18N_Core_WG(WS-I18N)11:00AM, WS_DescWG()11:00AM, SW_Simile()11:00AM, MWI_BPWG()10:00AM, SW_HCLS()11:00AM, VB_VBWG()10:00AM, WAI_Team()10:45AM
16:04:28 [Norm]
Present: Norm, Rui, AlexM, Paul, Henry, Erik, Andrew, Michael
16:05:07 [Norm]
zakim, next agendum
16:05:07 [Zakim]
agendum 1. "1. Administrivia" taken up [from Norm]
16:05:12 [Norm]
Topic: Administrivia
16:05:25 [Norm]
zakim, list agenda
16:05:25 [Zakim]
I see 16 items remaining on the agenda:
16:05:26 [Zakim]
1. 1. Administrivia [from Norm]
16:05:27 [Zakim]
2. 1.1. Accept this agenda [from Norm]
16:05:28 [Zakim]
3. 1.2. Accept minutes from the previous teleconference [from Norm]
16:05:31 [Zakim]
4. 1.3. Next meeting: 5 Jan 2006. (No meeting 29 Dec 2005.) [from Norm]
16:05:33 [Zakim]
5. 1.4. Tech Plenary registration is now open [from Norm]
16:05:35 [Zakim]
6. 2. Technical [from Norm]
16:05:36 [Zakim]
7. 2.1. Use Cases [from Norm]
16:05:37 [Zakim]
8. 2.1.1. From Alex [from Norm]
16:05:38 [Zakim]
9. 2.1.2. From Andrew [from Norm]
16:05:40 [Zakim]
10. 2.1.3. From Jenni [from Norm]
16:05:41 [Zakim]
11. 2.1.4. From Norm [from Norm]
16:05:42 [Zakim]
12. 2.1.5. From Rui [from Norm]
16:05:43 [Zakim]
13. 2.2. Requirements [from Norm]
16:05:44 [Zakim]
14. 2.2.1. From XML Core WG [from Norm]
16:05:46 [Zakim]
15. 2.2.2. From ISO SC34/WG1 [from Norm]
16:05:48 [Zakim]
16. 3. Any other business [from Norm]
16:05:48 [Norm]
zakim, next agendum
16:05:50 [Zakim]
agendum 1 was just opened, Norm
16:06:15 [Norm]
zakim, close this agendum
16:06:15 [Zakim]
agendum 1 closed
16:06:16 [Zakim]
I see 15 items remaining on the agenda; the next one is
16:06:17 [Zakim]
2. 1.1. Accept this agenda [from Norm]
16:06:18 [Norm]
zakim, next agendum
16:06:18 [Zakim]
agendum 2. "1.1. Accept this agenda" taken up [from Norm]
16:06:24 [Norm]
16:06:34 [Norm]
zakim, close this agendum
16:06:35 [Zakim]
agendum 2 closed
16:06:36 [Zakim]
I see 14 items remaining on the agenda; the next one is
16:06:37 [Zakim]
3. 1.2. Accept minutes from the previous teleconference [from Norm]
16:06:40 [Norm]
zakim, next agendum
16:06:40 [Zakim]
agendum 3. "1.2. Accept minutes from the previous teleconference" taken up [from Norm]
16:06:42 [Norm]
16:06:59 [Norm]
zakim, next agendum
16:06:59 [Zakim]
agendum 3 was just opened, Norm
16:07:02 [Norm]
zakim, close this agendum
16:07:02 [Zakim]
agendum 3 closed
16:07:03 [Norm]
zakim, next agendum
16:07:04 [Zakim]
I see 13 items remaining on the agenda; the next one is
16:07:05 [Zakim]
4. 1.3. Next meeting: 5 Jan 2006. (No meeting 29 Dec 2005.) [from Norm]
16:07:06 [Zakim]
agendum 4. "1.3. Next meeting: 5 Jan 2006. (No meeting 29 Dec 2005.)" taken up [from Norm]
16:07:28 [Norm]
Regrets for 5 Jan: None
16:07:32 [Norm]
zakim, close this agendum
16:07:32 [Zakim]
agendum 4 closed
16:07:33 [Zakim]
I see 12 items remaining on the agenda; the next one is
16:07:34 [Norm]
zakim, next agendum
16:07:35 [Zakim]
5. 1.4. Tech Plenary registration is now open [from Norm]
16:07:36 [Zakim]
agendum 5. "1.4. Tech Plenary registration is now open" taken up [from Norm]
16:07:49 [Norm]
URI for registration:
16:08:23 [Norm]
Rui: Not sure if I can be present. I'll let you know when I am.
16:08:34 [Norm]
zakim, next agendum
16:08:34 [Zakim]
agendum 6. "2. Technical" taken up [from Norm]
16:08:53 [Norm]
zakim, close this agendum
16:08:53 [Zakim]
agendum 6 closed
16:08:54 [Zakim]
I see 10 items remaining on the agenda; the next one is
16:08:55 [Zakim]
7. 2.1. Use Cases [from Norm]
16:08:58 [Norm]
zakim, next agendum
16:08:58 [Zakim]
agendum 7. "2.1. Use Cases" taken up [from Norm]
16:09:02 [Norm]
zakim, close this agendum
16:09:02 [Zakim]
agendum 7 closed
16:09:03 [Zakim]
I see 9 items remaining on the agenda; the next one is
16:09:04 [Norm]
zakim, next agendum
16:09:05 [Zakim]
8. 2.1.1. From Alex [from Norm]
16:09:06 [Zakim]
agendum 8. "2.1.1. From Alex" taken up [from Norm]
16:09:07 [Norm]
Topic: Use Cases
16:10:29 [Norm]
Alex: Use cases:
16:10:44 [Norm]
Alex: I sent another version this morning. [Scribe notes it isn't in the archives yet]
16:11:05 [Norm]
Alex: I'm using these pipelines for math, but they aren't specific to math.
16:11:22 [Norm]
Alex: I'm using them for web serves; tagsoup is injected to turn random HTML back into proper XHTML
16:11:45 [PGrosso]
I see Alex's email at
16:11:47 [Norm]
Alex: Link I sent this morning includes pointers to onlin eexamples
16:12:15 [Norm]
Thank you, PGrosso
16:12:48 [Norm]
Alex: One of the components of my pipeline is the ability to pick out a subtree
16:13:27 [Norm]
Alex: Important technical feature is the ability to one transform create a piece of markup that pointed to another transform.
16:14:00 [Norm]
Alex: pipelines are sometimes embedded in the source documents
16:15:01 [Norm]
Norm: Did I understand correctly: you have a pipeline where one step generates the pipeline that's used for subsequent steps
16:15:17 [Norm]
Alex: No, they generate data.
16:15:46 [Norm]
Alex: your pipeline is what it is, in the apply-xslt example, it's XSLT that decides what needs to be done next
16:16:29 [Norm]
Alex: 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)
16:16:50 [Norm]
Alex: In cocoon you do this by redirecting to a new pipeline
16:17:23 [Norm]
Alex: Each step can generate data that might cause subsequent stages to do something
16:18:01 [Norm]
Alex: 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
16:18:29 [Norm]
Alex: That's two pipelines that work together
16:19:16 [Norm]
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.
16:19:26 [Norm]
Hopefully this can be clarified in email
16:20:08 [Norm]
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 coccoon because of their syntax.
16:21:37 [Norm]
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
16:21:40 [MSM]
16:21:58 [Norm]
zakim, next agendum
16:21:58 [Zakim]
agendum 9. "2.1.2. From Andrew" taken up [from Norm]
16:22:19 [Norm]
Andrew: I put two simple cases, but I'm trying to make a couple of points.
16:22:47 [Norm]
Andrew: 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.
16:23:46 [Norm]
Norm: When I spoke about not needing to pass parameters, it was just an observation. I'm not surprised that sometimes its needed
16:23:56 [Norm]
Alex: Can a particular step set a parameter for a later step?
16:24:17 [Norm]
Andrew: There are user-set parameters when you invoke the pipeline, but there's no other kind of input.
16:24:36 [Norm]
Alex: I have an example where stages can bind parameters for later stages.
16:24:48 [Norm]
zakim, next agendum
16:24:48 [Zakim]
agendum 10. "2.1.3. From Jenni" taken up [from Norm]
16:24:52 [Norm]
Jeni isn't here, alas
16:26:02 [Norm]
Alex: Jeni makes the point that some steps are made up of sub-pipelines
16:26:28 [Norm]
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
16:26:59 [Norm]
Micheal: 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.
16:27:18 [Norm]
Michael: We seem to get to choose whether to put the complexity in the pipeline or in the individual stages.
16:28:04 [Norm]
Michael: in her use case, she imagined parsing the ... scribe was distracted
16:28:05 [PGrosso]
flanneling around?
16:28:09 [ht]
q+ to point to step (1c)
16:28:35 [Norm]
Michael: it's not always absolutely clear what the implication of moving the complexity around is
16:28:48 [Norm]
Alex: putting all the complexity in a stylesheet makes the stylesheet hard to maintain
16:29:07 [Norm]
Michael: That's one reason to let some of the complexity percolate up. But it's not clear how to balance those tradeoffs
16:29:42 [Norm]
Alex: you can write extensions to XSLT and one of those could evaluate a pipeline
16:30:17 [Norm]
Norm: I think it's a mistake to focus so exclusively on XSLT as there are other kinds of components
16:30:17 [ebruchez]
16:30:21 [Norm]
16:30:27 [Norm]
zakim, ack ht
16:30:27 [Zakim]
ht, you wanted to point to step (1c)
16:30:28 [Zakim]
I see no one on the speaker queue
16:31:24 [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
16:31:25 [Norm]
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 Alexes.
16:31:40 [Norm]
16:31:53 [Norm]
ht: It's clearly a requirement at some stage, though not clear that it has to be in V1
16:32:05 [Norm]
zakim, next agendum
16:32:06 [Zakim]
agendum 11. "2.1.4. From Norm" taken up [from Norm]
16:32:42 [ht]
Norm: Most of my examples are straightforward
16:32:56 [ht]
... Two interesting wrt V1 or not
16:33:10 [ht]
... First a sub-pipelining example similar to Jeni's 1c
16:33:47 [ht]
... Second where a step produces an indeterminate number of e.g. chapter.html files, each of which has to go through further processing
16:34:39 [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
16:35:24 [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
16:35:53 [ht]
... This is parallel to the XPath-based viewport abstraction which I and others have been using
16:36:21 [ht]
AF(?): Problem with sequence is that the items aren't named
16:36:49 [ht]
... Also, loss of symmetry, wrt names and/or cardinality, wrt inputs and outputs of steps
16:37:06 [ht]
NW: In my example they'd be named
16:37:38 [ht]
AF: In XSLT2 case, yes, but not in others. . .
16:37:42 [Norm]
zakim, next agendum
16:37:42 [Zakim]
agendum 12. "2.1.5. From Rui" taken up [from Norm]
16:37:56 [ebruchez]
ht, comment about sequences was from Erik
16:38:02 [Norm]
Rui: mine are similar to previous examples.
16:38:24 [ht]
16:38:33 [ht]
16:38:42 [Norm]
Rui: 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
16:38:52 [Norm]
Rui: should we allow the pipeline author to express this?
16:39:12 [Norm]
Rui: in the next scenario the question is one of reuse and composition of pipelines
16:39:34 [Norm]
Rui: should we use XInclude, or would we like to have another sort of language to express the composition
16:40:49 [Norm]
Rui: 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?
16:41:03 [Norm]
Rui: Do we need a way to specify that a certain number or kind of documents will be produced at runtime
16:41:31 [Norm]
Erik: it looks like I did not get Rui's use cases. I got a blank email.
16:42:00 [Norm]
Several other people had problems. The MIME seems to have been garbled.
16:43:04 [Norm]
This is probably a consequence of a MIME message being forwarded by another client that does MIME
16:43:54 [Norm]
Use cases from Erik:
16:44:30 [Norm]
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
16:44:38 [Norm]
Erik: These are just use cases from actual clients
16:45:07 [Norm]
Erik: I thought it would be useful to categorize the environments where these are processed.
16:45:36 [Norm]
Erik: I found three broad categories: command-line/batch environments, web enviromnets, and service environments
16:45:55 [Norm]
Erik: 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
16:46:22 [Norm]
Erik: is validation a custom-component pipeline step or is it something that is part of the pipeline language
16:47:03 [Norm]
Erik: 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
16:47:23 [Norm]
Erik: Looking at it this way, you can imagine that a pipeline interpreter might be a component in its own right.
16:47:42 [Norm]
Erik: the second set of use cases involve conditionals. Our current thinking is that we do have many use cases that require conditionals.
16:48:07 [Norm]
Erik: 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.
16:48:42 [Norm]
Erik: Anther scenario is content-dependent transformation; the transformation selected is determined by the output of a previous stage.
16:50:07 [Norm]
Erik: 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.
16:50:27 [Norm]
Erik: Another common use case is the selection of Atom or RSS1 or RSS2, etc., when generating feeds
16:51:26 [Norm]
Erik: 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.
16:52:19 [Norm]
Norm: I wasn't sure at what level you needed to make conditional selection
16:53:06 [Norm]
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.
16:53:29 [Norm]
zakim, next agendum
16:53:29 [Zakim]
agendum 13. "2.2. Requirements" taken up [from Norm]
16:53:42 [Norm]
Erik: there are a few more use cases, that involve iteration.
16:55:43 [Norm]
Erik: 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.
16:56:29 [Norm]
Norm: that sounds like a colleciton
16:57:10 [Norm]
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.
16:57:43 [Norm]
Alex: that sounds a lot like the concept of identifying subtrees in an infoset using an xpath
16:58:34 [Norm]
Alex: 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.
16:58:55 [Norm]
Erik: we've identified two types of interation; one is a for-each another is a while.
16:59:41 [Norm]
zakim, agendum 16
16:59:41 [Zakim]
I don't understand 'agendum 16', Norm
16:59:52 [Norm]
Topic: Any other business
17:00:07 [Norm]
Norm: I propose we continue with iteration next week. And begin looking at result.
17:01:44 [Norm]
17:02:31 [Norm]
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
17:02:39 [Norm]
17:03:07 [Zakim]
17:03:08 [Zakim]
17:03:08 [Zakim]
17:03:10 [Zakim]
17:03:10 [Zakim]
17:03:11 [Zakim]
17:03:16 [Zakim]
17:03:18 [Zakim]
17:03:20 [Zakim]
XML_PMWG()11:00AM has ended
17:03:21 [Zakim]
Attendees were Norm, ruilopes, Alex_Milows, PGrosso, Ht, ebruchez, Michael, AndrewF
17:03:29 [Norm]
Norm wishes the group happy holidays
17:03:34 [Norm]
17:03:51 [alexmilowski]
alexmilowski has left #xproc
17:06:52 [Norm]
rrsagent, draft minutes
17:06:52 [RRSAgent]
I have made the request to generate Norm
17:07:02 [PGrosso]
PGrosso has left #xproc
17:07:18 [Norm]
rrsagent set logs world-visible
17:08:08 [Norm]
rrsagent, set logs world-visible
17:09:20 [Norm]
They look ok to me.
17:49:19 [Norm]
rrsagent, bye
17:49:19 [RRSAgent]
I see no action items