RE: [EXTERNAL] - Getting rid of @sequence="true/false"?

+1

Vojtech

-----Original Message-----
From: Imsieke, Gerrit, le-tex [mailto:gerrit.imsieke@le-tex.de] 
Sent: Monday, September 25, 2017 12:58 PM
To: xproc-dev@w3.org
Subject: Re: [EXTERNAL] - Getting rid of @sequence="true/false"?

I don’t think it will fit well into content-types.

But we can think of allowing the as attribute also on input and output ports, like this:

<p:input port="source" as="document-node(element(*))*"/>

or

<p:output port="result as="document-node()"/>

As long we don’t permit arbitrary XDM items on ports, we need to raise an error though (statically?) if the declared sequence type is atomic, a map, or anything else except item() or document-node().

Gerrit

On 25.09.2017 12:45, Kraetke, Martin, le-tex wrote:
> Naturally, sequence is the default for 3.0 but I agree that pipeline 
> authors should have the chance to change this. However, there are 
> cases where you want to specify the number of possible documents more 
> precisely. I would suggest that we drop the sequence attribute and 
> instead specify that a pipeline author can add the operators "?", "*"
> and "+" to the content-type attribute, e.g:
> 
> <p:output port="result" content-type="text/xml+"/>
> 
> best, Martin
> 
> Am 23.09.2017 um 08:06 schrieb Imsieke, Gerrit, le-tex:
>> The weird errors are probably the processor’s fault. A processor 
>> should be able to tell you (and should in fact tell you) which step 
>> in which pipeline expected a sequence / a single document and which 
>> input that it received or emitted violated this restriction.
>>
>> -----
>>
>> If we think that “zero to many documents arriving on a port” is the 
>> new
>> normal: What about keeping the sequence attribute on p:input and 
>> p:output but make it true by default?
>>
>> Gerrit
>>
>> On 22.09.2017 15:21, Ari Nordström wrote:
>>> Hi,
>>>
>>> Getting rid of @sequence seems like a good idea to me. I know I've 
>>> had it set to false on numerous occasions, only to get weird errors 
>>> and an 'oh' moment when realising why. Having everything be a 
>>> sequence makes sense to me.
>>>
>>> Having said that, I like #3 but need to think about it more.
>>>
>>> Thanks,
>>>
>>> /Ari
>>>
>>>
>>> On 22 September 2017 at 15:05, Vojtech Toman <vtoman@opentext.com 
>>> <mailto:vtoman@opentext.com>> wrote:
>>>
>>>     I think removing sequence=true/false is a good idea. In the 
>>> ideal
>>>     world, everything is a sequence :)
>>>
>>>     My personal favorite is option 2. (To be honest, I don't quite
>>>     understand option 1 - is this some sort of backward 
>>> compatibility
>>>     mode for old XProc 1.0 pipelines?)
>>>
>>>     Option 3 (implicit looping) looks fancy but I think it would 
>>> work
>>>     only with simple steps that have only one input port. For steps 
>>> that
>>>     have multiple non-sequence input ports, it is far from clear to 
>>> me
>>>     how it could work. Would it loop? Would it loop over all
>>>     combinations of the inputs (implications on streaming)? Etc. 
>>> Also,
>>>     there would probably have to be some mechanism to tell the 
>>> processor
>>>     whether it should loop over a port or not (because sometimes you 
>>> do
>>>     want to pass a sequence of items to the step). Consider, for
>>>     example, the p:xquery step: it takes a sequence of documents on 
>>> the
>>>     "source" port (the default collection) and the XQuery on the "query"
>>>     port. You definitely don't want to loop over "source" but you 
>>> may or
>>>     may not want to looping over "query".
>>>
>>>     Regards,
>>>     Vojtech
>>>
>>>     -----Original Message-----
>>>     From: Achim Berndzen [mailto:achim.berndzen@xml-project.com
>>>     <mailto:achim.berndzen@xml-project.com>]
>>>     Sent: Friday, September 22, 2017 2:41 PM
>>>     To: XProc Dev
>>>     Subject: [EXTERNAL] - Getting rid of @sequence="true/false"?
>>>
>>>     Hi all,
>>>
>>>     A while ago, @ndw and I had a mail conversation about sequence 
>>> ports
>>>     in XProc 3.0. In order to make it easier to learn XProc, we
>>>     discussed about elimination non-sequence ports and @sequence, so
>>>     that in XProc 3.0 all steps accept sequences on all ports.
>>>
>>>     Following this line of thought, some options are possible:
>>>
>>>     1. Nothing changes: All steps accepting sequences on a port in 
>>> XProc
>>>     1.0 will do so in XProc 3.0. Steps that do not accept a sequence
>>>     will only raise an error, when an empty sequence is delivered. 
>>> If
>>>     not, they we process the first document in the sequence as 
>>> described
>>>     and discard all others.
>>>
>>>     2. We simply move task of raising an error to the step and its
>>>     semantic: Instead of having one global error (XD0006) we could 
>>> have
>>>     more informative errors like (XS????: It is a dynamic error if 
>>> not
>>>     exactly one document appears on port "stylesheet"
>>>     of p:xslt).
>>>
>>>     3. Implicit looping: One possible consequence I personally like 
>>> very
>>>     much is the idea, that some steps (like p:add-attribute, 
>>> p:delete,
>>>     p:insert etc.) do an implicit looping for the sequence. This 
>>> might
>>>     be more natural the XProc newbies and may appear attractive to
>>>     current users, because in some cases you will not need "p:for-each"
>>>     any more. This would be inline with p:viewport in XProc 3.0 with
>>>     does implicit looping. For other steps, where implicit looping 
>>> does
>>>     not make sense (e.g. p:compare or p:http-request) we could 
>>> choose
>>>     option (1) or (2).
>>>
>>>     4. Bad idea, keep it like it is: You might say that the 
>>> distinction
>>>     between a document and a sequence of documents is very easy to 
>>> grasp
>>>     and that it is perfectly established in XSLT, XQuery and other
>>>     X-technologies. Also you might argue, that in XProc 3.0 we will 
>>> have
>>>     mixed sequences with XML and non-XML documents and we would need 
>>> a
>>>     special treat when p:add-attribute is applied to a sequence of 
>>> xml
>>>     documents, JPEGs and texts.
>>>
>>>     What do you think?
>>>
>>>     Greetings from Germany,
>>>     Achim
>>>     ------------------------------------------------
>>>     Achim Berndzen
>>>     achim.berndzen@xml-project.com
>>> <mailto:achim.berndzen@xml-project.com>
>>>
>>>
>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.xml-2Dprojec

