WhatFlows

From W3C Wiki
Revision as of 00:12, 2 November 2011 by Paulgrosso (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

[Back to XprocVnext]

What flows?

And other substantial architectural additions/changes

Should we open up the pipeline architecture to allow more than XML documents to flow through it? With respect to other media types (see below for some possibilities), there are a number of possibilities in general:

  1. Allow staticly, only at the whole-pipeline margins
  2. Allow staticly, at the step level (i.e. step signatures include media types for all inputs and outputs)
    1. Reject any pipeline where the output media type doesn't match the media type of the input to which its connected
      1. and any non-XML output must immediately be converted to XML
      2. and foo--foo connections are allowed
    2. And auto-shim for every possible pair
    3. And auto-shim only for other-XML and XML-other, so other1→other2 requires two shims
  3. Allow dynamically (e.g. from p:http-request)
    1. With a static declaration of the alternatives you expect, and anything else is an error
    2. With a pipeline fallback if all else fails, getting <c:data media-type=...>...</c:data>

Any shim-to-XML can be (?) configured wrt the target vocabulary (how?)

  • We could identify shim tactics with QNames, similar to the way serialization methods are done in XProc already

Sequences

Allow the same thing XQuery/XSLT allow as values for variables

Sets of Documents

Allow unbounded number of outputs from some steps? MZ says we need this for the NVDL use case [cross-reference needed]. Markup pipeline allowed this, subsequent steps need to access by name, where default naming is with the integers. . .

  • p:pack could have more than two inputs, so you could do column-major packing . . .

Metadata

Plain text

JSON

Auto-shimming

That is, automatically converting between media types as required by output::input connections

General architecture

Events

Can we suspend a pipeline waiting for something to happen?

Synchronization/concurrency

Related-but-different, with pipeline-internal events, as it were

Pipelines frozen in time

Can we dump a partially evaluated pipeline instance for subsequent resumption?

Expose pipelines as XPath functions

A way of re-using pipelines

  • Or allowing pipelines to be imported into XQuery or XSLT