application/rdf+xml

A little FOAF Extension: PreferredOnlineAccount

Today I wrote up a little extension to FOAF which enabled Agents to figure out which OnlineAccount is a PreferredOnlineAccount. Nothing big but important to route strangers to my preferred communication channel by pointing to my preferred jabber account. Agents (like my OnlineAccountDOA) may use SPARQL to find the preferred account:

PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX foafx: <http://b4mad.net/ns/foafx/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
SELECT ?sha1sum ?id ?url
WHERE {
     ?account a foafx:PreferredOnlineAccount .
     ?account foaf:accountName ?id . 
     ?account foaf:accountServiceHomepage ?url . 
     ?person foaf:holdsAccount ?account .
     ?person foaf:mbox_sha1sum ?sha1sum .
     ?person foaf:nick ?nick .
     FILTER ( str(?url) = "http://www.jabber.org/network/"^^xsd:string
      && str(?nick) = "[GNU]"^^xsd:string )
}

UPDATE: I have done some more work on extending FOAF, this work can be found at my FOAFX homepage. Feel free to comment on this!