Joe (bostonsteamer) wrote in lj_biz,
Joe
bostonsteamer
lj_biz

FOAF proposal

FOAF is an acronym for Friend of a Friend, an experimental project and vocabulary for the Semantic Web. It is based on the idea of a machine-readable version of the current World Wide Web, with homepages, mailling lists, travel itineraries, calendars, address books and the likes. Here's an example of a rich FOAF document, and this is the FOAF spec (scroll down for the list of valid attributes).

This is a proposal to automatcially generate foaf.rdf pages from LJ user info. The Howard Dean campaign has already done this with their DeanLink service. Here's an example of a rich FOAF document automatically generated from DeanLink friends' data.

With current LJ user info, we can populate the following FOAF fields:

field (equivilant LJ user info field)
name (user name)
nick (user ID)
homepage (webpage url)
mbox (email) or mbox_sha1sum (email)* 
img (default user pic)
depiction (keywords of default user pic)
weblog (pretty obvious)
interest (one entry for each interest listed)
based_near (location)
icqChatID (these chat fields are pretty self-explanitory)
msnChatID
aimChatID
jabberID
yahooChatID
*[having "Mangle your displayed email address" selected would be equivalent to requesting one's email address to be sha1ified]

Here's where it gets interesting:

knows is a tag that expects another foaf agent, e.g.:
<Person rdf:nodeID="joe">
    <foaf:name>Bill Smith</foaf:name>
    ....     

    <knows>
      <Person>
        <name>Susan Smith</name>
        <mbox_sha1sum>6de4ff27ef927b9ba2assd88257e41a2d7e7d293</mbox_sha1sum>
      </Person>
    </knows>
</Person>  


For LJ, every knows element is a member of the LJ user's friends list! If we implement this, we'd have one of the richest sources of FOAF data on the web.

The other interesting fields for LJ are group and member because they can be populated with the communities that each user belongs to:
<Person rdf:nodeID="bill">
    <foaf:name>Bill Smith</foaf:name>
    ....     

    <foaf:Group>
     <foaf:name>lj_biz</foaf:name>
     <foaf:member>
      <foaf:Person>
       <foaf:nick>bradfitz</foaf:nick>
      </foaf:Person>
     </foaf:member>
    </foaf:Group>
</Person>  


If we wanted to extend this a bit, we could prompt users for FOAF fields on the editinfo page that wouldn't normally be available with the existing LJ user info. A few example fields:
Any combination of the following 5:
title
firstName
surname
family_name
givenname

and the following 3:
plan
currentProject
pastProject


Update: My deepest apologies! I hit "submit" before I was done writing this and since lj_biz screens its posts, I had no way to finish the post until it was approved.

A few people have asked "what's the point?" And to that I ask back, what is the point of RSS and why did we bother implementing it here on LJ, even though people could just visit our journals? RSS was implemented here because it's an open, machine-readable standard that has been adopted by most of the blogging community to facilitate the sharing of information. One of LiveJournal's core values is developing for the open source movement, and I think FOAF is an exemplary project for which to extend this value. Of course there would be the option to disable it. In fact, I think it should be opt-in, since it does provide personal information to the outside world.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 27 comments