xmlrssdistributed

Are there a RSS like standard format for distributed (forum like) communication?


To communicate with each other using e-mails users do not need to use the same "provider" (some user might use gmail, other Yahoo or Hotmail and they still can write e-mails to each other). Unfortunately, it is not like that with social networks. Users using Facebook cannot see posts, comments, likes and shares of the users using Google+ and vice versa.

But why it should be like that? Let us imagine the following architecture. Each user can "broadcast" using any provider he/she likes. RSS format provide this possibility. Any user can choose any "provider" to generate his/her RSS feed and to see RSS feeds of user that he/she is subscribed to. So, just by using RSS as it is we can already build a distributed Twitter-like system (you can post, you can follow other but you cannot share).

What is still missing in this approach is a possibility to comments other posts (liking, disliking or rating could also be considered as comments). In theory one can publish / broadcast comments in the same way as posts. In fact comments are also posts, the only difference is that they are "attached" to other posts. So, one could generate RSS like XML in which some posts (those that are comments) have additional tag that contains URL of the post that is commented.

With such a small extensions of RSS one can build a distributed social network or distributed social news system (like Reddit).

Is there something developed in this direction?


Solution

  • Distributed social network

    What you are describing sounds very much like a Distributed social network, a network that is decentralized and distributed across distinct providers, allowing users of each site to communicate with users of any of the involved sites, or providers as you have called them. This also raises the point that a provider does not in fact need to be a site as such, but could still provide the service desired.

    This model has been endorsed by the EFF, as one that could "plausibly return control and choice to the hands of the Internet user".


    Protocols

    OStatus

    OStatus is a spec currently maintained by the W3C that is build on top of Atom and RSS feeds, and PubSubHubbub.

    PubSubHubbub provides a way to subscribe, unsubscribe and receive updates from a resource, whether it's an RSS or Atom feed or any web accessible document

    The spec for PubSubHubbub is here, and for OStatus here, a few important parts of which I have reproduced below:

    Updates are represented as Activities in Atom. Typical updates would be represented in the default Activity Schema with activity verb "Post" and activity object type "Note", "Status" or "Comment".

    A spatial location for the update object should be encoded as GeoRSS element as part of the activity. Attachments to an update should be represented as enclosures.

    Users are identified by URIs.

    Users SHOULD have a profile URL, which SHOULD be an HTTP or HTTPS reference to an HTML page including discovery information for the user's feed. The profile URL SHOULD be represented as a link[@rel=alternate,@type=text/html] in the Activity subject, actor, or object item, otherwise the URI MAY be used if it is an HTTP or HTTPS URL.

    The publisher server uses PubSubHubbub [push] to notify subscribers of new updates.

    Servers use Salmon to post social events to users or groups.

    Salmon

    The Salmon Protocol is described here, and the protocol flow described as follows:

    A source provides an RSS/Atom feed of content. It includes a Salmon link in its feed:

    An aggregator reads the feed (ideally via a push mechanism such as PubSubHubbub), and sees from the link that it is Salmon-enabled. It remembers the endpoint URL for later use.

    When an aggregator's user leaves a comment on a feed item, the aggregator stores the comment as usual, and then also POSTs a salmon version of it to the source's Salmon endpoint

    The source responds to the salmon with standard HTTP codes - 2xx for OK, 4xx for input problem, 5xx for source / server error. The usual result is for the salmon to be published along with other comments on the source's web page. Note that sources are not obligated to actually publish the salmon -- they may moderate them, spam block them, aggregate or analyze them instead. However, if the source does publish the salmon in a comment feed, it has to maintain certain fields to make the protocol work end-to-end.

    DSNP

    Adrian D. Thurston wrote a paper on a Distributed Social Networking Protocol (DSNP). At the time of writing the protocol was at version 0.6, but to the best of my knowledge development has been discontinued. The paper touches on aspects such as RSA-Based identity, friending protocol, passwordless login, broadcasting, and message signing keys. A reference implementation is available.

    Others / Software

    Wikipedia's Comparison of software and protocols for distributed social networking may be of some use.