Re-using social media dataGlenn JonesCodebits– Lisbon, Portugal4 Dec 2009
ObjectsSocial MediaAggregationConversationActivity
IdentityRelationshipsObjectsSocial MediaAggregationConversationActivity
Most of us have built identities across the web, we fill in profiles, upload photos, videos, reviews and bookmarks
IdentityIdentityDistributed IdentityIdentityOur web identity is fragmented or distributed
Identity consolidation
The power of XFN rel=me< a href=“http://www.glennjones.net/” rel=“me”>http://www.glennj... </a>
A graph (map) of rel=me linkagesFound SiteFound SiteStart SiteFound SiteFound SiteFound SiteFound SiteFound Site
Types of social graph linkagesStart SiteFound Siterel=meOutward claimStart SiteFound Siterel=meInward claimStart SiteFound Siterel=meReciprocalclaim
Google Social Graph APIhttp://socialgraph.apis.google.com/otherme?q=http://twitter.com/glennjones
Google Social Graph API JSON{    "http://delicious.com/glennjonesnet": {       "attributes": {          "rss": "http://feeds.delicious.com/rss/glennjonesnet",          "url": "http://delicious.com/glennjonesnet",          "profile": "http://delicious.com/glennjonesnet"        } },    "http://huffduffer.com/glennjones": {         "attributes": {     } },  ...
A JavaScript library that retrieves and aggregates profiles from across the web
10 identities - outward rel=me links20 identities - combined outward and inward rel=me links5 additional identities – side effect profile parsing
Profile parsing
§Embedded microformathCard
ufXtractmicroformat APIhttp://ufxtract.com/api/?url=http://slideshare.net/glennjones&format=hcard&output=json
ufXtractmicroformat API{    "microformats": {        "vcard": [{            "fn": "Glenn Jones",            "n": {                "given-name": ["Glenn"],                "family-name": ["Jones"]            },            "adr": [{                "locality": "Brighton",                "country-name": "United Kingdom"            }], ...
Google Social Graph API endpoint descriptions are not as complete as they could be{    "http://delicious.com/glennjonesnet": {       "attributes": {          "rss": "http://feeds.delicious.com/rss/glennjonesnet",          "url": "http://delicious.com/glennjonesnet",          "profile": "http://delicious.com/glennjonesnet"        } },    "http://huffduffer.com/glennjones": {         "attributes": {     } },  ...
Ident Engine – data overlayof endpoint descriptions{    "name": "Last.fm",    "domain": "last.fm",    "urlmappings": [{        "urltemplate": "http://www.last.fm/user/{username}",        "schema": "hCard",        "contenttype": "Profile",        "mediatype": "Html"    },    {        "urltemplate":"http://www.last.fm/user/{username} ",        ...
Auto fill forms
The most common details shared across social media sites – work personas
The most common details shared across social media sites – social personas
Parsing user generated content from discovered endpoints
Ident Engine – user generated content endpoint descriptions{    "name": "Vimeo",    "domain": "vimeo.com",    "urlmappings": [{    "urltemplate": "http://vimeo.com/{username}/videos/rss",        "schema": "Atom",        "contenttype": "Video",        "mediatype": "Atom"    }    ...
Ident Engine – data overlayof endpoint descriptionsContent types definitionsSchemas Activity
 Audio
 Bookmarks
 Entries
 Events
 Friends
 Friends Status
 Images
 Interests
Lifestream
 Profile
 Resume
 Services

Re-using social media data

  • 1.
    Re-using social mediadataGlenn JonesCodebits– Lisbon, Portugal4 Dec 2009
  • 2.
  • 3.
  • 4.
    Most of ushave built identities across the web, we fill in profiles, upload photos, videos, reviews and bookmarks
  • 5.
    IdentityIdentityDistributed IdentityIdentityOur webidentity is fragmented or distributed
  • 6.
  • 7.
    The power ofXFN rel=me< a href=“http://www.glennjones.net/” rel=“me”>http://www.glennj... </a>
  • 10.
    A graph (map)of rel=me linkagesFound SiteFound SiteStart SiteFound SiteFound SiteFound SiteFound SiteFound Site
  • 11.
    Types of socialgraph linkagesStart SiteFound Siterel=meOutward claimStart SiteFound Siterel=meInward claimStart SiteFound Siterel=meReciprocalclaim
  • 12.
    Google Social GraphAPIhttp://socialgraph.apis.google.com/otherme?q=http://twitter.com/glennjones
  • 13.
    Google Social GraphAPI JSON{ "http://delicious.com/glennjonesnet": { "attributes": { "rss": "http://feeds.delicious.com/rss/glennjonesnet", "url": "http://delicious.com/glennjonesnet", "profile": "http://delicious.com/glennjonesnet" } }, "http://huffduffer.com/glennjones": { "attributes": { } }, ...
  • 14.
    A JavaScript librarythat retrieves and aggregates profiles from across the web
  • 16.
    10 identities -outward rel=me links20 identities - combined outward and inward rel=me links5 additional identities – side effect profile parsing
  • 17.
  • 18.
  • 19.
  • 20.
    ufXtractmicroformat API{ "microformats": { "vcard": [{ "fn": "Glenn Jones", "n": { "given-name": ["Glenn"], "family-name": ["Jones"] }, "adr": [{ "locality": "Brighton", "country-name": "United Kingdom" }], ...
  • 21.
    Google Social GraphAPI endpoint descriptions are not as complete as they could be{ "http://delicious.com/glennjonesnet": { "attributes": { "rss": "http://feeds.delicious.com/rss/glennjonesnet", "url": "http://delicious.com/glennjonesnet", "profile": "http://delicious.com/glennjonesnet" } }, "http://huffduffer.com/glennjones": { "attributes": { } }, ...
  • 22.
    Ident Engine –data overlayof endpoint descriptions{ "name": "Last.fm", "domain": "last.fm", "urlmappings": [{ "urltemplate": "http://www.last.fm/user/{username}", "schema": "hCard", "contenttype": "Profile", "mediatype": "Html" }, { "urltemplate":"http://www.last.fm/user/{username} ", ...
  • 27.
  • 29.
    The most commondetails shared across social media sites – work personas
  • 30.
    The most commondetails shared across social media sites – social personas
  • 31.
    Parsing user generatedcontent from discovered endpoints
  • 32.
    Ident Engine –user generated content endpoint descriptions{ "name": "Vimeo", "domain": "vimeo.com", "urlmappings": [{ "urltemplate": "http://vimeo.com/{username}/videos/rss", "schema": "Atom", "contenttype": "Video", "mediatype": "Atom" } ...
  • 33.
    Ident Engine –data overlayof endpoint descriptionsContent types definitionsSchemas Activity
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

Editor's Notes

  • #10 Apart from social media sites adding rel=me links to their profile pages and individuals marking up blogs with the elsewhere on the web patternA number of specialist sites are now listing peoples Distributed Identities to help project web personsa and also mark services that they aggregating information from
  • #13 So now I have explained how this work how do we programmatically access this dataWell just over a year ago Google release the Social Graph APIIt has 3 major methods, the otherme method is the simplest In the example on the slide q= the starting point URL for its search
  • #20 There are many software libraries that can parser microformatsUfXtract is a c sharp parser I wrote an I also host a web based API at ufxtract.comThe example URL in the slide shows how call for JSON respentation of the hCard on the slideshare profile we where just looking at
  • #31 For sites which are more about interaction outside of work you could be looking at a smaller subset.Dropping job title, company and the bio
  • #37 This is the last of the demos from the Ident Engine siteThe librarySearches for identities using the social graph APIIt then looks through the data overlays for information it can retrieve and builds a lifestream for that individualSo it has returned tweets, bookmarks and photo’s from flickrAll of this from entering a single URL
  • #39 This is a close up of the profile listing page. As you can see it has profiles for two people which is incorrect. This is because using inward links it is always possible for the social graph to pick up rogue relationshipsI trace this particular problem to 24ways sites, which was corrected. Once a error is in the Google search index it can take a very long time to get rid of itThese problems only happen rarely, but I have 3 options to fix the problem