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

Re: things about grouping

Subject: Re: things about grouping
From: Ihe Onwuka <ihe.onwuka@xxxxxxxxx>
Date: Thu, 29 Nov 2012 05:58:45 +0000
Re:  things about grouping
> Since we're talking about "except" and language definitions, has anyone
> ever proposed a different form (or is there a different form for) the
> construct:
>
> div[not(* except (heading,para))]
>
> It's really useful, but I find it frequently brain-melting, especially
> as a component of more complex expressions.
>

A problem here is the mixture of notation from mathematical (set
theoretic in the form of except) and non-mathematical (the comma
operator).

Then you have the not operator  and the * operator straddling the two domains.

I'll try and recast this in the set-theoretic domain   to get rid of
the type abuse by making the following (possibly wrong) assumptions

the comma operator corresponds to union written as | (by definition a
set is unordered so the additional ordering constraint imposed by the
, operator is meaningless)
* corresponds to the universal set U (in this case the universe is
restricted to child elements of div)
not is set theoretic complement which  I will rewrite as '
// is the set difference operator (borrowed from Haskell)

So we can reduced the parsing of the predicate to a problem of
elementary set theory

( U // (heading | para))'

 which you can solve yourself of avail of my effort below.

By equivalence or you can visualize with a Venn diagram

U // (heading | para) = U intersect (heading|para)'

By DeMorgan's law

( U intersect (heading|para)')' is

U' | (heading|para)

and since | is associative we can rewrite as U' | heading | para

By definition U' is the empty set

and the empty set | X is X.

So unless there is a problem with my translation I'd say that your
predicate evaluates to heading|para

and your expression is div[(heading|para].

Now (get ready for the leap of faith and giant hand wave), substitute
the comma operator back for the | and you have div[(heading,para]









So how do

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.