Good Enough

Recovered from the Wayback Machine.

Mark Pilgrim does not believe in the Semantic Web. He believes Semantics is hard; that the syntax for the Semantic Web is laughably complex. Mark wants to stay with the “…simple but relatively well-defined semantics of HTML.”

HTML is good enough for Mark, and I say that’s great, because no one wants to force the Semantic Web on Mark.

But HTML is not ‘good enough’ for me. HTML has pre-defined elements and I can’t add to these. HTML comes with a lot of baggage from the past, and I don’t want this. And HTML is primarily about presentation, and I’m not necessarily interested in this outside of my own web pages. Don’t mistake me: I’m not out to re-create the world, or provide tools that allows one to cut through the bullshit and drill directly to the truth. All I want is a way of defining data that is consistent, using a commonly occurring syntax with pre-existing tools that can parse that syntax.

I’ve worked with data since day one of my professional life. I wrote applications that traversed billions of lines of code from Peace Shield in order to populate a data dictionary. I was lead Information Repository modeler for Boeing Commercial. I helped the old Oracle Case tools people design their products. I’ve worked with PDES and POSC and other organizations, to find a way to define data so that it was interoperable between organizations without having to re-negotiate protocols. And I was looking for a magic interoperability protocol long before the web. It started with EDI, but EDI wasn’t good enough.

SGML didn’t work because, bluntly, we didn’t think about using it. HTML didn’t work because HTML was/is about web pages. XML didn’t work because there was no meta-data structure associated with the markup language. Even within RDF there are other serialization formats that aren’t ‘good enough’ for me. Mark points to Aaron Swartz’s RDF Primer that focuses on N3 notation. Aaron really doesn’t care for RDF/XML; N3 notation is ‘good enough’ for Aaron. But it’s not good enough for me.

RDF/XML, with its metadata structure (RDF) paired with a common syntax (XML), is a start on being ‘good enough’ for my needs.

The point though, is that for each of us there are technologies that aren’t ‘good enough’, and you spend your time finding ways to improve or expand or correct the technology until it is ‘good enough’. To Mark, this is improving how we use HTML, which is comendable. But to me, it’s finding ways to use RDF/XML and in the process explain RDF/XML so that others might also find some uses for it. I hope this is also seen as comendable.

Mark’s discussion about Semantic web and HTML is a response, in part, to Dare Obasanjo, who writes:


Given that the W3C thinks XML is the basis for RDF and the Semantic Web it seems the general direction going forward is to move towards replacing a WWW full of HTML documents to one full of XML documents.

If you are for the Semantic Web, you are for an XML Web not for an HTML one.


(I sometimes think that the W3C is its own worst enemy. So many noble goals, based on so many impracticable ideas. We keep telling them and telling them: webbies just want to have fun, but they keep pushing back with the search for truth, and a better way of life.)

Reading Dare’s comment, I can see why Mark feels that technologies such as RDF/XML are being pushed on him. I can see why he pushes back with:


RSS 0.91 is the simplest and most popular of all the RSS formats, it’s one of the simplest XML-based formats you’ll ever find, and 10% of the world’s RSS feeds are still invalid—mostly due to XML formatting rules (escaping ampersands, character encoding issues) that aren’t even RSS-specific. And you want to “move towards replacing a WWW full of HTML documents to one full of XML documents”? Are you sure? Because realistically, all you’ll manage to do is replace a morass of bloated, poorly written, invalid HTML documents with a morass of bloated, poorly written, invalid XML documents. And to tease any meaning at all out of these “semantic” documents, you’ll spend your days writing ultra-liberal parsers to parse invalid XML (or, God help you, invalid RDF/XML), and you’ll spend your nights and weekends decrying “the new generation of tag soup” on XML-DEV.


Dare’s comment, and the W3C esoteric ideals aside, isn’t that what the move towards XHTML is all about? Moving towards valid and well written XML documents that are based on the HTML vocabulary? Isn’t that the whole point of technologies such as XHTML and CSS: to replace those …bloated, poorly written, invalid HTML documents? To realize the full potential that started with HTML, before we got sloppy?

Innovation and improvements in technology don’t come about because technology is ‘good enough’. They come about because technology is full of holes and no matter what we do we’ll never plug all of them. But we’ll keep trying and we’ll keep improving and in the process, we’ll discover new and exciting technologies, and we start the process all over again.


It’s all angle brackets

In his recent post, Mark Pilgrim writes that he is amazed, bordering on appalled because of reaction to his posting about the CITE tag. I was a bit surprised myself because the posting wasn’t necessarily about revolutionary uses of technology. However, what Mark did do, in just a few words, was hit the hot spot in several debates: XML versus HTML, machine readability versus human readability, the semantic web, RDF, and any combination of these topics. And for the cherry to complete this semantic sundae, he threw in some code. If his post was fishing instead of writing, it would be equivalent to using five different fishing poles, each with a different lure. And did he come home with a catch.

