Michael Luggen, Adrian Gschwend, Bernhard Anrig, Philippe Cudré-Maurox, Firenze 2015 Uduvudu a Graph-Aware and Adaptive UI Engine for Linked Data
Aug 05, 2015
Michael Luggen, Adrian Gschwend, Bernhard Anrig, Philippe Cudré-Maurox, Firenze 2015
Uduvudu a Graph-Aware and Adaptive UI Engine for Linked Data
Visualisation as a Tool
Sure, Leonardo da Vinci was an exceptional creator of all kind of visualisations.
But much more he was able to use his visualisations with an amazing ingenuity as a tool to transmit knowledge to his fellows — tell stories still read today.
6
Uduvudu a Graph-Aware and Adaptive UI Engine for Linked Data
Uduvudu exploits the semantic and structured nature of Linked Data to generate the best possible representation for a human based on a catalog of available Matchers and Templates. !Matchers and Templates are designed that they can be build through an intuitive editor interface.
8
Why another Framework?a.k.a. Motivation
We found ourselves reinventing the wheel while using Linked Data in the Presentation Layer.
There are tons of great tools creating amazing visualisations on top of Linked Data.
But to tell a story we needed to write use case specific code over and over.
9
DifferentiationUduvudu is NOT a visualisation toolkit, it can not draw graphs (e.g. bar charts) neither maps.
Uduvudu is NOT a Linked Data Explorer, or Browser. (Though you can build excellent ones with it.)
Uduvudu is NOT a Linked Data selector, gatherer or enhancer.
10
Requirements I
Maximize the reusability of templates by design.
A template, thus a designer, has a defined set of facts to consume.
Clear separation of concerns for all involved parties.
11
Requirements II
Make use of the inherent semantic structure (ontologies) and keep the structure intact.
Handle language transparently, but provide access to all available languages.
Render on flexible context aware templates.
12
Demo
UDUVUDU - DBpedia Viewer
http://dbpedia.exascale.info
LOD events eXplorer
http://explorer.nexacenter.org
13
System OverviewA separate application logic prepares the data which shall be shown to the user. The data is provided as a RDF Graph to Uduvudu with a start resource.
In a first step the graph and the matchers are combined to cover the maximum by abstract templates.
In a second step a template is chosen, taking into account the user context (device, language, use case) to render the data.
14
SPARQLGraph FileApp. Logic
Matcher
Renderer
Device
Tem
plat
es
Cont
ext
Deni
tions
User
Language
Basic Types of MatchersPredicate Matcher Simple matching by predicates with the resource either in subject or object position.
Combine MatcherCombines multiple matchers, also Combine Matchers itself, which creates hierarchical matchers.
Link Matcher Follows a predicate to another URI.
16
The architecture allows to plug-in additional matchers.
555555555555
http://example.com/me/corkyhttp://example.com/me/corkyhttp://example.com/me/corky
http://example.com/me/corky#telephonehttp://example.com/me/corky#telephonehttp://example.com/me/corky#telephone
http://example.com/me/corky#addresshttp://example.com/me/corky#addresshttp://example.com/me/corky#address
mailto:[email protected]:[email protected]:[email protected]
AustraliaAustraliaAustralia
WonderCityWonderCityWonderCity
111 Lake Drive111 Lake Drive111 Lake Drive
tel:+61755555555tel:+61755555555tel:+61755555555
Corky CrystalCorky CrystalCorky Crystal
CorksCorksCorks
vcard:hasTel
ephone
vcard:hasAddress
vcard:hasEmail
vcard:country-name
vcard:locality
vcard:postal-codevca
rd:street
-address
vcard:hasValue
vcard:fn
vcard:nickname
addressaddressaddress
location_linklocation_linklocation_link
akaakaakavcard:fnvcard:fnvcard:fn
vcard:nicknamevcard:nicknamevcard:nickname
locationlocationlocation
citycitycity
vcard:street-addressvcard:street-addressvcard:street-address
vcard:localityvcard:localityvcard:locality
vcard:postal-codevcard:postal-codevcard:postal-code
vcard:country-namevcard:country-namevcard:country-name
vcard:hasAddressPredicate MatcherCombine MatcherLink Matcher
Matcher AlgorithmIf a start resource is provided. Beginning from a given start resource we follow the available matchers and chose the sub-graph which covers the most triples.
Else we explore all resources,and add the biggest found sub-graph to a set, remove the covered triples from the input graph and start over until all triples are covered.
18
Matcher<#depiction> a uv:PredicateMatcher ; uv:matcherName "fullname" ; uv:predicate vcard:fn ; uv:abstractTemplate uvsat:text . !<#combine_aka> a uv:CombineMatcher ; uv:combineIds "fullname", "nickname" ; uv:matcherName "aka" ; uv:abstractTemplate uvsat:aka . !<#combine_address> a uv:CombineMatcher ; uv:combineIds "aka", "location_link" ; uv:matcherName "address" ; uv:abstractTemplate uvsat:address .
19
SPARQLGraph FileApp. Logic
Matcher
Renderer
Device
Tem
plat
es
Cont
ext
Deni
tions
User
Language
addressaddressaddress
location_linklocation_linklocation_link
akaakaakavcard:fnvcard:fnvcard:fn
vcard:nicknamevcard:nicknamevcard:nickname
locationlocationlocation
citycitycity
vcard:street-addressvcard:street-addressvcard:street-address
vcard:localityvcard:localityvcard:locality
vcard:postal-codevcard:postal-codevcard:postal-code
vcard:country-namevcard:country-namevcard:country-name
vcard:hasAddress
Template I
uvsb:address a uv:Template ; uv:abstractTemplate uvsat:address ; uv:device 'desktop' ; uv:template '…'.
21
Template II<div> <span class="glyphicon glyphicon-‐envelope" style="font-‐size:48px; float:left; margin: 0 15px 0 10px;"> </span> <div> <b><%-‐address.aka.fn.u%></b> [aka <%-‐address.aka.nickname.u%>]<br> <% template(address.location_link.0.location) %> <% print(address.location_link.0.location. city.country-‐name.u.toUpperCase()) %> </div> </div>
22
����������� ���� ������ ��� �� ��������� �� ���� ��������
�
Template: Variables
23
Usage Description Example
Delimiters<%- %> Output variable HTML-escaped. <%- label.u %>
<%= %> Output variable non-escaped. <%= html_desc.u %>
<% %> Execute JavaScript: Use print() for output. <% print(label.u.toUpperCase()) %>
Variableslabel.u Literal in context language. <%- label.u %>
label.l.en Literal in specific language (lang tag). <%- label.u.ja %>
city.label.u Literal deeper in matched structure. <%- city.label.u %>
template(city.label) Rendered template for sub element. <%- template(city.label) %>
Table 2: Overview of the most important template commands available.
plates. This is shown in Figure 10, where the rdf:label getscombined with a pre-existing rdf:abstract template to forma new head template.
In the staged example, the template of the abstract is reused(<%-template(head.abstract)%>), while the variable of therdf:label is accessed directly (<%-head.label.u%>).
A more advanced editor allows users to define multiple tem-plates for di↵erent contexts like di↵erent devices or lan-guages. The matchers and templates created in the editorcan be persisted in a public or private triple store. It is alsopossible to mix-in multiple matchers and template sources,which allows distinct users to create or adapt the templatesto their own needs.
6. CURRENT DEPLOYMENTSWe now turn to the description of two current deploymentsof our system. We start below by describing how we usedUduvudu to build a user-friendly DBpedia front-end. Then,we review how we used it in the context of a large-scaleproject to render heterogeneous pieces of RDF data.
6.1 DBpedia FrontendAs a proof of concept, we used our framework to build a user-friendly DBpedia front-end. A live deployment of our front-end is available at http://dbpedia.exascale.info. Thefront-end takes as input an address describing a Wikipediaarticle. Typically, the rendering of DBpedia articles are opti-mized for engineers who need to explore the available data.In Figure 12, we provide as an example a rather techni-cal rendering of all information about the City of Fribourg.WikiData provides a similar interface for their graph struc-ture (see Figure 11).
Both interfaces are optimized for the exploration or mainte-nance of the underlying data itself.
The result obtained using our framework is shown in Figure13. The main two di↵erences with the other visualizationsare i) the more user-friendly (and less technical) renderingand ii) the reuse of the rendering definitions (matcher andtemplates) for other datasets.
This use-case deployment shows how rendering informationabout a complex instance, like the city of Fribourg, can bemade in an expressive and yet inexpensive process. For this
In other languages Statements Wikipedia pages linked to this item Wikiquote pages linked to this item
Wikisource pages linked to this item Wikivoyage pages linked to this item Wikimedia Commons page linked to this item
In other languages
Deutsch
Freiburg im Üechtland [ edit ]
Schweizer Stadt und Hauptort des Kantons Freiburg [ edit ]
français
Fribourg [ edit ]
ville de Suisse et chef-lieu du canton de Fribourg [ edit ]
Alemannisch
Frybùrg im Üechtland [ edit ]
enter description in Alemannisch [ save | cancel ]
Fribourg (Q36378) [ edit ]
capital of the canton of Fribourg in Switzerland [ edit ]
FreiburgAlso known as: [ edit ]
Statements
[ add reference ]
0 references
Portal:Fribourg [ edit ]
[ add ]
[ add reference ]
0 references
Switzerland [ edit ]
[ add ]
[ add reference ]
0 references
municipality of Switzerland [ edit ]
[ add reference ]
0 references
capital [ edit ]
[ add reference ]
0 references
cantonal capital of Switzerland [ edit ]
1 reference
college town [ edit ]
[ add ]
[ add reference ]
0 references
municipality of Switzerland [ edit ]
Item Discussion Read View history Search
Main page
Community portal
Project chat
Create a new item
Item by title
Recent changes
Random item
Help
Donate
Language select
EnglishSelect
Tools
What links here
Related changes
Special pages
Printable version
Permanent link
Page information
Cite this page
topic's main portal
country
instance of
type of administrative entity
English Create account Log in
Figure 11: Wikidata interface regarding Fribourg.(fetched from https://www.wikidata.org/wiki/Q36378)
About: FribourgAn Entity of Type : municipality, from Named Graph : http://dbpedia.org, within Data Space : dbpedia.org
Fribourg 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 animportant economic, administrative and educational center on the cultural border between German and French Switzerland. Its Old City, one of the best maintained inSwitzerland, sits on a small rocky hill above the valley of the Sarine.
Property Valuedbpedia-owl:PopulatedPlace/areaTotal 9.32dbpedia-owl:abstract Fribourg 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, administrative and educational center on the culturalborder between German and French Switzerland. Its Old City, one of the best maintained in Switzerland, sits on a small rockyhill above the valley of the Sarine.Freiburg ist eine Schweizer Stadt und Hauptort des Saanebezirks sowie des Kantons Freiburg. Zur Unterscheidung vonFreiburg im Breisgau wird gelegentlich der Zusatz im Üechtland oder im Üchtland (kurz i. Ü. ) verwendet. Freiburg, beidseitsder Saane im Schweizer Mittelland gelegen, ist ein wichtiges Wirtschafts-, Verwaltungs- und Bildungszentrum mitzweisprachiger Universität an der Kulturgrenze zwischen deutscher und französischer Schweiz. Sie besitzt eine der ambesten erhaltenen und grössten zusammenhängenden historischen Altstädte der Schweiz auf einem schmalen Felssporn überdem Tal der Saane.Fribourg est une ville et une commune suisse du canton de Fribourg, sur la Sarine. C'est la capitale du canton de Fribourg etle chef-lieu du district de la Sarine. Fribourg est une ville bilingue, avec un cinquième de la population germanophone. Elle estsituée de chaque côté de la Sarine sur le plateau suisse à la frontière culturelle entre la Suisse alémanique et romande. Elleest un important centre économique, administratif et éducatif et comprend une Université. Elle est placée sous le patronagede saint Nicolas de Myre, de sainte Barbe et de sainte Catherine d'Alexandrie. Fribourg fait partie du périmètre de l'AGGLOFribourg - Freiburg.
dbpedia-owl:areaTotal 9320000.000000 (xsd:double)dbpedia-owl:canton dbpedia:Canton_of_Fribourgdbpedia-owl:country dbpedia:Switzerlanddbpedia-owl:district dbpedia:Sarine_Districtdbpedia-owl:elevation 610.000000 (xsd:double)dbpedia-owl:maximumElevation 702.000000 (xsd:double)dbpedia-owl:municipalityCode 2196dbpedia-owl:neighboringMunicipality dbpedia:Granges-Paccot
dbpedia:Pierrafortschadbpedia:St._Ursendbpedia:Givisiezdbpedia:Marly,_Fribourgdbpedia:Düdingendbpedia:Villars-sur-Glânedbpedia:Tafers
dbpedia-owl:postalCode 1700dbpedia-owl:thumbnail http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Panorama_Fribourg_107.JPG/200px-Panorama_Fribourg_107.JPGdbpedia-owl:twinCity dbpedia:Rueil-Malmaisondbpedia-owl:wikiPageExternalLink http://www.villastjean.com
http://www.markstravelnotes.com/europe/switzerland/canton_fribourg/fribourg/places_of_interest/cathedral_of_saint_nicholas/http://www.ville-fribourg.chhttp://www.fotogalerien.ch/index.php?gallery=180&lang=2
dbpedia-owl:wikiPageID 164065 (xsd:integer)dbpedia-owl:wikiPageInLinkCount 701 (xsd:integer)dbpedia-owl:wikiPageOutLinkCount 240 (xsd:integer)dbpedia-owl:wikiPageRevisionID 543927868 (xsd:integer)dbpprop:aprHighC 13.600000 (xsd:double)dbpprop:aprHumidity 72.500000 (xsd:double)dbpprop:aprLowC 2.900000 (xsd:double)
dbpprop:aprMeanC 8 (xsd:integer)dbpprop:aprPrecipitationDays 10.700000 (xsd:double)dbpprop:aprPrecipitationMm 84 (xsd:integer)dbpprop:aprSnowCm 2.400000 (xsd:double)
dbpprop:aprSnowDays 0.900000 (xsd:double)dbpprop:area 9.320000 (xsd:double)dbpprop:augHighC 24.100000 (xsd:double)dbpprop:augHumidity 72.400000 (xsd:double)dbpprop:augLowC 12.300000 (xsd:double)dbpprop:augMeanC 17.700000 (xsd:double)dbpprop:augPrecipitationDays 10.500000 (xsd:double)dbpprop:augPrecipitationMm 117 (xsd:integer)dbpprop:augSnowCm 0 (xsd:integer)dbpprop:augSnowDays 0 (xsd:integer)dbpprop:canton Fribourgdbpprop:date August 2010dbpprop:decHighC 4.300000 (xsd:double)dbpprop:decHumidity 86.900000 (xsd:double)dbpprop:decLowC -1.900000 (xsd:double)dbpprop:decMeanC 0.900000 (xsd:double)dbpprop:decPrecipitationDays 10.300000 (xsd:double)dbpprop:decPrecipitationMm 72 (xsd:integer)dbpprop:decSnowCm 12.800000 (xsd:double)dbpprop:decSnowDays 3.100000 (xsd:double)dbpprop:district dbpedia:Sarine_Districtdbpprop:elevation 610 (xsd:integer)dbpprop:febHighC 5.400000 (xsd:double)
Figure 12: DBpedia interface regarding Fribourg.(fetched from http://dbpedia.org/page/Fribourg)
rendering, we prepared a set of matchers and templates inthe context of cities, or populated places in general. Thetemplates provided show di↵erent kinds of renderings andvisualizations. Let us discuss the di↵erent template typesbuilt based on our generic architecture shown in Figure 13.
Related Work
24
Uduvudu Callimachus Balloon Syn. Fresnel Exhibit LESS
Level of Template Subgraph Application JS Selector Subgraph Subgraph ProjectionDescription of Template under-
score.jsRDFa
Templates
Handlebar Fresnel Formats
Exhibit Lenses Smarty
Recursive Use of Template Y N N Y N NContext Awareness Y N N N N NSeparation of Concerns Y N Y Y N YEditor Y Y N N N Y
Future WorkOptimize implementation for more speed and introduce reactivity.
Create a sort of “baked” templates which are optimized for a data source.
Automatic or semi-automatic generation of templates.
Extension of the editor for more functionality.
Build a user platform where styles can be shared.
25
–Leonardo da Vinci“Art is never finished, only abandoned.”
fin
www.uduvudu.org
reusability, defined set of facts, separation of
concerns, use of inherent structure, language,
context aware templates
WebComponents http://www.w3.org/TR/components-intro/
Uduvudu will be provided as a WebComponent: <uduvudu styles=“http://..”>
…triples…
</uduvudu>
!
Uduvudu can use WebComponents inside its Templates.
27
About: FribourgAn Entity of Type : municipality, from Named Graph : http://dbpedia.org, within Data Space : dbpedia.org
Fribourg 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 animportant economic, administrative and educational center on the cultural border between German and French Switzerland. Its Old City, one of the best maintained inSwitzerland, sits on a small rocky hill above the valley of the Sarine.
Property Valuedbpedia-owl:PopulatedPlace/areaTotal 9.32dbpedia-owl:abstract Fribourg 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, administrative and educational center on the culturalborder between German and French Switzerland. Its Old City, one of the best maintained in Switzerland, sits on a small rockyhill above the valley of the Sarine.Freiburg ist eine Schweizer Stadt und Hauptort des Saanebezirks sowie des Kantons Freiburg. Zur Unterscheidung vonFreiburg im Breisgau wird gelegentlich der Zusatz im Üechtland oder im Üchtland (kurz i. Ü. ) verwendet. Freiburg, beidseitsder Saane im Schweizer Mittelland gelegen, ist ein wichtiges Wirtschafts-, Verwaltungs- und Bildungszentrum mitzweisprachiger Universität an der Kulturgrenze zwischen deutscher und französischer Schweiz. Sie besitzt eine der ambesten erhaltenen und grössten zusammenhängenden historischen Altstädte der Schweiz auf einem schmalen Felssporn überdem Tal der Saane.Fribourg est une ville et une commune suisse du canton de Fribourg, sur la Sarine. C'est la capitale du canton de Fribourg etle chef-lieu du district de la Sarine. Fribourg est une ville bilingue, avec un cinquième de la population germanophone. Elle estsituée de chaque côté de la Sarine sur le plateau suisse à la frontière culturelle entre la Suisse alémanique et romande. Elleest un important centre économique, administratif et éducatif et comprend une Université. Elle est placée sous le patronagede saint Nicolas de Myre, de sainte Barbe et de sainte Catherine d'Alexandrie. Fribourg fait partie du périmètre de l'AGGLOFribourg - Freiburg.
dbpedia-owl:areaTotal 9320000.000000 (xsd:double)dbpedia-owl:canton dbpedia:Canton_of_Fribourgdbpedia-owl:country dbpedia:Switzerlanddbpedia-owl:district dbpedia:Sarine_Districtdbpedia-owl:elevation 610.000000 (xsd:double)dbpedia-owl:maximumElevation 702.000000 (xsd:double)dbpedia-owl:municipalityCode 2196dbpedia-owl:neighboringMunicipality dbpedia:Granges-Paccot
dbpedia:Pierrafortschadbpedia:St._Ursendbpedia:Givisiezdbpedia:Marly,_Fribourgdbpedia:Düdingendbpedia:Villars-sur-Glânedbpedia:Tafers
dbpedia-owl:postalCode 1700dbpedia-owl:thumbnail http://upload.wikimedia.org/wikipedia/commons/thumb/d/d7/Panorama_Fribourg_107.JPG/200px-Panorama_Fribourg_107.JPGdbpedia-owl:twinCity dbpedia:Rueil-Malmaisondbpedia-owl:wikiPageExternalLink http://www.villastjean.com
http://www.markstravelnotes.com/europe/switzerland/canton_fribourg/fribourg/places_of_interest/cathedral_of_saint_nicholas/http://www.ville-fribourg.chhttp://www.fotogalerien.ch/index.php?gallery=180&lang=2
dbpedia-owl:wikiPageID 164065 (xsd:integer)dbpedia-owl:wikiPageInLinkCount 701 (xsd:integer)dbpedia-owl:wikiPageOutLinkCount 240 (xsd:integer)dbpedia-owl:wikiPageRevisionID 543927868 (xsd:integer)dbpprop:aprHighC 13.600000 (xsd:double)dbpprop:aprHumidity 72.500000 (xsd:double)dbpprop:aprLowC 2.900000 (xsd:double)
dbpprop:aprMeanC 8 (xsd:integer)dbpprop:aprPrecipitationDays 10.700000 (xsd:double)dbpprop:aprPrecipitationMm 84 (xsd:integer)dbpprop:aprSnowCm 2.400000 (xsd:double)
dbpprop:aprSnowDays 0.900000 (xsd:double)dbpprop:area 9.320000 (xsd:double)dbpprop:augHighC 24.100000 (xsd:double)dbpprop:augHumidity 72.400000 (xsd:double)dbpprop:augLowC 12.300000 (xsd:double)dbpprop:augMeanC 17.700000 (xsd:double)dbpprop:augPrecipitationDays 10.500000 (xsd:double)dbpprop:augPrecipitationMm 117 (xsd:integer)dbpprop:augSnowCm 0 (xsd:integer)dbpprop:augSnowDays 0 (xsd:integer)dbpprop:canton Fribourgdbpprop:date August 2010dbpprop:decHighC 4.300000 (xsd:double)dbpprop:decHumidity 86.900000 (xsd:double)dbpprop:decLowC -1.900000 (xsd:double)dbpprop:decMeanC 0.900000 (xsd:double)dbpprop:decPrecipitationDays 10.300000 (xsd:double)dbpprop:decPrecipitationMm 72 (xsd:integer)dbpprop:decSnowCm 12.800000 (xsd:double)dbpprop:decSnowDays 3.100000 (xsd:double)dbpprop:district dbpedia:Sarine_Districtdbpprop:elevation 610 (xsd:integer)dbpprop:febHighC 5.400000 (xsd:double)
FribourgFribourg (French pronunciation: [fʁibuʁ]; Arpitan:Fribôrg/Friboua, IPA: [fʁibwa] ; German: Freiburgor Freiburg im Üechtland, Swiss Germanpronunciation: [ˈfrib̥ʊrɡ]; Italian: Friburgo orFriborgo) is the capital of the Swiss canton ofFribourg 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, administrative and educationalcenter on the cultural border between German and French Switzerland (Romandy).
www.ville-fribourg.ch Elevation: 610.0 m
Area: 9.32 km
Temperatures per Month
Temperatures in °C/month: Average Low, Daily Mean, Average High
Humidity per Month
Humidity in %/month
Abstract
Fribourg (French pronunciation: [fʁibuʁ]; Arpitan: Fribôrg/Friboua, IPA: [fʁibwa] ; German:Freiburg or Freiburg im Üechtland, Swiss German pronunciation: [ˈfrib̥ʊrɡ]; Italian:Friburgo or Friborgo) is the capital of the Swiss canton of Fribourg and the district ofSarine. It is located on both sides of the river Saane/Sarine, on the Swiss plateau, and isan important economic, administrative and educational center on the cultural borderbetween German and French Switzerland (Romandy). Its Old City, one of the bestmaintained in Switzerland, sits on a small rocky hill above the valley of the Sarine.
Neighboring municipalities
DüdingenGivisiezGranges-PaccotMarly, FribourgPierrafortschaSt. UrsenTafersVillars-sur-Glâne
Categories
1157 establishmentsCanton of FribourgCantonal capitals ofSwitzerlandCities in SwitzerlandCultural property of nationalsignificance in the canton ofFribourgFribourgImperial free citiesMunicipalities of the canton ofFribourgUniversity towns
Wikipedia
ID: 164065 Revision: 602735683
UDUVUDU – DBpedia ViewerThis proof of concept application shows UDUVUDU rendering entries from DBpedia. Itfurther makes uses of linked data fragments, rdf-ext and also bootstrap and typeaheadjs. Please start searching for an entry in DBpedia by typing at least 3 letters. To confirm yourdecision select a proposition in the list.
en
Fribourg/Freiburg
Loaded in 0ms; Processed in 674ms
Fribourg
¤ Ì
Ì 2
Report a map errorMap data ©2015 Google Terms of Use
Show remaining literals
Show remaining links