[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:"Calibri
Light",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:"Courier
New"">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:"Calibri
Light",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 <altitude> 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:"Calibri
Light",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
<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)?<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