File this in the wild conjecture/handy-waving category.
I did some random digging today and stumbled upon something that could be pretty interesting, or, could be nothing more than the equivalent of the human appendix of Leopard: remnants of a good idea that somehow along the way never got completed, but traces of it still exist in the modern state for no apparent reason than to confuse and confound those with too many mental faculties at his disposal.
But let’s go with the what if? take. What with my interest in getting people into software in interesting ways, this one seems, like cave paintings, to point to earlier attempts at some fundamental type of expression of a very contemporary idea.
Anyway, the thing is this. While poking around Articles.js in Leopard’s PubSub.framework (you’ll need to be running Leopard for the Articles.js link), I noted a call to a couple functions having to do with FOAF, in particular
function loadFOAF( ) and
function receivedFOAF( html ). I talked to Tantek about this and apparently it had to do with some misbegotten effort to bring FOAF support to Safari but that it was effectively stillborn for reasons I can’t recall, but what was interesting was that, tucked away, I discovered a seemingly orphaned file called Friends.html (again, Leopard only).
This got me curious.
I started poking around the PubSub.framework for other clues… (And so you know, the Leopard PubSub.framework is effectively a system-level toolkit for subscribing to RSS and ATOM feeds and maintaining read/unread status universally — something that Windows Vista also apparently has. In any case it’s pretty cool, and it’s also new with Leopard).
So, after poking about, I eventually ended up here:
Within this directory is a file called
PSAuthor.h and its contents are quite intriguing. The file describes a class of object called
ABPerson (short for “Address Book person”). The various properties of an “ABPerson” are summarily listed, primarily pulled from the ATOM spec: things such as
URL. There is also a conspicuous method at the end of the file called
person, which is not listed in the docs, and which is apparently used to associate an author of a web feed with a person from the Apple Address Book. This is huge. Let me pull the method in its entirety:
/* @method person @abstract Returns the Address Book record associated with the receiver. @result The associated record. @discussion Currently, associations to Address Book records must be made manually, by calling the setPerson: method. In the future, this method may attempt to locate a default ABPerson by looking up the email address or URL in the Address Book. */ @property (retain) ABPerson * person; @end
Note the discussion: In the future, this method may attempt to locate a default
ABPerson by looking up the email address or URL in the Address Book.
This means that Apple intends (or at least as far as I can make out from reading the tea leaves) to use the Address Book as a store for feed authors… and that — who knows — you may end up using your Address Book to read feeds from so-called “ABPersons” or, moreover, their interest in FOAF might have been a means to automagically grab your list of friends (say, from LiveJournal) to populate your Address Book — then, using ATOM discovery and the PubSub.framework, could have pulled in feed updates from all your friends, giving you effectively a local social network that could power — who knows what kinds of applications!
In any case, I could be totally off here, but there’s something in this… could it be somehow related to the Mail.app feedreader functionality? I’ll offer one more hint that seems to suggest that my Coverflow for People idea isn’t too far off… If you take a look deep in the QuickLook.framework directory you’ll find a couple of very curious images: Vcard16.png, Vcard32Base.png, Vcard32Border.png, Vcard128Base.png, Vcard128Border.png, Vcard512Base.png and Vcard512Border.png. There aren’t any other filetype-specific graphics in this directory, and yet QuickLook is useful for all kinds of files across the OS. Is it significant then, when I browse the Address Book Metadata that I get cards like this?
9 thoughts on “Apple source code pointing to social features?”
I don’t think that using AddressBook to store the location of a feed indicates that AddressBook could become a feed reader, I think this probably has more to do with .Mac + iLife.
iPhoto has options for subscribing to photocasts (aka feeds), which from what I can remember, you had to add manually. If AddressBook had a list of feeds (photocasts) then a feed reading application could be autopopulated
Still it’s interesting stuff.
@Tom: Well, I guess I’m mostly interested in the notion of a “person” showing up in the PubSub framework… especially since there’s this notion of a feed being authored by a person, and then using FOAF to identify your friends by URL… it’s just all too convenient with a locus of the Address Book to seem accidental… but yeah, the integration of feeds in iTunes, iPhoto and iLife is a good one…!
There might be more to PubSub than Apple has released. Ever wondered about the name? “Publish and Subscribe”?
There actually is some FOAF in Safari for feed reading, and it’s not Leopard only. That is, I’ve seen this in Tiger also.
Try visiting something like a LiveJournal feed in Safari:
In the right-hand column, toward the bottom, you should see a “Friends” section after a few seconds. That’s Safari actually chasing down my LJ FOAF file and pulling out my contacts.
Not entirely all that useful, but it’s there.
For what it’s worth, that last anonymous comment was me. And here’s a Safari screenshot:
I’d go with the “remnants of a good idea” theory.
What do you say we write a desktop app that does this? if Adium and iChat can store people’s AIM names in your address book, then can’t we store their web address and feed (is this a shortcoming of vCard?) in said database. How about a feedreader that tells me if the feed author is currently signed in to AIM (or IRC or Jabber or Skype)?