<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>CIMBA - Client-Integrated MicroBlogging Architecture</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andrei Vlad Sambra</string-name>
          <email>asambra@mit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sandro Hawke</string-name>
          <email>sandro@w3.org</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tim Berners-Lee</string-name>
          <email>timbl@w3.org</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Lalana Kagal</string-name>
          <email>lkagal@csail.mit.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ashraf Aboulnaga</string-name>
          <email>aaboulnaga@qf.org.qa</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Decentralized Information Group, MIT CSAIL</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Qatar Computing Research Institute</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Personal data ownership and interoperability for decentralized social Web applications are currently two debated topics, especially when taking into consideration the aspects of privacy and access control. To increase data ownership, users should have the freedom to choose where their data resides and who is allowed access to it by decoupling data storage from the application that consumes it. Through CIMBA, we propose a decentralized architecture based on Web standards, which puts users back in control of their own data.</p>
      </abstract>
      <kwd-group>
        <kwd>decentralization</kwd>
        <kwd>Linked Data</kwd>
        <kwd>social Web</kwd>
        <kwd>privacy</kwd>
        <kwd>Web apps</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Recently, we have witnessed a dramatic increase in the number of social Web
applications. These applications come in di erent forms and o er di erent
services such as social networks, content management systems (CMS), bug trackers,
blogging tools, or collaboration services in general.</p>
      <p>A common practice, speci c to most Web services, is to centralize user
resources thus becoming so-called data silos. Often when adhering to online
services people usually end up creating dedicated local accounts, which ties and
limits users to particular services and/or resources. A solution to data silos can
be achieved through decentralization, where users are free to host their data
wherever they want, and then use several Web apps to consume and manage the
data. In the following section we will discuss how our decentralized architecture
plays an important role in achieving true data ownership for users.
structured according to each speci c application and it only has meaning within
the context of those applications. Moreover, this practice also forces a tight
coupling between backends and applications consuming the data (cf. Fig.1 a).</p>
      <p>
        The proposed architecture uses the Resource Description Framework (RDF) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
to achieve greater interoperability between servers and applications as well as to
ensure the data structure remains the same, regardless of the server on which
the data are stored. In our case, CIMBA is a simple microblogging client that is
completely decoupled from the backend, which in turn is a generic storage server
(cf. Fig.1 b).
By fully decoupling the server from the Web app, developers will be able
to produce large scale Web apps without having to also manage the backend
servers, making it very simple to switch from one backend to another, as well as
from one Web app to another one without losing any data (cf. Fig.2 a).
      </p>
      <p>
        Another advantage is that users are no longer locked into a silo because
of their social connections (cf. Fig.2 b). Web apps reuse the user's social graph,
which is also located on the data manager. The data manager is a generic Linked
Data personal data server, which implements the Linked Data Platform
speci cation [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] (currently on REC track at W3C3), as well as the Web Access
Control [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] ontology (to enforce privacy policies).
      </p>
      <p>
        Our architecture uses WebID [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] as the main mechanism to identify
people at the Web scale, together with WebID-TLS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] (to authenticate requests
to restricted resources), a fully decentralized authentication scheme based on
WebID.
3 http://www.w3.org
      </p>
      <p>CIMBA - Client-Integrated MicroBlogging Architecture
The name CIMBA stands for Client-Integrated MicroBlogging Application. It
provides users with the power of having their own blog combined with the ease of
using Twitter. CIMBA was written in Javascript, using the AngularJS4
framework. The source code is publicly availabled on GitHub5, and a running online
demo can be accessed by visiting http://cimba.co.</p>
      <p>Compared to Twitter, CIMBA users are not stuck with a single feed or
timeline, but instead they can create multiple Channels and use them as categories
for their posts (i.e. main, work, family, etc.). Access control can be set per
channel as well as per post, though policies for posts will override those set per
channel (i.e. having a private post in a public channel).</p>
      <p>Figure 3 displays an overview of the architecture behind CIMBA. Users Alice
and Bob each have their own personal data managers, which hold the posts data,
con guration les as well as their personal WebID pro les.</p>
      <p>Accessing CIMBA simply means loading all the necessary HTML, Javascript
and CSS les from the application server into the user's browser. From that
moment on, the application which now runs in the browser will communicate
directly with the user's personal data manager. The location of the personal
data manager is found by "faking" a WebID-TLS authentication process, with
the purpose of nding the user's WebID and implicitly, the WebID pro le. There
is no actual need to authenticate the user to CIMBA, since all requests for data
are authenticated by the user's personal data store.</p>
      <p>Once the WebID pro le is found, the app follows a series of links to discover
useful information about the user, such as a generic Linked Data server from
where the app can store and retrieve resources. CIMBA stores all the
application data on the user's personal data manager, in a workspace dedicated to
microblogging. Microblogging data are stored using the SIOC ontology.
4 https://angularjs.org/
5 https://github.com/linkeddata/cimba</p>
      <p>To read what other people write, users can subscribe to their channels. The
list of subscriptions is also expressed using the SIOC vocabulary and it is stored
on the user's server.
4</p>
      <p>Conclusions and future work
Our proposed decentralized architecture o ers signi cant bene ts compared to
current Web apps, both in terms of data ownership, privacy, as well as
interoperability. Being fully decoupled from the backend, Web apps can be easily
forked and improved by anyone with access to the source code, thus spurring
innovation and creativity. At its current stage, CIMBA su ers from scalability
issues, though we are very close to overcoming these issues.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Graham</surname>
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carroll</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>McBride</surname>
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Resource description framework (RDF): Concepts and abstract syntax</article-title>
          .
          <source>In: W3C recommendation</source>
          . (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Speicher</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Arwe</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malhotra</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Linked Data Platform 1.0</article-title>
          . http://www.w3.org/ TR/ldp/ (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Hollenback</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Presbrey</surname>
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berners-Lee</surname>
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Using RDF metadata to enable access control on the social semantic web</article-title>
          .
          <source>In: Proceedings of the Workshop on Collaborative Construction, Management and Linking of Structured Knowledge (CK2009)</source>
          , vol.
          <volume>514</volume>
          . (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Sambra</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henry</surname>
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Berners-Lee</surname>
            <given-names>T</given-names>
          </string-name>
          .:
          <article-title>WebID Speci cations</article-title>
          . http://www.w3.org/ 2005/Incubator/webid/spec/ (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Breslin</surname>
            <given-names>J.G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harth</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bojars</surname>
            <given-names>U.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Decker</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Towards semantically-interlinked online communities</article-title>
          .
          <source>In: The Semantic Web: Research and Applications</source>
          , pages
          <fpage>500</fpage>
          -
          <lpage>514</lpage>
          . (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>