Monthly Archives: June 2003

foaf2doc

I’ve been working with FOAF a bit recently which has entailed a fair amount of reading through the FOAF namespace document. Doing a “View Source” on that page is also useful as you can then examine the embedded RDF Schema that describes the FOAF vocabulary; there’s a lot more in the schema than is visible in the HTML.
But this soon got frustrating so I gave some thought to a better approach.

Continue reading

Synthetic RSS Feeds and FOAF

Sean McGrath was recently looking for a tool that would “coalesce various standalone feeds into, aggregated feeds so that my client side aggregator sees it as a single feed” which seems like a perfectly reasonable request. And it’s one of many useful features that server-side aggregators could be doing. Others include normalising feeds so they have consistent levels of detail (e.g. with/without content), data cleansing (e.g. removing embedded markup), etc. There’s an essay I keep meaning to write here. It relates to separating out the data processing and presentation elements of RSS applications — everyone can benefit if serverside aggregators can pick up some of the heavy lifting in data processing and caching.
Anyway, whilst looking over the chumpologica just now, it occured to me that a nice feature in a tool like the one Sean is seeking would be to read a FOAF description and build an aggregated “My Friends” feed automatically. It’s only a matter of walking through the seeAlso’d FOAF files and picking out the foaf:weblog properties associated with each friend.
Allowing the level of harvesting to be configurable (e.g. include a friend-of-a-friend-of-a-friend’s weblog) would give an instant “my community” feed.
There are probably other variants of this, especially as the weblog property isn’t limited to people — it can be applied to Projects also.

Schematron Progress

Rick Jelliffe has announced a short document describing the differences between Schematron 1.5, 1.6, and ISO Schematron. The latter being the version that will become part of the ISO DSDL standard.
What with Jing now supporting Schematron, and the publication of James Clark’s Namespace Routing Language document, the DSDL effort seems to be moving forward very nicely.
I’ve always had high expectations for that effort: you only have to look at the people involved to see why. Must devote some time for a closer look soon.
Interestingly, I also note that the latest Oracle XDK supports XML Pipelines. I wonder whether they’re just aiming for completeness or if there have been people clamouring for support?

Why use RDF instead of just XML?

Nice comments from Dan Brickley in response to this posting HubLog: RDF braindump.
This question keeps resurfacing, and this is one of the best answers I’ve seen:
“One way to think about this: the Resource Description Framework (RDF) is a family of XML applications who agree to make a certain tradeoff for the sake of cross-compatibility.”
Via RDF IG Scratchpad.

Radio Monkey

Facts:

  1. I’ve just bought the new Radiohead album, “Hail to the Thief”
  2. I’ve also just bought Bonobo’s new album, “Dial M for Monkey”
  3. A Bonobo is also a type of monkey
  4. It’s Friday
  5. It’s Friday, and there are still no pictures of be-hatted animals on the Daily Chump

Therefore, here’s a picture of a novelty radio in the shape of a monkey with a hat on its head:
a picture of a novelty radio of a monkey wearing a hat
Can you see what I did there? :)
Did I mention I’m on holiday for next week. Going to St. Ives to gorge on pasties.

Structured Procrastination

Just saw this article on “Structured Procrastination” courtesy of Edd on the Daily Chump.
Fits my working style also. This week I’ve refactored the FOAF-a-Matic to allow me to internationalise it very easily, have been hacking on Mark 2 to get ready for another beta, and have been exploring how jpegrdf works with a view to building a tool around it. All while I should actually be concentrating on planning and testing the release of an application.

FOAF-a-Matic In Japanese

The title says it all. The Japanese version of the FOAF-a-Matic was made possible by the kind efforts of Masahide Kanzaki. Big thanks to Masahide for his swift turn-around of the translation.
Masahide has also created a Japanese introduction to FOAF.
Danny has links to other recent FOAF activities

Translating the FOAF-a-Matic

