Re: Are there invariants in XML processing?
"G. Ken Holman" <[email protected]>
| Newsgroups | gmane.text.xml.devel |
|---|---|
| Message-ID | <[email protected]> |
Thank you, Stefan! Interesting points made. I think it will take me a while to internalize the distinctions. . . . . . Ken At 2022-05-01 17:47 +0200, Stefan Hagen wrote: >On Sun, May 1, 2022, at 15:44, G. Ken Holman wrote: >>Forgive me, but I'm trying to understand the use >>of the noun "invariant". This is the first I've >>seen it used, and it is being bandied about. >>Rick's post using it extensively is dated 2016, >>so I feel very much out of the loop. >> >>Is an invariant any different than a constraint? >> >>Does the use of this noun come from another >>discipline where the use is common? >> >>When does it help the listener/reader to use the >>noun "invariant" rather than "constraint" or some other word? >> >>Thanks for your patience with my questions ... I'm just curious. >> >>. . . . . Ken >> >>At 2022-05-01 14:08 +1000, Rick Jelliffe wrote: >> >For a Schematron introduction to this, including >> >document invariants (fixed and co-occurrence) >> >and input/outputà invariants, and round-trip >> >invariants, see Six Kinds of Validation using >> >Schematron at >> ><<https://www.schematron.com/document/279.html >> >https://www.schematron.com/document/279.html>https://www.schematron.com/document/279.html >> > >> >For people interest in the practical theory of >> >invariants, Bertam Meyers' work on Design by >> >Contact still is a great place to start: he >> >couches it in functional terms of pre-condition, >> >invariant,à post-condition, which I think is >> >more systematic than just "invariants". >> > >> >For the example, the Schematron IO validation >> >(output to input) might be (roughly) >> > >> ><sch:pattern >> >id="publicMilitaryIndicator-nullTransform" documents="'input.xml'"> >> > >> >à à à <sch:rule context="publicMilitaryIndicator"> >> >à à à à à à à <sch:let >> >name="matching-output" value="myFunc:findMatchingRow(., 'output.xml')" /> >> >à à à à à à >> >à à à à à à à <sch:assert test="TYPE = >> >'A' or TYPE = 'B' or TYPE = 'C'" >> >role="pre-condition" >Every >> >publicMilitaryIndicator input should have a >> >TYPEà with value A, b, or C (i.e., Civil, Joint, Military)</sch:assert> >> > >> >à à à à à à à à à <sch:assert >> >test="$matching-output/TYPE = 'A' orà >> >$matching-output/TYPE = 'B' orà >> >$matching-output/TYPE = 'C'" >> >role="post-condition" >Every >> >publicMilitaryIndicator output should have a >> >TYPEà with value A, b, or C (i.e., Civil, Joint, Military)</sch:assert> >> > >> >à à à à à à à à <sch:assert >> >test="$matching-output" role="invariant">Every >> >input publicMilitaryIndicator should have a matching output</sch:assert> >> > >> >à à à à à à à à à <sch:assert >> >test="$matching-output/TYPE= ./TYPE" >> >role="invariant" >Every input >> >publicMilitaryIndicator TYPE value should be >> >carried through to the output</sch:assert> >> > >> ></sch:rule></sch:pattern> >> > >> >Rick >> >>_______________________________________________________________________ >> >>XML-DEV is a publicly archived, unmoderated list hosted by OASIS >>to support XML implementation and development. To minimize >>spam in the archives, you must subscribe before posting. >> >>[Un]Subscribe/change address: >><http://www.oasis-open.org/mlmanage/>http://www.oasis-open.org/mlmanage/ >>Or unsubscribe: >><mailto:[email protected]>[email protected] >>subscribe: >><mailto:[email protected]>[email protected] >>List archive: >><http://lists.xml.org/archives/xml-dev/>http://lists.xml.org/archives/xml-dev/ >>List Guidelines: >><http://www.oasis-open.org/maillists/guidelines.php>http://www.oasis-open.org/maillists/guidelines.php >Invariant to me signals not varying under some assumptions. >Constraints are external to, while invariants >are internal to the system we observe. >Constraints may result in invariants. >If cows cannot leave a fenced field, the number of cows is the invariant. >Constraints can be many, like no one opening the >fence, no cow strong and willing enough to break >through, no big enough holes appearing, no bird >of prey large enough striking and lifting, >That is what I am used to. > >Best, >Stefan -- Contact info, blog, articles, etc. http://www.CraneSoftwrights.com/x/ | Check our site for free XML, XSLT, XSL-FO and UBL developer resources | Streaming hands-on XSLT/XPath 2 training class @US$125 (5 hours free) | Essays (UBL, XML, etc.) http://www.linkedin.com/today/author/gkholman | _______________________________________________________________________ XML-DEV is a publicly archived, unmoderated list hosted by OASIS to support XML implementation and development. To minimize spam in the archives, you must subscribe before posting. [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/ Or unsubscribe: [email protected] subscribe: [email protected] List archive: http://lists.xml.org/archives/xml-dev/ List Guidelines: http://www.oasis-open.org/maillists/guidelines.php