XML Processing Model WG

29 Oct 2009


See also: IRC log


Norm, Mohamed, Vojtech, Henry


Accept this agenda?

-> http://www.w3.org/XML/XProc/2009/10/29-agenda


Accept minutes from the previous meeting?

-> http://www.w3.org/XML/XProc/2009/10/22-minutes


Next meeting: face-to-face 2-3 November, Santa Clara, CA, US

Henry will be a little bit late on Monday morning.

Agenda topics for the face-to-face

Norm: I think we need consider the state of the draft, the test suite, coverage, implementation status.
... and beginning to draft our PR request.
... One bit of good news in that regard, Liam noted that it's unheard of for a spec to go from LC to PR.
... And also the default XML processing model.
... Let's do default XML processing model on Tuesday morning so Mohamed can participate by phone.

Mohamed: I'll also try to have some ideas in place for not going back to Last Call.

Latest editor's draft

-> http://www.w3.org/XML/XProc/docs/langspec.html

Norm: Any comments on the latest editor's draft?

Vojtech: I have no big problems with the new versioning scheme, so I'm fine with that.
... I think relaxing the rules for with-option/with-param is a good thing.
... I think this small change to parameter input ports will also make things easier.

Norm: Right. With respect to not breaking existing pipelines, we have the required version attribute issue.

Henry: I don't think the required version attribute has any impact on the LC to PR question.
... If we can make the argument that there's good interoperability that's been demonstrated by the end of the LC period then we can go to PR, the scale of the change isn't relevant.
... Personally, I've changed my mind three times int he last two minutes, I don't know what the right answer is.

Norm: Does anyone know what the right answer is? Is anyone strongly in favor of one position or the other?

Vojtech: One breaks existing pipelines, but making it required may be odd. Moving a pipeline out of a library will require adding the attribute.

Norm: But that cuts both ways, if you don't make it required then a pipeline from a V2 library silently becomes a V1 pipeline.

Some discussion about whether or not mixing pipelines of different versions is a problem.

Mohamed: So for example you can have a pipeline A in V1 that imports a pipeline B in V2.

Norm/Vojtech: Yes

Mohamed: But what's the value of the static context for the version.

Vojtech: It's a static value, it's not dymanic at all.

Mohamed thinks we're rehashing a discussion from several years ago.

Mohamed: What does this mean: <p:pipeline version="1.0"> ... <p:xslt use-when="p:system-property('p:version') = '2.0'">...

Norm: I think a processor loads that pipeline with the V1 rules: no unknown steps, no unknown options, etc. But at runtime, if it really is a V2 processor then the use-when will return true.
... If you want to run a V2 pipeline, you have to specify version="2.0"; if you want it to work in a V1 processor, you have to protect those regions that aren't fowards-compatible with use-when.

Henry: If I'm a V1 processor and I encounter a V1 pipeline, then I know what to do. If I'm a V2 processor and I encouter a version="1.0" pipeline and I encounter a V2 step then...
... So if I encounter a step that I do understand, but isn't in V1, I have to throw an error. Is that clear?

Norm: No, I think that's probably not clear enough.

Henry: I think we should clarify that: a V2 step is an error in a pipeline being run in backwards-compatibe V1 mode, even if the processor recognizes it.

Norm: yes.

Some discussion about what it even means for this spec to have a backwards compatible section given that there are no preceding versions.

Vojtech: Now that we have this version attribute and the p:version system property, and something similar for the xpath-version, I wonder if we shouldn't make p:version a sequence like p:xpath-version.

Norm: Uhm...
... I'm not sure I see the value given that XProc version really only determines what constitutes a static error

Vojtech: But what about a step you want to have in V1 and V3, but not V2.

Mohamed: What about a future where there's a 2.0 "iso" version and a 2.0 "w3c" version.

Norm: I'm reluctant to go there.

Mohamed: So suppose there's a 1.1 and a 2.0.
... Some implementations only implement 2.0 and 1.0 backwards compatibility and others implement 1.1

Vojtech: There's a small asymetry between the system properties.

Norm: What do others think about this assymetry?

Vojtech: I think in the use-when you may not have enough information to decide which part of the pipeline to include.

Norm: How?

Vojtech: I'm not sure, but soemthing like a processor that implements 1.0 and 2.0 but not 1.1. In use-when you can't test this.

Norm: Fair enough.
... XPath "=" comparisons are existential so I guess it wouldn't do any harm.

Vojtech: Except in XPath 1.0 you'd get only the first one.

Norm: Ah. Yes.

Henry: All of the following are possible: I support V1, V2 and V1 in backwards compatible mode, and only V2.
... The problem is that we've tied our hands here. We might have been better off if we'd provided a function p:supports-version that returns true or false. So you can find out by querying whether a particular version is supported.

Norm: And a p:supports-xpath-version function?

Mohamed: That's what we proposed on May, 2008.

<MoZ> | Just thinking: Wouldn't it make sense to have an XPath extension

<MoZ> | function p:xpath-version-supported(version), similarly to

<MoZ> | p:psvi-supported()? Some of the processors will support only XPath 1.0,

<MoZ> | some 2.0, but not necessarily 1.0, etc., so perhaps it could be useful

<MoZ> | to have access to this information in the pipeline.

<MoZ> I thought the resolution from last Thursday used only the system

<MoZ> property, I thought p:psvi-supported() whent away? I've never

<MoZ> understood how the system property and the function would ever be

<MoZ> different.

<MoZ> http://lists.w3.org/Archives/Public/public-xml-processing-model-wg/2008May/0134.html

Henry: The value of psvi support is a boolean, so there's never any possibility of confusion.
... But versions aren't booleans. As quoted the answer above doesn't really answer the question.

Mohamed: I think once you're dealing with an atomic value, there's no problem. But once you have a sequence, there is a difference.

Norm: Given that implementors have to implement a few functions, I don't see the harm in adding a few more.

Vojtech: What if you want to know all the versions.

Henry: I think having both the system property and the function is the right resolution to this issue.

Proposal: The p:version system property returns a space separated list. Add a p:version-available(xs:decimal) function and a p:xpath-version-avaialable(xs:decimal) function to query for specific versions.



Summary of Action Items

[End of minutes]

Minutes formatted by David Booth's scribe.perl version 1.135 (CVS log)
$Date: 2009/10/29 16:17:58 $