As I mentioned recently I’d like to get the FOAF-a-Matic translated into other languages. The aim is to make the creation of FOAF files as easy as possible for as many people as possible.
While the app doesn’t support all of the various properties that can be added to a FOAF document, I think it does hit the 80/20 point: capturing personal info and basic relationships (foaf:knows).
I’ve therefore taken the current version of the application and pulled out the boiler plate text, field names, etc and created this document. It should be fairly self-explanatory. Most of it corresponds to chunks of text that need translating. I’ve then got some XSLT stylesheets and a simple Ant buildfile that takes this document and recreates the application.
So…I’m looking for volunteers willing to download en.xml, translate it into another language, and return it to me so I can release a new version of the application that supports multiple languages.
(I’ll invoke the LazyWeb at this point to get this call for volunteers circulated as far as possible).
Thanks in advance. Any questions drop me an email.
Update: Two volunteers already. Leandro Mariano Lopez is doing a Spanish translation (now live), and Masahide Kanzaki is submitting a Japanese translation (now live). Excellent.
Update 2: Manos Batsis is working on a Greek translation. (now live)
Update 3: Francois Granger just signed up for the French translation (now live).
Update 4: Christof Hoeke has signed up to do a German translation (now live).
Update 5: Erik Stattin has offered a Swedish translation (now live), and Morten Frederikson is busy with the Danish version (now live).
Update 6: If you have your language preferences set correctly in
your browser, you should be able to visit http://www.ldodds.com/foaf/foaf-a-matic and the correct version should be delivered directly. The miracle of content negotiation.
You can’t tell but I’ve got a big grin on my face. I’m really pleased that people were interested enough to do these translations so quickly. If I was American I’d probably say that I’m “stoked” but I’m not, so I’ll stick to “chuffed to bits” instead. Thank you all.

People Nearby

I added the magic META markup to get myself into GeoURL today and now that they’ve harvested my co-ordinates I’ve been amusing myself by cruising through the list of sites geographically near mine. It makes for interesting reading.
Surprisingly there aren’t any sites at all in Bath. But there are certainly plenty in and around Bristol, of which more than a few seem to be from web designers or web developers. In fact the closest person to me (at least currently) is Simon Willison whose CSS tutorials I bookmarked in my “Stuff To Read” folder earlier this week.
I found cruising through these sites, occasionally tripping over common points of reference (commonly read blogs, thoughts on FOAF and semweb hackery, song lyrics, etc) a fascinating but also very curious experience, highlighting how the web can both draw people together whilst simultaneously pushing them apart; how we have issues and interests in common, but share them within a limited medium; how we can have heated debates and fascinating discussions through and with online personas, without realising that we’re interacting with a person we pass on the street every day.
No new insights. It just got me thinking. Or maybe I’m just in a funny mood because Ethan got me out of bed at 5.50am this morning.
Anyway two of the most interesting things I came across were courtesy of Jon Hadley who linked to these scale drawings of sky scrapers (nice pics) and St. Vincent’s Rock a “story of myths and legends in modern Bristol” (nicely drawn comic).
The latter was part of Bristol’s now failed bid to be Capital of Culture. Shame.

FOAF-a-Matic Progress Update

I’ve been hacking on the FOAF-a-Matic Mark 2 again this week after some gentle (and much needed) prodding from Phil Wilson who got so fed up with waiting for me to release another version, he went ahead and did some work on the code himself. (And why not, its Public Domain after all).
So during some travel up and down to Oxford this week, I’ve taken the time to finish off the refactoring I was doing so that I can begin making forward progress once more. I’ve removed great chunks of code which began redundant once I’d integrated Jena, and factored out the rest into reusable packages that I can, potentially, release separately.
I’ve now gotten to the point where I’m looking over Phil’s code to see how he’s tackled the loading of vCard and FOAF data. The vCard processing is pretty straight-forward and I integrated that in a couple of minutes, although I want to beef it up slightly as there’s a bit more data that could be extracted and turned into FOAF properties; I also want to support the vCard in RDF format.
Loading FOAF data should be similarly straight-forward. I think for the first iteration I’ll simply throw away properties the FOAF-a-Matic doesn’t understand. Then progressively expand the breadth of FOAF data the tool can process. That way there will be enough new code for a second functioning beta.
Phil’s attempt at FOAF loading relies on the FOAF file having a description. This is fine for round-tripping data through the tool but I want to be able to process FOAF data from elsewhere. I suspect that querying the model to ask “which person listed in the graph has friends but isn’t the friend of anyone else?” would give me the desired entry point. There are obviously problems with this approach too, especially if you’re loading a FOAF document that describes several people and their friends, but I don’t think this is significant at the moment.
And as a slight correction to Phil’s recent blog post, while I did tinker for a while with a XUL based FOAF-a-Matic I wasn’t planning to ditch thinlets completely. The XUL version would have been entirely separate and was really just an excuse to investigate the RDF support in Mozilla a bit further. However XUL frustrations meant that I’ve ditched this line of research, at least for now.
I also want to try and get some foreign language translations of the original FOAF-a-Matic. Its been on my TODO list for a while but I need to tidy up the docs first. I should perhaps also factor out the error messages into a separate easily customisable Javascript file as well. Volunteers willing to do translations please drop me a line.
Anyway tip of the hat to Phil for the kick up the arse.

Follow

Get every new post delivered to your Inbox.

Join 30 other followers