IRC log of xproc on 2006-01-05

Timestamps are in UTC.

15:27:18 [RRSAgent]
RRSAgent has joined #xproc
15:27:19 [RRSAgent]
logging to
15:29:35 [Norm]
zakim, agenda+ Accept this agenda
15:29:35 [Zakim]
agendum 1 added
15:29:48 [Norm]
zakim, agenda+ Accept minutes from the previous teleconference
15:29:48 [Zakim]
agendum 2 added
15:29:51 [Norm]
zakim, agenda+ Next meeting: 12 Jan 2006.
15:29:51 [Zakim]
agendum 3 added
15:29:55 [Norm]
zakim, agenda+ Tech Plenary registration is now open
15:29:55 [Zakim]
agendum 4 added
15:30:07 [Norm]
zakim, agenda+ Iteration
15:30:07 [Zakim]
agendum 5 added
15:30:10 [Norm]
zakim, agenda+ Requirements
15:30:10 [Zakim]
agendum 6 added
15:30:13 [Norm]
zakim, agenda+ Any other business
15:30:13 [Zakim]
agendum 7 added
15:30:29 [Norm]
Meeting: XML Processing Model WG Weekly Teleconference
15:30:33 [Norm]
Scribe: Norm
15:30:35 [Norm]
ScribeNick: Norm
15:30:40 [Norm]
Date: 05 Jan 2006
15:30:43 [Norm]
Chair: Norm
15:30:56 [Norm]
15:46:58 [Alessandro]
Alessandro has joined #xproc
15:54:49 [MSM]
15:55:52 [Norm]
zakim, list conferences
15:55:54 [Zakim]
I see VB_VBWG()10:00AM, MWI_BPWG()10:00AM, HTML_XForms()10:00AM, DI_DIWG(dpf)10:00AM active
15:55:56 [Zakim]
also scheduled at this time are WAI_Team()10:45AM, SW_DAWG()11:00AM, DIG_(6.898)11:00AM, Team_Global(review)8:00AM, WS_DescWG()11:00AM, I18N_Core_WG(WS-I18N)11:00AM,
15:55:59 [Zakim]
... XML_PMWG()11:00AM, SW_HCLS()11:00AM
15:56:02 [Norm]
zakim, this will be xml_pmwg
15:56:02 [Zakim]
ok, Norm; I see XML_PMWG()11:00AM scheduled to start in 4 minutes
15:56:15 [PGrosso]
PGrosso has joined #xproc
15:56:36 [Jeni]
Jeni has joined #xproc
15:56:57 [Zakim]
XML_PMWG()11:00AM has now started
15:57:04 [Zakim]
15:57:06 [ebruchez]
ebruchez has joined #xproc
15:57:21 [Jeni]
Zakim, please call Jeni
15:57:21 [Zakim]
ok, Jeni; the call is being made
15:57:23 [Zakim]
15:57:50 [MSM]
zakim, please call Michael-Office
15:57:50 [Zakim]
ok, MSM; the call is being made
15:57:50 [Zakim]
16:01:09 [Zakim]
16:01:24 [Norm]
zakim, IPcaller is ebruchez
16:01:25 [Zakim]
+ebruchez; got it
16:01:28 [Zakim]
16:01:34 [Norm]
zakim, arbortext is PGrosso
16:01:34 [Zakim]
+PGrosso; got it
16:01:42 [Norm]
zakim, who's on the phone?
16:01:42 [Zakim]
On the phone I see Norm, Jeni, Michael, ebruchez, PGrosso
16:01:45 [rlopes]
rlopes has joined #xproc
16:02:36 [Zakim]
16:03:03 [AndrewF]
AndrewF has joined #xproc
16:03:11 [MSM]
zakim, IP is Allessandro
16:03:11 [Zakim]
sorry, MSM, I do not recognize a party named 'IP'
16:03:11 [Norm]
zakim, IPcaller is Alessandro
16:03:12 [Zakim]
+Alessandro; got it
16:03:28 [richard]
richard has joined #xproc
16:03:28 [Norm]
zakim, who's on the phone?
16:03:28 [Zakim]
On the phone I see Norm, Jeni, Michael, ebruchez, PGrosso, Alessandro
16:03:39 [Zakim]
16:03:47 [Norm]
zakim, ??P56 is AndrewF
16:03:47 [Zakim]
+AndrewF; got it
16:03:51 [ht]
ht has joined #xproc
16:04:02 [Zakim]
16:04:04 [Zakim]
16:04:04 [ht]
zakim, please call ht-781
16:04:04 [Zakim]
ok, ht; the call is being made
16:04:05 [Zakim]
16:04:28 [alexmilowski]
alexmilowski has joined #xproc
16:04:30 [Norm]
zakim, ??P54 is richard
16:04:30 [Zakim]
+richard; got it
16:04:37 [Zakim]
16:04:44 [Norm]
zakim, IPCaller is rlopes
16:04:44 [Zakim]
+rlopes; got it
16:04:54 [Norm]
zakim, who's on the phone?
16:04:54 [Zakim]
On the phone I see Norm, Jeni (muted), Michael, ebruchez, PGrosso, Alessandro, AndrewF, Alex_Milowski, richard, Ht, rlopes
16:05:16 [Norm]
Present: Norm, Jeni, Michael, Paul, Erik, Alessandro, Andrew, Alex, Henry, Richard, Rui
16:05:26 [Norm]
Regrets: Robin
16:05:50 [Norm]
zakim, next agendum
16:05:50 [Zakim]
agendum 1. "Accept this agenda" taken up [from Norm]
16:06:05 [Norm]
16:06:10 [Norm]
16:06:15 [Norm]
zakim, next agendum
16:06:15 [Zakim]
agendum 1 was just opened, Norm
16:06:20 [Norm]
zakim, close agendum 1
16:06:21 [Norm]
zakim, next agendum
16:06:21 [Zakim]
agendum 1, Accept this agenda, closed
16:06:22 [Zakim]
I see 6 items remaining on the agenda; the next one is
16:06:23 [Zakim]
2. Accept minutes from the previous teleconference [from Norm]
16:06:24 [Zakim]
agendum 2. "Accept minutes from the previous teleconference" taken up [from Norm]
16:06:37 [Norm]
16:06:46 [Norm]
16:06:50 [Norm]
zakim, close agendum 2
16:06:50 [Zakim]
agendum 2, Accept minutes from the previous teleconference, closed
16:06:51 [Zakim]
I see 5 items remaining on the agenda; the next one is
16:06:52 [Zakim]
3. Next meeting: 12 Jan 2006 [from Norm]
16:06:53 [Norm]
zakim, next agendum
16:06:53 [Zakim]
agendum 3. "Next meeting: 12 Jan 2006" taken up [from Norm]
16:07:09 [Norm]
Any regrets for next week? None given.
16:07:12 [Norm]
zakim, close agendum 3
16:07:12 [Zakim]
agendum 3, Next meeting: 12 Jan 2006, closed
16:07:14 [Zakim]
I see 4 items remaining on the agenda; the next one is
16:07:14 [Norm]
zakim, next agendum
16:07:15 [Zakim]
4. Tech Plenary registration is now open [from Norm]
16:07:16 [Zakim]
agendum 4. "Tech Plenary registration is now open" taken up [from Norm]
16:07:35 [Norm]
16:08:04 [Norm]
zakim, close agendum 4
16:08:04 [Zakim]
agendum 4, Tech Plenary registration is now open, closed
16:08:05 [Zakim]
I see 3 items remaining on the agenda; the next one is
16:08:07 [Zakim]
5. Iteration [from Norm]
16:08:09 [Norm]
zakim, next agendum
16:08:09 [Zakim]
agendum 5. "Iteration" taken up [from Norm]
16:08:32 [Norm]
Any discussion of iteration?
16:09:39 [Norm]
ht: I came up with a use case this week: using a pipeline to construct a soap message, send it off, the result containing multiple instances of document which are in turn used to construct soap messages and send them out.
16:09:56 [Norm]
ht: This pipeline doesn't produce a new document, it just iterates over some results from soap messages.
16:10:32 [Norm]
richard: This is iteration over multiple subtrees in the same document. Last week we were talking about iteration over multiple documents.
16:10:51 [Norm]
ht: Indeed, but it raises the question of whether we want to think about an abstraction over the kinds of things that go through pipelines.
16:11:39 [Norm]
Alex: ht's example is very much like a lot of things I do. What I've been doing is treating the elements that match as their own sub-documents or just documents and the steps in the processes just treat them like documents that could have come in separately.
16:12:00 [Norm]
Alex: And then on the sub-document I run a pipeline over that.
16:12:00 [Norm]
Alex: The abstraction that I'm using is a sequence of documents.
16:12:33 [Norm]
ht: Do we want at this early stage to go from a simple view that says a pipeline has a document that goes through it to one that has a sequence of documents flowing through it.
16:12:46 [Norm]
ht: harder to explain, to understand, and slightly harder to implement.
16:13:04 [ht]
ht: ... but more powerful
16:13:16 [Norm]
Erik: the way we do this with XPL, as an example, is to just provide a facility for iteration that allows for extraction from a node from a document using XPath.
16:13:49 [Norm]
Erik: We can select //something, for example, and then iterating over each of the elements returned.
16:13:54 [AndrewF]
AndrewF has joined #xproc
16:14:15 [Norm]
Erik: this is a solution that doesn't require a sequence of documents.
16:14:22 [Norm]
Alex: But aren't they really virtually there?
16:14:56 [Norm]
Erik: Well, yes, but it's iteration over a subset of the pipeline without adding a sequence type to the pipeline language.
16:14:57 [ht]
q+ to struggle with the difference between iteration vs. dataflow
16:15:27 [Norm]
Erik: The concept of sequence in XPL is limited to iteration
16:15:59 [Norm]
Alex: Both XSLT2 and XQuery support sequences and we are, I assume, going to want to support them.
16:17:29 [Norm]
Alex: I have another component that can produce an aggregate. I think the idea of sequence as a primary thing in the language is very important. Architecturally, it lets us have a clear view at the language level of two different types of components, one that can process a sequence and another that only supports a single document (compare XSLT 2 and XSLT 1). We could define the semantics of how you process a sequence with a component that only handles a single doc
16:17:29 [Norm]
16:17:42 [MSM]
zakim, who is making noise?
16:17:52 [Zakim]
MSM, listening for 10 seconds I heard sound from the following: richard (68%), Alex_Milowski (14%), rlopes (14%)
16:18:05 [MSM]
zakim, mute Michael
16:18:05 [Zakim]
Michael should now be muted
16:18:31 [Norm]
Richard: You've suggested here that there are some components that understand sequences. Then a pipeline controller could know what to do with a sequence. This raises the question then of whether you're allowed to write components that are allowed to maintain state between the documents passed through them.
16:19:06 [Norm]
Alex: I can see that as a real concern. XQuery does maintain a state over the whole sequence. It seems like its component-dependent.
16:19:38 [Norm]
Alex: As soon as you have a component that requires the whole document, streaming stops. I think the same thing would hold true for XSLT 2 or XQuery with respect to sequences.
16:19:59 [Norm]
Alex: When I deal with sequences I use the subtree-selection and that's my iteration thing for producing a sequence that I then iterate a pipeline over.
16:20:39 [Norm]
richard: There's also the question of what you do with the output of some sort of an iteration component. Merging them back into a single doucment might be sufficient.
16:20:41 [Norm]
16:21:31 [Norm]
Alex: Yes, there's a real issue here with how you deal with sequences and components that don't know what do with sequences
16:21:45 [Norm]
Alex: I deal with sequences and the receiver either knows what to do or it HCFs.
16:22:14 [Norm]
richard: Your point about XSLT having to buffer up the whole document seems to me to be a good argument in favor of sequences instead of always packaging things into one document.
16:22:48 [Norm]
richard: OTOH, in some cases allowing for streaming within processes may cause that problem. Rather than having an explicit sequence, you could have a component that takes a packaged up document and runs a process on subtrees with in it.
16:23:15 [Norm]
Alex: one of the things I use all the time is the ability to scope an XSLT to process only a subtree.
16:23:27 [richard]
correction: streaming might *solve* the problem
16:24:25 [Norm]
Alex: The way I deal with this is to say that the baseline is always streaming and if you need the whole doucment there's a little adapter that lets you build the whole document.
16:24:44 [Norm]
Alex: streaming and dealing with subtrees is really critical to me.
16:24:49 [Norm]
ack, ht
16:24:51 [Norm]
ack ht
16:24:51 [Zakim]
ht, you wanted to struggle with the difference between iteration vs. dataflow
16:26:23 [Norm]
ht: I just want to mention for future reference that part of the problem here arises from different models: one perspective is the programming language perspective, an xml scripting language, in which context talking about iteration makes great sense. But another perspective is data flow. In data flow, there isn't any iteration, there's just data.
16:26:46 [ht]
q+ to mention the tension between streaming and error recovery
16:26:48 [Norm]
ht: They're duals: the dual of iteration in data flow is sequences. There's a tradeoff in both implementation and conceptual terms between these two ways of thinking about these things
16:27:48 [Norm]
Alex: We should try to write a declaritive language that doesn't force that choice, either should be possible.
16:27:53 [Norm]
16:27:58 [Norm]
ack ht
16:27:58 [Zakim]
ht, you wanted to mention the tension between streaming and error recovery
16:28:49 [Norm]
ht: Streaming is great and often what you want to do, but I think it's worth noting that once you try to provide gaurantees about error protection, there's a tension between knowning that one step has finished without error before the next starts.
16:29:47 [Norm]
Alex: yes, there's definitely tension there. Maybe there are requirements here we should articulate.
16:30:14 [Norm]
richard: We could say that if you want synchronous error handling you have to add a component to support that.
16:31:11 [Norm]
zakim, next agendum
16:31:11 [Zakim]
agendum 6. "Requirements" taken up [from Norm]
16:31:22 [Norm]
Norm observes that we have a few requirements documents out there
16:32:04 [Norm]
Alessandro summarizes the requirements that he posted yesterday.
16:32:19 [Norm]
16:33:47 [richard]
q+ to mention the tension between streaming and multiple inputs
16:34:18 [ht]
q+ to be nervous about 'while'
16:34:28 [Norm]
q+ to ask what "for each" means at the pipeline level
16:35:03 [Norm]
q+ to ask for more detail about "fallback behavior"
16:35:06 [Norm]
16:35:10 [Norm]
ack richard
16:35:10 [Zakim]
richard, you wanted to mention the tension between streaming and multiple inputs
16:35:42 [Norm]
richard: If you have streaming inputs then the question of multiple inputs becomes somewhat difficult. SAX doesn't really work for multiple inputs if you have independent streams.
16:36:30 [Norm]
richard: Another way to do it is to consider one input the principle input and the other inputs to be the explicit actions of the processes
16:36:42 [Norm]
16:36:44 [Norm]
ack ht
16:36:44 [Zakim]
ht, you wanted to be nervous about 'while'
16:37:34 [Norm]
ht: I think the matter of turing completeness can be overplayed and it's hard to come up with useful tools that aren't vulnerable to various DOS attacks, but "while" has properties that none of the other constructs have in that regard and I've only recently come up with a case where maybe I'd like to have it.
16:37:50 [Norm]
ht: I think "while" wants to be in some sort of "maybe" category IMO.
16:38:08 [Norm]
ack Norm
16:38:08 [Zakim]
Norm, you wanted to ask what "for each" means at the pipeline level and to ask for more detail about "fallback behavior"
16:38:14 [Alessandro]
Alessandro agrees with ht
16:39:01 [Norm]
Alex: It's a maybe but it is useful. It would be nice to have a mechanism for extending the language that might allow others to implement something like "while".
16:39:32 [richard]
can ht and alex give examples of what they mean by "while"
16:40:00 [Norm]
ht: I think that's right. It's one thing to say that there's a component that uses "while", it's entirely another to say that you can change the syntax of the language to put a while scope around a component.
16:40:18 [Norm]
Alex: To the pipleline language, everything is a pipeline step.
16:40:35 [ht]
richard, e.g. run the output of this step/pipeline back in as its input while some xpath is satisfied
16:40:50 [Norm]
s/To the/To my/
16:41:25 [Norm]
Alex: Do we have a language with iteration and conditionals etc. or do we just have a collection of components some of which implement those features.
16:41:52 [Norm]
Norm asks Alessandro what he meant by "fallback behavior"
16:42:02 [Norm]
Alessandro: I was thinking of "try/catch/finally" sort of construct
16:42:05 [ht]
norm, 'catch' is the fallback in a try/catch construction
16:42:42 [MSM]
(except without the ability to throw)
16:43:04 [Norm]
16:43:18 [alexmilowski]
Example of while: translate an ATOM entry feed with "next" elements into one large atom feed
16:43:22 [Norm]
ht describes his "while" example from IRC above.
16:43:53 [Norm]
richard: In languages like C and Java, while and for are just minor syntactic variants. Here they're quite different.
16:43:56 [alexmilowski]
The next element points to another chunk of the feed. The result of following the feed next element may be another feed with another next element.
16:44:11 [Norm]
ht: Right. We've been talking about for-each not a general purpose for.
16:44:33 [Norm]
richard: Alex you were suggesting that all the control structures could be components, is that right?
16:44:35 [Norm]
Alex: Yes
16:45:00 [Zakim]
16:45:12 [Norm]
richard: Right. So that provides completely general extensibility in control strucutre but has the downside of having the control structure opaque in the sense that it uses any non-standard control structures. It's harder to build tools to display the structure.
16:45:19 [Zakim]
16:45:44 [MSM]
zakim, please mute Michael
16:45:44 [Zakim]
Michael should now be muted
16:46:23 [Norm]
Alex: My pipeline language itself is really defined by the components. A component has an element, the element has a syntax and may specify a subpipeline that it runs
16:46:38 [Norm]
Alex: But it does cause problems for authoring tools.
16:46:47 [Norm]
ack ebruchez
16:46:47 [Zakim]
ebruchez, you wanted to mention that extensibility is good, but core syntax has to remain clear
16:47:23 [Norm]
Erik: I just wanted to say that it would be nice if it's extensible, but we need to have a clear core syntax.
16:47:49 [Norm]
Erik: I don't have any particular opinion at this moment, but we should try to keep the syntax simple for the core features.
16:48:39 [Norm]
Alex: One example of a language that's proved to be very exensible is Ant. It has a core set of concepts, but everything else is an extension.
16:49:41 [Norm]
Erik: Yes, I understand that. If everything is working with infosets then that might be very possible.
16:50:33 [Norm]
Norm suggests that we begin writing a requirements documents
16:50:39 [Norm]
Alex: concurs
16:50:50 [Norm]
Norm asks for an editor
16:51:02 [Norm]
Alex: I'm willing.
16:51:37 [Jeni]
Rui also wrote some requirements at
16:51:45 [rlopes]
zakim, please unmute me
16:51:45 [Zakim]
rlopes should no longer be muted
16:51:55 [Norm]
Norm agrees to help Alex get started up
16:52:29 [Norm]
ht: Is there anyone who can explain NVDL
16:52:58 [MSM]
Norm: NVDL sent us an explicit list of requirements.
16:53:19 [MSM]
Its task is validation of mixed-namespace documents, by taking your document and producing a lot of different subtrees
16:53:45 [MSM]
an HTML + MathML document may turn / will turn into an HTML document and a MathML fragment.
16:54:10 [MSM]
The HTML goes to an HTML validator, the MathML goes to a mathML validator.
16:54:11 [ht]
HST notes DTD validation adds attributes too. . .
16:54:25 [MSM]
And at the end, they want to be able to stitch things together again at the end.
16:55:00 [MSM]
alexmilowski: pipelines can certainly do that, but what a crazy way to do it.
16:55:48 [MSM]
Norm: you are able to insert stub elements, to prevent the equation element in the parent document from being empty.
16:55:54 [MSM]
[Docbook example]
16:56:11 [ht]
HST believes NVDL also gives you the ability to specify, for each fragment, what static resources, e.g. DTDs, Schemas, to use
16:56:23 [MSM]
alexmilowski: why not just ... ?
16:56:52 [MSM]
Norm: the idea is to allow this to work without your having to change the individual schemas.
16:57:06 [richard]
q+ to mention issues of dividing and recomposing a document in complicated ways
16:57:24 [MSM]
alexmilowski: an interesting use case: what if you have multiple validators for the equation, and they say different things?
16:57:52 [MSM]
alexmilowski: even if I wouldn't do validation that way, it's still a useful and interesting use case.
16:57:57 [ht]
HST hopes the minutes will show Alex's suggestion about infoset annotation in general, and PSVI validity annotation in particular
16:58:20 [Norm]
16:58:29 [Norm]
ack ebruchez
16:58:29 [Zakim]
ebruchez, you wanted to quickly talk about NVDL
16:59:00 [Norm]
Erik: NVDL has some pretty well defined use cases to explain why they do it that way
16:59:31 [Norm]
ack richard
16:59:31 [Zakim]
richard, you wanted to mention issues of dividing and recomposing a document in complicated ways
16:59:48 [ht]
The PSVI issue is, roughly, the question of _what_ flows through the pipeline -- serialised XML documents, 'vanilla' XML infosets, arbitrary infosets, . . .
16:59:53 [Norm]
richard: I wanted to contrast this problem with the simpler case of passing small parts of a document through some othe rprocess and then reassmbling them.
17:00:42 [Norm]
richard: In this case the depth of nesting of structure is arbitrary. So either you need a component that can decompose a document this way or you need the flow of the pipeline to be controlled by the hierarchy of the document.
17:00:52 [Norm]
richard: That's a much more dynamic kind of pipeline than we've considered before.
17:01:08 [ht]
Concretely, will the pipeline language support some standard way for a pipeline step which follows an XML Schema validation step to access the [validity] and [validation attempted] properties of items in the infoset. . .
17:01:55 [Norm]
17:02:02 [Zakim]
17:02:03 [Zakim]
17:02:04 [Zakim]
17:02:05 [Zakim]
17:02:07 [Zakim]
17:02:08 [Zakim]
17:02:09 [Zakim]
17:02:10 [Zakim]
17:02:11 [Zakim]
17:02:13 [Zakim]
17:02:14 [Zakim]
17:02:14 [PGrosso]
PGrosso has left #xproc
17:02:16 [Zakim]
XML_PMWG()11:00AM has ended
17:02:17 [Zakim]
Attendees were Norm, Jeni, Michael, ebruchez, PGrosso, Alessandro, AndrewF, Alex_Milowski, Ht, richard, rlopes
17:02:38 [Norm]
i/MSM agrees/ScribeNick: MSM/
17:02:56 [Norm]
i/Erik: NVDL/ScribeNick: Norm/
17:03:19 [Norm]
rrsagent, draft minutes
17:03:19 [RRSAgent]
I have made the request to generate Norm
17:03:34 [Norm]
rrsagent, set logs world-visible
17:05:35 [Norm]
rrsagent, draft minutes
17:05:35 [RRSAgent]
I have made the request to generate Norm
17:06:06 [Norm]
i/Norm: NVDL/ScribeNick: MSM/
17:06:08 [Norm]
rrsagent, draft minutes
17:06:08 [RRSAgent]
I have made the request to generate Norm
17:06:45 [alexmilowski]
alexmilowski has left #xproc
17:07:31 [Norm]
rrsagent, bye
17:07:31 [RRSAgent]
I see no action items
17:07:33 [Norm]
zakim, bye
17:07:33 [Zakim]
Zakim has left #xproc