Re: Unifying Iteration and Viewports

Alex Miłowski <alex@milowski.com> writes:
> I think the use case for viewports can mostly be associated with
> various XML-related tasks.  Many of those tasks can be accomplished by
> XSLT or XQuery but require loading the whole document.  It is worth
> noting that viewports, as currently implemented by most (if not all)
> XProc processors, do not stream.

I never held streaming to be the most important consideration. I think
it’s a necessary and useful design pattern that’s has no general
solution outside of the purpose-built step. Yes, you can replace any
given instance with XSLT (or XQuery), but you have to write bespoke
XSLT for each case.

> A viewport is essentially a special case of iteration.  We can't
> easily do the book keeping in a pipeline but I suspect there are
> clever ways to do it without special language support. 

I’d be curious to see one.

> While I think the idea of view porting is a good one, it may not find
> general use for a larger variety of data formats.  Many of the data
> driven tasks where I have used viewports could just as easily be done
> by iteration now.

I’m not convinced that it’s an XML specific concern. I can certainly
imagine selecting objects out of some complex JSON structure and
transforming them “in place” with the replace step.

And the step is even more important in those contexts because there’s
nothing like XSLT on which to fall back.

> I support the idea that we should table viewports  - possibly
> indefinitely - and focus on general iteration and other more important
> bits.

I vote “no”. If you want to work on other things first, fine, but I’m
not even remotely convinced that I should let go of the
viewport/replace functionality.

                                        Be seeing you,
                                          norm

-- 
Norman Walsh
Lead Engineer
MarkLogic Corporation
Phone: +1 512 761 6676
www.marklogic.com

Received on Wednesday, 16 March 2016 21:27:47 UTC