Semantics. People start talking semantics, and each person doesn’t understand what the other people mean by semantics, and therein lies the wonderful irony that seems to weave in and out of the web. Semantics is all about meaning, but eactly what does it ‘mean’? We have no problems with small ‘s’ semantics in the everyday world, but put semantics on the web, and it becomes big ‘S’ Semantics.

Mark uses CITE as an example of semantic markup in HTML. He has a point: CITE does carry with it meaning — that which is marked up with this tag is a ‘citation’. By defining the context of the element, we can, for example, discriminate between hypertext links that are just ‘links’ and links that are associated with citations.

I went back to one of my postings and added CITE to specific URLs that I wanted to designate as citations. With an itty bitty Perl CGI app, I can find all the citations in the page — as shown here. Embed the CITE within a hypertext link and I can also easily associate those citations with the author’s post, as shown here.

By using CITE in conjuction with a hypertext link, I attach special significance to the link, something I can’t really do with just a straight hypertext link tag, as shown here. CITE provides context for the link. Context provides meaning, and meaning is semantics. Works nicely.

However, and you knew there was a however, I am a greedy person. I want to know more, and at some point HTML just doesn’t have the items that can convey the ‘meaning’ that I’m after.

Sure, I can create little bots that go out and scrape HTML and return with all sorts of data. I can then create a huge database and push this data into it. And once I have mined all that data, I can then create these huge, twistie, complex algorithms and set myself up as a competitor for Google. I mean, all that’s missing is someone to do the graphics for me for holidays, and such.

But, you see, that’s not what I’m after. I’d like to be able associate new and even more complex forms of ‘meaning’ to web resources without having to store huge amounts of data, or to create ever increasingly complex algorithms, including finding devious ways of filtering out what amounts to “weblog spam”.

Ultimately, I want to record and find meaning without having to get VC funding, first.

That’s when something like RDF/XML enters the picture. Of course, you knew I was going to bring in RDF/XML — look to your left. The cover on the book doesn’t say “Practical meaning in a loosely connected environment filled with lots of data”. It says “Practical RDF”.

Let’s say I want to be able to find out Creative Commons license information for a specific posting. I could put this information into meta tags, or try and scrape it from the HTML. However, by embedding the information into RDF/XML, which is then embedded in the HTML, I can easily use one of my RDF APIs, such as my RDF PHP-based Query-o-Matic Lite, to pull the information out about the license — such as the required license information. Since I also store the RSS channel information within the page, I can also query this information.

Of course, I could get this RSS channel information directly from my RDF/RSS file, but I’d rather get specific information for a specific resource than my current running list of aggregated items.

The point of all of this, besides having a little fun with Perl and PHP and various forms of markup, is that all of this stuff is data and all of this stuff can record ‘meaning’, at least some forms of meaning. RDF/XML doesn’t replace the ‘meaning’ that HTML provides — it just adds a way to record new meanings that HTML can’t, or doesn’t provide.

I agree with Jon Udell — there’s no need for either/or propositions in the world of Semantic markup. It’s really nothing more than angle brackets, data, and a few rules depending on the specific markup used. Add a smidgeon of code and there you have it — rich, meaningful data. Sure beats the heck out of web consisting purely of Adobe PDF and Macromedia Flash files; all we’d have then is a bunch of loosely connected black holes.

(g’zipped and tarred file with itty bitty Perl CGI apps used as examples — requires HTML::BuildTree. g’zipped and tarred file of RDF Query-o-Matic files. Requires PHP XML classes from Source Forge.)

Archived at Wayback Machine


Working on Techie Stuff

Recovered from the Wayback Machine. What’s particularly rough about this post is a link to a discussion thread I had with Aaron Swartz. Because of legal issues, Aaron committed suicide ten years later— an incredible loss to us all. I just wish we had told him more how important he was to all of us. 

No blogging for me until the RDF book is finally finished. If it seems to be taking forever, it feels that way to me at times, too. However, there’s been many a change since I put fingers to keyboard for first word of the book and writing has morphed into re-writing and re-writing.

Additionally, in the last few months I’ve promised some tech tools and utilities to people hearabouts. I’m not coming up for air until these are finally done and published for people to use if they have an interest.

In the meantime, Lawrence Lessig has responded to some of the questions about the Creative Commons license, here and here. No answers, but responses. (Thanks to Denise for pointing these out.)

I have continued the CCL discussion over at the metadata discussion list attached to the CC web site. As you can see by my comments on the thread, my fractured writing is a good indicator of my level of frustration related to the discussion.

Back to book. Back to code. Happy New Year.