Do your applications help you achieve your goals? Your app may target sales professionals sharing their latest sales figures or parents sharing their latest family photographs with the grandparents, but the best apps help users more easily achieve their goals. If you want to build an app with a social component or capability that helps the end-user get something done (an activity) – it’s imperative to address the incongruities in the way an application and its data are designed to model the activity being performed.
Activity Streams provides developers with a standard model and JSON-based encoding format for describing how users engage with both the application and with one another. This standard format can be used at every layer within an application, from back-end data storage to driving the user experience, and frees developers from the need to invent new adhoc application-specific data formats and models for describing the kinds of actions that users can perform within the system.
The format is built around composable descriptions of discreet actions being carried out by various kinds of actors. For instance, the format can describe actions such as “Sally uploaded a photo and shared it with her colleagues John and Mary” or “John invited Mary to join the Project Workgroup”. Because these descriptions are encoded in JSON they can be easily stored in a NoSQL database such as IBM Cloudant. And because the format is built around the principles of linked data with a highly structured and openly extensible data model, applications can easily perform a variety of analytics and workflow operations that enable deep insight into how users are engaging with an app.
Activity Streams Version 2.0 is currently under development by the W3C Social Web Working Group and is on track to become a W3C Candidate Recommendation. IBM is leading the effort in terms of co-chairing the working group, driving the design of the data model, and providing open source implementations.
For full details, see:
Why should I contribute?
Standards such as Activity Streams thrive when they are tailored to the needs of real-world application requirements. This standard model has been contributed by an IBM Open Tech developer to the W3C Social Web Working Group.
Individuals can contribute to this important standard by participating in the Social Web Working Group discussions and bringing their use cases into the conversation. Developers can also contribute to new or existing open source implementations on GitHub that help grow the ecosystem of tools available.
What technology problem will I help solve?
Activity Streams provides consistency in the way applications describe action throughout a lifecycle of an application’s workflow, at every layer within the application and even across organizational boundaries. The standard provides a common vocabulary and processing model that makes it easier to analyze and understand how users are engaging with your application and with other users.
How will Activity Streams help my business?
As an open standard produced by the W3C, Activity Streams 2.0 can be implemented by anyone, royalty free, without any licensing requirements. The extensibility built into the design of the format makes it possible to tailor the model to the specific needs of your applications while protecting that interoperability with third parties. The fact that the format is based on the standardized and popular JSON format, and that implementations are available for both JavaScript (Node.js) and Java, makes it easier for developers to leverage their existing skills and work Activity Streams 2.0 into an existing environment.
git clone https://github.com/jasnell/activitystreams.js.git