Community articleIBM Connections Extensions Overview
Added by IBM contributorIBM on March 25, 2013
Rate this article 1 starsRate this article 2 starsRate this article 3 starsRate this article 4 starsRate this article 5 stars

No abstract provided.
A number of extensions to Activity Streams have been implemented in order to ensure that we can implement the rich feature set required by IBM Connections, while ensuring that all of these features are equally available to the development community. These are summarized here and covered in more detail in the appropriate API documents.

IBM Connections 'groups' with special meaning


In order to ensure that we stay within the general parameters of Open Social, we have implemented specific group definitions. The model is that these events arrive from a 'group' responsible with delivering content corresponding to a certain semantic, however they do not represent an application as there is a desire to still be able to filter these events by application as well.
  • @responses - reactions to content I own
  • @notesfromme - notifications sent by me
  • @actions - returns all events that have been marked marked as requiring further attention
  • @saved - returns all events that the user has chosen to save

It is also worth noting that when the @status application is selected (see below), then three more group ids become available
  • @people - status updates from people only (not communities)
  • @friends - status updates from my network
  • @communities - status updates from communities I'm following

There is one (and only one) case where it is possible to use two groups simultaneously. This is also only usable for status updates
  • @following&@friends - status updates from my network and from people and communities I'm following

Finally, when viewing a persons profile there is a single group available that allows you get all events relating to a particular person. This in fact, is the only time you can view another persons stream -
  • @involved - allows filtering of the stream by events that the specific user is involved in (i.e. is actor or target). You would use this in a URL as follows /activitystreams/[userid]/@involved

IBM Connections 'applications' with special meaning


In addition to the ordinary application filters that retrieve activity entries based on the application that generated the event, there are a number of ‘special’ application filters that group events based on conceptual applications. For example, Status Updates are generated from both the Profiles and the Communities applications, conceptually we have the Status application that will retrieve activity events from both the Profiles and the Community application that are Status Updates. A full list of ‘special’ applications is as follows:

  • @tags - the tags application filter returns events received as a result of following a tag. This can be further filtered by a specific tag (see below)
  • @people - the profiles application filter returns events received as a result of following a person. These could be from any application where the user is generating public events
  • @communities - the communities application filter returns events received as a result of following a community. This is not to be confused with a community specific stream (see below)
  • @status - this is essentially an aggregation of 1. a sub-filter of the profiles application, corresponding to status updates and 2. likewise for communities

IBM Connections 'users' with special meaning


A user id is normally used to retrieve a particular users stream. There are however cases where the stream in which you are interested does not correspond to an actual user. In these cases we have specific user ids for retrieving as appropriate

  • @public - retrieve public events. These can (as is usual) be further filtered by application as desired.
  • {community_id} - for the purpose of Activity Stream retrieval, when retrieving a community stream, we treat the community as a person. We do this simply by using the community id (note the curly braces are for illustration, and are not included in the actual text). An example community id is as follows: "urn:lsid:lconn.ibm.com:communities.community:11111111-1111-1111-1111-111111111111"

IBM Connections specific filters


A number of filters are supported by the IBM Connections implementation of the ActivityStream

  • filterBy=tag&filterOp=equals&filterValue={tag} - allows filtering of the 'special' tag application by a specific tag, returning events received as a result as a result of following that particular tag.
  • filterBy=container&filterOp=equals&filterValue={containerid} - allows filtering of the stream by a specific container, typically used to retrieve events received from a specific community

IBM Connections specific url parameters


IBM Connections supports addition of the following parameters not specified by Open Social on the url

  • rollup = true/false - this allows the retrieval of events that are 'rolled up'. Rolled up means that only the most recent event on any given object is returned, along with the two most recent comments on this item (if any)
  • broadcast = true/false - this is primarily used to filter the profiles application to retrieve status events only
  • updatedBefore = - this can be used to retrieve only events received at or before the specific date (Note : updatedSince is a standard OpenSocial parameter and is also available)

IBM Connections extensions to the data model


In order to allow for the submission of localisable titles and to include useful things like business cards, in submitted titles, a number of templates are provided. There are two kinds of templating supported:
  • title templates - these allow for the submission of titles that will be translated in the viewers language
  • object substitution - where an object is referenced in a title, it will be replaced by the appropriate linked object (with business card if appropriate)