[prev in list] [next in list] [prev in thread] [next in thread] 

List:       xml-dev
Subject:    Re: [xml-dev] Why do you share XML?
From:       "Simon St.Laurent" <simonstl () simonstl ! com>
Date:       2015-10-03 10:40:47
Message-ID: 560FB0AF.2040307 () simonstl ! com
[Download RAW message or body]

This is not meant as snark, really.

I think part of the problem with this question is that you are asking 
the wrong "people", and the people who can actually answer this question 
well cannot reply on this forum.  Their parents and creators can, but 
that may not actually give you the right response.

Clear answers to this may exist, but you won't necessarily get them by 
asking people.  Interrogating code will give you a much clearer picture, 
though at much higher cost.  Code may not be labeled as "directing" or 
"enabling", but viewing it through a machine version of an 
anthropological lens may give you the answers you seek. Observing actual 
behavior will likely tell you much more about what machines are doing 
than asking their creators what the machines are supposed to do.

Good luck!

Thanks,
Simon


On 10/1/2015 3:21 PM, Costello, Roger L. wrote:
>
> Hi Folks,
>
> Why do you create XML instances and then share—communicate—the 
> instances with others? I have been thinking about this and it seems to 
> me there are two reasons, which I describe below. I am interested in 
> hearing your thoughts on this. Perhaps there are other reasons for why 
> we share XML? Perhaps the description below is unclear and needs 
> sharpening? Having a crystal-clear vision of why we share XML … well, 
> that seems supremely important.
>
> Note: this discussion is focused exclusively on machine-to-machine 
> sharing of XML instances:
>
> It seems to me the fundamental reason we share XML is to either (a) 
> direct or (b) enable /behaviors/.
>
> 1. Sharing XML as a Means of Directing the Behavior of Machines
>
> When you share XML it because you want to dictate how other machines 
> behave. You and the machines have agreed /a priori/ as to what the XML 
> and its data means and what behavior the machines should exhibit upon 
> receiving the XML. In a sense the XML is pushing buttons in the 
> machines, causing them to behave in certain ways:
>
> Example #1: The Internet Protocol (IP) header is an example of this. 
> Each field in the IP header elicits a specific behavior in routers and 
> gateways. The routers and gateways have agreed /a priori/ to behave in 
> the desired manner.
>
> Example #2: The XSLT vocabulary is another example of this. The XSLT 
> specification describes the behavior of machines (XSLT processors). 
> Upon encountering, say, an xsl:for-each element the XSLT processor 
> must iterate through each sequence item.
>
> Douglas Comer <https://www.cs.purdue.edu/homes/comer/> defines 
> "protocol" this way: /Protocol specifications define the syntactic and 
> semantic rules for communication. They give the details of message 
> formats, describe how a computer responds when a message arrives, and 
> specify how a computer handles errors or other abnormal conditions/. 
> Hey, this sounds exactly like what I've been describing. XML is a 
> protocol specification.
>
> 2. Sharing XML as a way of Enabling Various Behaviors
>
> Perhaps you are /laissez faire/ about how machines should behave. You 
> specify the meaning of the markup and of the data and leave it up to 
> each machine that receives the XML to decide how to behave. Although 
> each machine gets to choose how it behaves (i.e., what it does with 
> the markup and the data), it is not free to interpret the XML in its 
> own way. The XML creator has defined what the markup and the data 
> means, the machines must conform to that definition. So in this case 
> the sharing of XML triggers a behavior but does not dictate the exact 
> behavior.
>
> XML is a collection of data that a community has determined to be 
> sufficient and useful:
>
> Example: An XML instance has an element, altitude, whose value is an 
> integer. The data within the element must be interpreted as the number 
> of feet above the ground. All machines that receive the XML must 
> interpret the <altitude> element in this way.
>
> Comparison
>
> It seems to me that the second usage of XML (using XML to elicit 
> various, unspecified behaviors) is harder, for these reasons:
>
> (1) How do you know that the "collection of data" in the XML is 
> complete, that there is sufficient information for machines to do 
> something useful with it?
>
> (2) Compliance testing is really hard. How can you be sure that all 
> machines will interpret the data according to the semantics that you 
> (the creator of the XML) specified? For instance, how can you be sure 
> that every machine will interpret the data within <altitude> as the 
> height in feet above ground, and not the height in meters above 
> ground, or perhaps the height in feet above mean sea level (MSL)?
>
> Comments?
>
> /Roger
>


