Another thing to observe is the change that the internet infrastructure is going through, with the rapid evolution to XML as a data representation standard.    Years ago, technical personnel felt quite comfortable using utilities such as FTP, gopher and telnet in order to access resources on the web. Those utilities provided the “user interface” to the web.  At that time, the standard was at the connectivity level, with TCP/IP as the protocol. 

With the advent of HTML, an instantiation of SGML, the standard then evolved to the presentation layer, and the standard interface to the web became web pages instead of command line utilities.

Let’s pause here for a moment… all of you are obviously familiar with HTML.  But let’s consider it’s strengths and weaknesses

HTML is really good at what it was designed to do:  Present stuff, and I use that term generally on purpose, through browsers to human beings.  HTML provides a set of simple tags that are all about presentation.  But HTML provides no information that represents the meaning of the stuff on the page behind the browser.

For example, let’s say that I want to take a vacation to the Caribbean.  I want to know where the weather is best.  So I can browse weatherchannel.com, and go to the page for Grand Bahama Island, where I see a sun with a smiley face on it, with an “87” in the middle.  So it’s obvious to me as a human being that it is going to be 87 degrees, sunny and clear there.   Now I can browse to other pages, look at each page, and then conclude that the weather will be best in the Bahamas.  But what is behind that Grand Bahama page?   Well, somewhere in the middle of the text, there is an “87,” surrounded by <b> tags, which mean “bold.”  Further, there is a file reference to “sun_happy.gif,” which is the sun with the smiley face.   So when I look at that page, I understand what it means.  But what if I wanted a simple utility to go out to each page in the Caribbean, find the temperature info for each location, sort, then tell me where it would be warmest?  It wouldn’t be possible, because there is no concept of “temperature” in that data.  The 87 is meaningless.  It’s just two digits that only have meaning when “consumed” by a human being.

So, HTML is really good at presenting stuff (text, data, pictures) through a browser to a human being.  But it’s awful at everything else since there is no meaning behind the information on the page.

Which is why XML exists.  XML allows people to define their own tags, with their own tag names, in order to define a data structure for something that is meaningful to them.  So for Boeing, they might want to use XML to describe the characteristics of a plane or the parts of planes.  Marriott may want to use XML to describe hotel rooms and resort properties, and Fred’s Taco Stand may use it to describe tacos and the ingredients therein.   The point is, XML can be used to describe anything, but it’s all about the data, not about the presentation. 

This leads us to the more interesting and rapid evolution to the next phase of the internet… a phase where the standard becomes the ability to access resources in a standard programmatic way by sending and receiving messages in standard formats over HTTP.   Those messages are represented in XML, and changes the way that people will interact with the web, allowing the ability to “program” the web in addition to browsing the web.