Ever since I first got online, I’ve loved finding and sharing interesting links. I suppose I have [Jason Kottke](http://kottke.org/) to thank for that.
I was a [Delicious](http://delicious.com/) user for about five years, but moved over to [Pinboard](http://pinboard.in/) a few months ago, when it became clear that Yahoo not only wasn’t developing Delicious any more, but was looking to [get rid of it](http://techcrunch.com/2010/12/16/is-yahoo-shutting-down-del-icio-us/ “TechCruch, Dec. 2010: ‘Is Yahoo Shutting Down Delicious?'”). Pinboard works just as well as Delicious, has [a compatible API](http://pinboard.in/howto/#api) and [they love librarians, too](http://pinboard.in/blog/161/). Pinboard is also under active development, so it’s (probably) got more of a future than Delicious.
Being a librarian, of course, I have an impulse to catalog everything to within an inch of its life. One thing I’ve been interested in for a while is where I get all the links I share, so a while back I started adding attribution tags to them. For example, If I’d gotten a link from John Gruber’s [Daring Fireball](http://daringfireball.net/ “Daring Fireball by John Gruber”) or Merlin Mann’s [43 Folders](http://43folders.com/ “43 Folders by Merlin Mann”), I’d add a “via:daringfireball” or “via:43folders” tag to the link.
That scheme worked well for small sites and for ones where a single person or a small group was writing, but it fell apart when it came to getting links from massive sites like Twitter, Facebook and the like. Adding “via:facebook” doesn’t really tell you much, because the site has more than half a billion members. Sure, I’m not friends with all of them, but I do know enough people that from whom I got the link makes a difference to me.
I tried adding a unique tag for each person (e.g., **person:SallyFriend**). I thought this would work, because I planned to build a comprehensive database of Sally Friend’s links, regardless of whether they came from Twitter, Facebook, her blog, her shared items in Google Reader or whatever. It didn’t, though, because although she might be *@SallyFriend* on Twitter, she might have a totally different unique identifier on Facebook or other services.
The solution I’ve come up with, then, is to create a second level within those tags, where the person’s username (or other unique identifier) is included in the tag. Now, all of the links I’ve gotten from Rober Ebert’s Twitter feed are tagged with **[via:twitter:@EbertChicago](http://pinboard.in/u:stray/t:via:twitter:@EbertChicago/)**. This tag works well since it has all the information you’d need to identify from which Twitter user the link came.
This means that if I pull these tags into another tool (like the forthcoming Drupal version of this site), I can make use of the tags when I import them. I can write a function in PHP, for example, that will check a Pinboard link for such a “via” link; if it sees that one of the tags is **via:twitter:@EbertChicago**, then it can do something with that, like add a Facebook-style “via” note that links to Roger’s Twitter page. It works the other way, too; if I were to reverse this workflow so that I post links on this site (as I ultimately intend to do) and *then* push them out to Pinboard through their API, I can easily break the referring URL down into just such a tag.
It’s not perfect, of course (then again, few things are). While many people on Facebook have set up their “profile URL” (e.g., *facebook.com/username*), some of my friends haven’t; as a result, some people still use the classic URL scheme, which is more like *facebook.com/profile.php?id=89023753740*. I haven’t come up with a good solution to that beyond possibly adding a third dimension to the tag with their Facebook user ID number. It’s a bit inelegant, but it might just work
However, this scheme seems to work well, as I’m able to save links with attribution in a format I can parse easily.
Hopefully I’ll be able to demonstrate this in the coming months. (If only I had more time!)