Re: Using Facebook Data Objects to illuminate Linked Data add-on re. structured data

On 12 June 2011 23:05, Kingsley Idehen <kidehen@openlinksw.com> wrote:
> All,
>
> Facebook offers a data space (of the silo variety). Every Object has an
> Address (URL) from which you can access its actual Representation in JSON
> format.
>
> Example using the URL: http://graph.facebook.com/kidehen:
>
> {
>   "id": "605980750",
>   "name": "Kingsley Uyi Idehen",
>   "first_name": "Kingsley",
>   "middle_name": "Uyi",
>   "last_name": "Idehen",
>   "link": "https://www.facebook.com/kidehen",
>   "username": "kidehen",
>   "gender": "male",
>   "locale": "en_US"
> }
>

If you think that's good, try this!

http://graph.facebook.com/kidehen?metadata=1

{
   "id": "605980750",
   "name": "Kingsley Uyi Idehen",
   "first_name": "Kingsley",
   "middle_name": "Uyi",
   "last_name": "Idehen",
   "link": "http://www.facebook.com/kidehen",
   "username": "kidehen",
   "gender": "male",
   "locale": "en_US",
   "metadata": {
      "connections": {
         "home": "http://graph.facebook.com/kidehen/home",
         "feed": "http://graph.facebook.com/kidehen/feed",
         "friends": "http://graph.facebook.com/kidehen/friends",
         "family": "http://graph.facebook.com/kidehen/family",
         "payments": "http://graph.facebook.com/kidehen/payments",
         "activities": "http://graph.facebook.com/kidehen/activities",
         "interests": "http://graph.facebook.com/kidehen/interests",
         "music": "http://graph.facebook.com/kidehen/music",
         "books": "http://graph.facebook.com/kidehen/books",
         "movies": "http://graph.facebook.com/kidehen/movies",
         "television": "http://graph.facebook.com/kidehen/television",
         "games": "http://graph.facebook.com/kidehen/games",
         "likes": "http://graph.facebook.com/kidehen/likes",
         "posts": "http://graph.facebook.com/kidehen/posts",
         "tagged": "http://graph.facebook.com/kidehen/tagged",
         "statuses": "http://graph.facebook.com/kidehen/statuses",
         "links": "http://graph.facebook.com/kidehen/links",
         "notes": "http://graph.facebook.com/kidehen/notes",
         "photos": "http://graph.facebook.com/kidehen/photos",
         "albums": "http://graph.facebook.com/kidehen/albums",
         "events": "http://graph.facebook.com/kidehen/events",
         "groups": "http://graph.facebook.com/kidehen/groups",
         "videos": "http://graph.facebook.com/kidehen/videos",
         "picture": "http://graph.facebook.com/kidehen/picture",
         "inbox": "http://graph.facebook.com/kidehen/inbox",
         "outbox": "http://graph.facebook.com/kidehen/outbox",
         "updates": "http://graph.facebook.com/kidehen/updates",
         "accounts": "http://graph.facebook.com/kidehen/accounts",
         "checkins": "http://graph.facebook.com/kidehen/checkins",
         "apprequests": "http://graph.facebook.com/kidehen/apprequests",
         "friendlists": "http://graph.facebook.com/kidehen/friendlists",
         "permissions": "http://graph.facebook.com/kidehen/permissions",
         "notifications": "http://graph.facebook.com/kidehen/notifications"
      },
      "fields": [
         {
            "name": "id",
            "description": "The user's Facebook ID. No `access_token`
required. `string`."
         },
         {
            "name": "name",
            "description": "The user's full name. No `access_token`
required. `string`."
         },
         {
            "name": "first_name",
            "description": "The user's first name. No `access_token`
required. `string`."
         },
         {
            "name": "middle_name",
            "description": "The user's middle name. No `access_token`
required.  `string`."
         },
         {
            "name": "last_name",
            "description": "The user's last name. No `access_token`
required.  `string`."
         },
         {
            "name": "gender",
            "description": "The user's gender.  No `access_token`
required. `string`."
         },
         {
            "name": "locale",
            "description": "The user's locale. No `access_token`
required. `string` containing the ISO Language Code and ISO Country
Code."
         },
         {
            "name": "languages",
            "description": "The user's languages. No `access_token`
required. `array` of objects containing language `id` and `name`."
         },
         {
            "name": "link",
            "description": "The URL of the profile for the user on
Facebook. Requires `access_token`. `string` containing a valid URL."
         },
         {
            "name": "username",
            "description": "The user's Facebook username. No
`access_token` required. `string`."
         },
         {
            "name": "third_party_id",
            "description": "An anonymous, but unique identifier for
the user. Requires `access_token`. `string`."
         },
         {
            "name": "timezone",
            "description": "The user's timezone offset from UTC.
Available only for the current user.  `number`."
         },
         {
            "name": "updated_time",
            "description": "The last time the user's profile was
updated. Requires `access_token`. `string` containing a IETF RFC 3339
datetime."
         },
         {
            "name": "verified",
            "description": "The user's account verification status.
Requires `access_token`.  `boolean`."
         },
         {
            "name": "about",
            "description": "The blurb that appears under the user's
profile picture. Requires `user_about_me` or `friends_about_me`
permission. `string`."
         },
         {
            "name": "bio",
            "description": "The user's biography. Requires
`user_about_me` permission. `string`."
         },
         {
            "name": "birthday",
            "description": "The user's birthday. Requires
`user_birthday` or `friends_birthday` permission. `string`."
         },
         {
            "name": "education",
            "description": "A list of the user's education history.
Requires `user_education_history` or `friends_education_history`
permission. `array` of objects containing `school` object (`name`,
`id`), `year` and `type` fields."
         },
         {
            "name": "email",
            "description": "The proxied or contact email address
granted by the user. Requires `email` permission. `string` containing
a valid email address."
         },
         {
            "name": "hometown",
            "description": "The user's hometown.  Requires
`user_hometown` or `friends_hometown` permission. object containing
`name` and `id`."
         },
         {
            "name": "interested_in",
            "description": "The genders the user is interested in.
Requires `user_relationship_details` or `friends_relationship_details`
permission. `array` containing strings."
         },
         {
            "name": "location",
            "description": "The user's current location. Requires
`user_location` or `friends_location` permission.  object containing
`name` and `id`."
         },
         {
            "name": "political",
            "description": "The user's political view.  Requires
`user_religion_politics` or `friends_religion_politics` permission.
`string`."
         },
         {
            "name": "favorite_teams",
            "description": "The user's favorite teams.  Requires the
`user_likes` or `friends_likes` permission. `string`."
         },
         {
            "name": "quotes",
            "description": "The user's favorite quotes. Requires the
`user_about_me`. `string`."
         },
         {
            "name": "relationship_status",
            "description": "The user's relationship status. Requires
`user_relationships` or `friends_relationships` permission. `string`."
         },
         {
            "name": "religion",
            "description": "The user's religion. Requires
`user_religion_politics` or `friends_religion_politics` permission.
`string`."
         },
         {
            "name": "significant_other",
            "description": "The user's significant other.  Requires
`user_relationship_details` or `friends_relationship_details`
permission.  object containing `name` and `id`."
         },
         {
            "name": "type",
            "description": "The object type which should be `user`. No
`access_token` required. `string`."
         },
         {
            "name": "video_upload_limits",
            "description": "The size of the video file and the length
of the video that a user can upload. Requires `acces_token`.  object
containing `length` and `size` of video."
         },
         {
            "name": "website",
            "description": "The URL of the user's personal website.
Requires `user_website` or `friends_website` permission. `string`
containing a valid URL."
         },
         {
            "name": "work",
            "description": "A list of the user's work history.
Requires `user_work_history` or `friends_work_history` permission.
`array` of objects containing `employer`, `location`, `position`,
`start_date` and `end_date` fields."
         }
      ]
   },
   "type": "user"
}

