Thinking about Meta

I’ve been doing some thinking recently about the importance of meta data in my upcoming content management system and how best to implement my own meta data scheme. Given that I am interested in providing a RSS feeds something that is interoperable with that would be a good start. One particular focus has been to gain a broader understanding of the dublin core meta data schemes and their applications, An article I came across a while ago now can be found at ArsTechnica, it provides an interesting insight into different layers of metadata.

Pie Menus

There has been a bit of a buzz lately about Pie menus. This has been prompted by the availability of an mouse gestures add-in for Mozilla. My interest has been peaked because as a player of the Sims I have been using them quite a bit without realising it. I think it is interesting to note that my non-technical girlfriend got into playing the game very quickly and didn’t need guiding through any of the menu options. The ease with which they can be used by non-technical personnel leads me to believe that they may have an important role to play in future HCI development.

Mozilla Addons

After Mark Pilgrim mentioned an extension to Mozilla that allows “rich editing” of content in a text area I thought I should mention a few of my favourite Mozilla utilities.

  • Calendar – A nice calendar that is compatible with iCal files.
  • Annozilla – A useful utility that allows users to attach annotations to any webpage, useful demonstration of a w3c idea.
  • RSSzilla – Still needs work doing but should become an interesting project when it gets going.

One useful way to keep on top of your favourite projects is to point your news reader [Usenet news reader that is] tonews.mozdev.org for mozdev projects or the netscape.public.mozilla.* newsgroups for the core projects.

Chronicles of a CMS

I am currently developing a content management system for this website, you can read about how it is going by reading my short feature article about the CMS development, it begins by explaining the development process I am undertaking.

Why use a CMS? I guess I’m just bored of the cut and paste HTML editing I do on this personal site. I have recently changed my hosting provider to one with some scripting capability so I am finally going to be able to implement all the cool ideas I have floating around in my head, you can see the development of the system and read a little bit more about my reasoning in Chronicles of a CMS.

Top signs you’ve been scripting too much. see what the consensus was on a recent Usenet discussion.

Just a short note

Well If you’re reading this then you have been succesfully redirected to my new host! I’ve not posted the last couple of days while waiting for the DNS to fully propogate, In the meantime what have I been upto? Well getting back to university for a start, yes after another summer excursion into the realms of full-time employment I venture back into the rarefied aptmosphere of academic life. On the web front you may want to check out the new pheonix release from the Mozilla organisation, its not as fully featured as the real Mozilla releases but it is definately worth checking out as a lightweight browser, bear in mind though that it is only version 0.1 so problems are to be expected.

In the meantime I’ve been getting back into reading mode and I am currently working through a book, written by Garret Mattingly, about The Defeat of Spanish Armada, as I took geography as my “humanities” subject at school my historical knowledge of this subject is a little brief so I thought it best to educate myself concerning it. In the course og my reading I have encountered a new word,magniloquent. This caused me to reflect on how my learning of general vocabulary had seemed to diminish to a large extent, reading books from other disciplines has been a refreshing course of action for me.

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.