<!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>Using DSMW to build a Network of Semantic MediaWiki Servers</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Hala Skaf-Molli</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>ome Canals</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Pascal Molli</string-name>
          <email>mollig@loria.fr</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>INRIA Nancy-Grand Est</institution>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Universite de Lorraine</institution>
          ,
          <addr-line>Nancy, LORIA</addr-line>
        </aff>
      </contrib-group>
      <abstract>
        <p>DSMW is an extension to Semantic Mediawiki (SMW), it allows to create a network of SMW servers that share common semantic wiki pages. DSMW users can create communication channels between servers and use a publish-subscribe approach to manage the change propagation. DSMW synchronizes concurrent updates of shared semantic pages to ensure their consistency. It o ers new collaboration modes to semantic wiki users and supports data ow-oriented processes.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Semantic wikis allow to create and edit collaboratively semantically annotated
documents. However, compared with other collaborative systems, semantic wikis
do not support o ine work or multi-synchronous editing [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. In existing semantic
wikis, every change in a page is immediately visible for both end users and
semantic engines. However, in many cases it is necessary to change multiple pages
before making them visible. Existing semantic wikis cannot prevent users to access,
navigate or query inconsistent pages. Moreover, the lack of multi-synchronous
support prevents users to work isolated [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and also prevents semantic wikis to
support data ow oriented processes.
      </p>
      <p>To overcome these limitations, we propose a distributed approach for
semantic wikis. In this approach, semantic wiki pages are replicated over a network of
interconnected semantic wiki servers. Changes issued on one server are local but
can be published to other servers. Remote servers can subscribe to these changes,
pull them and integrate them to their local pages. Changes propagation remains
under the control of the users. Concurrent changes on a page issued by di erent
servers are handled by a merge procedure.</p>
      <p>Using this approach, users can alternate between isolated periods of work
and synchronization sequences with remote servers. They can introduce changes
to multiple pages before to atomically render these changes public. They can
choose when to incorporate, or not, remote changes. In addition, the approach
can be the basis for implementing processes in which ows of semantic wiki pages
can traverse a network of semantic wiki servers. Each wiki server can implement
one or several steps of a particular process for the creation and maintenance of
semantic pages.</p>
    </sec>
    <sec id="sec-2">
      <title>DSMW approach</title>
      <p>
        DSMW is an extension to Semantic MediaWiki (SMW) [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. It allows to create
a network of SMW servers that share common semantic wiki pages. DSMW
manages the propagation and the integration of changes issued on one SMW
server to remote servers on the network. The system ensures the consistency of
the whole set of replicated pages.
      </p>
      <p>DSMW users can create and edit semantically annotated wiki pages as with
a regular SMW server. Then she/he can manage pages changes as a software
developer does with her/his source code using a distributed version control
system: she/he can work in isolation while editing pages and semantic annotation
on a single server, then she/he can publish part or all of her own changes by
pushing them to DSMW public feeds, and she/he can subscribe to any remote
public DSMW feeds, pull changes from remote servers and integrate them to the
local pages.</p>
      <p>The DSMW extension adds two main features to SMW: an optimistic
replication algorithm, and an ontology to manage changes, publication and integration
of changes sets.</p>
      <p>
        Page replication in DSMW is handled by a dedicated replication procedure.
Since semantic annotations are embedded in page content in SMW, DSMW
replicates only page contents and there is no need to deal with annotations.
DSMW uses the Logoot algorithm to synchronize concurrent changes[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
Logoot guarantees the consistency of the shared pages based on the CCI model
(Causality, Convergence, Intentions [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], the model used also by Google Wave).
The propagation technique is publish-subscribe: changes issued on one server can
be published by pushing them to one or several pushFeeds. Remote servers can
subscribe to these feeds by connecting pullFeeds to existing remote pushFeeds.
Then, they can pull changes and integrate them to the local pages. Concurrent
changes are merged by the Logoot algorithm. Hereafter a brief description of the
operations related to replication.
      </p>
      <p>Save: the SMW save operation, called when a user saves edit modi cations
on a page, has been extended to build and log patches. Patches represent changes
to a page as a sequence of elementary Insert and Delete operations. Patches are
computed by the Logoot algorithm as a di between the current and the new
version of the page being saved. Logoot uses a special index to determine absolute
insertion and deletion positions of the elements in a page. Once computed, a
patch is applied to the local page and logged.</p>
      <p>CreatePushFeed: creates a named communication channel to publish local
changes. The content of the feed is speci ed by a semantic query. All pages in the
query result belongs to that channel, meaning that changes on these pages will
be published through that feed. Note that a page can belong to several channels.</p>
      <p>Push: the push operation computes the set of patches for a given pushFeed
to form a ChangeSet. A changeSet is the ordered set of all patches logged for all
the pages belonging to that pushFeed. Once computed, the changeSet is added
to the feed and can then be pulled by remote servers.</p>
      <p>CreatePullFeed: creates a named communication channel to pull remote
changes. A pullFeed is connected to one single remote pushFeed, so a pull feed
is de ned by the URL of the remote server and the pushFeed name.</p>
      <p>Pull: the push operation downloads all the pending changeSets published in
the pushFeed connected to a given pullFeed. Patches extracted from the
changeSets are then locally applied in the order they appear. To do so, Logoot uses the
absolute positions computed during the patch creation to insert or delete page
elements.</p>
      <p>
        The DSMW ontology shown in the gure 1 represents all the concepts of DSMW:
changes, change sets, push and pull feeds. This ontology makes possible the
querying of the current state of the wiki and its complete history using SMW
semantic queries. For instance, queries can extract the list of unpublished changes
or the list of published changes on a given channel. This ontology is populated
through the user interaction with the system: all the operations described in the
previous paragraph create or delete instances of the DSMW ontology (see [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] for
more details).
      </p>
    </sec>
    <sec id="sec-3">
      <title>Use cases and Applications</title>
      <p>
        DSMW is used in ongoing French national projects: WikiTaaable and CyWiki
WikiTaaable is a distributed collaborative knowledge building systems for
cooking recipes [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It integrates a case-based reasoning engine. WikiTaaable uses
SMW as a central module to manage all data and knowledge used in the
system. DSMW supports the humans and machines collaboration by deploying
several DSMW servers to implement continuous integration processes as those used
during software development. WikiTaaable is accessible at http://taaable.fr.
      </p>
      <p>The CyWiki project uses DSMW as an infrastructure for the collaborative
and assisted transformation of textual content into formal and structured
knowledge. The transformation process is a decentralized process in which both human
agents and automatic agents (text-mining agents, classi cation agents)
collaborate to build knowledge units (in the form of ontology elements). This knowledge
can then be used to query and make reasoning about the content. The
experimental and application domain of the project is education.
4</p>
    </sec>
    <sec id="sec-4">
      <title>System</title>
    </sec>
    <sec id="sec-5">
      <title>Demonstration</title>
      <p>The demonstration scenario will focus on three main use-cases:</p>
      <p>The knowledge aggregation corresponds to the use of a DSMW server to
aggregate and combine wiki pages and knowledge from multiple sources. This
server subscribes to these sources by creating pull feeds connected to the public
push feeds at each source. By combining these sources, the system can answer
new queries that could not be evaluated on a single source. The demonstration
example will be the following:
{ a rst DSMW server holds semantic wiki pages about hotels in a city. Hotels
are described with various properties (rooms, prices . . . ) and their location
in the city relatively to well-known places (e.g. the train station, the main
square),
{ a second DSMW server holds semantic wiki pages about touristic information
in the city. It describes sites of interest and cultural events with various
properties and their location in the city, relatively to well known places.
{ a third DSMW server subscribes to the public push feeds of the two previous,
and regularly pull them. It then holds semantic wiki pages on both hotels
and touristic information and their location in the city, and maintain these
pages consistent with the original sources. This server can answer queries
that cannot be evaluated on the original sources, typically to nd an hotel
close to a particular site of interest.</p>
      <p>The knowledge validation steps corresponds to the use of one or several
DSMW servers to implement a validation process: prior to rendering public a
set of semantic wiki pages, it can be desirable in some cases to validate their
content by users or by running non-regression tests. The scenario will be based
on the same hotel-tourist example. It consists in adding a fourth DSMW server
that will serve as a public front-end for querying the hotel-tourist knowledge
base. The aggregation server will then serve to combine the original sources
and validate the new knowledge base. This validation step is done by users
verifying the semantic annotations and eventually modifying them and running
tests by evaluating a xed set of queries whose results are known and should
not change. Once validated, changes are propagated to the fourth server and are
thus accessible to end-users. This validation step ensures the consistency and
the stability of the nal knowledge base. Any change to the original sources is
tested, veri ed and eventually xed before to be queried by end-users.</p>
      <p>The network construction use case corresponds to the construction of a
network of interconnected DSMW server. The demonstration will show how the
push and pull feeds are created on the di erent servers of the hotel-tourist
example, and connected to create the network.
5</p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion</title>
      <p>In this demonstration we have presented a new collaborative tool, called DSMW,
to support multi-synchronous collaboration and data ow processes over semantic
wiki pages. DSMW is developed as an extension of SMW. The rst public release
release of DSMW was published in October 2009. A new release DSMW 0.5 is
available at http://dsmw.org. We continue the development and the research
on DSMW. Research concerns divergence awareness in DSMW and the analysis
of the social networks built by the collaborative editing.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Dourish</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>The parting of the ways: Divergence, data management and collaborative work</article-title>
          .
          <source>In: 4th European Conference on Computer Supported Cooperative Work</source>
          . (
          <year>1995</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Molli</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Skaf-Molli</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bouthier</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>State Treemap: an Awareness Widget for Multi-Synchronous Groupware</article-title>
          . In: Seventh International Workshop on Groupware - CRIWG, IEEE Computer Society (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Krotzsch,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Vrandecic</surname>
          </string-name>
          ,
          <string-name>
            <surname>D.</surname>
          </string-name>
          , Volkel,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Haller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            ,
            <surname>Studer</surname>
          </string-name>
          , R.:
          <article-title>Semantic wikipedia</article-title>
          .
          <source>Journal of Web Semantic</source>
          <volume>5</volume>
          (
          <issue>4</issue>
          ) (
          <year>2007</year>
          )
          <volume>251</volume>
          {
          <fpage>261</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Urso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molli</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Logoot : a scalable optimistic replication algorithm for collaborative editing on p2p networks</article-title>
          .
          <source>In: International Conference on Distributed Computing Systems (ICDCS)</source>
          ,
          <source>IEEE</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Sun</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jia</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chen</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          : Achieving Convergence, Causality Preservation, and
          <article-title>Intention Preservation in Real-Time Cooperative Editing Systems</article-title>
          .
          <source>ACM Transactions on Computer-Human Interaction</source>
          <volume>5</volume>
          (
          <issue>1</issue>
          ) (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Rahhal</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Skaf-Molli</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molli</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weiss</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>Multi-synchronous collaborative semantic wikis</article-title>
          .
          <source>In: 10th International Conference on Web Information Systems Engineering - WISE '09</source>
          . Volume 5802 of LNCS., Springer (
          <year>2009</year>
          )
          <volume>115</volume>
          {
          <fpage>129</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Cordier</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lieber</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molli</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nauer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Skaf-Molli</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Toussaint</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Wikitaaable: A semantic wiki as a blackboard for a textual case-based reasoning system</article-title>
          .
          <source>In: SemWiki 2009 - 4rd Semantic Wiki Workshop at the 6th European Semantic Web Conference - ESWC</source>
          <year>2009</year>
          ,
          <article-title>Grce Heraklion (</article-title>
          <year>2009</year>
          -05-16)
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>