[uf-discuss] hFoaF - Hypertext Friend of a Friend
Toby A Inkster
mail at tobyinkster.co.uk
Thu Dec 4 11:05:24 PST 2008
Good work, Martin. As I am rubbish at XSLT, these few notes are
mainly from a FOAF perspective:
1. RDF (and thus FOAF, which is an application of RDF) uses URIs to
identify virtually everything. (There are exceptions: literals and
blank nodes.) What is important for RDF to work is that each distinct
resource (i.e. "thing") has a distinct URI. No two resources can
share a URI - syntactically there is nothing to prevent them sharing,
but semantically it doesn't work - things fall apart when you start
feeding your data into any sort of reasoning system.
hFoaF, when dealing with XFN input creates RDF triples[1] like this:
<#alice>
xfn:met
<http://bob.example.com/> .
<http://bob.example.com/>
foaf:homepage
<http://bob.example.com/> .
Here you are clearly using the same URI to represent both Bob and
Bob's web page. What if we added say, a creation date for <http://
bob.example.com/>? Would that mean that Bob was born on that date? Or
perhaps it was the day he first uploaded some HTML to his server?
The easy solution is to use the URI to represent Bob's web page only
and then choose a different URI for Bob. Choosing a different URI for
Bob is pretty easy to do - simply give his web page a prefix or
suffix. e.g. you could create these triples:
<#alice>
xfn:met
<x-person:http://bob.example.com/> .
<x-person:http://bob.example.com/>
foaf:homepage
<http://bob.example.com/> .
Where "x-person:" is a randomly made-up, unregistered URI scheme.
Using an unregistered, made-up URI scheme is obviously suboptimal
though, so if you wanted to get very fancy, you could use Google's
(also unregistered, but at least not pulled out of thin air) "sgn:"
URI scheme. SG Node Mapper[2] can be used to determine the sgn URI
for a person from their web page's URI, but it may be tricky to use
it in XSLT.
2. You seem to have rel=author and rev=made back to front. They are
not for linking to stuff which you've authored/made; they are for
linking *from* stuff that you've authored *to* you! If you want to
link from *you* to stuff that you've authored, use rev=author or
rel=made.
3. In your example output, your foaf:name is "MartinMcEvoy" (no space).
____
Footnotes:
1. Using Turtle notation:
http://www.dajobe.org/2004/01/turtle/
2. Google Social Graph Node Mapper:
http://code.google.com/p/google-sgnodemapper/
--
Toby A Inkster
<mailto:mail at tobyinkster.co.uk>
<http://tobyinkster.co.uk>
More information about the microformats-discuss
mailing list