It’s the tools, silly.
If there was ever a solution to the ‘Schemas aren’t neutral’ part of the ‘metacrap’ argument, it must be the explosion of tags as an organizing structure. When I file a link in del.icio.us, I don’t need to worry about whether a CSS drop shadow technique goes under the Usenet-like comp → infosystems → www → authoring → stylesheets or (perhaps) Technology → HTML → Graphics; I can just tag it as ‘html css dropshadow graphics’ and be done with it.
Tags are nothing new, of course—keywords have been around forever. But del.ico.us and Flickr provided an intuitive tagging interface, and in came the usable metadata. The secret to machine-readable resource description lies in the tools, not in trying to change how people behave. Weblogging tools are miles ahead in terms of generating beautiful markup than more expensive programs, complemented by the way many modern user agents can use this information-rich data to its full potential. This leads to things like the profusion of new uses for rel attributes (which will eventually need profiles. Andreas Pedersen has a Meta Profile for Blogs proposal). Already, cool stuff like feed autodiscovery and geographical tagging is widespread.
Mozilla’s extensions feature can make the browser parse and respond to any structured code you can think of: witness the revelation that is MozCC or the Link Toolbar. The latter can point me to the start page of a site, the next or previous document, change stylsheets, switch to other alternate versions of the content and discover various permalinks without me needing to identify the relevant links. In short, it is an implementation of the link types in the HTML 4.0 spec. <link rel> is hot.
Lingual Metadata
Which brings us to the content creator’s tools. It’s unfortunate that WordPress doesn’t output rel=start or rel=next/previous by default, but it does generate rel=bookmark. Plugins can do the rest of the heavy lifting. While I work on making WP generate RDF-type stuff to describe media, I’d like to make some suggestions to the developers of the multilingual plugin. I’m sure they’ve thought of all this (and more) because some items are in the code already, but here’s my wishlist anyway:
- Markup
- In the global document
- Change the xml:lang and lang attributes in the xhtml namespace declaration (by dynamically replacing the template declaration, or giving users the text to replace the template declaration themselves).
- If the global site language can be changed, add this to <head>: <link title= “French version” rel= “alternate” hreflang= “fr” href= “http://example.com/”>
- Mark each container element that doesn’t inherit global language properties with the lang attribute.
- In single post pages
- Ok, this item is the reason I’m writing the list in the first place. Please consider implementing it. If I’m on a single post page and there’s an alternate language version of the post, add to the <head> section the aforementioned <link rel= “alternate” hreflang= “languagecode” href= “http://alternate-language-location” /> element for each available language.
- In the global document
- Headers (via PHP or modifying .htaccess)
- Check the Accept-Language request header.
- Provide the Content-Language response header.
- Put WP’s UTF-8 Charset in the response headers.
Let’s make WP approach the classiest possible Web behaviour.
Update #1: Phil Ringnalda makes a related point is made in Meet the New Tag Soup : “… how do we get people to use semantic markup instead of soup? That’s simple, the same way we get them to use rich semantic RSS 1.n, or any other bit of abstract goodness: make it worth their while. [...] a browser extension that shows a linked-up outline in the sidebar, or an on-hover outline in a search results page …
“
Dare Obasanjo also mentions that personal publishing tools trample the metacrap article, and includes something I’d skipped mentioning—the reason why users are taking advantage of these metadata-inserting tools.
del.icio.us is basically a linkblog and Flickr isn’t
much different from a photoblog/moblog. The innovation in these sites is in merging the category metadata from the different entries such that users can browse all the links or photos which match a specified keyword. [...] This provides inherent value to the user and as a side effect [from the users perspective] each new post becomes part of an ecosystem of posts on the same topic which can then be browsed by others.
Another place where collective metadata is being harnessed by providing value to individuals is Audioscrobbler; it caters to users’ desires for profiling their listening preferences, but consequently functions as a musical relationship database (which is fed back to the users in terms of a recommendation engine and profile matching.)
Fabulous list, Firas.
A couple of these have already made it into Multilingual (the
Accept-Languagerequest header checking andContent-Typeresponse header, as well as individual postlangattributes), but the rest have gone on my to-do list, and I should get to them shortly.Making this tool semantically elegant has been one of our goals from the beginning, but we hadn’t thought of a lot of these items yet, so thanks very much for helping us along. Let me know if you think of any more items that should be added.
Thanks for the info.
I am planning to add link information in the next version of the translator plugin.
I already have a multilingual website: a javascript checking choosen language(plus cookie).
All the pages(including headers menus content and footers are with 3 DIV (one for each language) showing depending of the choosen language.
Dont know if that approach is compatible with Wordpress blog structure.
Please take a look.
http://wawadesign.com/about.php
Christian
Christian, yeah, the issue with multilingual support in WP is more about configuration / backend / interface problems than about how to display it once the support is there—since WordPress is PHP you can just read the user’s cookies and output only the language they want.