- From: Ian Hickson <ian@hixie.ch>
- Date: Wed, 8 Aug 2007 04:15:31 +0000 (UTC)
This e-mail consists of replies to a few e-mails on the subject of links and link relationship types. No changes were made to the spec in response to these e-mails; if you reply, please indicate if you think something needs to change in the spec. Thanks! On Sat, 8 Jul 2006, Charles Iliya Krempeaux wrote: > > But, if the intent [of removing 'rev'] to really get rid of confusion > then.... There's actually 2 things I noticed confuse people. > > #1: That the label you pick for the "rel" (or "rev") needs to be a noun. > (I do understand why... at least I think I do... so that you can use the > same label in the "class" attribute. But it makes things difficult for > some people.) As others noted, the label you should pick for "rel" should be taken from a specific set of labels defined in a specification (either HTML4, or HTML5, or a Microformat spec, or some other extension specification). So the "noun" aspect isn't a source of confusion as far as I can tell. It may be that people don't know you shouldn't just arbitrarily make up now names, though. > #2: That "rel" (and "rev") represent a relation between the two. Often > people seem to want to "classify" what's at the end of the "href". > (Instead of specifying a relation.) Perhaps a new attribute is needed. > Perhaps "hrefclass". "class" on an <a> element can be used for this, IMHO. On Tue, 11 Jul 2006, Charles Iliya Krempeaux wrote: > > Let's say in a page, I have the following HTML code... > > <li class="xoxo shows"> > <li><a rel="show" href="http://show.example.com/">Example IPTV > Show</a></li> > <li><a rel="show" href="http://show2.example.com/">Another Example IPTV > Show</a></li> > </li> > > The semantics here are.... The class-xoxo (on the <li>) says that I'm > giving a list here. I assume you meant to use an <ol> on the outside, not an <li>. And in that case, it's the <ol> that says that you're giving a list, the xoxo class isn't necesarry to give the "list" semantic. > And the class-shows says this thing is/has "shows". (So basically, I'm > listing shows.) This isn't a strong semantic (a random person who doesn't know you wouldn't necessarily know that's what your class meant), but it can be a convention you use within a particular community, sure. > The rel-show inside the "list of shows", says what's at the end of the > "href" is a "show" for the list of "shows". You could easily use "class" on the <a> element for this, without risking a clash with a future value introduced in (say) HTML6 for slideshow links. It would be as solid, semantically. If you wanted to go further, you'd have to define a specification for your rel or class "show" value. Your specification could then include the rest of your description: > So,... if you go to the URL in the "href", you get a whole HTML page > with all sort of stuff in there. But what is the "show"? The whole > page? Just part of it? > > Well, I then search the page for class-show. (I look for something > inside the page with a class with the same token/name use in the "rel" > that linked there.) > > If I find (just) one, then great, that's probably what I want to > concentrate on. (The other parts of the page are probably irrelevent.) > If not, I'll probably have to concentrate on the whole page. > > (This is the idea of opaque semantics that I was talking about before.) > > Does that clear it up? > > (This is what I imagined the developers of these things originally > thought up.) > I suggested "hrefclass" because we already have things like... "lang" > and "hreflang". It just seemed to follow the same style. (Since this > seems to be just like the "class" attribute, expect we are applying it > to what is at the end of the "href"... so "hrefclass".) I don't really understand why you can't just apply it to the link itself (i.e. use "class"). On Tue, 11 Jul 2006, Charles Iliya Krempeaux wrote: > > Perhaps it's a poor example. But what I've gotten from the specs is > that the "rel" attribute can be used in this way. Could you check the HTML5 spec and let me know if it can still be interpreted this way? > For an example that's gained some popularity, look at hCard. > http://microformats.org/wiki/hcard > > People wanted to semantically denote "contact info". So they choose a > set of class names to use (to do this) and some rules about them. > > Creating the standard is a somewhat arbitrury process. And requires > humans to do it. > > Although with opaque semantics, like the "rel" name matching the "class" > name, you don't need a human intervention to parse much of it. > > Does what I'm saying make sense? Or should I explain it more? I'm not convinced there's really a use case for making this automated to the level that you describe. It seems best to stick to having specifications for the cases that actually have uses. > Alot of this is done for the benefit of machines (like browsers, > spiders, search engines, etc). Right now, everything is done for the benefit of humans. The machines are just tools. > But getting back to one things you said... it is NOT always the case > that you can "grab" something with an "id". Sometimes using "class" > works better. > > For example, consider if I wrote an article. And, in the HTML for that > article, I mark certain parts of it as being part of a "summary" for it. > For example.... > > <p> > <span class="summary">Blah blah blah. Blah blah blah blah. Blah blah > blah blah.</span> Blah blah. > </p> > <p> > Blah blah blah blah blah. Blah blah blah blah. Blah blah blah blah. > Blah blah. <span class="summary">Blah blah blah.</span> > </p> > <p> > Blah blah blah. Blah blah blah blah. Blah blah blah blah. Blah blah. > </p> > > How would I grab that with an "id". > > The class-summary's in there let me get at the summary that spread out > in multiple fragments. What if the class isn't there? Why is the class different than the ID? > Just one other example for good measure. Consider this code... > > <p> > I am <a href="http://changelog.ca/">Charles Iliya Krempeaux</a>. > </p> > > As a human you can understand what that means. You know it is a > statement. You know "Charles Iliya Krempeaux" is a name. You know that > " http://changelog.ca/" is the site for "Charles Iliya Krempeaux". > > But a machines does not know that. It cannot figure that out. > > That's where some "semantic salt" can be helpful. hCard's let us add a > little semantics to make it so machines can figure out the "name" part > of it too. > > So, if I were add an hCard I'd get... > > <p> > I am <a class="vcard fn url" href="http://changelog.ca/">Charles Iliya > Krempeaux</a>. > </p> > > (The class-vcard, class-fn, and class-url are all part of hCard.) > > With just that, machines now know that "Charles Iliya Krempeaux" is a > name. And "http://changelog.ca" is the site for "Charles Iliya > Krempeaux". > > I could even add more semantics.... > > <p> > I am <a class="vcard fn url" href="http://changelog.ca/"><span > class="given-name">Charles</span> <span class="additional-name">Iliya</span> > <span class="family-name">Krempeaux</span></a>. > </p> > > Now, not only does it know that "Charles Iliya Krempeaux" is a name. > But it also knows that "Charles" is the person's "given name". That > "Iliya" is that person's "additional name". And that "Krempeaux" is > that person's "family name". > > (If you are coming from an XML point-of-view. Using the class names for > semantics is almost like entangling XML within HTML. If that makes > sense.) With you so far... But so what? As you say, this all works. Why do we need a generic mechanism? The only reason the computer "knows" that Krempeaux is your family name is because someone wrote a spec for class=family-name. It's not automatic, how can it be? -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Tuesday, 7 August 2007 21:15:31 UTC