<!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>A user interface to build interactive visualizations for the semantic web</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Miguel Ceriani</string-name>
          <email>ceriani@di.uniroma1.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paolo Bottoni</string-name>
          <email>bottoni@di.uniroma1.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Simona Valentini</string-name>
          <email>simo.valentini@hotmail.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Sapienza, University of Rome</institution>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>While the web of linked data gets increasingly richer in size and complexity, its use is still constrained by the lack of applications consuming this data. We propose a Web-based tool to build and execute complex applications to transform, integrate and visualize Semantic Web data. Applications are composed as pipelines of a few basic components and completely based on Semantic Web standards, including SPARQL Construct for data transformation and SPARQL Update for state transition. The main novelty of the approach lays in the support to interaction, through the availability of user interface event streams as pipeline inputs.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        During the last few years, two pipeline languages, DERI Pipes [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and
SPARQLMotion [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], have emerged as the state of the art for de ning RDF
transformations, o ering a high level interface to execute operations on linked data,
providing a set of basic operators on RDF graphs to build the pipelines, which
are then typically executed in the context of a batch or Web application, in the
latter case in response to GET or POST requests. Similarly, networked graphs [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]
propose a view-based approach, where an RDF-based syntax is used to de ne
new graphs in terms of queries on existing graphs, possibly using recursion.
      </p>
      <p>
        The Visualbox [
        <xref ref-type="bibr" rid="ref10 ref4">4</xref>
        ] and Callimachus [
        <xref ref-type="bibr" rid="ref11 ref5">5</xref>
        ] systems have been proposed explicitly
for linked data visualization. In their two-step model/view approach, SPARQL
queries select data and a template language generates the (XML) visualization.
      </p>
      <p>We leverage these approaches to give developers the possibility of specifying
event-based interactive applications through pipelines composing query-based
operators on graphs. As the User Interface state and events can be used as
inputs of the queries, programmers can build complex visualization scenarios.
3</p>
    </sec>
    <sec id="sec-2">
      <title>Data ow Editor</title>
      <p>
        The editor is contained in a Web page (see Fig. 1) providing tools to create and
modify data ows saved as RDF graphs on a Graph Store [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and composed of:
{ a component panel (left), where components represent language operators;
{ the data sources tab (left), allowing reference to RDF data sources already
known to the system or the creation of new ones;
{ the pipelines tab (left), allowing developers to use, view or modify other
pipelines created by the user or any pipeline available online (in which case
it would not be modi able);
{ the editor area (center), where the pipeline is built by dragging, linking and
con guring the desired components;
{ the command panel (upper right), contains some buttons for operations
related to the whole pipeline, e.g. saving it or executing it;
{ the helper area (bottom-left corner), for contextual help on components;
{ the source code area (bottom), showing the RDF graph for the data ow.
3.1
      </p>
      <p>
        Components
A pipeline is a side-e ect-free data ow programming module, taking as input an
RDF Dataset and returning another RDF Dataset. Each component is identi ed
by a Name (visualized in the interface) and an ID (used as fragment identi er to
programmatically identify the component). The available components are:
{ the default input graph and the (named) input graphs
{ the default output graph and the (named) output graphs
{ the union graphs generated by merging the RDF triples of a set of graphs;
{ the construct graphs generated by executing a SPARQL 1.1 Construct [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]
query against a set of graphs;
{ the updatable graphs, whose content is incrementally modi ed during an
execution of the pipeline by executing a SPARQL 1.1 Update [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] request
against a set of graphs each time one of these graphs changes;
{ existing pipelines which can be used as components in the current pipeline.
      </p>
      <p>A pipeline can be designed just for reuse by other pipelines. If a pipeline
has to be executed (i.e. it is a top level pipeline), its default output graph must
comply with an XML DOM Ontology2 describing the XML DOM in RDF. It will
represent a HTML or SVG document, to be rendered by the user interface. Its
default input graph will receive the DOM Events generated in the user interface,
described with a DOM Events Ontology3.
4</p>
    </sec>
    <sec id="sec-3">
      <title>Software Architecture</title>
      <p>
        The main blocks of the application are the editor, the pipeline repository and
the data ow engine. The editor is a rich Web application with its client side
logic coded in HTML+CSS+JavaScript. The pipeline repository is an instance
of Graph Store that must be located in the same host of the editor. The data ow
engine is a Java based (using Apache Jena [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]) web application that maintains
the state of each running pipeline instance; when a new instance is launched
(e.g., from the editor) the engine initializes the pipeline and returns to the client
its output along with a piece of JavaScript logic to report the handled events
back to the server; each time an event is red on the client, the data ow engine is
noti ed and answers with the changes that have to be executed on client content.
2 http://www.swows.org/2013/07/xml-dom
3 http://www.swows.org/2013/07/xml-dom-events
On the client side, any modern browser with JavaScript support is su cient to
use both the editor and the generated application. The software is free and
available on line4.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Demonstration</title>
      <p>We will demonstrate how to build a data visualization through the creation
of a pipeline. Static content (e.g., an SVG world map) will be referenced as
Datasource and composed with dynamic content built from RDF Datasources
(e.g., the FAO Geopolitical Ontology) using some chained Construct queries
(e.g., to color the map based on some statistic); to add interaction the Default
Input of the pipeline (user interface events) will be connected to an Updatable
Graph storing the application state (e.g., the selected statistic)5.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusions and Future Work</title>
      <p>We have presented a user interface to build pipelines which specify
transformations of RDF graphs in order to build data visualization applications. The
RDF pipeline language is based on existing standards (such as SPARQL) and
is unique in having been designed for interactive applications and thus able to
react to graph modi cation events.</p>
      <p>We are a proposing this system as a proof-of-concept and as a test bed for
experimentation in RDF programming with a data ow approach. We want to
leverage this experimentation to build higher level interfaces, designed also for
usage by non-expert users, as a way to exibly interact with linked data.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Le-Phuoc</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Polleres</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hauswirth</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tummarello</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morbidoni</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Rapid prototyping of semantic mash-ups through semantic web pipes</article-title>
          .
          <source>In: Proc. WWW '09</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2009</year>
          )
          <volume>581</volume>
          {
          <fpage>590</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Knublauch</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          , et al.:
          <article-title>SPARQLMotion Speci cations (</article-title>
          <year>2010</year>
          <article-title>) sparqlmotion</article-title>
          .org.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Schenk</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Staab</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Networked graphs: a declarative mechanism for SPARQL rules, SPARQL views and RDF data integration on the web</article-title>
          .
          <source>In: Proc. WWW '08</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2008</year>
          )
          <volume>585</volume>
          {
          <fpage>594</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Graves</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Creation of visualizations based on linked data</article-title>
          .
          <source>In: Proceedings of the 3rd International Conference on Web Intelligence, Mining and Semantics</source>
          , ACM (
          <year>2013</year>
          )
          <fpage>41</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Battle</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wood</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leigh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruth</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>The Callimachus Project: RDFa as a Web Template Language</article-title>
          . In: COLD. (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Ogbuji</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Sparql 1.1 Graph Store HTTP Protocol</article-title>
          .
          <source>W3C REC 21 March 2013</source>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Harris</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , et al.
          <source>: SPARQL 1</source>
          .
          <article-title>1 Query Language</article-title>
          .
          <source>W3C REC 21 March 2013</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Schenk</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gearon</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          , et al.
          <source>: SPARQL 1.1 Update. W3C REC 21 March 2013</source>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>McBride</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Jena: a semantic Web toolkit</article-title>
          .
          <source>Internet Computing, IEEE</source>
          <volume>6</volume>
          (
          <issue>6</issue>
          ) (Nov/Dec
          <year>2002</year>
          )
          <volume>55</volume>
          {
          <fpage>59</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>4 http://www.swows.org/</mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          <string-name>
            <surname>5</surname>
          </string-name>
          <article-title>A clip of this example is available</article-title>
          at http://www.swows.org/?q=
          <fpage>ISWC2013</fpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>