It was 1984 (maybe 1985) and I was a young and carefree Computer Science
student. Looking back on it, I was so wet behind the ears, in so many
ways...but that's another story best left for another time. Lets talk
about X.25 instead.
Back in the mid-Eighties, X.25 was the only game in town for distributed
networking. I worked for a company in Dublin that sold Apple Computers
(Apple Lisa and Apple II at the time). The operators of the local X.25
network rolled out a new service. In today's terminology, it would be
called a Web Service. The new service allowed Telex messages to be
sent/received by Apple II users thus obviating the need for a telex
machine. Telex was famously impossible to buy, expensive to rent, and
vital for business purposes at the time. With the new X.25-based Telex
service, you could get an Apple II with a blistering 300 baud modem to
do the job for a fraction of the cost.
The Telex-enabled Apples IIs sold like hot cakes. The solution from the
company I worked for made use of a little trick I happened upon one
morning by accident. The default communications package on the Apple II
at the time did not have the ability to send files; it did, however,
have the ability to "play back" macros stored on disk over a
communication link. By treating Telex messages as macros, we were able
to send them over the X.25 network without any extra software.
Serendipity in action.
Roll forward to more recent times and such chance discoveries can, I
suggest, be seen at work all over the map. Take HTTP 1.0 for example.
The Web, as you all know, was created as a hypertext publishing system
in the first instance. Nowadays, it is heavily used also for interactive
application deployment. Happily, HTTP provides the basic hooks to allow
this interactive behavior to be achieved. In particular, it provides an
HTTP response code "301". Here is what RFC 1945 (HTTP 1.0) has to say
about it:
"301 Moved Permanently
The requested resource has been assigned a new permanent URL and any
future references to this resource should be done using that URL.
Clients with link editing capabilities should automatically relink
references to the Request-URI to the new reference returned by the
server, where possible."
It sounds like a facility added to the protocol to allow old URLs to be
maintained even though the resources underneath have moved. However, it
is used to great effect by today's Web application developers to guide
users through an interactive series of views of the *same* resource
(e.g., a shopping basket). Every mainstream Web Application development
environment allows developers to craft interactive applications by
judicious (devious?) use of browser redirects.
Serendipity? I think so but I would sure like to hear from anyone who
knows better.
WAP is another one. Wireless Access Protocol contains within its
boundaries a markup language known as WML (Wireless Markup Language).
WML has had a distinctly shaky start in the wireless telephony world but
may yet be a serendipitous runaway success. Where? Cable TV! Yes folks,
I kid you not, Wireless Markup seems destined to be a success in the
distinctly wired world of cable TV thanks to its use in Interactive
Television. This also features Satellite communications of course, which
is wireless but not in the sense intended by the designers of WAP and
certainly does not feature any WML going up and down satellite links.
You don't believe me do you? Well go to that fountain of truth and
elucidation known as Google and search for "WAPTV". See?
The more you look, the more examples of serendipity pop out of the
woodwork. XML has them aplenty. Take Schematron for example. What is it?
A fantastic serendipitous shimmy by Rick Jelliffe that unlocked the
power of XSLT as a validation mechanism.
How about XPath? If I had a dollar for every application I've seen that
uses XPath as the Query language.... And perhaps most intriguing of all:
Is semantic data modeling with XML itself pure serendipity?
The SGML standard (ISO 8879:1986), from whence XML came, never once
mentions tagging data semantically to my knowledge. All the examples in
the text are to do with rolling your own typographical tag names for
paragraph, section, list, item, and so on. You will search in vain for
tag names like Invoice, Person, Product, and so on.
And yet, the SGML world used the semantic data modeling side of SGML
from very early on. Moreover the success of XML is more down to semantic
data modeling than device-independent typography.
Years and years ago I asked on the SGML Usenet group how, where, and
when did this great leap into semantic modeling occur. The origins of it
seem clouded in mystery. If you chance upon the answer on your travels
through the Noosphere, please drop me a note.