15:27:18 RRSAgent has joined #xproc 15:27:19 logging to http://www.w3.org/2006/01/05-xproc-irc 15:29:35 zakim, agenda+ Accept this agenda 15:29:35 agendum 1 added 15:29:48 zakim, agenda+ Accept minutes from the previous teleconference 15:29:48 agendum 2 added 15:29:51 zakim, agenda+ Next meeting: 12 Jan 2006. 15:29:51 agendum 3 added 15:29:55 zakim, agenda+ Tech Plenary registration is now open 15:29:55 agendum 4 added 15:30:07 zakim, agenda+ Iteration 15:30:07 agendum 5 added 15:30:10 zakim, agenda+ Requirements 15:30:10 agendum 6 added 15:30:13 zakim, agenda+ Any other business 15:30:13 agendum 7 added 15:30:29 Meeting: XML Processing Model WG Weekly Teleconference 15:30:33 Scribe: Norm 15:30:35 ScribeNick: Norm 15:30:40 Date: 05 Jan 2006 15:30:43 Chair: Norm 15:30:56 Agenda: http://www.w3.org/XML/XProc/2006/01/05-agenda.html 15:46:58 Alessandro has joined #xproc 15:54:49 agenda? 15:55:52 zakim, list conferences 15:55:54 I see VB_VBWG()10:00AM, MWI_BPWG()10:00AM, HTML_XForms()10:00AM, DI_DIWG(dpf)10:00AM active 15:55:56 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 ... XML_PMWG()11:00AM, SW_HCLS()11:00AM 15:56:02 zakim, this will be xml_pmwg 15:56:02 ok, Norm; I see XML_PMWG()11:00AM scheduled to start in 4 minutes 15:56:15 PGrosso has joined #xproc 15:56:36 Jeni has joined #xproc 15:56:57 XML_PMWG()11:00AM has now started 15:57:04 +Norm 15:57:06 ebruchez has joined #xproc 15:57:21 Zakim, please call Jeni 15:57:21 ok, Jeni; the call is being made 15:57:23 +Jeni 15:57:50 zakim, please call Michael-Office 15:57:50 ok, MSM; the call is being made 15:57:50 +Michael 16:01:09 +[IPcaller] 16:01:24 zakim, IPcaller is ebruchez 16:01:25 +ebruchez; got it 16:01:28 +[ArborText] 16:01:34 zakim, arbortext is PGrosso 16:01:34 +PGrosso; got it 16:01:42 zakim, who's on the phone? 16:01:42 On the phone I see Norm, Jeni, Michael, ebruchez, PGrosso 16:01:45 rlopes has joined #xproc 16:02:36 +[IPcaller] 16:03:03 AndrewF has joined #xproc 16:03:11 zakim, IP is Allessandro 16:03:11 sorry, MSM, I do not recognize a party named 'IP' 16:03:11 zakim, IPcaller is Alessandro 16:03:12 +Alessandro; got it 16:03:28 richard has joined #xproc 16:03:28 zakim, who's on the phone? 16:03:28 On the phone I see Norm, Jeni, Michael, ebruchez, PGrosso, Alessandro 16:03:39 +??P56 16:03:47 zakim, ??P56 is AndrewF 16:03:47 +AndrewF; got it 16:03:51 ht has joined #xproc 16:04:02 +??P54 16:04:04 +Alex_Milowski 16:04:04 zakim, please call ht-781 16:04:04 ok, ht; the call is being made 16:04:05 +Ht 16:04:28 alexmilowski has joined #xproc 16:04:30 zakim, ??P54 is richard 16:04:30 +richard; got it 16:04:37 +[IPcaller] 16:04:44 zakim, IPCaller is rlopes 16:04:44 +rlopes; got it 16:04:54 zakim, who's on the phone? 16:04:54 On the phone I see Norm, Jeni (muted), Michael, ebruchez, PGrosso, Alessandro, AndrewF, Alex_Milowski, richard, Ht, rlopes 16:05:16 Present: Norm, Jeni, Michael, Paul, Erik, Alessandro, Andrew, Alex, Henry, Richard, Rui 16:05:26 Regrets: Robin 16:05:50 zakim, next agendum 16:05:50 agendum 1. "Accept this agenda" taken up [from Norm] 16:06:05 http://www.w3.org/XML/XProc/2006/01/05-agenda.html 16:06:10 Accepted. 16:06:15 zakim, next agendum 16:06:15 agendum 1 was just opened, Norm 16:06:20 zakim, close agendum 1 16:06:21 zakim, next agendum 16:06:21 agendum 1, Accept this agenda, closed 16:06:22 I see 6 items remaining on the agenda; the next one is 16:06:23 2. Accept minutes from the previous teleconference [from Norm] 16:06:24 agendum 2. "Accept minutes from the previous teleconference" taken up [from Norm] 16:06:37 http://www.w3.org/2005/12/22-xproc-minutes.html 16:06:46 Accepted 16:06:50 zakim, close agendum 2 16:06:50 agendum 2, Accept minutes from the previous teleconference, closed 16:06:51 I see 5 items remaining on the agenda; the next one is 16:06:52 3. Next meeting: 12 Jan 2006 [from Norm] 16:06:53 zakim, next agendum 16:06:53 agendum 3. "Next meeting: 12 Jan 2006" taken up [from Norm] 16:07:09 Any regrets for next week? None given. 16:07:12 zakim, close agendum 3 16:07:12 agendum 3, Next meeting: 12 Jan 2006, closed 16:07:14 I see 4 items remaining on the agenda; the next one is 16:07:14 zakim, next agendum 16:07:15 4. Tech Plenary registration is now open [from Norm] 16:07:16 agendum 4. "Tech Plenary registration is now open" taken up [from Norm] 16:07:35 http://www.w3.org/2002/09/wbs/35125/TP2006/ 16:08:04 zakim, close agendum 4 16:08:04 agendum 4, Tech Plenary registration is now open, closed 16:08:05 I see 3 items remaining on the agenda; the next one is 16:08:07 5. Iteration [from Norm] 16:08:09 zakim, next agendum 16:08:09 agendum 5. "Iteration" taken up [from Norm] 16:08:32 Any discussion of iteration? 16:09:39 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 ht: This pipeline doesn't produce a new document, it just iterates over some results from soap messages. 16:10:32 richard: This is iteration over multiple subtrees in the same document. Last week we were talking about iteration over multiple documents. 16:10:51 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 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 Alex: And then on the sub-document I run a pipeline over that. 16:12:00 Alex: The abstraction that I'm using is a sequence of documents. 16:12:33 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 ht: harder to explain, to understand, and slightly harder to implement. 16:13:04 ht: ... but more powerful 16:13:16 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 Erik: We can select //something, for example, and then iterating over each of the elements returned. 16:13:54 AndrewF has joined #xproc 16:14:15 Erik: this is a solution that doesn't require a sequence of documents. 16:14:22 Alex: But aren't they really virtually there? 16:14:56 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 q+ to struggle with the difference between iteration vs. dataflow 16:15:27 Erik: The concept of sequence in XPL is limited to iteration 16:15:59 Alex: Both XSLT2 and XQuery support sequences and we are, I assume, going to want to support them. 16:17:29 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 ument. 16:17:42 zakim, who is making noise? 16:17:52 MSM, listening for 10 seconds I heard sound from the following: richard (68%), Alex_Milowski (14%), rlopes (14%) 16:18:05 zakim, mute Michael 16:18:05 Michael should now be muted 16:18:31 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 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 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 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 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 q? 16:21:31 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 Alex: I deal with sequences and the receiver either knows what to do or it HCFs. 16:22:14 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 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 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 correction: streaming might *solve* the problem 16:24:25 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 Alex: streaming and dealing with subtrees is really critical to me. 16:24:49 ack, ht 16:24:51 ack ht 16:24:51 ht, you wanted to struggle with the difference between iteration vs. dataflow 16:26:23 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 q+ to mention the tension between streaming and error recovery 16:26:48 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 Alex: We should try to write a declaritive language that doesn't force that choice, either should be possible. 16:27:53 ack 16:27:58 ack ht 16:27:58 ht, you wanted to mention the tension between streaming and error recovery 16:28:49 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 Alex: yes, there's definitely tension there. Maybe there are requirements here we should articulate. 16:30:14 richard: We could say that if you want synchronous error handling you have to add a component to support that. 16:31:11 zakim, next agendum 16:31:11 agendum 6. "Requirements" taken up [from Norm] 16:31:22 Norm observes that we have a few requirements documents out there 16:32:04 Alessandro summarizes the requirements that he posted yesterday. 16:32:19 http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jan/0002.html 16:33:47 q+ to mention the tension between streaming and multiple inputs 16:34:18 q+ to be nervous about 'while' 16:34:28 q+ to ask what "for each" means at the pipeline level 16:35:03 q+ to ask for more detail about "fallback behavior" 16:35:06 q? 16:35:10 ack richard 16:35:10 richard, you wanted to mention the tension between streaming and multiple inputs 16:35:42 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 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 q? 16:36:44 ack ht 16:36:44 ht, you wanted to be nervous about 'while' 16:37:34 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 ht: I think "while" wants to be in some sort of "maybe" category IMO. 16:38:08 ack Norm 16:38:08 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 agrees with ht 16:39:01 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 can ht and alex give examples of what they mean by "while" 16:40:00 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 Alex: To the pipleline language, everything is a pipeline step. 16:40:35 richard, e.g. run the output of this step/pipeline back in as its input while some xpath is satisfied 16:40:50 s/To the/To my/ 16:41:25 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 asks Alessandro what he meant by "fallback behavior" 16:42:02 Alessandro: I was thinking of "try/catch/finally" sort of construct 16:42:05 norm, 'catch' is the fallback in a try/catch construction 16:42:42 (except without the ability to throw) 16:43:04 q? 16:43:18 Example of while: translate an ATOM entry feed with "next" elements into one large atom feed 16:43:22 ht describes his "while" example from IRC above. 16:43:53 richard: In languages like C and Java, while and for are just minor syntactic variants. Here they're quite different. 16:43:56 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 ht: Right. We've been talking about for-each not a general purpose for. 16:44:33 richard: Alex you were suggesting that all the control structures could be components, is that right? 16:44:35 Alex: Yes 16:45:00 -Michael 16:45:12 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 +Michael 16:45:44 zakim, please mute Michael 16:45:44 Michael should now be muted 16:46:23 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 Alex: But it does cause problems for authoring tools. 16:46:47 ack ebruchez 16:46:47 ebruchez, you wanted to mention that extensibility is good, but core syntax has to remain clear 16:47:23 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 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 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 Erik: Yes, I understand that. If everything is working with infosets then that might be very possible. 16:50:33 Norm suggests that we begin writing a requirements documents 16:50:39 Alex: concurs 16:50:50 Norm asks for an editor 16:51:02 Alex: I'm willing. 16:51:37 Rui also wrote some requirements at http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2006Jan/0000.html 16:51:45 zakim, please unmute me 16:51:45 rlopes should no longer be muted 16:51:55 Norm agrees to help Alex get started up 16:52:29 ht: Is there anyone who can explain NVDL 16:52:58 Norm: NVDL sent us an explicit list of requirements. 16:53:19 Its task is validation of mixed-namespace documents, by taking your document and producing a lot of different subtrees 16:53:45 an HTML + MathML document may turn / will turn into an HTML document and a MathML fragment. 16:54:10 The HTML goes to an HTML validator, the MathML goes to a mathML validator. 16:54:11 HST notes DTD validation adds attributes too. . . 16:54:25 And at the end, they want to be able to stitch things together again at the end. 16:55:00 alexmilowski: pipelines can certainly do that, but what a crazy way to do it. 16:55:48 Norm: you are able to insert stub elements, to prevent the equation element in the parent document from being empty. 16:55:54 [Docbook example] 16:56:11 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 alexmilowski: why not just ... ? 16:56:52 Norm: the idea is to allow this to work without your having to change the individual schemas. 16:57:06 q+ to mention issues of dividing and recomposing a document in complicated ways 16:57:24 alexmilowski: an interesting use case: what if you have multiple validators for the equation, and they say different things? 16:57:52 alexmilowski: even if I wouldn't do validation that way, it's still a useful and interesting use case. 16:57:57 HST hopes the minutes will show Alex's suggestion about infoset annotation in general, and PSVI validity annotation in particular 16:58:20 q? 16:58:29 ack ebruchez 16:58:29 ebruchez, you wanted to quickly talk about NVDL 16:59:00 Erik: NVDL has some pretty well defined use cases to explain why they do it that way 16:59:31 ack richard 16:59:31 richard, you wanted to mention issues of dividing and recomposing a document in complicated ways 16:59:48 The PSVI issue is, roughly, the question of _what_ flows through the pipeline -- serialised XML documents, 'vanilla' XML infosets, arbitrary infosets, . . . 16:59:53 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 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 richard: That's a much more dynamic kind of pipeline than we've considered before. 17:01:08 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 ADJOURNED 17:02:02 -PGrosso 17:02:03 -AndrewF 17:02:04 -richard 17:02:05 -Ht 17:02:07 -Norm 17:02:08 -ebruchez 17:02:09 -Alessandro 17:02:10 -Alex_Milowski 17:02:11 -rlopes 17:02:13 -Michael 17:02:14 -Jeni 17:02:14 PGrosso has left #xproc 17:02:16 XML_PMWG()11:00AM has ended 17:02:17 Attendees were Norm, Jeni, Michael, ebruchez, PGrosso, Alessandro, AndrewF, Alex_Milowski, Ht, richard, rlopes 17:02:38 i/MSM agrees/ScribeNick: MSM/ 17:02:56 i/Erik: NVDL/ScribeNick: Norm/ 17:03:19 rrsagent, draft minutes 17:03:19 I have made the request to generate http://www.w3.org/2006/01/05-xproc-minutes.html Norm 17:03:34 rrsagent, set logs world-visible 17:05:35 rrsagent, draft minutes 17:05:35 I have made the request to generate http://www.w3.org/2006/01/05-xproc-minutes.html Norm 17:06:06 i/Norm: NVDL/ScribeNick: MSM/ 17:06:08 rrsagent, draft minutes 17:06:08 I have made the request to generate http://www.w3.org/2006/01/05-xproc-minutes.html Norm 17:06:45 alexmilowski has left #xproc 17:07:31 rrsagent, bye 17:07:31 I see no action items 17:07:33 zakim, bye 17:07:33 Zakim has left #xproc