[uf-new] Revisiting grouping problem solution proposal: hset

Manu Sporny msporny at digitalbazaar.com
Mon May 14 21:57:31 PDT 2007


After collecting even more grouping examples and performing analysis on
those examples, it is quite evident that we need to support ordered,
unordered, sparse and non-sparse grouping. There are several options
that have been gathered over the past month, listed on the
grouping-brainstorming page:

http://microformats.org/wiki/grouping-brainstorming

Option #3 seems to have the least number of things working against it.
The major argument has been made against Option #3 is that it is a
"namespace" approach to ordering. Some have cited the following page for
reference:

http://microformats.org/wiki/namespaces

After pouring over the links on the namespaces page, it seems to be an
invalid argument. Namespaces deal with global data markup. Grouping
option #3 (and variants) deal with local identification and grouping.
These are two completely separate solutions to two completely separate
problems.

Namespacing is a problem because it requires that all entities marking
up data agree on a GLOBAL name space and element names. The proposal put
forth in option #3 does not require that any entities agree on a global
name space. Element names do not need to be agreed upon either. Option
#3 is purely an identification mechanism.

I am retracting my support for Option #5 and suggesting that we go with
Option #3:

http://microformats.org/wiki/grouping-brainstorming#Option_3:_Explicit_class-based_grouping

Martin, the hAudio test page that you have up is great. Could we try
looking at it using Option #3 as the group markup example? After using
the method that you currently have active on your page, I can't help but
feel that it isn't quite what we want. There is a reason you had to add
CSS to make the tabbing work correctly - you were using XHTML markup
methods that shouldn't be used to imply grouping.

So, will this work for grouping:

- Groups/Collections are identified with the following: hset
- Hierarchial ordering is performed by doing: hset.NAME
- Ordered grouping is performed by using xoxo

Here is an example:

hvideo hset.kbv1
  hvideo.title = Kill Bill Volume 1
  hvideo.collaborator = Quentin Tarantino (role=writer) [hCard]
  hvideo.collaborator = Uma Thurman (role=writer,role=actress) [hCard]
  hvideo.collaborator = Lawrence Bender	(role=producer) [hCard]
  ...
  haudio hset.kbv1.i_walk_like_jayne_mansfield
     haudio.title = I Walk Like Jayne Mansfield
     haudio.collaborator = The 5.6.7.8's (role=band) [hCard]
  haudio hset.kbv1.im_blue
     haudio.title = I'm Blue
     haudio.collaborator = The 5.6.7.8's (role=band) [hCard]
  haudio hset.kbv1.woo_hoo
     haudio.title = Woo Hoo
     haudio.collaborator = The 5.6.7.8's (role=band) [hCard]
  ...
  himage hset.kbv1.cover_image
     himage.title = Kill Bill Volume 1 DVD Cover Image (UK Release)

-- manu



More information about the microformats-new mailing list