>>> t.com&d=DwIFAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=aJZr6mdNzy-qsGbVYWF8KIxwje
>>> 5rrbk2V7QfMr35EhU&m=cPHeErshVOYtQvSxAMDAic7JkUGz2HP66H7HpBWsndQ&s=mH
>>> iMaFmT9YqrWTQHwBnXpOa4VbbxxpA4Y2cOjvacjmY&e=
>>>
>>>
>>>
>>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.xml-2Dproje

>>> ct.com&d=DwIFAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=aJZr6mdNzy-qsGbVYWF8KIxwj
>>> e5rrbk2V7QfMr35EhU&m=cPHeErshVOYtQvSxAMDAic7JkUGz2HP66H7HpBWsndQ&s=m
>>> HiMaFmT9YqrWTQHwBnXpOa4VbbxxpA4Y2cOjvacjmY&e=>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
> 

--
Gerrit Imsieke
Geschäftsführer / Managing Director
le-tex publishing services GmbH
Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@le-tex.de, https://urldefense.proofpoint.com/v2/url?u=http-3A__www.le-2Dtex.de&d=DwIDaQ&c=ZgVRmm3mf2P1-XDAyDsu4A&r=aJZr6mdNzy-qsGbVYWF8KIxwje5rrbk2V7QfMr35EhU&m=Jb505Qo7vMf2dajQCVVdR2Emk-_gR88QQPpeC3PFA1o&s=LEGXFnHcgdz9AXrTkawKqKYcPykMpQ2vaiXjoAo0dMA&e=


Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930

Geschäftsführer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard Vöckler
------------------------------------------------------------------------------
Meet us at Frankfurt Book Fair
Hall 4.2, L 72.

More at https://urldefense.proofpoint.com/v2/url?u=https-3A__www.le-2Dtex.de_en_buchmesse.html&d=DwIDaQ&c=ZgVRmm3mf2P1-XDAyDsu4A&r=aJZr6mdNzy-qsGbVYWF8KIxwje5rrbk2V7QfMr35EhU&m=Jb505Qo7vMf2dajQCVVdR2Emk-_gR88QQPpeC3PFA1o&s=qczjdAsp8eaLo6rh-DDZaO76BiNHIOQPR9fTPoTfYVw&e=

Received on Monday, 25 September 2017 11:08:54 UTC