[uf-new] Revisiting grouping problem solution proposal: hset
Martin McEvoy
martin at weborganics.co.uk
Wed May 23 12:34:21 PDT 2007
On Wed, 2007-05-23 at 14:19 -0400, Manu Sporny wrote:
> Brian Suda wrote:
> > On 5/22/07, Manu Sporny <msporny at digitalbazaar.com> wrote:
> >> We need a way to create the concept of an audio collection (an album).
> >> The same can be said for video and images - how do you relate these
> >> items to one another?
> >
> > --- i completely agree
>
> Well, at least we agree on that :)
>
> > The Problem statement for your grouping is:
> >
> > It is useful to understand the relationship between objects on a
> > website.
> > ...
> > that is too generic, OBJECTS on a WEBPAGE? for things like Events, we
> > needed a container, so a CALENDAR container was created. For ENTRIES
> > we created hFeed. These sort of groupings are handled at the format
> > level, not a generalized hSet.
>
> We are starting to "solve" this container problem over and over again.
> We've already created redundant container/grouping/set mechanisms:
>
> vcalendar for vevents
> hfeed for hentry
>
> Where do we go from here?
>
> halbum for haudio
> hpodcast for haudio
> hfilm for hvideo
> hmultimedia for haudio and hvideo combinations
> htvseries for hvideo
>
> Every single one of these containers does the exact same thing - it
> contains OBJECTS. Why are we calling them different things when they're
> really the same thing. Why are we willing to pollute the Microformats
> namespace with halbum, hpodcast, hfilm, hmultimedia, and htvshow? They
> are just variations on the same theme - grouping.
>
> I understand your position, Brian. In general, Microformat grouping
> should be developed on a case-by-case basis.
>
> However, when it is clear that we are going to have to create multiple
> new Microformat elements that do the /exact same thing/ - we should
> start to question if this problem should not be solved in a more general
> way.
>
> >> I'm having a hard time understanding what is so complex about:
> >>
> >> hset.GROUP_ID.OBJECT_ID
> >
> > --- to me this makes no sense? in traditional programing languages the
> > dot notation is used for member functions which are usually VERBS. The
> > Person Object has a function getName(), Person.getName().
>
> No, in traditional programming languages, dot notation is used to
> separate package names or object members and methods. It is the de-facto
> method of grouping in most modern programming languages.
>
> C:
> --------------------------
>
> void (*operation)();
> struct foo
> {
> int bar;
> operation do_operation;
> }
>
> foo f;
> f.bar = 5;
> f.do_operation();
>
> C++
> --------------------------
>
> class Foo
> {
> public:
> int bar;
> void doOperation() {};
> }
>
> Foo f = new Foo();
> f.bar = 5;
> f.doOperation();
>
> Python
> ---------------------------
>
> class foo:
> def __init__(self):
> self.bar = 0
>
> def do_operation(self):
> pass
>
> f = Foo()
> f.bar = 5
> f.do_operation()
>
> C#
> ----------------------------
>
> public class Foo
> {
> public int bar;
>
> public void doOperation() {};
> }
>
> f = new Foo()
> f.bar = 5;
> f.doOperation();
>
> Javascript
> ----------------------------
> class Foo
> {
> var bar:Integer = 0;
> function do_operation() {}
> }
>
> var f = new Foo();
> f.bar = 5;
> f.do_operation()
>
> We would be adopting something that has stood the test of time - we
> wouldn't be re-inventing the wheel.
>
> > The
> > hset.GROUP_ID.OBJECT_ID tells me nothing.... not even XML or RDF or
> > other mark-up languages use this? everything is done by nesting an
> > OBEJCT_ID in a GROUP_ID in an hSet.
>
> It tells you one thing - that if something else has the same GROUP_ID,
> it belongs to the same group. It tells you that there is a relationship
> between two objects.
>
> > --- the simplest solution is just to choose a semantic class value for
> > your container, we already have 'vcalendar', 'hfeed', which act in
> > this capacity. Those are the simplest solutions, lets start there, and
> > itterate.
>
> We did start there. Iteration has brought us to the understanding that
> we are going to "solve" this problem over and over again if we don't do
> something about it. Increasing the number of container elements will
> only pollute the Microformats element space with unnecessary grouping
> mechanisms that do the exact same thing.
>
> > We want to make this as easy as possible for publishers, not parsers.
> > The vast majority of the people publishing microformats do not have
> > PhDs in computer science. We tend to forget that something that seems
> > easy for us might be completely over the heads of others.
>
> Using dot notion is not a foreign concept to anybody that has written
> CSS. May I remind you that this is a common practice in CSS:
>
> h1.highlight {
> color: yellow;
> }
>
> This will make any <h1> element that has a class of 'highlight' to
> appear yellow.
>
> If using dot-notation is such a big problem, we could always use a
> different character, such as '-' or '_'.
>
> hset_foo
> hset_foo_bar
> hset_foo_baz-bat
>
> or
>
> hset-foo
> hset-foo-bar
> hset-foo-baz_bat
>
> or
>
> hset:foo
> hset:foo:bar
> hset:foo:baz-bat
>
> The suggestion to use '.' was made because it is the most common form of
> denoting group membership, that doesn't mean we're stuck with it.
>
> -- manu
>
Its quite obvious that a simpler solution has to be found,
Manu I get what you are trying to do I just think it is a bit much for
many people to take on board, and a bit much for a microformat.
So here is another ^^ simple proposal...
Im trying to "Start with something *as simple as possible*, perhaps
even *simpler*"
Talking about rev attributes is kind of taboo for mF the same as
"namespaces" but only because people generally misunderstand what rev
means nothing else,
In short rev means:
rev = The relationship between the target URL and the current document
HTML-401 says:
"This attribute is used to describe a reverse link from the anchor
specified by the href attribute to the current document."
http://www.w3.org/TR/html401/struct/links.html#adef-rev
we can create relationships in hset this way
<h1>Album Title</h1>
<a href="..." rev="part-of">track 1</a>
<a href="..." rev="part-of">track 2</a>
<a href="..." rev="part-of">track 3</a>
This says our links are "part-of" the current document?
Truthfully I don't think we would have to declare "hset" as the
"part-of" should be enough for a phraser or browser to look for other
parts and identify that this is a grouping or set on the current
document.
This proposal sets aside all hang ups about ".", id, and css.
anyway feel free to comment flame, have fun ;)
-Martin-
> _______________________________________________
> microformats-new mailing list
> microformats-new at microformats.org
> http://microformats.org/mailman/listinfo/microformats-new
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 2171 bytes
Desc: not available
Url : http://microformats.org/discuss/mail/microformats-new/attachments/20070523/2f2ffcdc/smime.bin
More information about the microformats-new
mailing list