The HTML profile attribute

Mark Pilgrim gave a pointer today to an interesting article regarding which makes mention of the profile attribute, which is relevant to my earlier post about RSS autodiscovery, I had a brief email exchange with Mark about profiles a few days ago and I am glad to see he has found an interesting resource that I can learn from. The article, “HyperRDF“, is about producing RDF schemas from XHTML. It is interesting reading if you are interested in learning more about the semantic web.

CSS stylesheet for RSS

I’ve been working on a style sheet for simple styling of RSS feeds. I’ll get around to including it in my CSS templates zip file soon, however for the time being here is a link to the the CSS in all it’s glory. I’ll admit to it being quite basic at the moment, but at least it is a little easier on the eye than a block of text with no formatting. To call the CSS file you can use the XML stylesheet instruction
<?xml-stylesheet href="style.css" type="text/css"?>

The site has been experienceing server problems recently but I am planning a move to another host in the near future. Because of this some of my plans for the site have been put on hold until I have moved hosts and have the oportunity to develop my site on the new setup. Look forward to more RSS feeds in addition to the articles feed I already have.

If your interested in learning more about RSS I can recommend rss.benhammersley.com and www.diveintomark.org for starters.

RSS Autodiscovery

Can current practice on auto discovery be improved?

Why do I care? Well, the current practice is a misuse of the rel attribute and is not taking advantage of the methods defined in the HTML 4 specs (and thus in XHTML 1 etc).

Example of the current practice
<link rel="alternate" type="application/rss+xml" title="RSS" href="http://www.aurl.example/rss.xml">

Why is it a misuse of the rel attribute? See http://www.w3.org/TR/html401/types.html#type-links

Alternate
Designates substitute versions for the document in which the link occurs. When used together with the lang attribute, it implies a translated version of the document. When used together with the media attribute, it implies a version designed for a different medium (or media).

Merely having rel=”alternate” is insufficient, it is an alternate what? Determining this by (unregistered) mime types is (IMO) a mistake, limits the use of alternate for truly alternate meta data choices and is undefined by the HTML specs.

To extend the keywords available to use in the rel attribute requires the document author to specify a profile to specify these new keywords. See http://www.w3.org/TR/html401/struct/global.html#h-7.4.4 andhttp://www.w3.org/TR/html401/struct/global.html#profiles

In general, specifying meta data involves two steps:

  1. Declaring a property and a value for that property. This may be done in two ways:
    1. From within a document, via the META element.
    2. From outside a document, by linking to meta data via the LINK element (see the section on link types).
  2. Referring to a profile where the property and its legal values are defined. To designate a profile, use the profile attribute of the HEAD element.

These points specify how to reference Meta data, and the like, from within a HTML document. The current practice does not reflect HTML’s recommendations on this and should be modified to be in conformance. My proposal is the following.

The head element of the page should contain a profile element
e.g. <head profile="http://www.someurl.org/RSSMetaDataProfile/">

The link element pointing to the RSS feed should have a rel attribute, the attribute value is defined by the profile, the profile can be a single URL identifying the profile used it’s format is not specified by HTML (it could just point to an English language specification, for example the RSS 1.0 spec, which states the valid values.)

For example
<link rel="RSS" type="application/xml" title="RSS weblog" href="http://www.aurl.example/rss_weblog_channel.xml" >
<link rel="alternate RSS" type="application/xml" title="RSS articles" href="http://www.aurl.example/rss_articles_channel.xml" >

Now that the alternate value is not artificially overloaded it is possible to use it to correctly specify an alternate choice between two specified link types, rather than an indeterminate alternate choice.

Recommended RSS reading

After beginning to implement some RSS feeds on my site it feels like I’ve stumbled into a fragmented scene of competing versions. The scene is much different to working with W3 standards which are generally only published after periods of consultation etc, the development of RSS seems to be going on between competing groups of people with development decisions published on weblogs and implemented almost immediately by the relevant group, Although this is an effective method of driving traffic to certain sites I’m not convinced as to it’s merit for drafting standards which can be implemented uniformly. Without a centralised repository for the specification (or at least one that keeps up with these changes) it is difficult for someone to jump on board immediately and make full use of the exciting possibilities of RSS.

Having said that it’s not all bad news, if you are happy to keep it simple writing RSS that is interoperable between various news aggregators seems to be quite possible. An interesting article I’ve recently come across is the RSS Tutorial for Content Publishers and Webmasters, this does a good job of explaining the differences between the two main versions of RSS, 0.9x and 1.0. Another weblog, Dive into Mark, is where I read an interesting article on RSS 2.0.

Well with all this talk of RSS feeds etc I though it might be a good idea to link to the site that demonstrates some of the potential RSS offers, holovaty.com allows readers to submit queries that return a RSS feed of content that matches the keywords submitted. A nicely designed site with interesting material to boot!

Syndicate this site?

As a result of some of my musings about the semantic web and (brought about by my definition lists article) I thought I’d experiment with writing an RSS feed. As it is my first effort at producing such a thing I’ve decided to have create a channel for my articles first as these are not updated frequently. This will give me a little time to investigate methods for automatically generating the feeds etc which will make life easier for when I want to syndicate the blog “channel” of my website. The URL for my RSS feed is http://www.benmeadowcroft.com/rss/articles.rdf and no, I’m not going to add that ugly orange XML box that you see everywhere linking to it.

Feedback on my Definition List article

I’ve had some fairly interesting feedback on the article I wrote [in the usenet group comp.infosystems.www.authoring.html], the interesting stuff is mainly from concepts that have branched off from some of the content management points raised in the article, google groups has an archive of the discussion.

This site will have been in it’s present location for around a year this coming November, to “celebrate” I’m thinking of revamping the look of the site. The wheels are turning already.

Definition Lists article added

It’s been a while since my last article on abbreviations and acronyms, so I thought I’d write another. My current article is about definition lists and some of the more interesting ways they can be used. The benefits of writing HTML in a meaningful way are barely being touched upon in my opinion, with the advent of advanced content management systems semantically rich information can be manipulated and used in a plethora of new ways.

Google Glossary. In relation to definition lists and tools making use of them, the google glossary has been available for some time now in the google labs, it is one of those projects that I hope becomes a mainstream google tool. Here’s my vote any way, not that google is a democracy though :).

Current Reading: The Content Management Bible.