- From: Shane McCarron <shane@aptest.com>
- Date: Thu, 20 Nov 2008 10:42:32 -0600
- To: XHTML WG <public-xhtml2@w3.org>
During the call Wednesday, there was a brief (re)discussion of whether
we are smarter to embed semantics in elements, attributes, or attribute
values. This is an old argument, but it apparently still has a lot of
heat. I wanted to capture my opinions about this as a way of kicking
off a discussion here rather than trying to do it during a call. If we
can get our positions clearly stated here, we may find that we are all
in violent agreement. I am not convinced this will happen, but it *could*.
Anyway, here is what I think. XML and XHTML are designed to be extended
at the element AND the attribute level. In particular, XHTML M12N
defines an infrastructure for integrating components into "hybrid"
markup languages. In general, we envisioned that those components would
be developed by the W3C or other industry groups, not by individuals.
Why? Because it is not easy, and such extensions need definition by a
group to make them viable, interesting, and most importantly *supported*.
What do I mean by supported? Anyone can define a new element or
attribute. Anyone can create a hybrid markup language that includes
that element or attribute. With CSS2 it is possible for us to define
presentation rules for the element or selectors that switch on the
attribute. But even with all of that, no user agent will know what it
*means*. And there is no mechanism for the person defining this element
or attribute to describe its meaning in a way that a smart,
"follow-your-nose" user agent could use to even determine what it
means. So, if a new element or attribute is defined, it will not become
meaningful until a complete new generation of user agents is deployed.
And worse yet, if it is not defined by some group that user agent
developers care about, then that new element or attribute will always
have just as much meaning as "span" or "@title" - e.g., none at all.
To address this problem, we ALSO introduced dynamic semantic extension
mechanisms through RDFa and @role. The purpose of these mechanisms is
to allow the declaration of characteristics of a document, and associate
those characteristics with definitions that are machine discoverable and
machine interpretable. The ultimate result of this, when it is done
right, is that a role value of "foo:bar" is a vocabulary term defined in
some vocab space pointed to by "foo" that defines the MEANING of bar
based upon common RDF terms, or upon other vocabs that use those common
RDF terms.
So, we have two mechanisms. Elements and Attributes. Here's what I
believe:
* I believe that both mechanisms are important.
* I also believe that we, as a part of an industry group, have the
wherewithal to define elements and attribute and declare their
semantics knowing that they will be *supported* someday.
* I believe it is critical that we define new elements and
attributes when that is what good design requires. (e.g., in XML
Events we could have done all the handler stuff with attributes.
We could have done RDFa with values of @class. Those would have
been bad design decisions.)
* Finally, I believe that it is also critical that we ONLY use the
attribute extension mechanisms when what we are doing is purely
and generally semantic. If what we are doing is at all
structural, then we MUST NOT use the attribute extension
mechanisms. It overloads our existing elements AND it permits the
use of the vocabulary terms anywhere - which is probably NOT what
we want.
How does this apply practically? I am afraid if I start drilling down
to a specific element or attribute then we will get sidetracked by
that. I wonder if we could discuss this basic principle and see if we
can agree on guidelines for when we define new elements or attributes,
as opposed to when we would use our @role and RDFa extension mechanisms
we would then have something we could use to test current and future
decisions against.
Opinions?
--
Shane P. McCarron Phone: +1 763 786-8160 x120
Managing Director Fax: +1 763 786-8180
ApTest Minnesota Inet: shane@aptest.com
Received on Thursday, 20 November 2008 16:43:08 UTC