Uduvudu: a Graph-Aware and Adaptive UI Engine for Linked Data Michael Luggen Adrian Gschwend eXascale Infolab Division of Computer Science University of Fribourg Bern U. of Applied Sciences Fribourg—Switzerland Biel—Switzerland Bernhard Anrig Philippe Cudré-Mauroux Division of Computer Science eXascale Infolab Bern U. of Applied Sciences University of Fribourg Biel—Switzerland Fribourg—Switzerland ABSTRACT a UI is a singularly tedious task. We identify those two is- Creating good User Interfaces (UIs) to render Linked Data sues as important barriers precluding the broader adoption visually is a complex task, often involving both UI and of Linked Data formats in the industry. Note that we make Linked Data specialists. The resulting solutions are typi- a difference between Linked Data visualization—where the cally application-dependent and difficult to adapt or reuse goal is to build interfaces to easily navigate or summarize in a different context. To tackle this problem, we propose large quantities of data, and Linked Data rendering—where Uduvudu, a flexible, open-source engine to visualize Linked the goal is to select and individually render key values from Data. Our engine is built in JavaScript and runs in the the data. We specifically target the latter problem in this browser natively. Non-specialist users can use Uduvudu to work, and propose a framework to easily create Linked Data describe recurring subgraph patterns occurring in their data. UIs. They can then flexibly and automatically extract, transform, and visually render such patterns in multiple ways depend- Our framework, called Uduvudu, considerably speeds up the ing of the usage context. Uduvudu is intuitive, flexible, and development of Linked Data UIs by streamlining the data efficient and makes it possible to jump-start the development extraction, transformation, and rendering process through of complex user interfaces based on Linked Data without the an explicit workflow. It allows several types of experts in- need of data specialists. cluding data specialists, user interface experts, and graph- ical designers, to efficiently collaborate to produce the UI. Keywords Our framework is furthermore flexible, in the sense that it Templating, Visualization, User Interface, Development can render any valid RDF data irrespective of its schema or Process, Linked Data, RDF missing values, and produces reusable UIs and patterns that can be applied to different contexts and data. 1. INTRODUCTION We introduce a UI Creation process which enables teams Companies are progressively adopting Linked Data in their to share the work of building good user interfaces. To sup- internal IT ecosystems. As a result, they are increasingly in- port this process, we contribute an architecture dedicated to terested to leverage Linked Data to build better User Inter- Linked Data. By creating an intermediate tree representa- faces (UIs), both for their employees and for their customers. tion (Figure 5), extracted from the input graph (Figure 4) to Ideally, there should be as little information loss as possible build the resulting visualization (Figure 6), our architecture when exporting the Linked Data to the UI. Often, however, ensures the reuse of templates. Linked Data is transformed into less expressive data formats that are then rendered in a simplistic fashion in the inter- The rest of this paper is structured as follows. We start by face. The exported Linked Data typically looses some of reviewing related work in the fields of Linked Data visualiza- its structure, its semantics and/or some of its links. Ulti- tion and rendering in Section 2. Then, we give an overview mately, it becomes impossible to use the representation in of the UI creation process we designed for our framework in the interface to write data back into the graph. Also, hand- Section 3. We introduce our framework architecture and its ling arbitrary Linked Data in order to render it properly in components in Section 4. Finally, we discuss a series of uses- cases for which Uduvudu was successfully used in Section 6, before concluding in Section 7. 2. RELATED WORK There is a multitude of visualization approaches discussed in the scientific literature. Below, we provide an overview on the available frameworks focusing on the presentation layer Copyright is held by the author/owner(s). WWW2015 Workshop: Linked Data on the Web (LDOW2015). of Linked Data. We also discuss the well-known Fresnel framework and how it compares to Uduvudu. Uduvudu Callimachus Balloon Syn. Fresnel Exhibit LESS Level of Template Subgraph Application JS Selector Subgraph Subgraph Projection Description of T. underscore.js RDFa Templates Handlebars Fresnel Formats Exhibit Lenses Smarty Recursive Use of T. Y N N Y N N Context Awareness Y N N N N N Separation of Concerns Y N Y Y N Y Editor Y Y N N N Y Table 1: Comparison of frameworks on their template capabilities. Most of the related work focused so far on the exploration (with street, city, and country values) can for instance be and visualization of Linked Data. The focus of many sys- quite different from an address containing only the country tems is hence either on how to effectively explore large quan- or city name. Other researchers have also struggled with tities of Linked Data, or on how to compactly aggregate large this limitation of Fresnel [5]. data to visualize it. Less attention has been given to the case where a data publisher already knows exactly which parts Through a mechanism called lenses, users can define which of the data he/she wants to publish. properties have to be selected in an RDF graph. The user has to specify which lenses shall be used for which graph as Table 1 summarizes how Uduvudu’s template capabilities well as to indicate all the corresponding properties. From compare to existing systems. As the table indicates, Udu- our perspective, the selection of which information is to be vudu is, to the best of our knowledge, the only framework rendered should be part of the application logic instead, e.g., allowing the flexible description and recursive use of context- by providing a declarative representation (e.g., a SPARQL aware templates to visualize Linked Data (more on those query) of the targeted data upfront. topics in Section 4). In addition, Uduvudu imposes a strict separation of concerns (see Section 3) w.r.t. the data selec- The formatting step in Fresnel uses Formats to do simple tion, the matching of available templates and the rendering string manipulations and Cascading Style Sheets to describe based on the context. Finally, it features a full-fledged and the rendering. While this approach makes it possible to intuitive editor, presented in more detail in Section 5. create fairly complex renderings, it is also in our opinion intimidating for the designers, who most often do not have 2.1 Overview a deep understanding of the OWL syntax. Also, it is not Brunetti et al. [4] recently introduced the Formal Linked possible to inject or attach transformation code to create Data Visualization Model. The framework identifies a vi- complex renderings and visualizations. Finally, the output sual processing pipeline composed of three main components generation step of Fresnel is using the prepared information (Analyzer, Visualization Transform and Visualizer). The from the formatting step to render the visualization. Hence, last two steps of the architecture match our own approach it it not possible to change the representation based on the (their first step being out of scope for this work). Their context, which is a very important requirement in practice approach analyze Linked Data structures with the goal of and has been one of the original ideas behind the Semantic choosing the possible visualizations. Our implementation Web [3]. We think that the context of the presentation layer has been partly influenced by this approach, with the impor- should be incorporated into the framework itself, and that tant difference that the goal of Uduvudu is not necessary to is should support the developers in their task of creating aggregate data for visualization, but rather to create a flex- adaptive user interfaces. ible framework to render specific portions of Linked Data. Their paper also gives an extensive overview of the different 2.3 Template-Based Presentation visualization libraries used in the Linked Data context. In [7], Khalili et al. present an extensive overview of how user interfaces relate to ontologies. In this work, we do not 2.2 Fresnel focus on the creation, completion or interaction with ontolo- Fresnel [8] is a well-known approach in the field of RDF visu- gies. Instead, our focus lies on the rendering of Linked Data. alization and presentation. Fresnel was originally designed Furthermore, our framework does not even require a valid to create common styles for the description of classes in RDF ontology or schema to begin with. browsers. Because of this, it inherently assumes that an on- tology is present in the system in order to visualize the data. The use of templates for presentation of semantic data was Fresnel allows to specify in a detailed manner how to render introduced through Lens Templates in Exhibit [6]. They data value properties. Creating more elaborate visual rep- allow to create complex HTML structures that are familiar resentations is however often complex, since the framework to web designers. Because Exhibit uses a sub model of RDF never was intended for such jobs. which is defined as JSON structures, there was no need to tackle potentially cyclic graph structures. The templates We experienced further problems when working with Fres- in Exhibit are coupled to the application (defined in html), nel. First, ontologies typically do not provide a way to indi- which requires some interaction with the developer in order cate if an attribute might be optional. While this is expected to be reused. for RDF data processing, this poses problems at the presen- tation layer where it is crucial to know precisely which in- Templates used to render RDF data directly were introduced formation is available. The rendering of a complete address through LESS [1], which also partially removes the need of ontologies to create RDF visualizations. Based on a use-case In addition, the ability of Uduvudu to flexibly combine tem- defined through a SPARQL query, a template is mapped to plates to create bigger structures makes it possible to adapt render the output. The authors use an extended version of a the presentation according to the availability of data facts. Web template language (Smarty) to then render the results. In addition, they propose a repository of templates which 3. LINKED DATA UI CREATION PRO- can be reused. CESS Both frameworks allow to recursively include other tem- In order to tackle the challenges described above, we adapt a plates. Uduvudu enforces the possibility of creating fine- process workflow to streamline the creation of UIs for Linked grained templates at all levels, without requiring any on- Data. Our process is driven by three different actors: tology or schema beforehand. We think that the poten- tial reuse of these smaller templates is higher than coarser- grained mechanisms. The data expert is the person (or group) having knowl- edge on the Linked Data that needs to be rendered. Callimachus [2] provides a full-stack solution allowing The UX specialist is the user experience person (or to build complete applications. As a part of the stack, group) knowing how to best transform and restructure a template-based mechanism to create RDFa templates the data for the application at hand. is introduced. These templates are highly-coupled to the applications at hand. This differs to Uduvudu The graphical designer, finally, is the person (or group) where templates are matched to the data at hand while specialized in creating effective visual renderings of Callimachus fetches the necessary data to fill a template data structures. (through creating a SPARQL request). Balloon Synopsis [9] is an RDF Browser framework where Those three roles might be assumed by the same person templates are coupled with JavaScript functions to discover in small settings, but will typically be assumed by distinct matching data structures. In Uduvudu, the matching part is persons in larger companies. Our UI creation process is decoupled from the templates. Furthermore, no knowledge given in Figure 1. The overall process can be summarized of any programming language is required when matching as follows: 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. • First, the data expert gathers and exports the data that needs to be rendered. Our framework extends the aforementioned approaches in several ways, most prominently by the automatic selection • The selected data is then passed to the UX specialist, of the templates based on the input data, by the creation who restructures it for rendering purposes. of a more flexible rendering process, and by templates that • Finally, the graphical designer takes the various data can match incomplete data. structures built by the UX designer and builds the vi- sual rendering of the data. Data Expert UX Specialist Designer User Asks for needed data fields. SPARQL Assembles graph Graph File App. Logic G Zero-input fallback Creates matchers M1 F Designs Templates T1 S Missing information detected. Iterative development Figure 1: The UI creation process is split in multiple roles. The Linked Data UI creation process we propose has a num- ber of distinct advantages, including: SPARQL Graph File App. Logic Clear separation of roles: involving the data expert—or the other specialists—throughout the entire process G: RDF Graph representing can be very costly in practice [4]. Instead, our pro- User Interface Screen cess introduces a clear separation between the tasks R: Set of Start Resource URIs undertaken by the different specialists, resulting in a ? ? better repartition of work and in increased autonomy ? Definitions for the experts. Matcher M1: ? ? Iterative development process: new elements can be ? ? added to each task without blocking the other tasks. F: Ordered Forest of Structures That way, the experts can iterate on their own design with references to Template Sets autonomously without consulting the other experts. ? ?
?-?
Context
data, or application flexibly. S: String of Serialized Output
Desktop
Zero-input fallback: any valid Linked Data provided by Mobile, Français
Device
the data specialist can be rendered without any ad- Desktop, User22, Deutsch
ditional processing from the UX specialist or from the
graphical designer (in that case, the data is simply ren-
dered as lists of strings displayed at the bottom of the
rendering). Language
4. ARCHITECTURE User
The architecture we adopted for our framework was directly
based on the creation pipeline described above, as well as Figure 2: Overview of the Uduvudu architecture with the
on a series of prerequisites we elicited from data experts, main components Matcher and Renderer.
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 in- Handle language transparently, until needed specifical-
put, and the renderer which incorporates the visualization ly: specific languages add a level of complexity to every
context to render. Figure 2 gives an overview of our ar- application. Hence, we feel that for our process, if lit-
chitecture. We start below by introducing the prerequisites erals are available in multiple languages, only the one
of our architecture, before giving some detail on each of its matching the context language should be presented,
three main components. while still keeping the possibility to fine-tune and con-
trol the language if necessary depending on the appli-
4.1 Pre-requisites cation at hand (e.g., showing multiple languages).
Through our own experience and interviews with Linked Maximize the dynamic composition of information:
Data specialists, UX experts and graphical designers, we our goal is not to come up with highly-complex
came up with a set of pre-requisites for our architectures: renderings composed of thousands of distinct
elements. Rather, we target usual business interfaces
composed of a few dozens elements at a time
Never show URIs to non-technical end-users: They are maximum. Hence, our goal is not to come up with
systematically confused when confronted to data URIs a highly-optimized and scalable rendering engine
displayed in a graphical interface. While data URIs but rather to propose a dynamic composition model
are essential to uniquely identify entities and proper- where Linked Data and templates can by dynamically
ties on the Web of data, they should not be used in recycled and integrated in order to create the final
mundane graphical interfaces where plain literals and rendering.
labels should be preferred.
Leverage the extracted data structure for the render-
ing: the way data is extracted from the original data
typically follows long deliberations and some decision 4.2 The Data Selector
process. We think that the resulting structures should We now turn to the description of the three main compo-
be leveraged as much as possible for the creation of the nents of our architecture. First, we start with the Data
final user interface. Selector, which decides which data that will be transformed
and rendered. Based on the use-case at hand, one needs to The matcher takes as input an input graph G and one or
select and combine the relevant Linked Data from one or several corresponding known structures from its catalogue
several sources. The decision on which part to select from and returns as output a tree structure (see Algorithm 1)
the available data sources is typically an internal process, with at least one pointer to a rendering structure from the
which is outside the scope of the present paper. Renderer (see below Section 4.4). The output is split into
a set of multiple tree-structured sub-graphs with additional
Any selector which supports classical Linked Data input, information about the template and a precedence number.
e.g., through a SPARQL query, an RDF/XML dump or All input data is eventually consumed through this process.
triples serialized in one or several text files can be used.
Uduvudu does not expect any inherent structure from the At this step, we like to mention that a pointer pointing back
data (though it must be well-formed), which does not need to the input graph is attached to the tree for every literal.
to comply to any specific ontology or structure at this stage. This makes it possible to provide a simple form of data lin-
Hence, the selector takes as input a superset of all informa- eage, as well as to create applications which can write back
tions that need to be shown to the end-user, and trim them to the input graph.
to an input graph G containing exactly the information that
needs to be rendered. This step is typically carried out by a During this process, all information is treated equally except
data specialist. Figure 3 gives a simple example input graph identical properties available in multiple languages. To pro-
corresponding to Figure 4. vide language information in a transparent manner, the lit-
erals which are provided in multiple languages are grouped
@base A conduit for providing air flow ©
maintained in Switzerland, sits on a small rocky hill above the valley of the Sarine. BOSCH GMBH ROBERT (6) from an air conditioning housing (44) to a motor (28) http://creativecommons.org/publicdomain/zero/1.0/
mapping the information structure about a city. There are ROBERT BOSCH GMBH (6)
for driving a climate control system air blower (26) is
disclosed. The blower (26) is located in the air An electromagnet includes a plate-like yoke,
conditioning housing (44). The air conditioning motor shaped like L, with a curved surface portion,
fourNeighboring
generic templates used to generate the figure:
municipalities Categories
SIEMENS, GERHARD (9)
SIEMENS GERHARD (7)
(28) includes a motor …
a rectangular iron core connected to said
yoke and wound by a coil, an armature
Labels:
rotatably and pivotally supported by one end
Facet types Add label
Düdingen 1157 establishments Document (45) B2Document (3)
of said yoke, said armature being driven by
said coil and coupling device for coupling
Givisiez Canton of Fribourg A1Document (676) A2Document (309) said yoke with said iron core by spin press-
POURING DEVICE fitting.
Picture with Title and Abstract: The first template
Granges-Paccot Cantonal capitals of A3Document (276)
PatentPublication (1845)
A4Document (105)
Entity (1845)
DISPOSITIF VERSEUR POURING DEVICE
AUSGIESSVORRICHTUNG
kindCode:
Marly, Fribourg Switzerland A3
extracts the picture and the labels of the entity, and
Pierrafortscha Cities in Switzerland
B1Document (470) Labels:
Add label
identifier:
GrantedPatent (478) EP-1009008-A3
creates a rendering with both elements integrated
St. Ursen Cultural property of national issued:
Tafers significance in the canton of
(with the title overlapping the picture). Furthermore, Electromagnetic relay
2013-07-11T10:45:55Z
countryOfFiling:
Villars-sur-Glâne Fribourg An electromagnet includes a
plate-like yoke, shaped like L, with a curved surface
portion, a rectangular iron core connected to said dateOfPublication:
yoke and wound by a coil, an armature rotatably and 2001-05-02
the picture. Imperial free cities pivotally supported by one end of said yoke, said
armature being driven by said … publicationNumber:
Municipalities of the canton of Labels:
1009008
Fribourg generatedAtTime:
Selected Facts: Elevation, Area and the Website of the University towns
Add label
selected city are put together in a small facts box. Each
ofWikipedia
the facts could also be rendered independently. This Figure 14: Fusepool dashboard where Uduvudu is used in
ID: 164065
means that the maximum of all available elements are the right-hand panel.
Revision: 602735683
Show remaining literals
Show remaining links
beer. This particular selection is then shown using Udu- sense, where the implementation is built on data flow archi-
vudu. In the example shown in Figure 14, the title, ab- tectures. Reactivity can be directly achieved in our frame-
stract, and license properties have a matcher and template work by re-submitting the input graph to Uduvudu on every
provided. The rest of the data properties are still presented change. Using networked-clients and the ability of Uduvudu
in a generic way. If new data types are added to Fusepool, to propagate changes made through the visual rendering of
one just needs to provide specific matchers and templates the data directly back to the data itself, one could build
to make sure Fusepool can then render the new data in a exciting new applications leveraging reactivity, where the
useful way. Besides providing the matcher and template, graph representation on the client-side propagates updates
no interaction with a programmer who is familiar with the to the data server, which in turn automatically updates all
Fusepool code base is necessary. Both the matcher and the other user interfaces.
template can be stored in RDF as well as in the Fusepool
graph store. 8. ACKNOWLEDGMENTS
We thank the teams in Fribourg and Biel for many fruitful
7. CONCLUSIONS discussions; special mentions go to Bart van Leeuwen, Pascal
In this paper, we presented Uduvudu, a graph-aware, flex- Mainini and Thomas Bergwinkl for their contributions to the
ible and user-friendly UI Engine for Linked Data. Based architecture and development of Uduvudu. Uduvudu was
on user input, Uduvudu captures and transforms inherent partly funded by the EU Framework Program for Innovation
features of graph-structured data, which are then leveraged under grant 296192.
in the data-driven UI renderings. We described the uniquer
features of our system, its architecture, and two of its recent 9. REFERENCES
deployments. By offering multiple ways of defining exten- [1] Auer, S., Doehring, R., and Dietzold, S. LESS -
sions based on a few basic templates, our solution is kept template-based syndication and presentation of linked
both user-friendly and generic enough to solve a wide vari- data. In The Semantic Web: Research and
ety of use-cases when rendering Linked Data. As the match- Applications, L. Aroyo, G. Antoniou, E. Hyvönen, A. t.
ers and their accompanying template definitions are tailored Teije, H. Stuckenschmidt, L. Cabral, and T. Tudorache,
to data structures and not to a particular UI use-case, the Eds., no. 6089 in Lecture Notes in Computer Science.
probability of reusing parts of the rendering definitions can Springer Berlin Heidelberg, Jan. 2010, pp. 211–224.
be increased. [2] Battle, S., Wood, D., Leigh, J., and Ruth, L. The
Callimachus Project: RDFa as a Web Template
Furthermore, our architecture takes into account the fact Language. In COLD (2012).
that such rendering projects often involve multiple parties. [3] Berners-Lee, T., Hendler, J., and Lassila, O. The
The clear separation of tasks during the UI creation process semantic web. Scientific american 284, 5 (2001), 28–37.
and the possibility to work on the sub-tasks independently [4] Brunetti, J. M., Auer, S., Garcı́a, R., Klı́mek, J.,
allows more agile workflows. and Nečaský, M. Formal linked data visualization
model. In Proceedings of International Conference on
One of the main features of the architecture we propose is the Information Integration and Web-based Applications &
ability to easily create context-aware renderings. Inherent Services (New York, NY, USA, 2013), IIWAS ’13,
support is given in order to optimize UIs for different devices, ACM, p. 309:309–309:318.
users, or languages. This functionality is mostly transparent [5] Hannes Gassert, and Andreas Harth. From graph
to the developers and can also be leveraged after a context- to GUI: displaying RDF data from the web with arago.
insensitive solution is provided. Tech. rep., Digital Enterprise Research Institute, 2005.
[6] Huynh, D. F., Karger, D. R., and Miller, R. C.
We provide an open-source implementation of our architec-
Exhibit: Lightweight structured data publishing. In
ture as a complete framework on http://www.uduvudu.org/.
Proceedings of the 16th International Conference on
The resulting system runs in a browser directly. For further
World Wide Web (New York, NY, USA, 2007), WWW
implementation details, please refer to the provided website.
’07, ACM, p. 737–746.
We discussed two applications leveraging our implementa-
tion. The DBpedia front-end shows how our framework can [7] Khalili, A., and Auer, S. User interfaces for
be used to provide all kinds of rendering modalities. This semantic authoring of textual content: A systematic
was done either by leveraging the templates themselves or literature review. Web Semantics: Science, Services and
by injecting rendering libraries through the template system. Agents on the World Wide Web 22 (Oct. 2013), 1–18.
In the context of the Fusepool application, our system was [8] Pietriga, E., Bizer, C., Karger, D., and Lee, R.
used to create the rendering of various heterogeneous pieces Fresnel: A browser-independent presentation
of data. The main requirement for this application was the vocabulary for RDF. In The Semantic Web - ISWC
ability to adapt the presentation layer without extending the 2006, I. Cruz, S. Decker, D. Allemang, C. Preist,
application code. D. Schwabe, P. Mika, M. Uschold, and L. M. Aroyo,
Eds., no. 4273 in Lecture Notes in Computer Science.
Finally, we note that for certain applications it might be Springer Berlin Heidelberg, Jan. 2006, pp. 158–171.
necessary to dynamically update the user interface based on [9] Schlegel, K., Weißgerber, T., Stegmaier, F.,
changes made to the underlying Linked Data itself. This Granitzer, M., and Kosch, H. Balloon Synopsis: A
dynamic update of the presentation layer can be realized jQuery plugin to easily integrate the Semantic Web in a
on top of the pipeline approach of Uduvudu. We can ap- website. CEUR Workshop Proceedings 1268 (Oct.
ply the paradigm known as reactive programming in that 2014).
Our framework also supports a simple yet intuitive and pow-
<%-address.location_link.0.location.street-address.u%>
erful editor. As it is possible to render an output at any
<%-address.location_link.0.location.city.locality.u%> time, the editor is simply based on the results incorporating
<%-address.location_link.0.location.city.postal-code.u%> the available templates. Matchers and their corresponding
<%print(address.location_link.0.location.
templates can be added iteratively to create templates for
city.country-name.u.toUpperCase())%>
bigger structures.
<%-title.u%>
Freiburg or Freiburg im Üechtland, Swiss German pronunciation: [ˈfrib̥ʊrɡ]; Italian: Friburgo or
able. The output device and language are usually the most Friborgo) is the capital of the Swiss canton of Fribourg and the district of Sarine. It is located on
both sides of the river Saane/Sarine, on the Swiss plateau, and is an important economic,
<%=head.label.u%>
<%=template(head.abstract)%>
definition. Thus, by adding new templates for new kinds of французски, 22 % — по-немецки, 5 % — по-итальянски. При населении в 37 200 человек
comment:
(2007) свыше 10 000 — студенты здешнего университета.Святые покровители города —
Friburgo
i e +