xsl-list
[Top] [All Lists]

Re: [xsl] MatTS, an alternate syntax for XSLT

2006-04-01 16:06:36
Well, this proposal at least has some usefulness. I am somewhat wary
of the MatTS approach because, IIRC, the XML spec says that verbosity
is not a thing.

So why is Michael's suggestion so useful? because it hits at the very
center of what makes XML itself so useful of course. The semantic
richness implied by being able to mix languages in markup means that
one will have access to the whole panopolyp of human imaginarium.
As shown by Thomas Von Shrinavan's seminal polylinguistic analysis
"Eh? Meaning on multiple axii of interpretation" any language will
have, for every thousand words, a composite concept inexpressible in
any other language without use of an obscenity, and for every ten
thousand words a concept that is simply inexpressible in any language
whatsoever. This fine codswallop of the soul is food for what ails
modern markup as she is practiced, and I hope to see some more
forthwit.

Cheerios,
Bryan Rasmussen


On 4/1/06, Michael Kay <mike(_at_)saxonica(_dot_)com> wrote:
I find it mildly disappointing that you are still using long-winded names
like "trackNbr" in your XML source documents, and that XPath function names
still have long-winded names like, well, "name". Surely it's time we
established a convention that all elements in user documents should be
denoted by a single Kanji, and that function names should be written in
Hebrew?

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: Sean M. Burke [mailto:sburke(_at_)cpan(_dot_)org]
Sent: 01 April 2006 13:26
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] MatTS, an alternate syntax for XSLT

[NB: at http://use.perl.org/~TorgoX/journal/29175 I have
pasted a copy
of this message, in case the Unicode characters don't show up
right in
your email client.]

For some time now, the syntax of XSLT has bothered me -- its
verbosity,
that gushing typographic clutter, clearly encumbers best-practices
programming.

XLove [http://www.cs.rit.edu/~dpl1926/] suggests an alternate syntax
that emphasizes the functional nature of XSLT; and SXML
[http://okmij.org/ftp/Scheme/SXML.scm] posits a representation of
general XML data as Lisp forms. But both of these, aside from
reducing
close-tags to a single character, do very little to solve
XSLT's clutter
problem.

I think it's time for a better alternate syntax for viewing
and writing
XSLT. In this document I will propose such a system, which I
call MatTS
(Matryoshka Transformation Syntax).

XLove and SXML start out with an implementation of alternate
syntax as
an input which becomes conventional XSLT.  But so as to
better tune the
alternate syntax as a visual artifact, I instead choose to
implement the
alternate syntax as a view of XSLT, which XSLT becomes.  (As such, I
have left the development of an editing environment as a mere
implementational detail which I am sure the marketplace will
provide for
in due time, as it has done for UML, that other recent
breakthrough in
informatic display.)

Most hierarchy-based notations display their structure with bits of
matching punctuation, whether parens, brackets, or braces.
However, I
view this as a holdover from the days of daisywheel printers
and other
forms of mere movable type. With our modern bitmap displays and LASER
printers, it is far easier and clearer to display structure
as series of
matryoshka-like [http://en.wikipedia.org/wiki/Matryoshka_doll] nested
shapes -- say, boxes.  Clearly, (foo ((bar) baz)) is inferior to the
clarity of this diagram:

     +---------------+
     |foo +---------+|
     |    |+---+    ||
     |    ||bar|    ||
     |    |+---+    ||
     |    |baz      ||
     |    +---------+|
     +---------------+

[presented as ASCII art for ease of transmission]

This sort of matryoshka notation is the basis of my new
variant syntax
for XSLT, and it in fact gives the syntax its name. But in and of
itself, this notation would go no further than Xlt and SXML
at relieving
XSLT's clutter problem.  The greatest benefit of MatTS is in
providing a
terse syntax for all important XSLT constructs.  In the best
tradition
of modern higher mathematical notation and typography
[http://math.berkeley.edu/~ilya/papers/PL_Grassmannian/gel_dik
f.pdf], I
have chosen well-known Greek letters and various printers'
symbols for
the operators.

The following table illustrates and specifies this formalism:

     a apply-imports
     ß apply-templates
     t attribute
     ? attribute-set
     ? call-template
     ? choose
     ? comment
     µ copy
     ? copy-of
     ? decimal-format
     p element
     ? fallback
     ? for-each
     f if
     O import
     G include
     T key
     µ message
     ? namespace-alias
     ? number
     ? otherwise
     ? output
     ? param
     ? preserve-space
     e sort
     ? strip-space
     S stylesheet
     ? template
     ? text
     ? transform
     ? value-of
     d variable
     s when
     ? with-param
     ? processing-instruction

     ¿... test="..."
     v... name="..."
     ˜... match="..."
     §... select="..."
     «...» (general attribute value)

The preceding explanation aside, the best way to appreciate
MatTS is by
simply trying it out -- MatTS as a visualization application
is itself
implemented in browser-accessible XSLT, and so can be used to
view other
XSLTs as well as itself:
  http://interglacial.com/~sburke/pub/xsl/matts_usage_example.xsl
  http://interglacial.com/~sburke/pub/xsl/matts.xsl
Compare with the clutter of those XSLs when viewed in
conventional XSLT
notation:
  http://interglacial.com/~sburke/pub/xsl/matts_usage_example.xsl.txt
  http://interglacial.com/~sburke/pub/xsl/matts.xsl.txt


--
Sean M. Burke   http://search.cpan.org/~sburke/

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--



--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--