Using XFN with FOAF
So, before I just start splattering your screen with Acronyms, lets define a few, eh?
- FOAF: Friend of a Friend - An XML Schema containing information about you, as well as a small bit of information, or links to information, about the people you know.
- XFN: XHTML Friends Network - A Microformat generally used in links to other sites or pages to identify that person's relevance to you, such as "contact", "friend", "acquaintance", "met", "muse" and etcetera.
Generally, you wouldn't combine an XHTML standard with a different XML Schema. But, I've personally decided the best way to use the two together.
First, declare the XHTML namespace in your FOAF file. This is with all the others, and generally looks like xmlns:xhtml="http://www.w3.org/1999/xhtml".
Next, go to where you have included your contacts. For each <foaf:knows> tag, add inside of it xhtml:rel="contact" or similar, following the XFN standards.
And voila! You now have XFN and FOAF working together. Of course, the only problem is that nobody quite supports this standard yet, but it will hopefully come in the future.
My Guidelines for using XFN in FOAF is that it should be used when referencing another <foaf:Person>. In fact, if you want, you should probably even add xhtml:rel="me" to your own <foaf:Person>.
The Portable Data Account Manager
This is my newest concept that I will one day attempt to put into reality.
If you've been reading my blog for the short period of time that I've been writing it, you'll have noticed that I have a lot of interest in standards such as HTML5, XHTML, Microformats, and the newest concept group, DataPortability.
Since I learned about DataPortability, I've been excessively interested in the idea that I would be able to share my data between websites. If you've paid attention to my twitter, you'll notice that I even went out and created such a test system on my website. I have an OpenID, FOAF, and XRDS all hosted on my own personal web server. The next step I want to take? Creating a beta system for account management. Unfortunately, one of the only things that is holding this back is how it would work. How are websites supposed to query for your XRDS, your FOAF, your APML, RDF, and so forth? You obviously don't want them to just directly download the feeds off of the webserver by themselves. Why? Privacy controls. We need privacy controls and the only thing stopping me from creating such a system, are these privacy controls.
My ideas already span over the concept of having multiple systems. For example, certain data would be added or excluded to your "Professional" FOAF and the same for your "Social" FOAF. The concept even goes over the fact that you could create as many FOAF, XRDS, RDF, APML, etc. systems so that you could share only the data that you want to share with certain websites. And that this interface.. this GUI would help you manage it all, from a single OpenID login.
Yes, it sounds impressive. But I'm not quite there yet. First thing I need to do, will be to create my own OpenID server. And by that, I don't mean download the newest PHP OpenID client/server I can find, I mean reading over OpenID 2.0 and its accompanying standards and program one from scratch.
What do my readers think of this idea? Do you like it?
Depressing Validation Results
On a whim, I decided to attempt validating every website I mentioned yesterday. Overall, XHTML won out the results. But they are depressing none the less.
- XHTML
- Blogger (This Blog)
- XHTML 1.0 Transitional
- FAILED
- 70 Errors
- Opera
- XHTML 1.0 Strict
- PASS!
- FireFox (Mozilla)
- XHTML 1.0 Strict
- PASS!
- Facebook (Home Page for signed in user)
- XHTML 1.0 Strict
- FAILED
- 659 Errors (wow.)
- MySpace (Home Page)
- NO DOCTYPE FOUND (FAILED)
- Twitter (Home page for signed in user)
- XHTML 1.0 Strict
- FAILED
- 82 Errors
- W3C (Home Page)
- XHTML 1.0 Strict
- PASS!
- HTML
- Microsoft (Home page)
- HTML 4.0 Transitional
- FAILED
- 31 Errors
- Yahoo!
- HTML 4.01 Strict
- FAILED
- 294 Errors
- Apple
- HTML 4.01 Transitional
- FAILED
- 4 Errors
- Google (non-iGoogle homepage)
- NO DOCTYPE FOUND (FAILED)
- WHATWG (Homepage)
- HTML 4.01 Strict
- FAILED
- 5 Errors
PASS/FAIL Results:
- XHTML
- 3/7 Passed
- HTML
- 0/5 Passed
The Results are bad enough as they are for the XHTML websites, but not a single HTML website validates, not even the WHATWG. Irony much?