[uf-discuss] Re: Microformats Would Benefit From a
bbtommorris at gmail.com
Mon Sep 17 06:58:37 PDT 2007
On 9/17/07, Jens Meiert <fora at erde3.com> wrote:
> * Predefining class names is neat, but statements like "some elements should use this or that name" aren't lightweight. vCard , for example (though special), surely uses some names that few authors would otherwise voluntarily choose, and thus it's at least "questionable" if the microformats community can really assume something like "consensus on semantics" then.
Class-name namespaces don't really work, in my experience. Have a look
at eRDF. It's a bit of a mess, to be honest.
I do think there is a valid concern in the "microformats.org defining
classnames for everybody" argument, and the Semantic Web people are
always going on about how microformats "squats" class-names. But I
don't think a pseduo-namespace like "mf-vcard" (or "uf-vcard" etc.)
would solve the problem. The key part of namespacing is URIs.
"mf-vcard" as opposed to just "vcard" doesn't solve the problem, so
much as just shunt the problem in by three characters.
The solution is to use an architecture that scales so that everyone
can define "class-names with deeper meaning". I think the solution
lies with GRDDL and the profile attribute in HTML4/XHTML1.
I put up a GRDDL profile a while back to demonstrate how this could be done:
GRDDL defines a method by which HTML can be understood as RDF.
Basically, you put URL(s) in the head/@profile attribute to say "this
page contains metadata following this profile". A GRDDL agent then
loads the linked page, which contains a link to the transformation
(using either link[@rel = 'transformation'] or a[@rel =
'profileTransformation']). The linked resource is an XSLT 1.0
stylesheet that describes turning XHTML 1 into RDF/XML.
For most purposes, though, this is not really relevant. As part of the
discussion of GRDDL, I suggested we come up with an 'exclude' pattern,
which is basically an extension of GRDDL to solve the problem of "this
looks like an hCard, but isn't" (not sure it's a big problem though).
The RDF-part of GRDDL is almost totally optional here (for RDF-heads
like myself, you get the added advantage of getting RDF if you want
it). If we had a definitive profile URI for each microformat (the wiki
page would do - or perhaps something like
http://profiles.microformats.org/hcard etc.), then someone who wants
to publish HTML which contains something that looks like an hCard but
isn't could use some kind of exclusion profile, like:
<link rel="exclude" href="http://profiles.microformats.org/hcard" />
Some tools would, of course, ignore the exclude and just carry on
regardless. But tool-makers could then say "ah, if the person says
"exclude hCard", then I should not discover hCards in this HTML, even
if there are things that look like hCards".
This is quite a complex suggestion, and would require some
coordination between some tool-makers (GRDDL processors, to be
specific). But the number of authors who want to publish
something-that-looks-like-an-hCard-but-isn't is probably quite a lot
smaller than authors who want to publish hCards.
Excludes has the advantage of giving most of the benefits of a
namespace (or pseudo-namespace), but without (a) invalidating all the
currently published microformats and (b) without making the
microformats approach any more complex for the vast majority of
microformat authors. It could get complex if microformats were trying
to solve domain-specific problems, or problem areas where people put
more trust in to the result (i.e. if you were running some data cross,
say, the Cancer Ontology - it could matter a lot more that you get a
reliable cancer diagnosis than if a phone number on a webpage was
misinterpreted as not being a phone number).
The downside is that you end up with a situation where you are
basically overloading 'unmeaning' on top of apparent meaning. Could
get quite mind-boggling quite quickly.
I suggested this in the comments over at Danny Ayers' blog a while back:
Anyway, just an idea that's been mulling away in my brain for a while.
Comments definitely appreciated.
A final thought: the XML and RDF communities takes flak for thinking
namespaces are important. But if you want to see what life is like
without namespaces, try coding in PHP. ;-)
More information about the microformats-discuss