[
Lists Home |
Date Index |
Thread Index
]
Hi Folks,
A friend sent me the below response. I think that it's excellent.
Doesn't a grammar also allow a dynamic assembly which can be understood?
(after all, what are we doing here; what is required to write any computer
program?).
Also, isn't a grammar not necessary only in the case where those things
received are order-independent? Clearly, the three words "John" "Shot"
"Roger" carry completely different meanings depending on order. Some of
which are nonsense, some of which are grammatically valid (but ambiguous),
some of which are grammatically valid, unambiguous, but wrong. The grammar
seems to serve to reduce the set of valid potential statements, thereby
reducing potential error (also, therefore, reducing info content). In the
three words above the confusion is among the actor, the object, and the
action.
Here's a twist on your conjecture you've got me to think about: "all
grammars presuppose an exchange protocol." I am thinking that a grammar is
useful if and only if an exchange has taken place. If an exchange has not
taken place, then what is it whose grammar is being evaluated? A grammar is
an evaluation on that which is (or potentially will be) received. Can you
think of a grammar which doesn't require an exchange? I can't. Even if I
construct a grammar for my own purposes, once I write it down I've invoked
an exchange mechanism.
Therefore, an exchange is a necessary (implicitly assumed) pre-condition for
any realized grammar. The grammar helps one disambiguate/interpret that
which is received.
The previous also suggests that grammars and protocols are fundamentally
different; and begs the question as to whether they can be reasonable
compared.
But let's try another conjecture: "All exchanges require a protocol." If
there were no protocol, then it would be only luck that caused an exchange
to occur. But maybe luck is ok... So let me modify the above to be: "All
purposeful exchanges require a protocol." Another: "Exchange protocols may
be implicit as well as explicit." Must protocols be binary? Can't protocols
be unary? Terniary? Etc... Can protocols be passive?
Ok... so there must be a protocol, and there may be a grammar (to interpret
the result of the exchange). What happens if you put building debris or
garden debris out for the trash collector? I'm guessing it wouldn't be
picked up. Why? Besides a protocol, he uses a "grammar" to interpret things
which you are exchanging.
-----Original Message-----
From: Roger L. Costello [mailto:costello@mitre.org]
Sent: Friday, January 14, 2005 8:42 AM
To: 'XML Developers List'
Subject: RE: [xml-dev] A bunch of components, but no mandated organization -
reasonable?
Hi Folks,
Many thanks for the outstanding messages!
Yesterday Michael Kay made an insightful observation. He noted that there
can be an effective exchange of information when there exists a "protocol"
between the exchanging parties:
> Of course it's possible to set up a system in which anyone who receives a
> customer record is expected to interpret it as meaning "please update the
> information you hold on this customer". Equally, it's possible to set up a
> system in which anyone who receives a customer record is expected to
> interpret it as meaning "please phone this customer and find out what he
> wants". Any bunch of bits you send me is meaningful if we've agreed a
> protocol, and meaningless otherwise.
Thus, if there exists a protocol between us then I can dynamically assemble
a bunch of components and send them to you. And you will be able to
dynamically understand my assembly!
Let me give some concrete examples.
Example - Trash Collection
Every Wednesday morning I bring all my trash out to the front of my house.
During the day a trash collector comes along and picks up the trash. When I
return home in the evening the trash is gone.
Information (trash) was exchanged. And it occurred without a-priori
knowledge by either party of the specific transaction that would occur. The
exchange was possible because:
(1) Each party understood the components (containers of trash), and
(2) There existed a protocol between the sender (me) and the receiver (the
trash collector).
The protocol employed: "I give, you take".
Example - Browsers
I have created some HTML pages and placed them on my web site. When your
browser visits my web site it will make effective use of the stuff that I
have put in my HTML pages.
Again, information was exchanged. And it without a-priori knowledge by
either party of the specific transaction that would occur. The exchange was
possible because:
(1) Each party understood the components (HTML documents), and
(2) There existed a protocol between the sender (my web server) and the
receiver (your browser).
The protocol employed: "I give, you take".
I suspect that the "I give, you take" protocol is a common, powerful
protocol. Can you think of other common, powerful protocols?
Summary: Transferring Information using a Shared Grammar versus a Shared
Protocol
Given a bunch of components, how can the information in those components be
effectively transferred between you and I? We seem to be narrowing in on
two approaches:
1. Shared Grammar: craft an XML Schema that completely lays out the order
and number of occurrences of each component. That is, completely specify
the grammar for the components. The grammar (XML Schema) is then the
contract between sender and receiver.
2. Shared Protocol: define an exchange protocol. The form of the assembly
of components that are sent is unspecified and irrelevant.
[Tangential comment: there is a philosopher, Karl Popper, who wrote
(paraphrasing), "The quickest way to move a science forward is through the
use of provocative conjectures". In the spirit of Karl Popper I thus make
the following provocative conjecture.]
Conjecture: Information exchange using shared protocols is a superior
approach to information exchange using shared grammars.
In other words, when you create an XML Schema simply declare a bunch of
independent components, but don't mandate any particular ordering of them.
[Another tangential comment: Popper says that after making a conjecture it
is important to test the conjecture. So, let's test the conjecture.]
Test 1: Support for information exchange in a dynamically changing
environment: the Shared Protocol approach is a "loosely coupled" approach.
That is, the nature of the "payload" is irrelevant (I use the term "payload"
here as it just dawned on me that HTTP is a "protocol" and the information
transferred using the HTTP protocol is called a "payload").
Conversely, the Shared Grammar approach is not well-suited to dynamic
environments. Witness the great amount of effort and coordination that is
required to alter an XML Schema.
Test 2: ??? (What are some other tests that might be applied to the two
approaches?)
/Roger
-----------------------------------------------------------------
The xml-dev list is sponsored by XML.org <http://www.xml.org>, an
initiative of OASIS <http://www.oasis-open.org>
The list archives are at http://lists.xml.org/archives/xml-dev/
To subscribe or unsubscribe from this list use the subscription
manager: <http://www.oasis-open.org/mlmanage/index.php>
|