> Some observations:
>
> "id" attribute has value "605980750", this value means little on its own
> outside Facebook's data space.
>
> Now imagine we tweaked this graph like so:
>
>
> {
>   "id": "https://www.facebook.com/kidehen#this"
>   "name": "Kingsley Uyi Idehen",
>   "first_name": "Kingsley",
>   "middle_name": "Uyi",
>   "last_name": "Idehen",
>   "link": "https://www.facebook.com/kidehen",
>   "username": "kidehen",
>   "gender": "male",
>   "locale": "en_US"
> }
>
> All of a sudden, I've used a HTTP scheme based hyperlink to introduce a tiny
> degree of introspection.
>
> I repeat this exercise for the attributes i.e., Name then using HTTP scheme
> URIs, and likewise for values best served by HTTP scheme URIs for
> boundlessly extending the object above, courtesy of the InterWeb.
>
> Even if Facebook doesn't buy into my world view re. data objects, my
> worldview remains satisfied since I can ingest the FB data objects and then
> endow them with the fidelity I via use of URI based Names.
>
> Example Linked Data Resource URL:
> http://linkeddata.uriburner.com/about/html/http://linkeddata.uriburner.com/about/id/entity/http/graph.facebook.com/kidehen
> .
>
> Example Object Name from My Data Space:
> http://linkeddata.uriburner.com/about/id/entity/http/graph.facebook.com/kidehen
> .
>
> A little structured data goes a long way to making what we all seek happen.
> Facebook, Google, Microsoft, Yahoo! etc.. have committed to producing
> structured data. This commitment is massive and it should be celebrated
> since it makes life much easier for everyone that's interested in Linked
> Data or the broader Semantic Web vision. They aren't claiming to deliver
> anything more than structured data. At this time, their fundamental goal is
> to leave Semantic Fidelity matters to those who are interested in such
> pursuits, appropriately skilled, and so motivated.
>
>
> --
>
> Regards,
>
> Kingsley Idehen
> President&  CEO
> OpenLink Software
> Web: http://www.openlinksw.com
> Weblog: http://www.openlinksw.com/blog/~kidehen
> Twitter/Identi.ca: kidehen
>
>
>
>
>
>
>

Received on Wednesday, 15 June 2011 13:11:54 UTC