<!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>Uduvudu: a Graph-Aware and Adaptive UI Engine for Linked Data</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Luggen</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernhard Anrig</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adrian Gschwend</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Philippe Cudré-Mauroux</string-name>
          <xref ref-type="aff" rid="aff3">3</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Division of Computer Science, Bern U. of Applied Sciences</institution>
          ,
          <addr-line>Biel-</addr-line>
          <country country="CH">Switzerland</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Division of Computer Science, Bern U. of Applied Sciences</institution>
          ,
          <addr-line>Biel-</addr-line>
          <country country="CH">Switzerland</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>eXascale Infolab, University of Fribourg</institution>
          ,
          <addr-line>Fribourg-</addr-line>
          <country country="CH">Switzerland</country>
        </aff>
        <aff id="aff3">
          <label>3</label>
          <institution>eXascale Infolab, University of Fribourg</institution>
          ,
          <addr-line>Fribourg-</addr-line>
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2006</year>
      </pub-date>
      <abstract>
        <p>Creating good User Interfaces (UIs) to render Linked Data visually is a complex task, often involving both UI and Linked Data specialists. The resulting solutions are typically application-dependent and di cult to adapt or reuse in a di erent context. To tackle this problem, we propose Uduvudu, a exible, open-source engine to visualize Linked Data. Our engine is built in JavaScript and runs in the browser natively. Non-specialist users can use Uduvudu to describe recurring subgraph patterns occurring in their data. They can then exibly and automatically extract, transform, and visually render such patterns in multiple ways depending of the usage context. Uduvudu is intuitive, exible, and e cient and makes it possible to jump-start the development of complex user interfaces based on Linked Data without the need of data specialists.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;Templating</kwd>
        <kwd>Visualization</kwd>
        <kwd>User Interface</kwd>
        <kwd>Development Process</kwd>
        <kwd>Linked Data</kwd>
        <kwd>RDF</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>Companies are progressively adopting Linked Data in their
internal IT ecosystems. As a result, they are increasingly
interested to leverage Linked Data to build better User
Interfaces (UIs), both for their employees and for their customers.
Ideally, there should be as little information loss as possible
when exporting the Linked Data to the UI. Often, however,
Linked Data is transformed into less expressive data formats
that are then rendered in a simplistic fashion in the
interface. The exported Linked Data typically looses some of
its structure, its semantics and/or some of its links.
Ultimately, it becomes impossible to use the representation in
the interface to write data back into the graph. Also,
handling arbitrary Linked Data in order to render it properly in</p>
      <p>Uduvudu</p>
      <p>Subgraph
underscore.js</p>
      <p>Y
Y
Y
Y</p>
      <p>Callimachus</p>
      <p>Application
RDFa Templates</p>
      <p>N
N
N
Y
Most of the related work focused so far on the exploration
and visualization of Linked Data. The focus of many
systems is hence either on how to e ectively explore large
quantities of Linked Data, or on how to compactly aggregate large
data to visualize it. Less attention has been given to the case
where a data publisher already knows exactly which parts
of the data he/she wants to publish.</p>
    </sec>
    <sec id="sec-2">
      <title>2.1 Overview</title>
      <p>
        Brunetti et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] recently introduced the Formal Linked
