Burningbird Just Shelley

Crickets: Comments, HTML5, and Drupal 7

I did turn the comments back on for the post, Maxwell’s Silver Hammer: RDFa and HTML5’s Microdata. Well, until the post gets overrun by spam, or until the crickets chirping drive me batty, whichever happens first.

My idea of comments on this site, and redirecting from the others didn’t work. It left people confused, and the connection ended up being overly complicated. I figured, when it seems right to open comments, I will.

Speaking of communication, it’s always fun to read stuff like the following in the WhatWG IRC logs:

[23:02] TabAtkins: Like, okay, I dislike Shelley Power. I *really* dislike her. But she performs a very valuable service by strongly disagreeing with stuff, and offering reasons why she disagrees that you can actually address. I rarely agree with her reasons, but I can *understand* them, and that’s really useful to have.

Probably one of the many reasons why the HTML WG is not a place for me. Oh, not so much the acrimony, though lordie knows there’s a lot of that. But, for better or worse, I’m a writer. I may not be the best writer. I’m certainly not the most successful writer. But writing is how I best contribute back to the tech world. I can do more, writing in my space, then I ever can on the HTML WG.

Including writing about my newest experiments with Drupal 7. Yes, I’m walking on the wild side, and have installed a Drupal 7 site. I am über geek woman, hear me type.

People Specs

I lock my door at night

I’m not sure why the WhatWG folks thought that keeping an open door to the Twitter @whatwg account on the front page of their web site is a good idea, but it’s been interesting watching the *updates. Most are pretty juvenile, but there’s been some interesting snark along the way. Mostly, the posts have been by people asking why the WhatWG thought this was a good idea, as WhatWG followers are dropping like flies, tired of being spammed.

Interesting, too, that the WhatWG members are posting on the WhatWG IRC that the openness of the Twitter account was by decision, not by accident. Bragging about it, actually. After all, only a few spam messages will get through. Of course, that was before someone posted a note to the WhatWG IRC about the openness, making people aware of the capability. Once the open door was found, that’s all she wrote. The only thing keeping some control on the postings is the Twitter API limits.

To me, deciding to keep the door open to the WhatWG Twitter account highlights some of the problems we’ve had with the WhatWG folks in regards to HTML5: they see the world as this perfect utopia, where everyone follows the rules. If people don’t follow the rules, then the rules must be changed, because obviously, there’s something wrong with the rules.

Case in point: the table summary attribute isn’t being used correctly, not because people make mistakes, but because it’s bad and has to be removed, before someone gets hurt! Of course, those who advocate for its removal totally disregard that the bad summary attributes are attached to equally bad HTML table uses, too. But that’s not the point!

RDFa is too hard for people to use, and must be replaced by microdata. Why? Because Google make an RDFa error when it rolled out its support recently. But, it wasn’t a Google mistake, according to Ian Hickson, it was something inherently wrong with RDFa. Google quickly corrected its mistake error, but by that time, the damage was done: RDFa was shown to be a flawed system that needed to be replaced by something better. Why? Because people don’t make mistakes.

The same as people won’t spam an open Twitter account.

And now the folks on the WhatWG IRC are discussing the fact that those posting spammish messages to the WhatWG twitter account don’t understand the consequences of their actions. As jgraham wrote:

Lachy: I know that you can take some measures to cover your tracks, but in practice many people don’t bother and find that actions that they took believing that they would be free of consequences are not actually as anonymous and as free of consequences as they had assumed

In other words, never doubt your own judgment, when you can safely and easily find a way to dump any responsibility of your decisions on someone else.

The thing is, people learn from mistakes. A neighbor gets robbed, and we learn to lock our doors at night. People make mistakes with the summary attribute, or with RDFa, or any web technology, and we learn to provide better documentation. We are capable of learning from our past mistakes, learning, and doing a better job. We even learn to shut down that open door way to a Twitter account when it’s getting spammed.

There is no such thing as the perfect utopia where things can be made in such a way that no one is capable of making a mistake. All we can do is learn from the past, and do better in the future.

*Oh, and by the way? That “summary rules!” post was mine.


Evidently the WhatWG folks have finally realized that maybe an open door is a problem. Don’t expect an apology or acknowledgement, though:

factoryjoe: well, ok. some acknowledge might help people feel better that no more spam is forthcoming
Hixie: i expect that no more spam being forthcoming will make people feel better than spam telling them that no more spam is forthcoming

HTML5 Specs W3C

The “WhatWG’s Mine is Mine” Design Principle kerfuffle

I’m not part of the HTML WG, but still follow along. Enough to see that one of the big ongoing debates lately is about the HTML WG’s Design Principles draft document. There are too many threads to link, but I would suggest the following as good places to start:

