[uf-new] Microformats parsing, in general (was: hAudio final
msporny at digitalbazaar.com
Tue Jun 19 07:08:03 PDT 2007
Scott Reynen wrote:
> We can't both re-use property names and ignore the context of
> those property names. My dog's FN is not my FN, and if the only way for
> me to make that clear is to use class="pet-name" instead of FN, that's
> what will happen.
This is the heart of the problem.
The Microformats community has adopted two mutually exclusive philosophies:
1. Scope-less approach to parsing.
2. Requirement to heavily re-use class names.
The problem with combining these two philosophies is that they work
against each other. If there is no scope when you are parsing, your uF
class names are going to start conflicting with one another. The result
is that we end up being forced to not re-use class names because of the
Case in point: hAudio.
If we were going the re-use route, we should have re-used 'title',
'summary', or 'description'. Instead, we chose to create a new class
name - 'audio-title'.
hAlbum is up next. What are we going to call the title of the album?
'audio-title'? We do know that hAudio is meant to be used for the
tracks... and that's going to cause a problem. Let's not talk about
theoretical, here's a real-world example of the problem:
In the page listed above, a track is listed before the album. The way
the uF markup would have to work is that 'halbum' would be listed first,
followed immediately by the haudio definition.
Therefore, if we use 'audio-title' for the title of the album, and
'audio-title' for the title of the track, we're going to have a problem.
fn Slick Fifty Seven
audio-title The Ghost Of Bonnie Parker **OOPS!***
fn Slick Fifty Seven
Using MFO could fix this problem, although I believe that MFO is a hack.
If we think that getting people to understand scoping is a problem -
just wait until we need to explain why MFO exists. Try explaining MFO
without getting into details about the parsers and how Microformats use
a scope-less language design paradigm - these are not light-weight concepts.
MFO is a temporary band-aid for the real problem, which was the adoption
of two mutually exclusive philosophies.
One obvious question at this point is: Why are uFs scope-less?
OR: Why are uFs both scope-less and namespace-less?
OR: Why are uFs scope-less but require heavy re-use of class names?
More information about the microformats-new