My son is two and a half years old. Already he is asking a sequence of questions:
"What is that?"
"A power meter."
"What is it made of?"
He raps the outside of the power meter. "It is made out of glass."
"Yes, the cover is made out of glass."
"I think that there are stinky chemicals in it."
He knows that everything is made of something else. He is also aware from recent conversations that chemicals are the basis for everything, and that sometimes chemicals are stinky. He understands that words, really, don't mean anything. It is their relation to other words, and the underlying structure of words within words that explains an object.
There are stories that weave these objects together, both pretend stories and real stories.
We went to the park yesterday and ate some chinese food and chocolate milk that we bought at Safeway. For those of you that aren't familiar with Safeway, this is a grocery store chain in the western United States. Safeway was one of the first stores to introduce a club card that is required if you want a sale item. Under the tree in the park was a receipt for a single can of Hurricane malt liquor, on sale for 30 cents off, a total of 99 cents. The woman's name, presumably, was on the receipt, as was the time of purchase and the fact that she had received 5 free sandwiches. This means that she has purchesed 35 deli sandwiches. Judging by the fact that the receipt was in the park, she also drank the beer in the park, under the tree. By using the club card, this woman has created a lot of information surrounding the purchase of a single item. What, do you think, is more valuable, the beer, or the information?
It is a can of beer, made up of a can made of metal, some water, some flavor, some alcohol. It isn't even real beer. There isn't much craft here, it is the percentage of alcohol that distinguishes the beer. Now, the beer is cold, yes, and the beer is relatively available and near a park, which is why it was purchased. This brings us back to the information.
Safeway discounts 30 cents if you use your club card. Right off the bat I'd say that the information, then, is worth 30 cents relative to the cost of the beer. The purchase data helps decide what beer to put out in the cooler, and, in this case, what beer to put on the end cap near the sandwiches. The data can also be sold to advertisers.
None of this is exactly news, but we have shown that the beer purchase has a lot of information associated with it, and is arguably much more interesting than the beer itself. In fact, being able to sit under the tree in the park next to Safeway and enjoy a beer at a cost of 99 cents is probably much more interesting than the beer as well. It isn't the kind of beer you drink for flavor. She can tolerate the stinky chemicals. Here is a review of the beer she purchased.
The story is interesting as well. Who is this woman? Why is she drinking malt liquor in the park?
The tangent I'm on in the back of this discussion is that the purchase is marked up. Bobo understands that nested markups describe an object and can tell a story. For those of you not familiar with this idea, HTML stands for HyperText Markup Language. Many of you know how to markup text as HTML and do things like make a word bold. The markup uses the b tag to make the text between the tags bold. The text has an attribute. Well, HTML is a subset of SGML. XML is a simplification of SGML and is fairly widespread. For an interesting glimpse at these issues in relation to the above, see Markup Languages and (Non-) Hierarchies.
When I say the purchase of the beer was marked up, I mean that the entire nested structure of related information is facilitated by the Safeway club card. I have no idea how well this data is used, but I suspect that it is put to increasingly productive use. I am also interested in the fact that Bobo is exploring this kind of heirarchy as one of his first intellectual conversations. How is this classified? What does it contain? What is it made of? These are the questions he wants answered. Further, he doesn't particularly want the complicated explanation or story. I told him a made up story about how a farmer had a bunch of corn that Thomas the train had to haul, but when he found out the train cars where too heavy he needed Percy's help. Bobo had me tell that story repeatedly with minor variations until I got too sick of it to tell it again.
As an interesting tangent, markup language can be used to show a picture for the story of the woman buying the beer. Here is an SVG document, wich is an XML document that renders as a picture in advanced browsers:
Here is the xml document that your browser might render:
Here is the FIG file:
And here is a picture of a browser that is rendering the picture that might be used in the story of the woman buying beer:
OK. I'm pushing it here. I wanted to show the full array of markup, though, and what that might mean, and getting kind of general.
I've been looking at DocBook as a way to document systems and network administration tasks. Even key combinations can be marked up. You can get all kinds of benefits from this. Once the information is completely marked up, down to the key combinations, the information can be re-presented in a meaningful way.
On my network administration website that I run, the single most popular query is resetting the root password on MySQL. I wrote a somewhat stupid article on how to set this in January 2002, and it is still, by far, the most popular. The reason is that it takes a general search via a search engine to find out how to do this quickly. The existing documentation isn't good enough.
Perhaps I can learn from Bobo:
"What is the problem?"
"I forgot the root password for MySQL?"
"What is a root password?"
"It is a sequence of characters that need to be provided for complete access to the MySQL database."
"How do you set the sequence of characters?"
Anyway, there are a lot of tools out there now that are meant to do this exact thing: markup the text so it is inherently meaningful and present the text so that it is informative. In fact, there is no reason why the needed action couldn't be performed by the documentation browser. Say, for instance, that the version of MySQL was marked up. The browser could then find the exact procedure to do and prompt you to see if you would like to do it. Likewise, the fact that you did it could be re-embedded into your local documentation.