I think some people, i.e. Laura and Larry, expect the Design Principles to be used as rules, rather than as means of explaining

My own opinion of the document, and the discussion surrounding the document, is that the HTML WG Design Principles document is imprecise, vague, and vulnerable to use by self-justifying entities—OK, if you just want a fuzzy feel-good document that looks good in the press, but not something you want to see from a formal W3C Note, which is what the Design Principles wants to be…when it grows up. Definitely not something you want to see used to enforce, or justify, design decisions.

There have been numerous objections to the Design Principles document, in the past and in the current debate, not all of which have been addressed. In my opinion, though, what’s more important is that provisions in the HTML WG Design document have been used to shoot down discussion and debate about namespace support in HTML, support for RDFa, and the introduction of the microdata section:

But I don’t want RDFa to hog all of the focus. Other groups and interests have also been gently schooled in the HTML Design Principles:

So, what do we know about the Design Principles? Ian Hickson in the HTML WG mailing list:

I think the text in the Introduction of the editor’s draft of the HTML Design Principles as of rev 1.26 is quite accurate, and that the rest of the text in that document meets the goals set out in the introduction admirably. I think that it is ridiculous to think that language design can ever be based on strict objective rules, and I do not think that the design guidelines claim that this is what is attempted (indeed quite the opposite). In fact, that’s what the term “design principles” means.

Thank you for that clarification, Ian. Oh, Henri, about that DOM Consistency principle you frequently mention…


Best of luck finding a suitable employer

Roger Johansson

I believe having more content creators and ”authors”, i.e. web designers and web developers, in the HTML Working Group would be good. Unfortunately I think it’s hard to find web professionals who can spare the time unless they get paid to participate. I know I can’t.

When I mentioned something virtually identical to Ian Hickson, he told me

I am sorry you feel that you need to be compensated for your participation in the standards community, and wish you the best of luck in finding a suitable employer.

Can’t wait to read Ian Hickson telling Roger Johansson, “…best of luck in finding a suitable employer.”


Stop justifying RDF and RDFa

update The discussion on RDFa in HTML5 is quite active on the WhatWG mailing list, and so I’m closing comments down here, and encouraging the discussion in that location. There is no restriction on joining the mailing list. A place to start would be a thread I started but I’m sure new threads will be springing up.

I did want to apologize for assuming that the XHTML errors I had recently were due to WhatWG members having fun at my expense. I’ve had people deliberately break my XHTML-based comments in the past when I’ve written about XHTML, and the break was documented with a screenshot on the website of a WhatWG member. I put 2 and 2 together and came up with 5.

I was reading the back and forth argument about the support for RDFa in HTML5, when it hit me that we, who support RDF, and its embedded serialization technique, RDFa, are going about it all wrong.

The question that gets asked, repeatedly, in the HTML5 and WhatWG mailing lists is What problem does RDFa solve? This typically then leads to lengthy discussions about RDFa versus microformats, how one only needs relclassmeta, and script in order to seemingly record the same information. Or that marking this information up in any way is unnecessary, as people won’t use it, use it badly or for evil purposes, and the only direction forward for the web is natural language processing…yada, yada, yada—you’ve heard it all before.

But what if we stop focusing on the perceived purpose of RDF/RDFa? What if, instead of defending RDFa as a format for discovery of semantics on the web, in competition with other techniques, we focus on RDF, as others have focused on MathML and SVG—as a rich, mature specification with its own unique purpose, and its own unique benefit? In other words, begin with the assumption that RDF has value in, and of itself, and does not need to be “justified”. Instead, let’s focus on whether HTML5 can support RDF—the rich, mature specification—as is, with the existing HTML5 extension mechanisms.

The quintessential aspect of RDF is the triple of subject, predicate, and object. For simplicity’s sake: the thing, the property of the thing, and the property’s value.

For the most part, the thing is identified by a URI, a Uniform Resource Identifier, in order to distinguish it from every other thing when different instances of data are combined. To repeat the underlying basis of this particular thought experiment, disregard, for the moment, that RDF is used to record semantics. Focus, instead, on the essential structure of RDF data structure. Now ask yourself: can we represent RDF within an HTML5 document, using the HTML5’s current mechanism for extensibility? My assertion in this writing is that the answer is, no.

To demonstrate, let’s look at the RDF/XML output derived from an examination of the RDFa currently embedded in this page. Case in point, the following:

<rdf:RDF xmlns:rdf=""
  <rdf:Description rdf:about="">
    <ns1:title rdf:parseType="Literal"><a xmlns="" xml:lang="en" href="/semantic-web/semantic-markup/oh-look-its-not-just-us-semantic-web-dweebs-who-noticed">Oh, look. It's not just us Semantic Web Dweebs who noticed.</a></ns1:title>

    <ns1:subject rdf:parseType="Literal">Semantic Web: <a xmlns="" xml:lang="en" href="/semantic-web/semantic-markup">Semantic Markup</a></ns1:subject>

