LiveJournal FOAF
Oct. 6th, 2008
09:44 pm - Stipid Question
How can I use a SPARQL with LJ FOAF, e.g. if I want to get 500 last registered users. Can Somebody help me?
Mar. 30th, 2006
01:51 pm - ICBM/based_near
http://cvs.livejournal.org/browse.cgi/l
http://community.livejournal.com/change
Set your ICBM via http://community.livejournal.com/lj_nif
Feb. 17th, 2005
08:44 pm - FOAF Update Patch
Since I now have someone to pass the torch onto for the time being, I took the time to put together a decent patch for LiveJournal's FOAF output. There are a number of distinct aspects to improving LiveJournal's FOAF output: in this patch, I include all of them. This entry includes an annotated version of the patch, and what I'm changing, and why.
The patch can be found at http://crschmidt.net/lj/foaf.patch.txt
LJ::load_user_props($u, qw{
- aolim icq yahoo jabber msn url urlname external_foaf_url
+ aolim icq yahoo jabber msn url urlname external_foaf_url state city country journaltitle
});
Here, you can see that I am adding three user props for loading: state, city, country, and journaltitle. These will all be used, if available, later in the FOAF file.
- $ret .= " xml:lang=\"en\"\n";
Pulling out the xml:lang="en", becuase it really isn't serving the purpose it should. Although there is *some* text in the document which is in the English language, much of it is going to be nicknames or other fields which are not language specific, and tagging these as English turned out to be a bad idea. In addition, sha1sums were also being tagged as english, which means that in some cases, they aren't seen as "equal" due to language differences.
The next chunk looks a bit funky, but I'm not about to hack diff to make it look better, so I'll just explain: The birthdate and Group/Person code is moving down a bit. The first part of the file will now be a "PersonalProfileDocument". This allows spiders of the document to know who the main "person" the file is about is, without needing LiveJournal specific knowledge. To that end, I've also added an rdf:nodeID='a', to link from the profile document to the <foaf:Person> who is the maker/center of the document. The reason that the nickname and birthdate are moving down is that they were earlier displayed, even if the user had an external FOAF URL, which is not acceptable: with an external FOAF URL, as much data as possible should be left out.
The next chunk:
- # include a user's journal page and web site info
- $ret .= " <foaf:weblog rdf:resource=\"" . LJ::journal_base($u) . "/\"/>\n";
+ # include a user's journal page, name/nick and web site info
+ $ret .= " <foaf:name>LJ::exml($u->{name})</foaf:na
+ $ret .= " <foaf:nick>$u->{user}</foaf:nick>\n";
+ $ret .= " <foaf:logo rdf:resource='$LJ::USERPIC_ROOT/$u->{def
+ $ret .= " <foaf:weblog rdf:resource='" . LJ::journal_base($u) . "/'";
+ $ret .= " dc:title=\"" . LJ::exml($u->{journaltitle}) . "\"" if $u->{journaltitle};
+ $ret .= "/>\n";
is probably the most controversial change of the bunch. There are three things happening here:
- foaf:name is added, set to the "Name" field stored for the user
- default userpic is added, as a foaf:logo. This was a *lot* of discussion in the foaf community, and it was decided that this was the closest thing that there was to a foaf-specific tag.
- journaltitle, if it is available, is added to the weblog node.
The next two chunks are well laid out and self explanatory: one is a a reformatting of the foaf:dateOfBirth (Which has been redefined to not be what LiveJournal uses) into a bio:birth Event with a date. Secondly, the location information is included as a vcard:ADR, the most accurate way of describing said information at the moment.
If anyone has any thoughts on things I've missed, or would like me to explain my reasoning more for a specific choice, please feel free to ask, and I will do my best to answer.
http://crschmidt.net/lj/foaf.patched.xm
Edited: Mutiny, on #foaf on irc.freenode.net, mentions that I wasn't properly escaping the $u->{name} field. This isn't needed for $u->{nick}, since it can't have any goofy characters, but name certainly can.
Feb. 16th, 2005
02:49 am - Poof goes the data
What happened to the data promised in this entry? As far as I can tell, most of it is missing from the current FOAF output. I assume there's a reason for this?
Most notably, I've been poking at the very popular friends collage and the LJ FOAF visualizer; they both load the RSS feed for the user just to get their userpic. Well, I haven't verified it for the collage, but I've decompiled the visualizer and it definitely does.
It seems that this information is in high demand ;)
Dec. 30th, 2004
04:56 pm
This is similar to the question that was asked asked, but is there a way to add a see also statement to our lj foaf files? If not, I would like to suggest this fuctionality.
Dec. 29th, 2004
05:11 pm - FOAF Merging?
Sorry. I'm new to this user group so I'm sure this question has been ask many times before, but is there a simple way or an application that will take multiple FOAF files (say, from LJ and Tribe.net) and merge them into one?
Dec. 24th, 2004
03:51 pm - Importing FOAF data
Hello,
I'm curious, is there now or is there planned to be a way for LiveJournal to import FOAF data? The Manage User Info screen lets you input a FOAF URL, but the explanatory text there says merely that requests for the built-in FOAF URL on LiveJournal will redirect to that URL if it is provided. I imagine that certain information, such as the "knows" data, would have to be ignored, but other things, like the user's interests, bio, and homepage, could be updated.
Sep. 5th, 2004
08:18 pm - LJ Visualization
Not sure how many people are interested to see applications of the lj foaf data, but here's a project of mine in case anyone's interested: a LiveJournal social network browser. The basic idea is that you load one user's extended network (a VERY slow process the first time), and then you click and hover around exploring the interconnections amongst both friend relationships and interest matches. I'd love to hear any feedback or questions.
Jul. 20th, 2004
10:13 am
Hello everyone, I have a very simple question - how to(using what) calculate a hash of my e-mail address?
Jun. 3rd, 2004
10:39 pm - FOAF-trolls
This entire concept of FOAF seems very intresting and promising, but I do have to ask, it also is based on the conept that a web users FOAF file would be correct, yes? There's nothing preventing someone from creating a FOAF file that isn't a real reflection of themselves.
Do you think these "FOAF-trolls" may prove to be a problem, or just something we'll have to live with?
![[mood icon]](https://web.archive.org/web/20100118151037im_/http://l-stat.livejournal.com/img/mood/classic/confused.gif)
May. 9th, 2004
02:07 pm - Other sources of FOAF?
Last night I wrote an Objective C parser for FOAF, based on LJ's FOAF feeds. Does anyone know other sites that publish FOAF so that I can test my code with general feeds?
( Example app screenshot behind the cut )
Feb. 28th, 2004
10:59 am - FOAF additions
Alright, I'm putting together updates to the FOAF information for the next version. I can't make any promises as to when it will go in, live, or even be passed onto a developer - this is a very rough draft of changes that I'm working on making.
Let me know if there's anything I missed.
Additions:
( vocabularies, PPD, nodeID, location, userpic, keywords )
Possible additions that I haven't yet coded:
( mbox, turn foaf on/off )
Additions that will not happen:
( foaf:knows additions, account type )
There is a lot of information this doesn't provide. This is not meant to be a definitive source of information for all bots. It's a way to provide information about a person and their relationships with other people. For this reason, some information will simply not be available through this interface. Work is already underway which will provide other information to spiders and bots. (The Web Services API, http://www.livejournal.com/community/lj
Feb. 25th, 2004
09:49 am - Encoding?
I'm having a hard time downloading my FOAF file using the easy ways of doing it in Cocoa (i.e. +stringWithContentsOfURL:). The Cocoa docs say the following about this method:
( Documentation )
When I retrieve my FOAF file and display it, it looks like this:
( screen snap )
I notice that the FOAF XML doesn't say anything explicit about its encoding. Retrieving the file with wget and reading it in my code works fine. How is the FOAF data encoded (or supposed to be interpreted)?
02:59 am - Bot Policy
http://www.livejournal.com/community/lj
Please keep in mind that this is still possibly subject to change, so keep your eyes open for more information from bradfitz regarding how to act with regard to taking information from LiveJournal.
11:04 pm
It seems some sites, such as Plink, consolodate a feof:Person's appearances in several FEOF files by matching the mbox SHA1 value.
Would it be possible for LiveJournal to hash the mailbox values of a given user's friends (i.e. feof:Person under feof:knows)?
Forgive me if I am not making any sense, or if I am totally wrong. I have only spent about 15 minutes studying FEOF, and I was supposed to be in bed an hour ago.
Feb. 24th, 2004
11:49 pm - Free users
I assume that FOAF is generated equally for free users and paid users. It's not truncated or anything, is it?
04:05 pm - Privacy
I've seen a couple of weblog entries about how FOAF is a violation of the privacy of the users on the site, and so on and so forth.
The primary thing to remember about LiveJournal's FOAF information is that it's not presenting new or different information, only a new format. All the information available in my FOAF file is equally available in my User Information: compare http://crschmidt.livejournal.com/in
If you don't want your contact information shared, there's an easy solution - simply choose to not have your information shown to all users, which will block it from your FOAF file as well. If you would like to block your FOAF file from containing information like your friendships, you can do so by including a URL in the Edit Information page, at http://www.livejournal.com/editinfo.b
LiveJournal allows options to block a certain subset of information, which FOAF respects. Any information that is displayed is not information that's difficult to find - simply parse the user information page.
That's why LiveJournal FOAF really isn't a big deal from a privacy standpoint: the information is already there.
12:35 pm - Orkut message - LJ FOAF
Since I've seen a lot of demand for FOAF from orkut, I thought I'd post a message to my friends on the site, a lot of whom are semantic webbers. This is the post I made to my Friends of Friends network on orkut - a message that got sent out to 750+ people.
If you are part of any large social site, you may want to do the same thing. Pass the message along - increasing the size of the semantic web is a goal not just for geeks, but for everyone.
----------- START -------------
to: friends of friends
subject: LiveJournal FOAF
message: I know this won't be applicable to all of you, but a fair number of people will probably be interested in this.
LiveJournal now exports FOAF data, including foaf:interests, foaf:knows, and contact information. It's exported for every user at http://www.livejournal.com/users/userna
For those of you who don't know what FOAF is, it's the "Friend of a Friend" project - http://www.foaf-project.org . This project is geared towards making your relationships with other people machine readable.
FOAF is a way to describe yourself, and your relationships with other people. Orkut is a prime example of a site that could export FOAF data - your contact information, which you choose to display, could be displayed in an exportable format.
Some people might ask "What's the point?" The point of FOAF is to allow machines to look through people, find information that you might be interested in about that person, and deliver it to you.
Perhaps I'm interested in other people that are friends of my friends who live near O'Hare airport - I'm looking for a ride. So, I put in my FOAF file, which defines my friends, and tell it to search for "basedNear" codes of O'Hare airport. By using FOAF, it could expand out, find friends of friends, and give you back contact information for them.
The tools to do this thing need larger base data to advance. We need to be able to describe ourselves in a way that computers can understand in order to make better our interactions. This is the purpose of the semantic web - and LiveJournal is working to start it off.
Orkut can help too. Tell orkut today that you want FOAF data exported. Let them know you want to see machines talking to each other. In the end, you may be helping to start something big.
-Christopher Schmidt
lj:crschmidt
09:38 am - Example FOAF file
The following is an example foaf file (for me). Each of the fields is rather self explanatory, but I thought I'd post this here, since most browser don't have an easily viewable way of showing application/rdf+xml data.
This file is trimmed of unimportant stuff - you don't need my entire interests lists, for example.
( example file )
This example created to help those of you who want to write tools for this to do so.
Happy Parsing!
09:16 am - External_foaf_url broken
Due to a lack of testing, most likely on my part, FOAF's external_foaf_url page returns a non-XML compliant page. I've opened a Zilla bug to deal with this, but you should keep in mind when possibly setting up your external FOAF URL that the page returned will not be XML compliant until this change goes in and live.
(Specifically, I forgot a / in a field, which causes the page not to parse. Damn semantics!)
Navigate: (Previous 20 Entries)