[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: What is Micro Pipelining: an attempt for a definit

Subject: Re: What is Micro Pipelining: an attempt for a definition (was: Calculating cumulative values - Abel's solution)
From: Wendell Piez <wapiez@xxxxxxxxxxxxxxxx>
Date: Tue, 04 Sep 2007 15:15:21 -0400
Re:  What is Micro Pipelining: an attempt for a definit
Abel,

I think you mistook my meaning, or maybe I didn't express it clearly.

At 07:42 PM 8/31/2007, you wrote:
Now I do understand that this is a bit of a too wide definition. But now on to yours. You explain that for anything to be a micro pipeline it must be applied (or expected to be applied) more than once. More appropriately: when you can extract the pipeline variable into a global variable, it is not a micro pipeline anymore (is it then a macro pipeline?).

It's not that a micro-pipeline is applied more than once. If you have


<xsl:template match="p">
  <xsl:variable name="interim">
    <xsl:apply-templates mode="pre"/>
  </xsl:variable>
  <xsl:apply-templates select="$interim"/>
</xsl:template>

... the $interim variable is only assigned, and processed, once for each paragraph. This is a simple case where (assuming everything else is happening in the normal way) every 'p' in the document is micro-pipelined -- but no particular micro-pipeline (or micropipeline; the hyphen is starting to feel cumbersome) is executed more than once. (The template is applied more than once but only once per paragraph, or maybe not even that.)

Does this clarify things any?

Of course, as you show, within the context of a larger processing framework, a pipeline scoped to a template matching a document root might be executed more than once, and thus be a micropipeline. But you douldn't declare each document's interim results globally in that case. Accordingly, I'd suppose the line would be where it is necessary to bind the variable locally to where it will be used. If it is or could be in global scope, it's not "micro" even if it's small.

FWIW, I don't believe the term has a formal definition (or not yet). The reason the word has no definitions outside XSLT is that we invented the term here to label a particular technique in XSLT. For example, it has no relevance to XML Pipelining Language, which doesn't do template matching and thus has no place a micropipeline (in the XSLT sense) could hook onto. And since we invented it, "Micro-pipeline" or "micropipeline", in the context of XSLT, means only what we mean by it. Indeed, this is why I've bothered to pipe up (if you'll forgive the expression) -- because, as I said, if the word comes to mean "any cool multi-phase processing or generating of interim results of any kind", it will no longer mean what we first meant by it -- something for which we will then no longer have a special word, at which point when we want to draw attention to it, we will have to describe it the long way around, using a general word plus qualifications, the way we did before we had a specific word.

Consequently, I'd be inclined, as I said, to recommend always saying "pipelining" or "pre-processing", the more general terms, when there's any doubt, and reserving the more specific term for occasions when the distinction is useful and relevant.

On the other hand, given that you're defending the more general usage (roughly, a synonym for "pipeline") as correct, maybe the horse is already out of the barn, and we no longer have a word for the more specific thing, which is "pipelining, but scoped to a document fragment, not an entire document".

Maybe someone will come up with a word for it and then we'll say "Yes: what we used to call micropipelining".

Cheers,
Wendell



======================================================================
Wendell Piez                            mailto:wapiez@xxxxxxxxxxxxxxxx
Mulberry Technologies, Inc.                http://www.mulberrytech.com
17 West Jefferson Street                    Direct Phone: 301/315-9635
Suite 207                                          Phone: 301/315-9631
Rockville, MD  20850                                 Fax: 301/315-8285
----------------------------------------------------------------------
  Mulberry Technologies: A Consultancy Specializing in SGML and XML
======================================================================

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.