The RDFa from which this RDF model was derived is the following:

<div id="node-572" class="node" about="/semantic-web/semantic-markup/oh-look-its-not-just-us-semantic-web-dweebs-who-noticed">
      <h2 class="node-title" property="dc:title">
      <a href="/semantic-web/semantic-markup/oh-look-its-not-just-us-semantic-web-dweebs-who-noticed">Oh, look. It's not just us Semantic Web Dweebs who noticed.</a>
     <div class="taxonomy">
      Tagged: <ul class="links inline"><li property="dc:subject">Semantic Web: <a href="/semantic-web/semantic-markup">Semantic Markup</a></li></ul>    </div>

The triple we’ll focus on is that a given story (subject), belongs to a particular category of story (predicate), which is this case is “Semantic Markup”.

In the example, the subject is identified with the about attribute attached to the outer div element, which encompasses the actual text of the story. The predicate associated with the subject is identified in the property attribute, which is attached to a list element (li), and the RDF object is the text, “Semantic Markup”, contained within the list item element’s opening and closing tags. The two element attributes used in this example, which are not a part of HTML5, are “about” and “property”. The question then is: can we use HTML5’s current extensibility mechanisms to record the same data, maintaining the same essential structure, in order to derive the same RDF data model when the page is passed to some RDF extraction mechanism?

Goodness knows it would seem to be a simple way to represent the RDF bits in existing HTML5 attributes. For instance, we could add “subject” as another class item and thus eliminate the need for the RDFa property. We already have the link contained within the list item, which would seem to serve the purpose of identifying the object uniquely, and therefore don’t need about. In other words, HTML5’s extension mechanism would seem to be sufficient. Except, of course, it’s not.

If the data so documented existed solely within the page, I could use the class attribute to denote the RDF property, but is the “subject” I use in my document, the same as “subject” in someone else’s document? Who knows. Other than a similarity of text, we have no idea if they mean anything. This is a critical breakdown, too, because precision of data model is also an essential element of RDF. Otherwise, we wouldn’t be able to combine documents found on the web with any degree of confidence.

However, I suppose we could annotate the “subject” class value with an abbreviation of the domain from which it derives, in this case the Dublin Core domain, or “dc:” for short. By doing so, when you have a dc:subject in your document, and I have a dc:subject in my document, and both documents attach this property to the same subject, then the data can be safely merged. There is no confusion about what each of us “means”, when use use “subject”.

Of course, we’ll then have to negotiate for a shared meaning behind “dc:”. And we’ll have to ensure that everyone in the world uses the same designation for Dublin Core. Then we’ll have to repeat this exercise for every existing and new vocabulary that comes along…

Perhaps the abbreviated designation isn’t as feasible as it would first seem. So, what we’ll do, then, is annotate the subject with the full domain name URI, and still use the class attribute:

<li class="inline node">Semantic Markup</li>

Well, that’s going to be interesting to see in our web page documents. Of course, we’ll have to duplicate the domain name URI with every reference to the property, increasing the overall size of the document. And, unfortunately, the dozens, potentially hundreds of RDF parsers that already exist will have to be modified to account for the difference in handling between RDFa embedded in HTML5, and RDFa embedded in XHTML, but that’s a small price to pay for HTML5 compatibility. Really. The RDFa processors will have to look at every use of class in a document, which potentially could slow down processing, and make the applications more sluggish, but that’s also a small price to pay.


So, we’ve accounted for the predicate, the property in our triple. Next, we need the ability to uniquely identify the resource.

A possible HTML5 attribute we could use is rel attribute, supplying the URI for the subject. However, a quick glance at the HTML5 Wiki for Rel and we can see that, though rel can be str-e-e-e-e-tched almost beyond recognitions, there are limits. Our use of rel as a way of recording a specific URI does not fit within the HTML5 boundaries for permissible uses of the attribute, because it’s not a repeating value that we can define in a table ahead of time.

In our web pages, we can point out our sweethearts, our timesheets, our muse, and a crush. We can’t, however, use rel to point to the resource to which a specific RDF property is attached.

If not the rel, how about others of the HTML5 attributes? For instance, a likely named alternative is the id. Would id work?

Currently, the HTML5 specification supports id to identify a web page element uniquely, but only an element specific to the document and the document’s DOM, or Document Object Model. It’s handy for whizzing the element about the page using JavaScript, and playing pretty, pretty with CSS, but how will it combine with, say, the data from a hundred web pages? A thousand?

