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.
4 thoughts on “FOAF-a-Matic Progress Update”
Comments are closed.
You may want to compare XUL notes with Kevin Burton, author of Newsmonster rss reader integrated with Netscape and mozilla…
Hi Leigh,
I’d be happy to help out with some translations to/from Danish, if needed.
Regarding the unknown properties, wouldn’t it be possible to somehow just keep it in memory (as triples) and write it out with the rest?
Also, FWIW, in the FoaF Explorer I simply choose the first person mentioned (XML document-wise, with XPath) in the file.
FOAF-a-matic mk 2 progress!
Leigh Dodds has posted an update on the FOAF-a-matic mk2, which is really good to see.
Thinlet UI generation
Incidentally, Leigh intention for adding other voacabularies to the FAM2 seems pretty much the same as mine did: