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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.