3

I have a set of Interest and Likes data from Facebook that I'm interested in enriching with data from other sources, namely Freebase. Is there some way to identify which entry within Freebase cooresponds to a given entry within the Facebook Graph?

Firstly, Facebook Graph does not offer any links to external sources, so it seems any sort of relationship needs to be found within the external source. I've found that, at least for some entries, Freebase offers a 'Facebook URL' and thus in a roundabout way you can link the two. For example for the band 'Taking Back Sunday', here is the Facebook Graph URL:

https://graph.facebook.com/23854511408

... which alternatively can use the vanity URL:

https://graph.facebook.com/TakingBackSunday

now in Freebase if I view the Taking Back Sunday entry in RDF format (http://rdf.freebase.com/rdf/en.taking_back_sunday) or JSON format I can see a link to the Facebook vanity URL. Assuming this attribute is queryable by MQL then linking Freebase to Facebook Graph via this method is possible. However the problem is that many entries in Freebase do not have a link to Facebook.

Any ideas on if there's a consistent way to discover these connections?

Todd
  • 1,906
  • 2
  • 16
  • 21

2 Answers2

4

If you can get the Facebook graph data into RDF format and if you're interested in connecting particular kinds of entities (e.g., bands) across the datasets, then you can use a link discovery tool like Silk. You write a mapping that tells Silk how to compares the name, genre, hometown etc., and Silk will calculate the connections. This requires quite a bit of effort though.

Another option might be to use Google Refine, which has a “reconciliation” feature that can discover Freebase entities that match your data. The challenge is again how to get the Facebook data into Google Refine.

cygri
  • 9,412
  • 1
  • 25
  • 47
4
  1. Create a spreadsheet out of your list of Interests and Likes with a column for the name and FB graph URI.
  2. Load the spreadsheet into Google Refine.
  3. Reconcile the name column with Freebase.
  4. Create a new column for the Freebase URI based on your reconciled name column using the following GREL code:

    "http://rdf.freebase.com/ns/" + cell.recon.match.id[1,-1].replace("/", ".")

  5. Export your augmented data to a new spreadsheet.

Shawn Simister
  • 4,613
  • 1
  • 26
  • 31