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

Re: defining correctness for an XML transformation - how?

  • From: "C. M. Sperberg-McQueen" <cmsmcq@blackmesatech.com>
  • To: Rick Jelliffe <rjelliffe@allette.com.au>
  • Date: Fri, 05 Jul 2024 08:16:08 -0600

Re:  defining correctness for an XML transformation - how?
Rick Jelliffe <rjelliffe@allette.com.au> writes:

> I haven't read all the thread so apologies if I am re-making some
> point, or saying something dumb that has been pointed out.
>
> Three quick points.
>
> 1. If your schema is recursive, then the problem of determining
> whether it is always correct is NP, isn't it? Infinite number of
> inputs.

Certainly most programs are designed to handle an infinite number of
inputs; that is one reason testing cannot provide full assurance of
correctness.

I don't think that recursive properties in the specification of
correctness necessarily render proofs intractable.  Recursion and proof
by induction go hand in hand.

> Which, if so, probably needs to limit or condition our
> expectations or approaches.

Probably, yes.  There are many things we would like to do that we cannot
do; sometimes we can come close, or we can do them sometimes but not
always.  (Sometimes for example we can prove that a procedure
terminates, even though that problem is in the general case
undecidable.)  There are some things we would like to express that we do
not know how to express in a completely satisfactory way.  There are
some things we would like to be able to prove that we cannot prove.
Sometimes we can find an expression that is not quite what we want but
seems to be better than nothing; sometimes we can prove a property
related to the property we would ideally like to prove.

> 2. Obviously people use Schematron to validate pre and post
> conditions, including co-constraints between input and output all the
> time. it is a common use.

Yes, it seems likely that assertions expressed with XPath are currently
as close as anything we have to the kind of language needed.  And
Schematron provides a convenient way to package such assertions and
check them.  I'm not sure whether assertions in XPath can express the
kinds of properties needed to specify the functional correctness of
arbitrary transforms.  Some of them, yes.  Take the property that for
every 'name' element in document O there is some 'Airport_Name' element
in document I with a related string.  We can say

  every $o in $O//name satisfies
  some $i in $I//Airport_Name satisfies
  string($o) eq normalize-space($i)

Can we also express the property that the space-normalized form of the
string value of every distinct 'Airport_Name' element appears exactly
once in the output?  Maybe; I'll have to think about it.

Can we express the property that the input document I and the ougput
document O define grammars G and G' such that L(G) = L(G')?  I don't
know.

I'll have to read up on how to use Schematron for co-constraints on
input and output.

> ...

> 3. The problem might be considered as a category error: we do not
> actually want to validate the Inputs and outputs, we want to validate
> the XSLT.

I'm not sure what problem you refer to here.  The thread started with
the question

    Forget *showing* that an XML transformation is correct -- how would
    you define correctness formally, if you wanted to be able in
    principle to provide a machine-checkable proof of correctness?

I think there is a relation -- at least in some cases -- between
specifying the constraints on input and output (and their relation to
each other), on the one hand, and specifying correctness of the
transform on the other.  In some cases, at least, the correctness of the
transform can be described generically as: for any input satisfying the
pre-conditions, the transform produces output which satisfies the
post-conditions (including conditions on the relation of output to
input).

This situation has the advantage that even when we do not know how to
prove the correctness of the transformation in general, we can still
check the correctness of individual applications of the transform.

Whether correctness can always be specified that way, I do not know --
one reason I asked the list.

> I came up with an approach for a bank years ago where I converted an
> XSLT into just the possible element branches it could generate. This
> then could be stitched in with other similar data from subsequent
> stages in the pipeline, so that the result was an abstract document
> (on a spreadsheet) that showed for each input what elements could
> appear in the final output.  This helped them feel on top of the
> pipeline, to reason about flaws and behaviour, without needing XSLT
> expertise.

Excellent.

Michael

-- 
C. M. Sperberg-McQueen
Black Mesa Technologies LLC
http://blackmesatech.com


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


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
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

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.