Few things annoy me more after a tedious day of year-end accounts than the sheer wrongness that is FOAF...
For the semantic web to catch on, it needs to start by being, uhm... semantic!
This, for example, is not remotely semantic:
<rdf:RDF xmlns:rdf=" http://www.w3.org/1999/02/22-rdf-syntax-ns# " xmlns:foaf=" http://xmlns.com/foaf/0.1/ "> <foaf:Person> <foaf:name>Peter Parker</foaf:name> <foaf:mbox rdf:resource="mailto: peter.parker@dailybugle.com "/> </foaf:Person> </rdf:RDF>
When I look at things like FOAF I fear for the future of the web. Why would anyone want to inject industrial effluent like this in to a web page? It is the complete opposite of semantic.
Why would I use a "foaf" tag to define a person and their name and their "mbox"? When was the last time you sat in a pub and referred to "your friend" as "your foaf"?
Hi, this is my foaf, his foaf:name is Joe
I think not.
The most remarkable example of all that's wrong with the "lets put de-humanised XML cruft in to a web page and tell everyone it's semantic" movement is using the term "mbox" to represent "email". In which universe do people refer to email as an "mbox"?
Hi, I got your foaf:mbox, thanks!
FAIL!
If you want the semantic web idea to succeed, ditch all this FOAF-like cruft and use microformats.
Microformats not only provide more flexibility in which semantic elements are used to convey information semantically, both now and in the future, they also make it nice and easy to apply style sheets, process with javascript (eg. using something like jQuery) and, shock horror, they are actually semantic.
Take this comparison for example - what is the semantic way to convey the following text?
Hi, my name is Guy.
Do you:
A: choose FOAF...
<p>Hi, my name is <rdf:RDF xmlns:rdf=" http://www.w3.org/1999/02/22-rdf-syntax-ns# " xmlns:foaf=" http://xmlns.com/foaf/0.1/ "> <foaf:Person> <foaf:name>Guy</foaf:name> </foaf:Person> </rdf:RDF></p>
Or...
B: use hCard microformat:
<p class="vcard">Hi, my name is <span class="fn">Guy</span></p>
It's not a trick question. I admit it's a really difficult to see which one of those is the more semantic solution, so I'll put you out of your misery and give you a hint: Option A is wrong on many levels.
If you want the web to be semantic, humanise the semantics!
Thanks, I'll be here all week.