Well, it doesn’t combine at all, because the id supported in HTML5 is semantically not the same as the URI necessary for RDF. Though the name of the game in HTML5 is “overloading R us”, in this case the meaning of the term must stretch too much in order to successfully encompass both needs.

So, what is wrong with using a hypertext link to identify a resource? And convincing the HTML5 crew to add “rdf-resource” to “sweetheart” and “muse” in the list of valid rel attribute values?

Ah, now that’s where the rubber meets the road when it comes to RDF. This takes us all the way back to the beginning of the discussions about RDF, and the emphasis placed on the fact that a URI is not the same as a URL. And though a URL is an instance of a URI, not every instance of a URI can be safely used in place of a URL. In other words, we can’t depend on using a hypertext link to identify a resource.

OK, then, what about limiting our RDF to those cases where the URI is a URL?

Unfortunately, this also fails to map cleanly between HTML5 and RDF. In the example, the actual hypertext link associated with the list element with the given property of “dc:subject” isn’t the RDF triple subject, at all. That link is associated with the web page leading to a list of related postings. It’s handy, but it doesn’t uniquely identify the subject being described. No, the actual resource, or subject, is the story, itself.

Now, the story is identified by a hypertext link, but the link in this case isn’t attached in any meaningful way to the element containing our “dc:subject” property attribute. More importantly, from a viewpoint of achieving a clean mapping between the RDF model and bits embedded within the HTML5 document, there is no logic or set of rules within HTML5 to associate the two; not in such a way that we can guarantee the same RDF data model with each iteration of usage within an HTML5 document.

We can assume there’s another link containing the URI within the parent block somewhere that uniquely identifies the resource. There is no formal logic, however, nor set of rules that guarantees we’ll always be able to derive the same RDF model, each and every time.

In other words, the extension mechanisms built into HTML5 can’t ensure that the embedded data can then be used to safely derive and return a consistent RDF model.

RDFa, on the other hand, does define these rules. Defines them well enough that I can make minor modifications to my Drupal template to embed the RDF data, and use a packaged PHP-based API to pull this same RDF data back out. Not just myself—anyone wanting to annotate their web pages with RDF could do so, without negatively impacting on any other aspect of the page, or its consumption by other agents, such as browsers. And any application can then pull the data out using any number of language-based APIs. Unfortunately, though, RDFa does not fit cleanly into the current HTML5 specification. It doesn’t fit, and seemingly, is not welcome.

In the recent discussions related to once again having to “prove” the worthiness of RDF/RDFa, HTML5 lead editor, Ian Hickson, wrote the following in a note posted to one of the HTML working group’s email list.

Also, while the solutions we’re designing will almost certainly still be in use decades from now, and will almost certainly influence the solutions in use centuries from now, we are not actually designing the solutions for the problems seen decades from now.

That is to say, we are trying to solve the problems of today and the next few years, with a design that will be extensible in the future by the maintainers of HTML once they know what the problems of the future are. HTML5 is not the end of the road; when HTML5 is widely deployed and used, then we will be able to design HTML6 on top of it. And so forth.

Thus there is no need for HTML5 to have author-usable features for extensibility to solve the problems of decades from now. The extensibility mechanisms for authors (and HMTL5 has many …) should solve _today’s_ problems; and the language should be designed in such a way that the future maintainers of HTML can later extend the language to fix their problems. This is just how HTML4 was done; it’s how CSS was done; it’s how XML was done (you can’t invent new XML syntax, for instance, that would require a new version of XML).

In this writing, I’ve only looked at the most trivial aspects of the RDF model and its RDFa serialization. If HTML5 fails with something as primitive as a simple RDF triple, it will certainly continue to fail for anything more complex. However, the point on this writing isn’t to highlight the shortcomings of HTML5, as a whole, but to demonstrate that the extension mechanisms within HTML5 are not sophisticated enough to handle existing needs. Not some future extensiblity, as Ian notes, but a need that exists today.

RDF is a rich data model with widespread use, documented by a mature specification, supported by any number of tools in any number of applications, in use by any number of companies, for any number of purposes. It is not some lightweight Johnny-come-lately that can be disregarded and ignored because it doesn’t satisfy a small group’s determination of what is, or is not, essential to the web. We don’t have to justify our interest in RDF, and therefore are fully within our rights to ask that it be supported in any web page markup currently under development by the W3C.

Now, if the HTML5 working group wishes to demonstrate that the RDF model can be implemented in HTML5, as is, then they should do so. They should not, though, demand that we give up the RDF model in order to support some other model, just because they don’t happen to see the need for RDF for themselves.

We in the RDF community are not asking the HTML5 working group to support …extensibility to solve problems of decades from now. We’re asking for a solution to a problem that exists today. Now. This very moment.