[Attachment #3 (multipart/related)]

[Attachment #5 (text/html)]

<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    This is not meant as snark, really.<br>
    <br>
    I think part of the problem with this question is that you are
    asking the wrong "people", and the people who can actually answer
    this question well cannot reply on this forum.  Their parents and
    creators can, but that may not actually give you the right response.<br>
    <br>
    Clear answers to this may exist, but you won't necessarily get them
    by asking people.  Interrogating code will give you a much clearer
    picture, though at much higher cost.  Code may not be labeled as
    "directing" or "enabling", but viewing it through a machine version
    of an anthropological lens may give you the answers you seek. 
    Observing actual behavior will likely tell you much more about what
    machines are doing than asking their creators what the machines are
    supposed to do.<br>
    <br>
    Good luck!<br>
    <br>
    Thanks,<br>
    Simon<br>
    <br>
    <br>
    <div class="moz-cite-prefix">On 10/1/2015 3:21 PM, Costello, Roger
      L. wrote:<br>
    </div>
    <blockquote
cite="mid:DM2PR09MB0351FBA85DD271A188E7AF42C84C0@DM2PR09MB0351.namprd09.prod.outlook.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <!--[if !mso]><style>v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style><![endif]-->
      <style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:"Calibri Light";
	panose-1:2 15 3 2 2 2 4 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0in;
	margin-bottom:.0001pt;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:#0563C1;
	text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
	{mso-style-priority:99;
	color:#954F72;
	text-decoration:underline;}
span.EmailStyle17
	{mso-style-type:personal-compose;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Hi Folks,<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Why do you create
          XML instances and then share—communicate—the instances with
          others? I have been thinking about this and it seems to me
          there are two reasons, which I describe below. I am interested
          in hearing your thoughts on this. Perhaps there are other
          reasons for why we share XML? Perhaps the description below is
          unclear and needs sharpening? Having a crystal-clear vision of
          why we share XML … well, that seems supremely important.<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Note: this
          discussion is focused exclusively on machine-to-machine
          sharing of XML instances:<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%"><img
            id="Picture_x0020_3"
            src="cid:part1.05010207.08070708@simonstl.com" height="123"
            width="425"><o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">It seems to me
          the fundamental reason we share XML is to either (a) direct or
          (b) enable
          <i>behaviors</i>.<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-top:12.0pt;line-height:106%;page-break-after:avoid">
          <span
            style="font-size:16.0pt;line-height:106%;font-family:&quot;Calibri
            Light&quot;,sans-serif;color:#2E74B5">1. Sharing XML as a
            Means of Directing the Behavior of Machines<o:p></o:p></span></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">When you share
          XML it because you want to dictate how other machines behave.
          You and the machines have agreed
          <i>a priori</i> as to what the XML and its data means and what
          behavior the machines should exhibit upon receiving the XML.
          In a sense the XML is pushing buttons in the machines, causing
          them to behave in certain ways:<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%"><img
            id="Picture_x0020_1"
            src="cid:part2.01070107.00060304@simonstl.com" height="109"
            width="318"><o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Example #1: The
          Internet Protocol (IP) header is an example of this. Each
          field in the IP header elicits a specific behavior in routers
          and gateways. The routers and gateways have agreed
          <i>a priori</i> to behave in the desired manner.<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Example #2: The
          XSLT vocabulary is another example of this. The XSLT
          specification describes the behavior of machines (XSLT
          processors). Upon encountering, say, an
          <span
            style="font-size:10.0pt;line-height:106%;font-family:&quot;Courier
            New&quot;">xsl:for-each</span> element the XSLT processor
          must iterate through each sequence item.<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%"><a
            moz-do-not-send="true"
            href="https://www.cs.purdue.edu/homes/comer/">Douglas Comer</a>
          defines "protocol" this way:
          <i>Protocol specifications define the syntactic and semantic
            rules for communication. They give the details of message
            formats, describe how a computer responds when a message
            arrives, and specify how a computer handles errors or other
            abnormal conditions</i>. Hey, this sounds exactly like what
          I've been describing. XML is a protocol specification.
          <o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-top:12.0pt;line-height:106%;page-break-after:avoid">
          <span
            style="font-size:16.0pt;line-height:106%;font-family:&quot;Calibri
            Light&quot;,sans-serif;color:#2E74B5">2. Sharing XML as a
            way of Enabling Various Behaviors<o:p></o:p></span></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Perhaps you are
          <i>laissez faire</i> about how machines should behave. You
          specify the meaning of the markup and of the data and leave it
          up to each machine that receives the XML to decide how to
          behave. Although each machine gets to choose how it behaves
          (i.e., what it does with the markup and the data), it is not
          free to interpret the XML in its own way. The XML creator has
          defined what the markup and the data means, the machines must
          conform to that definition. So in this case the sharing of XML
          triggers a behavior but does not dictate the exact behavior. <o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">XML is a
          collection of data that a community has determined to be
          sufficient and useful:<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%"><img
            id="Picture_x0020_2"
            src="cid:part4.09060904.03010900@simonstl.com" border="0"
            height="120" width="326">
          <o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Example: An XML
          instance has an element, altitude, whose value is an integer.
          The data within the element must be interpreted as the number
          of feet above the ground. All machines that receive the XML
          must interpret the &lt;altitude&gt; element in this way.<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-top:12.0pt;line-height:106%;page-break-after:avoid">
          <span
            style="font-size:16.0pt;line-height:106%;font-family:&quot;Calibri
            Light&quot;,sans-serif;color:#2E74B5">Comparison<o:p></o:p></span></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">It seems to me
          that the second usage of XML (using XML to elicit various,
          unspecified behaviors) is harder, for these reasons:
          <o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">(1) How do you
          know that the "collection of data" in the XML is complete,
          that there is sufficient information for machines to do
          something useful with it?
          <o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">(2) Compliance
          testing is really hard. How can you be sure that all machines
          will interpret the data according to the semantics that you
          (the creator of the XML) specified? For instance, how can you
          be sure that every machine will interpret the data within
          &lt;altitude&gt; as the height in feet above ground, and not
          the height in meters above ground, or perhaps the height in
          feet above mean sea level (MSL)?<o:p></o:p></p>
        <p class="MsoNormal"
          style="margin-bottom:8.0pt;line-height:106%">Comments?<o:p></o:p></p>
        <p class="MsoNormal">/Roger<o:p></o:p></p>
      </div>
    </blockquote>
    <br>
  </body>
</html>

[Attachment #6 (image/png)]
[Attachment #7 (image/png)]
[Attachment #8 (image/png)]

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic