Draft protocol specification

Last updated - 4 July 2011

Firstly we would like to state that we did not want to invent new things where we found good existing alternatives.

Onesocialweb is based on an XMPP architecture. The following four draft XMPP Protocol extensions have been defined as part of the protocol.

  • Activity Streams over XMPP: This specification defines an XMPP protocol extension for sharing, archiving and retrieving generic social networking activities. It supports simple activities like blogging, microblogging, bookmarking, sharing pictures, etc. and also supports custom activities. The activity publishing supports fine grained privacy control: users can assign access control rules on a per activity basis. This protocol aims at providing a flexible platform for social activities management in a decentralized social network, thus enabling all social network use cases related to sharing of activities. The data format for Activities closely follows the activitystrea.ms standard with a few additions/clarifications. The protocol flow is based on XEP-0277 (Microblogging Over XMPP) and is therefore using XEP-0163 (Personal Eventing Protocol).
  • VCard4 over XMPP: This specification defines an XMPP protocol extension for sharing vcards between users. The protocol enables users to publish their vcard, share it with other users, and query other users for their vcard. The vcard is supporting a fine grained privacy extension: users can assign access control rules on a field per field basis. In addition, users can delegate write access rights to elements of their vcard to other entities. This protocol aims at providing a flexible platform for social profile management in a decentralized social network, thus enabling all social network use cases related to user profiles. The xml data model for vcards is based on the upcoming vcarddav-vcardxml standard (also known as vcard4).
  • Social Relationships: This specification defines an XMPP protocol extension for establishing, sharing, confirming and verifying social relationships between users. The protocol enables a user to establish social relationships (e.g. friend, colleague, member) with an other user, to expose (share) his established relationships with other users, to confirm that a relationship declared by another user is true, and to verify that a relationship declared by a user towards another user is indeed true. Each relationship can be assigned a fine grained privacy control: users can assign access control rules on a relationship per relationship basis. This protocol aims at providing a flexible platform for social relationships management in a decentralized social network, thus enabling all social network use cases related to relationships. The data format is inspired by the work of the XFN standard.
  • Personal Eventing Protocol (PEP) Inbox: This specification defines an XMPP protocol extension for offline storage of PEP events in a user inbox (itself a PEP node) so that clients can easily retrieve offline messages. In the future, it could be evolved into a more generic offline PubSub extension, or replaced by an other means to manage offline notifications. The protocol flow is based on XEP-0060 (Publish-Subscribe) and XEP-0163 (Personal Eventing Protocol).