Re: The first five minutes ... a thought experiment (long)

On Thu, Feb 20, 2014 at 12:45 PM, Romain Deltour <rdeltour@gmail.com> wrote:
> On 20 févr. 2014, at 13:07, Alex Milowski <alex@milowski.com> wrote:
>
>> Using XPath for ports is fraught with issues.  How do you do the
>> static analysis to figure out what is connected to what?
>
> See my proposal in the thread "an idea: ports == options".

I am referring to that proposal as well.

>
> The req isn't saying either that XDM is not an option. I think XDM should be carefully considered.
>
> Saying that data flowing through a pipeline is xs:hexBinary or xs:base64Binary does not mean that the data *MUST* be serialized until it's explicitly asked (as a string or document node). Implementations could very well use a stream handle underneath.

Hmm, ... not sure that's a great solution.  Primarily, the concept of
the "binary is a document" is lost by just using arbitrary values.
The "1" and "(1 2 3)" become documents without any associated media
type.

>
> Another option is the "resource manager" approach, where you could represent non-XML content by reference (URI). Again, this can be compatible with an XDM approach.

That has been considered in the past but the non-uniformity of making
binaries somehow second-class objects makes that solution less
attractive.

>
> I don't really buy the "then use XQuery" argument.
>

My point simple is you can write a XQuery program to process sequences
of items as composed functions.  That approach tends to have its own
set of problems which include the ability for someone to understand
the code.  The approach where steps just operate on inputs that are
sequences of items and produce a tuple of sequences items is just as
fraught with issues of complexity.   In particular, I question the
streaming capabilities of such an approach as the "XPath expression"
assumption requires that you have the complete value in some sense
(e.g. you have the complete set of documents from the preceding step
if it produced more than one document).

There is also useful distinction in steps that operate on inputs and
are controlled by options.  Conceptually, this may be easier to
understand for some users.  If you look through our inventory of
steps, options universally have simple values.  There are only a few
situations (e.g. parameters) where you'd like a non-simple value like
a map.



-- 
--Alex Milowski
"The excellence of grammar as a guide is proportional to the paucity of the
inflexions, i.e. to the degree of analysis effected by the language
considered."

Bertrand Russell in a footnote of Principles of Mathematics

Received on Thursday, 20 February 2014 13:46:31 UTC