Saturday, 20 February 2010

Open Social


Good teachers have always recognised that they require of variety of teaching methods - and that their students will have a variety of learning styles.

In addition, some topics are best learnt with one type of teaching method and learning style - but this approach may not be best for a different topic.

Recently, there has been recoginition that learning that takes place within a group, peer, collaborative or social environment can be an important teaching and learning style.

OpenSocial is a set of definitions and practices that enable developers to work with the kind of data that is used in social networks.


 These definitions and practices align well with the Icodeon Common Cartridge Platform when developers wish to use the platform to build e-learning tools for pedagogies that include a group, peer, collaborative or social dimension.

The OpenSpocial definitions enable developers to:
  • build apps that run within social network applications.
  • build apps that run outside social network applications, but use data from social networks.
OpenSocial is currently being developed by a broad set of members of the web community. The ultimate goal is for any social website to be able to implement the OpenSocial and host 3rd party social applications. There are many organizations, projects and web sites that support OpenSocial, including:
  • LinkedIn
  • MySpace
  • Ning
  • Google
  • Netlog
  • Apache Shindig
  • Yahoo!
  • Hi5
Read more about OpenSocial here.

Read more about the open source  Apache Shindig project currently undergoing incubation at the Apache Software Foundation.

The OpenSocial set of definitions include:
  • a URL language for creating HTTP requests.
  • a schema for defining the representations returned by the HTTP response.
The definitions align nicely with the Icodeon Common Cartridge Platform which also has a URL language and a set of representations.

For example, compare the OpenSocial request for a list of posts made by a user to a social network activity stream:
GET /activities/@viewer/@self
with the Icodeon Common Cartridge Platform request for the first post made by a user to a Common Cartridge discussion topic:
GET /cartridges/{cartridge}/items/{item}/topics/
{context}/activities/@first
and compare the response from a social network:
<activity xmlns="http://ns.opensocial.org/2008/opensocial">
  <title>My Status</title>
  <updated>2008-02-20T23:35:37.266Z</updated>
  <body>Studying this evening for that new psychology 
course on human emotional states. Hard work - but 
worth the effort I hope!</body>
  <userId>example.org:34KJDCSKJN2HHF0DW20394</userId>
</activity>
with the response from the Icodeon platform:
<activity xmlns="http://ns.opensocial.org/2008/opensocial">
  <id>233778</id>
  <title>My Comment on Psychology Course</title>
  <updated>2010-01-20T23:45:27.126Z</updated>
  <body>I think recognition of human emotional states is 
learned and not innate. There could be a culture in the world 
that expresses joy through scowling and fear through 
laughter!</body>
  <userId>example.org:34KJDCSKJN2HHF0DW20394</userId>
</activity>
The two example responses above, one from a social network and one from the Icodeon Common Cartridge Platform, can be equally parsed using the jquery-opensocial library. For example, the jquery code below works equally well with either of the responses:
  $.ajax({
    url: '/activities/@viewer/@self',
    data: {},
    dataType: 'data',
    success: function(activities) {
      $.each(activities, function(i, activity) {
        console.info(activity.title);
        $.each(activity.mediaItems, function(i, mediaItem) {
           console.log(mediaItem.mimeType);
           console.log(mediaItem.url);
         });
      });
    },
    error: function(xhr, status, e) {
      console.info(xhr, status, e);
    }
  });
This alignment between the OpenSocial definitions and the defintions used for the Icodeon Common Cartridge Platform has two major implications:
  • code libraries used for OpenSocial can be re-used when building e-learning tools with the Icodeon Common Cartridge Platform. The jquery-opensocial library is an excellent example.
  • response representations from the Icodeon Common Cartridge Platform are easily "mashed-up" into social nework apps to create learning tools that exisit with the social, peer, group or collaborative learing context.

1 comment:

  1. Great post! As president of the OpenSocial Foundation, I'd like to learn more about what you are doing with the spec and Shindig. Also if you'd be willing to cross post on the OpenSocial blog or work with other folks doing similar things with OpenSocial in education.

    Please let me know when you get a chance.
    My contact info is weitzel m dot ibm at gmail

    ReplyDelete