Data Visualization Model. The framework identi es a
visual processing pipeline composed of three main components
(Analyzer, Visualization Transform and Visualizer). The
last two steps of the architecture match our own approach
(their rst step being out of scope for this work). Their
approach analyze Linked Data structures with the goal of
choosing the possible visualizations. Our implementation
has been partly in uenced by this approach, with the
important di erence that the goal of Uduvudu is not necessary to
aggregate data for visualization, but rather to create a
exible framework to render speci c portions of Linked Data.
Their paper also gives an extensive overview of the di erent
visualization libraries used in the Linked Data context.
      </p>
    </sec>
    <sec id="sec-3">
      <title>2.2 Fresnel</title>
      <p>
        Fresnel [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is a well-known approach in the eld of RDF
visualization and presentation. Fresnel was originally designed
to create common styles for the description of classes in RDF
browsers. Because of this, it inherently assumes that an
ontology is present in the system in order to visualize the data.
Fresnel allows to specify in a detailed manner how to render
data value properties. Creating more elaborate visual
representations is however often complex, since the framework
never was intended for such jobs.
      </p>
      <p>
        We experienced further problems when working with
Fresnel. First, ontologies typically do not provide a way to
indicate if an attribute might be optional. While this is expected
for RDF data processing, this poses problems at the
presentation layer where it is crucial to know precisely which
information is available. The rendering of a complete address
(with street, city, and country values) can for instance be
quite di erent from an address containing only the country
or city name. Other researchers have also struggled with
this limitation of Fresnel [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Through a mechanism called lenses, users can de ne which
properties have to be selected in an RDF graph. The user
has to specify which lenses shall be used for which graph as
well as to indicate all the corresponding properties. From
our perspective, the selection of which information is to be
rendered should be part of the application logic instead, e.g.,
by providing a declarative representation (e.g., a SPARQL
query) of the targeted data upfront.</p>
      <p>
        The formatting step in Fresnel uses Formats to do simple
string manipulations and Cascading Style Sheets to describe
the rendering. While this approach makes it possible to
create fairly complex renderings, it is also in our opinion
intimidating for the designers, who most often do not have
a deep understanding of the OWL syntax. Also, it is not
possible to inject or attach transformation code to create
complex renderings and visualizations. Finally, the output
generation step of Fresnel is using the prepared information
from the formatting step to render the visualization. Hence,
it it not possible to change the representation based on the
context, which is a very important requirement in practice
and has been one of the original ideas behind the Semantic
Web [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. We think that the context of the presentation layer
should be incorporated into the framework itself, and that
is should support the developers in their task of creating
adaptive user interfaces.
      </p>
    </sec>
    <sec id="sec-4">
      <title>2.3 Template-Based Presentation</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Khalili et al. present an extensive overview of how
user interfaces relate to ontologies. In this work, we do not
focus on the creation, completion or interaction with
ontologies. Instead, our focus lies on the rendering of Linked Data.
Furthermore, our framework does not even require a valid
ontology or schema to begin with.
      </p>
      <p>
        The use of templates for presentation of semantic data was
introduced through Lens Templates in Exhibit [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. They
allow to create complex HTML structures that are familiar
to web designers. Because Exhibit uses a sub model of RDF
which is de ned as JSON structures, there was no need to
tackle potentially cyclic graph structures. The templates
in Exhibit are coupled to the application (de ned in html),
which requires some interaction with the developer in order
to be reused.
      </p>
      <p>
        Templates used to render RDF data directly were introduced
through LESS [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], which also partially removes the need of
ontologies to create RDF visualizations. Based on a use-case
de ned through a SPARQL query, a template is mapped to
render the output. The authors use an extended version of a
Web template language (Smarty) to then render the results.
In addition, they propose a repository of templates which
can be reused.
      </p>
      <p>Both frameworks allow to recursively include other
templates. Uduvudu enforces the possibility of creating
negrained templates at all levels, without requiring any
ontology or schema beforehand. We think that the
potential reuse of these smaller templates is higher than
coarsergrained mechanisms.</p>
      <p>
        Callimachus [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] provides a full-stack solution allowing
to build complete applications. As a part of the stack,
a template-based mechanism to create RDFa templates
is introduced. These templates are highly-coupled to
the applications at hand. This di ers to Uduvudu
where templates are matched to the data at hand while
Callimachus fetches the necessary data to ll a template
(through creating a SPARQL request).
      </p>
      <p>
        Balloon Synopsis [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is an RDF Browser framework where
templates are coupled with JavaScript functions to discover
matching data structures. In Uduvudu, the matching part is
decoupled from the templates. Furthermore, no knowledge
of any programming language is required when matching
structures. Finally, Uduvudu is designed as an engine to
render general UIs, where a RDF browser might be one of
its use-cases but not the sole focus.
      </p>
      <p>Our framework extends the aforementioned approaches in
several ways, most prominently by the automatic selection
of the templates based on the input data, by the creation
of a more exible rendering process, and by templates that
can match incomplete data.</p>
      <p>In addition, the ability of Uduvudu to exibly combine
templates to create bigger structures makes it possible to adapt
the presentation according to the availability of data facts.</p>
    </sec>
    <sec id="sec-5">
      <title>3. LINKED DATA UI CREATION PRO</title>
    </sec>
    <sec id="sec-6">
      <title>CESS</title>
      <p>In order to tackle the challenges described above, we adapt a
process work ow to streamline the creation of UIs for Linked
Data. Our process is driven by three di erent actors:
The data expert is the person (or group) having
knowledge on the Linked Data that needs to be rendered.
The UX specialist is the user experience person (or
group) knowing how to best transform and restructure
the data for the application at hand.</p>
      <p>The graphical designer, nally, is the person (or group)
specialized in creating e ective visual renderings of
data structures.</p>
      <p>Those three roles might be assumed by the same person
in small settings, but will typically be assumed by distinct
persons in larger companies. Our UI creation process is
given in Figure 1. The overall process can be summarized
as follows:</p>
      <p>First, the data expert gathers and exports the data
that needs to be rendered.</p>
      <p>The selected data is then passed to the UX specialist,
who restructures it for rendering purposes.</p>
      <p>Finally, the graphical designer takes the various data
structures built by the UX designer and builds the
visual rendering of the data.</p>
      <sec id="sec-6-1">
        <title>Data Expert</title>
        <p>UX Specialist</p>
      </sec>
      <sec id="sec-6-2">
        <title>Designer</title>
      </sec>
      <sec id="sec-6-3">
        <title>User</title>
      </sec>
      <sec id="sec-6-4">
        <title>SPARQL</title>
        <p>Graph File
App. Logic
Asks for needed</p>
        <p>data fields.</p>
        <p>Assembles graph</p>
        <p>G
Creates matchers M1</p>
      </sec>
      <sec id="sec-6-5">
        <title>Zero-input fallback</title>
        <p>F</p>
      </sec>
      <sec id="sec-6-6">
        <title>Designs Templates T1</title>
      </sec>
      <sec id="sec-6-7">
        <title>Iterative development</title>
        <p>S</p>
      </sec>
      <sec id="sec-6-8">
        <title>Missing information detected.</title>
        <p>
          The Linked Data UI creation process we propose has a
number of distinct advantages, including:
Clear separation of roles: involving the data expert|or
the other specialists|throughout the entire process
can be very costly in practice [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Instead, our
process introduces a clear separation between the tasks
undertaken by the di erent specialists, resulting in a
better repartition of work and in increased autonomy
for the experts.
        </p>
        <p>Iterative development process: new elements can be
added to each task without blocking the other tasks.
That way, the experts can iterate on their own design
autonomously without consulting the other experts.
Highly reusable outcome: as the the three tasks are
partially decoupled, all the individual pieces of data,
structures and templates created during the process
can be reused and adapted later to another context,
data, or application exibly.</p>
        <p>Zero-input fallback: any valid Linked Data provided by
the data specialist can be rendered without any
additional processing from the UX specialist or from the
graphical designer (in that case, the data is simply
rendered as lists of strings displayed at the bottom of the
rendering).</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>4. ARCHITECTURE</title>
      <p>The architecture we adopted for our framework was directly
based on the creation pipeline described above, as well as
on a series of prerequisites we elicited from data experts,
UX specialists and graphical designers. It is composed of
three main components: the selector choosing the input, the
matcher which discovers known structures in the selected
input, and the renderer which incorporates the visualization
context to render. Figure 2 gives an overview of our
architecture. We start below by introducing the prerequisites
of our architecture, before giving some detail on each of its
three main components.</p>
    </sec>
    <sec id="sec-8">
      <title>4.1 Pre-requisites</title>
      <p>Through our own experience and interviews with Linked
Data specialists, UX experts and graphical designers, we
came up with a set of pre-requisites for our architectures:
Never show URIs to non-technical end-users: They are
systematically confused when confronted to data URIs
displayed in a graphical interface. While data URIs
are essential to uniquely identify entities and
properties on the Web of data, they should not be used in
mundane graphical interfaces where plain literals and
labels should be preferred.</p>
      <p>Leverage the extracted data structure for the
rendering: the way data is extracted from the original data
typically follows long deliberations and some decision
process. We think that the resulting structures should
be leveraged as much as possible for the creation of the
nal user interface.</p>
      <sec id="sec-8-1">
        <title>SPARQL</title>
      </sec>
      <sec id="sec-8-2">
        <title>Graph File</title>
      </sec>
      <sec id="sec-8-3">
        <title>App. Logic</title>
        <p>Matcher
Renderer</p>
      </sec>
      <sec id="sec-8-4">
        <title>Device</title>
        <p>User
?
?
?
&lt;b&gt;?&lt;/b&gt;
&lt;p&gt;
? - ?
&lt;/p&gt;
?
?
?
?
&lt;span&gt;?&lt;/span&gt;
&lt;div&gt;
&lt;i&gt;?&lt;/i&gt;
&lt;/div&gt;
&lt;script&gt;
a = ?; b = ?;
&lt;/script&gt;</p>
      </sec>
      <sec id="sec-8-5">
        <title>Desktop</title>
      </sec>
      <sec id="sec-8-6">
        <title>Mobile, Français</title>
      </sec>
      <sec id="sec-8-7">
        <title>Desktop, User22, Deutsch</title>
        <p>Handle language transparently, until needed speci
cally: speci c languages add a level of complexity to every
application. Hence, we feel that for our process, if
literals are available in multiple languages, only the one
matching the context language should be presented,
while still keeping the possibility to ne-tune and
control the language if necessary depending on the
application at hand (e.g., showing multiple languages).
Maximize the dynamic composition of information:
our goal is not to come up with highly-complex
renderings composed of thousands of distinct
elements. Rather, we target usual business interfaces
composed of a few dozens elements at a time
maximum. Hence, our goal is not to come up with
a highly-optimized and scalable rendering engine
but rather to propose a dynamic composition model
where Linked Data and templates can by dynamically
recycled and integrated in order to create the nal
rendering.</p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>4.2 The Data Selector</title>
      <p>We now turn to the description of the three main
components of our architecture. First, we start with the Data
Selector, which decides which data that will be transformed
and rendered. Based on the use-case at hand, one needs to
select and combine the relevant Linked Data from one or
several sources. The decision on which part to select from
the available data sources is typically an internal process,
which is outside the scope of the present paper.
Any selector which supports classical Linked Data input,
e.g., through a SPARQL query, an RDF/XML dump or
triples serialized in one or several text les can be used.
Uduvudu does not expect any inherent structure from the
data (though it must be well-formed), which does not need
to comply to any speci c ontology or structure at this stage.
Hence, the selector takes as input a superset of all
informations that need to be shown to the end-user, and trim them
to an input graph G containing exactly the information that
needs to be rendered. This step is typically carried out by a
data specialist. Figure 3 gives a simple example input graph
corresponding to Figure 4.
&lt;corky&gt; a vcard:Individual;
vcard:fn "Corky Crystal";
vcard:hasAddress &lt;corky#address&gt;;
vcard:hasTelephone &lt;corky#telephone&gt;;
vcard:nickname "Corks".
&lt;corky#telephone&gt; a vcard:Home, a vcard:Voice;
vcard:hasValue "tel:+61755555555".
&lt;corky#address&gt; a vcard:Home;
vcard:country-name "Australia";
vcard:locality "WonderCity";
vcard:postal-code "5555";
vcard:street-address "111 Lake Drive".</p>
    </sec>
    <sec id="sec-10">
      <title>4.3 Structure Matcher</title>
      <p>The second component in our architecture, the Structure
Matcher, holds a catalogue M of known structures
(matchers) and tries to match parts of this catalogue onto the input
graph G.</p>
      <p>The catalogue contains on one hand custom matchers that
describe dedicated processings for speci c data patterns, and
prede ned matchers on the other hand that act as a fall-back
solution in case no custom matcher can be matched to some
node in the input graph. Figure 7 gives an example of a
structure matcher.</p>
      <p>The custom structures in the catalogue are typically
provided by the UX specialist. They are serialized as JSON
structures in our implementation (see below), and can be
generated through a GUI or can be based on an RDF
processor. In order to make the de nitions in the catalogue
as reusable as possible, they are all built hierarchically as
tree structures. This gives the possibility to attach a
template at every step and also to regroup already matched
data structures into bigger structures, without touching the
inner-working of the smaller structures.</p>
      <p>The matcher takes as input an input graph G and one or
several corresponding known structures from its catalogue
and returns as output a tree structure (see Algorithm 1)
with at least one pointer to a rendering structure from the
Renderer (see below Section 4.4). The output is split into
a set of multiple tree-structured sub-graphs with additional
information about the template and a precedence number.
All input data is eventually consumed through this process.
At this step, we like to mention that a pointer pointing back
to the input graph is attached to the tree for every literal.
This makes it possible to provide a simple form of data
lineage, as well as to create applications which can write back
to the input graph.</p>
      <p>During this process, all information is treated equally except
identical properties available in multiple languages. To
provide language information in a transparent manner, the
literals which are provided in multiple languages are grouped
in the internal data structures. This enables the renderer
component to select the correct language based on the
context, without analyzing the graph again in more detail.
Catalogue of Matchers (Known Structures). We adopt
a simple yet generic way to match RDF subgraphs and to
generate trees. To initiate the matching process, providing
an entry point in the RDF data is preferable. This start
resource is a URI which denotes the node in the graph which
will be used to begin the matching process. If no start
resource is provided, the matcher falls back to try all nodes
available to start the matching. Even though it is more
exible, this fall back approach needs more processing power
compared to the former.</p>
      <p>The matching process is implemented as a guided graph
traversal. Based on the current start resource, all
matching functions which are able to proceed through a predicate
edge to the next node are listed. The set of functions which
incorporates the highest amount of nodes is selected to be
added to the set of trees. After this step, the matched nodes
are deleted from the input graph and the same procedure
starts over on the remaining nodes. The current solution is
based on three types of matching functions:
else
end
Data: Graph G, Start Resource URIs S, Matcher</p>
      <p>Functions M1
Result: Forest with References to Template Sets F
Function Matcher()
foreach Matcher Function M1 do</p>
      <p>Process G with Function;
if Result then Add to Proposals P ;
end
if Proposals P available then</p>
      <p>Find best P add to F ;
Delete Nodes covered by P from G;
Call Matcher() with remaining G;
Add remaining Nodes each as Tree to F ;</p>
      <p>Algorithm 1: Matcher Algorithm</p>
      <p>e
nf:dracv rd:nicknam
a
c
v
vcard:hasValue</p>
      <p>tel:+61755555555
http://example.com/me/corky#telephone
http://example.com/me/corky
vcard:haA
s
d
d
rs
e
s</p>
      <p>ard:street-address
vc vcard:locality</p>
      <p>vcard:postal-code
vcard:country-name
http://example.com/me/corky#address
111 Lake Drive</p>
      <p>WonderCity</p>
      <p>5555
Australia
LinkMatcher: this matching function supports simple
navigation inside an RDF graph. It allows to hop
from a start resource to another URI, which is then
de ned as a new start resource. For this function
also, it is possible, like for the PredicateMatcher, to
specify if the resource URI is in the subject or object
position.</p>
    </sec>
    <sec id="sec-11">
      <title>4.4 Adaptive Renderer</title>
      <p>The adaptive renderer takes as input the tree structure given
by the matcher (F , see for instance Figure 5), the available
context variables (language, user, device) and the provided
templates (T , see for instance Figure 8) to nally render
the output. The templates are written in HTML and access
the tree structure through escaped variable de nitions (see
Table 2 for details).</p>
      <p>Before the input is combined with the template, the
structure is prepared by a language subcomponent, which
determines|based on the language context|which literals
to use.</p>
      <p>For each template pointer, multiple templates can be
available. When no speci c template is speci ed, a combination
of the deepest underlying templates available in the
hierarchy will be combined together. The templates in the deeper
levels of the hierarchy will be chained in place. As a set
of simple fallback templates are de ned for all literals, it
is hence assured that all provided data will be rendered at
least in its simplest form.</p>
      <p>The di erent templates have di erent ags attached
denoting the context in which they have been prepared. It is the
duty of the renderer to decide which is the best suitable
template for the context at hand. The di erent ags describing
the contexts can be on the input / output (device), the
usecase, the targeted user, or the language. Those ags allow to</p>
      <p>&lt;/div&gt;
&lt;/div&gt;
&lt;span
class="glyphicon</p>
      <p>glyphicon-envelope"
style="font-size:48px;</p>
      <p>float:left;
cessed inside the variable blocks (denoted through &lt;%- and
%&gt;.)
easily change the rendering based on the context provided.
Context information is not always guaranteed to
be
available.</p>
      <p>The output device and language are usually the most
readily available types of context information, typically
followed by the user at hand.</p>
      <p>The decision on
which template
to use is solved by giving the output device the highest
priority and enforcing it if available.</p>
      <p>The remaining available
context variables are used to
nd the best match
within the
available templates.</p>
      <p>The template
with the most matching
ags is chosen by the system. If there is still some
ambiguity, the priority is set as follows:
Use-case, user, and
nally
language.
4.5
We</p>
      <p>Extensibility
mentioned in the introduction that our architecture was
designed to be highly extensible. In the short introduction
of the architecture, we saw</p>
      <p>how the behavior of the pipeline
can be extended by adding new matcher de
nitions and,
accordingly, template de
nitions. For the template de
nitions,
the system
can
be extended</p>
      <p>dynamically, as multiple
templates can be de</p>
      <p>ned for the context variables per matcher
de
nition.</p>
      <p>Thus, by adding new templates for new
kinds of
devices or for new
users or user groups, the
behavior can
also be dynamically adapted based on the context.
On the source code level, it is possible to extend the di
erent
types of matchers by
providing
new
matcher factories.</p>
      <p>A
matcher factory
gets initialized
according
to
the matcher
de
nitions that in turn
populate the tree
which is handed
to the renderer.
4.6</p>
    </sec>
    <sec id="sec-12">
      <title>Limitations</title>
      <p>Uduvudu
does
not
enable
laypersons
to
create
stunning
visualizations</p>
      <p>through
Rather,
it
provides a
prede
holistic
ned</p>
      <p>o -the-shelf
framework
for
templates.
developers,
which in turn have the possibility to delegate data domain,
UX and design tasks to the respective experts.</p>
      <p>Furthermore, the framework
proposes
no functionality
to
enhance
or reason
on
the input
data.</p>
      <p>With
the
creation
of user interfaces for RDF centric applications in
mind, the
pre-processing of the input graph
needs to
be provided
by
the application logic.
5.</p>
    </sec>
    <sec id="sec-13">
      <title>EDITOR</title>
      <p>Our framework also supports a simple yet intuitive and
powerful editor.</p>
      <p>As it is possible to render an
output at any
time, the editor is simply based on the results incorporating
the available templates. Matchers and their corresponding
templates can</p>
      <p>be added iteratively to create templates for
bigger structures.
tchomementt:emplate was changed toi re e+ nder the literal as an HTML
Friburgo (en francés Fribourg/Fribourg en Nuithonie, en alemán Freiburg/Freiburg im Üechtland,
tein titalliaeno.Friburgo y en romanche Friburg) es una pequeña ciudad de Suiza occidental, capital
del cantón de Friburgo y del distrito de Sarine. Friburgo es una de las tres ciudades bilingües
de Suiza, unas 21.000 personas hablan francés, mientras que unas 8.300 hablan alemán. Se
ubica en la región l amada Üechtland.</p>
      <p>Tcomhmernto:ugh the same mechanis mie (+using the + icon), templates
Фрибу́ р (фр. Fribourg) или Фра́ йбург (нем. Freiburg) — город на западе Швейцарии,
cфaранnцузскиb,22e% — cпо-oнемmецки, b5%i—nпоe-иdтальянсtкиo.Прgи нeасеtлеhнииeв 3r7 200tчеoловекcreate more expressive
temстолица кантона Фрибур.Город многоязычен: около 58 % населения говорят
по(2007) свыше 10 000 — студенты здешнего университета.Святые покровители города —
Николай Чудотворец и Екатерина Александрийская.
ht p:/ www.w3.org/2000/01/rdf-schema#label
edit
Creates a basic predicate matcher.
matcher
Predicate:
Matcher Name:
Template Variable:
label
title
Order :
100000
template
Template ID :
h1_title
&lt;div class="uv"&gt;
&lt;h1&gt;&lt;%-title.u%&gt;&lt;/h1&gt;
&lt;/div&gt;
Add Matcher &amp; Template
Combine multiple matchers to a new matcher.
edit
matcher
Matcher Name:
Template Variable:
head
head
Order :
100000
tpl_6.label tpl_6.abstract
template
Template ID :
head
&lt;div class="uv"&gt;
&lt;h1&gt;&lt;%=head.label.u%&gt;&lt;/h1&gt;
&lt;%=template(head.abstract)%&gt;
&lt;/div&gt;
Add Matcher &amp; Template
This proof of concept application shows UDUVUDU rendering entries from DBpedia. It
further makes uses of linked data fragments, rdf-ext and also bootstrap and typeaheadjs.</p>
      <p>Please start searching for an entry in DBpedia by typing at least 3 letters. To confirm your
decision select a proposition in the list.
en
Fribourg
fourNgeiegnhbeorriicngtemmunpiclaiptaelistieusseCdatteogogrieesnerate the</p>
      <p>Düdingen 1157 establishments</p>
      <p>Givisiez Canton of Fribourg
PictureGrawngeist-PhaccTot itle and AbCsanttornaalccatp:italTsohfe rst template
exMtarraly,cFtrisboutrhge picture andSwtitzheerlanldabels of the entity, and</p>
      <p>Pierrafortscha Cities in Switzerland
crSeta.Utresesn a rendering wiCtuhlturablporotphertyeolf enamtioenanl ts integrated
(wTiatfehrs the title overlappisniggnifitcahncee ipnithcetcuanrteon).of Furthermore,
either a Fribourg</p>
      <p>Villars-sur-Gclâonmement or absFrtibroaucrgt is shown to the right of
the picture.</p>
      <p>Imperial free cities</p>
      <p>Municipalities of the canton of
Selected Facts: Elevation, AFribroeuarg and the Website of the</p>
      <p>University towns
selected city are put together in a small facts box. Each
o fWtikhipeedfaiacts could also be rendered independently. This
ID: 1m64e06a5ns that the maximum of all available elements are
Revision: 602735683</p>
      <p>Show remaining literals
Show remaining links
rendered in all cases.</p>
      <p>Map of Location: Coordinates that are attached to an
instance are shown using a map widget. To initialize the
widget, some JavaScript code gets injected on the y.
Graphs of Humidity and Temperatures: The average
mean, high and low temperature as well as the
humidity per month are attached to the main instance as a
set of 12 properties. They get combined by matcher
and rendered by a template which loads a charting
library.</p>
      <p>Below the templates, we then see the list of non-matched
properties. Each of them is internally represented as a tree
with only one leaf. The rendering of such simple trees is
dened by the built-in templates. By overriding this template,
it is also possible to customize the fall-back representations.
Furthermore, it is possible|on the base of those fall-back
templates|to create di erent implementations of user
interfaces which help in de ning new matcher and template
de nitions.</p>
    </sec>
    <sec id="sec-14">
      <title>6.2 Fusepool</title>
      <p>Within the EU research project Fusepool1, a Uduvudu
component is used to render particular data views selected
by the user in a dashboard. Fusepool integrates multiple,
potentially large data sources using RDF as their data
model. Example data sources used in this context are
patents, Pubmed articles or user-contributed datasets like
logs of parliamentary discussions or collections of beers and
breweries. Among other things, Fusepool applies natural
language processing on plain text content to extract
entities, which can then be used for more speci c search
queries.</p>
      <p>Fusepool provides a basic user interface, which makes it
possible to support faceted search on top of the data. Based on
the search results, the user might want to read the detailed
content of a particular patent, pubmed article or speci c</p>
      <p>Entities
CognitiveAgent</p>
      <p>SIEMENS  AG (14)
SIEMENS  AKTIENGESELLSCHAFT (7)
BOSCH  GMBH  ROBERT (6)
ROBERT  BOSCH  GMBH (6)
SIEMENS,  GERHARD (9)</p>
      <p>SIEMENS  GERHARD (7)
Facet  types</p>
      <p>Document (45)
A1Document (676)
A3Document (276)
PatentPublication (1845)
B1Document (470)
GrantedPatent (478)</p>
      <p>B2Document (3)
A2Document (309)
A4Document (105)</p>
      <p>Entity (1845)</p>
      <p>Device
Documents (1890)</p>
      <p>Classify:</p>
      <p>Label  prediction:</p>
      <p>Preview
Device  for  cooling  a  motor  in  a  climate  control
system
&lt;div  xmlns="ht p:/ www.w3.org/1999/xhtml"
xml:lang="en"&gt;  &lt;p&gt;A  conduit  for  providing  air  flow
from  an  air  conditioning  housing  (44)  to  a  motor  (28)
for  driving  a  climate  control  system  air  blower  (26)  is
disclosed.  The  blower  (26)  is  located  in  the  air
conditioning  housing  (44).  The  air  conditioning  motor
(28)  includes  a  motor  …
Labels:
Add  label
POURING  DEVICE
DISPOSITIF  VERSEUR  POURING  DEVICE
AUSGIESSVORRICHTUNG
Labels:
Add  label
beer. This particular selection is then shown using
Uduvudu. In the example shown in Figure 14, the title,
abstract, and license properties have a matcher and template
provided. The rest of the data properties are still presented
in a generic way. If new data types are added to Fusepool,
one just needs to provide speci c matchers and templates
to make sure Fusepool can then render the new data in a
useful way. Besides providing the matcher and template,
no interaction with a programmer who is familiar with the
Fusepool code base is necessary. Both the matcher and the
template can be stored in RDF as well as in the Fusepool
graph store.</p>
    </sec>
    <sec id="sec-15">
      <title>7. CONCLUSIONS</title>
      <p>In this paper, we presented Uduvudu, a graph-aware,
exible and user-friendly UI Engine for Linked Data. Based
on user input, Uduvudu captures and transforms inherent
features of graph-structured data, which are then leveraged
in the data-driven UI renderings. We described the uniquer
features of our system, its architecture, and two of its recent
deployments. By o ering multiple ways of de ning
extensions based on a few basic templates, our solution is kept
both user-friendly and generic enough to solve a wide
variety of use-cases when rendering Linked Data. As the
matchers and their accompanying template de nitions are tailored
to data structures and not to a particular UI use-case, the
probability of reusing parts of the rendering de nitions can
be increased.</p>
      <p>Furthermore, our architecture takes into account the fact
that such rendering projects often involve multiple parties.
The clear separation of tasks during the UI creation process
and the possibility to work on the sub-tasks independently
allows more agile work ows.</p>
      <p>One of the main features of the architecture we propose is the
ability to easily create context-aware renderings. Inherent
support is given in order to optimize UIs for di erent devices,
users, or languages. This functionality is mostly transparent
to the developers and can also be leveraged after a
contextinsensitive solution is provided.</p>
      <p>We provide an open-source implementation of our
architecture as a complete framework on http://www.uduvudu.org/.
The resulting system runs in a browser directly. For further
implementation details, please refer to the provided website.
We discussed two applications leveraging our
implementation. The DBpedia front-end shows how our framework can
be used to provide all kinds of rendering modalities. This
was done either by leveraging the templates themselves or
by injecting rendering libraries through the template system.
In the context of the Fusepool application, our system was
used to create the rendering of various heterogeneous pieces
of data. The main requirement for this application was the
ability to adapt the presentation layer without extending the
application code.</p>
      <p>Finally, we note that for certain applications it might be
necessary to dynamically update the user interface based on
changes made to the underlying Linked Data itself. This
dynamic update of the presentation layer can be realized
on top of the pipeline approach of Uduvudu. We can
apply the paradigm known as reactive programming in that
sense, where the implementation is built on data ow
architectures. Reactivity can be directly achieved in our
framework by re-submitting the input graph to Uduvudu on every
change. Using networked-clients and the ability of Uduvudu
to propagate changes made through the visual rendering of
the data directly back to the data itself, one could build
exciting new applications leveraging reactivity, where the
graph representation on the client-side propagates updates
to the data server, which in turn automatically updates all
other user interfaces.</p>
    </sec>
    <sec id="sec-16">
      <title>8. ACKNOWLEDGMENTS</title>
      <p>We thank the teams in Fribourg and Biel for many fruitful
discussions; special mentions go to Bart van Leeuwen, Pascal
Mainini and Thomas Bergwinkl for their contributions to the
architecture and development of Uduvudu. Uduvudu was
partly funded by the EU Framework Program for Innovation
under grant 296192.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Doehring</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Dietzold</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>LESS - template-based syndication and presentation of linked data</article-title>
          .
          <source>In The Semantic Web: Research</source>
          and Applications, L. Aroyo,
          <string-name>
            <given-names>G.</given-names>
            <surname>Antoniou</surname>
          </string-name>
          , E. Hyvonen, A. t. Teije,
          <string-name>
            <given-names>H.</given-names>
            <surname>Stuckenschmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Cabral</surname>
          </string-name>
          , and T. Tudorache, Eds.,
          <source>no. 6089 in Lecture Notes in Computer Science</source>
          . Springer Berlin Heidelberg, Jan.
          <year>2010</year>
          , pp.
          <volume>211</volume>
          {
          <fpage>224</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <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>
          , and
          <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="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Berners-Lee</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hendler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Lassila</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          <article-title>The semantic web</article-title>
          .
          <source>Scienti c american 284</source>
          ,
          <issue>5</issue>
          (
          <year>2001</year>
          ),
          <volume>28</volume>
          {
          <fpage>37</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Brunetti</surname>
            ,
            <given-names>J. M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Garc</surname>
            <given-names>a</given-names>
          </string-name>
          , R., Kl mek, J., and
          <string-name>
            <surname>Necasky</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>Formal linked data visualization model</article-title>
          .
          <source>In Proceedings of International Conference on Information Integration and Web-based Applications &amp; Services</source>
          (New York, NY, USA,
          <year>2013</year>
          ),
          <source>IIWAS '13</source>
          , ACM, p.
          <volume>309</volume>
          :
          <issue>309</issue>
          {
          <fpage>309</fpage>
          :
          <fpage>318</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>Hannes</given-names>
            <surname>Gassert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Andreas</given-names>
            <surname>Harth</surname>
          </string-name>
          .
          <article-title>From graph to GUI: displaying RDF data from the web with arago</article-title>
          .
          <source>Tech. rep., Digital Enterprise Research Institute</source>
          ,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Huynh</surname>
            ,
            <given-names>D. F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karger</surname>
            ,
            <given-names>D. R.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Miller</surname>
          </string-name>
          , R. C.
          <article-title>Exhibit: Lightweight structured data publishing</article-title>
          .
          <source>In Proceedings of the 16th International Conference on World Wide Web</source>
          (New York, NY, USA,
          <year>2007</year>
          ),
          <source>WWW '07</source>
          , ACM, p.
          <volume>737</volume>
          {
          <fpage>746</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Khalili</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Auer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>User interfaces for semantic authoring of textual content: A systematic literature review</article-title>
          .
          <source>Web Semantics: Science, Services and Agents on the World Wide Web</source>
          <volume>22</volume>
          (Oct.
          <year>2013</year>
          ),
          <volume>1</volume>
          {
          <fpage>18</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Pietriga</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bizer</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karger</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Lee</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Fresnel</surname>
          </string-name>
          :
          <article-title>A browser-independent presentation vocabulary for RDF</article-title>
          .
          <source>In The Semantic Web - ISWC</source>
          <year>2006</year>
          , I. Cruz,
          <string-name>
            <given-names>S.</given-names>
            <surname>Decker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Allemang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Preist</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Schwabe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Mika</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Uschold</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Aroyo</surname>
          </string-name>
          , Eds.,
          <source>no. 4273 in Lecture Notes in Computer Science</source>
          . Springer Berlin Heidelberg, Jan.
          <year>2006</year>
          , pp.
          <volume>158</volume>
          {
          <fpage>171</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Schlegel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wei</surname>
            <given-names>gerber</given-names>
          </string-name>
          , T.,
          <string-name>
            <surname>Stegmaier</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Granitzer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , and
          <string-name>
            <surname>Kosch</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Balloon Synopsis</surname>
          </string-name>
          :
          <article-title>A jQuery plugin to easily integrate the Semantic Web in a website</article-title>
          .
          <source>CEUR Workshop Proceedings 1268 (Oct</source>
          .
          <year>2014</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>