Towards Networked Linked Data-Driven Web3D Applications René Schubotz Andreas Harth EADS Innovation Works Institute AIFB rene.schubotz@eads.net Karlsruhe Institute of Technology (KIT) harth@kit.edu ABSTRACT content formats or from databases accessible through Web The Web of Data has grown to a size of several billion triples APIs. Lacking uniform identification, retrieval and repre- and provides human interface opportunities and challenges sentation mechanisms, Web data sets have been fragmented beyond those of the traditional Web. Although Linked Data into disconnected data silos. is now generated at a fast pace and very large scale, we ob- serve that browsing and visualisation of Linked Data is still To publish, access and integrate data on the Web, Berners- in its infancy. In parallel to the enormous boost in Linked Lee [4] devised the Linked Data Principles, a set of best Data, recent work on integrating 3D graphics capabilities practices based on a small set of standards, i.e., Uniform into the W3C technology stack provides fresh momentum Resource Identifiers (URIs), the Hypertext Transfer Proto- for an effort to extend the Web with 3D content and tech- col (HTTP), the Resource Description Framework (RDF) nologies. In light of the timid uptake and consumption of as well as a number of serialisation formats. By establish- Linked Data by non-technical audiences, we make the case ing typed data-level links between items from disparate data for Web3D-based user interfaces to the Web of Data and sources, Linked Data facilitates the creation of a single global aim at promoting synergistic research in the Web3D and data space, enables the integration of data from disparate Web of Data communities. To that end, we describe a sce- sources and ultimately provides expressive query capabili- nario that requires the combination of Linked Data from ties. geospatial and encyclopedic data sources and the transfor- mation of the combined Linked Data into a format amenable Automated production and interweaving of Linked Data at to Web3D rendering. Based on the scenario, we derive high- a large scale has now grown the Web of Data to a size of level requirements and propose a Linked Data-driven design 25.2 billion triples1 and an increasing number of applica- pattern based on REST architecture principles that satisfies tions demonstrates the potential of exploiting the Web of the requirements. Our prototypical implementation shows Data. For example, the GADM-RDF2 project contains the that a combination of current Web technologies is sufficient world’s administrative boundaries and interlinks to existing to implement distributed application that ultimately arrive spatial datasets. The DBpedia3 project [2] constantly de- at Web3D renderings of Linked Data. Based on the exper- rives a Linked Data corpus from the Wikipedia encyclope- iments, we identify and discuss areas which require further dia and describes more than 3.64 million interlinked entities, research. containing factual data on persons, places and organisations. 1. INTRODUCTION The growing Web of Data, however, provides human inter- face opportunities and challenges beyond those of the tra- The World Wide Web has irreversibly changed the way we ditional Web. A significant challenge is found in the for- collect, validate and disseminate data and information. The malised RDF encoding of Linked Data. RDF, a format cre- Web is built on the idea of hyperlinking documents into a ated for machine consumption, limits the use of Linked Data single global document space, hereby providing the funda- to those capable of reading and interpreting raw RDF. Even mental principles for accessing, navigating and publishing for a technical audience, the lack of visual aid impedes the Web documents. Until recently, however, the principles that identification of relevant information and the unearthing of promoted the Web of Documents have not been applied to previously unseen correlations. Aiming at improved acces- the abundance of data related to media, bibliography, en- sibility and usability of Linked Data, a limited number of cyclopedical knowledge, or geo sciences. Historically, these Linked Data browsers and visual search engines offer both data sets have been made available as documents in various text-based and visual presentation options. The Tabula- tor browser [5], for example, provides several conventional user interface metaphors such as a timeline and a tabular view. VisiNav[?], a system based on an interaction model designed to search and navigate large amounts of Linked Data, offers amongst other things a 2D graph visualisation Copyright c 2012 for the individual papers by the papers’ authors. Copy- 1 http://www4.wiwiss.fu-berlin.de/lodcloud/ ing permitted only for private and academic purposes. This volume 2 is published and copyrighted by its editors. Dec3D workshop at http://gadm.geovocab.org/ 3 WWW2012, Lyon, France http://dbpedia.org/ of Linked Data items. Although Linked Data is now gener- tions of Linked Data items and their relationships. Dipper4 ated at very large scale, we observe that visualisation and provides a Linked Data endpoint for retrieval and brows- browsing of Linked Data is still in its infancy. ing of Linked Data from a set of Linked Data repositories. Where available human-readable RDF labels are used to for- In parallel to the enormous boost in Linked Data technolo- mat the results. The Disco Hyperdata Browser5 allows the gies, recent work [3, 15, 10] on integrating 3D graphics ca- user to navigate the Web of Data and renders all information pabilities into the W3C technology stack, together with a as a HTML table of property-value pairs. Where available, general consumer trend in 3D movies and televisions, pro- human-readable labels are used to format the results. As for vides fresh momentum for an effort to extend the Web with Disco, Marbles6 allows navigating the Web of Data. Mar- 3D content and technologies. Using technologies such as bles strives to improve the user experience by formatting JavaScript, WebGL, Cascading Style Sheets and the Doc- Linked Data for presentation to end users; different colours ument Object Model increasingly sophisticated 3D content are used to distinguish the sources of the information re- starts now to be seamlessly integrated with HTML. trieved. Piggy Bank7 , a Firefox extension, allows the ex- traction of Linked Data from web sites and enables users to Clear and coherent Web3D visualisations may help in con- perform faceted search and browsing across Linked Data col- veying complex Linked Data, support users in sense making lected by multiple users. Again, results are presented using and information exploration and discovery, and provide de- list and tabular interfaces. scriptive, intuitive and effective user interfaces to the Web of Data. For example, Web3D graph visualisations may be User interfaces offering visual presentations are provided by used to display the overall structure of the Web of Data and more advanced RDF browsers or specialised Linked Data support navigation and exploratory discovery of individual applications. For example, the Tabulator browser [5] pro- Linked Data sets and items. More importantly, after obtain- vides several conventional user interface metaphors such as ing an overall understanding of data content and structure, a timeline and a map view. RDF Gavity8 is a tool for visu- a detailed inspection and analysis of relevant Linked Data alising ontologies on top of the JUNG Graph API and sup- items typically follows. For small amounts of Linked Data, a ports user-specified graph filters for specific views. Browsers textual presentation is often an adequate choice for the tech- such as Fenfire9 or FOAFNaut10 visualize the relationships nical audience. However, as the amount and diversity of the among Linked Data items employing a graph visualisations. result sets grow, suitable Web3D visualisations may be an VisiNav[?], a system designed to search and navigate large appropriate tool for improving the users’s understanding. amounts of Linked Data based on an interaction model, of- fers amongst other things a 2D graph visualisation of Linked In light of the timid uptake and consumption of Linked Data Data items and their relationships. by non-technical audiences, we aim at promoting synergis- tic research in the Web3D and Web of Data communities. Although Linked Data is now generated at very large scale, We therefore describe an experiment into publishing, access- we observe that visualisation and browsing of Linked Data ing and combining Linked Data and Web3D graphics func- is still in its infancy. With the exception of DBpedia Mo- tionality to arrive at a 3D user interface for geospatial and bile11 , a location-centric DBpedia client application for mo- statistical Linked Data. bile devices, most of the reviewed systems focus on support- ing navigation and exploratory discovery in the overall Web Our contribution is in showing how to combine Linked Data of Data. Visualisation techniques for a detailed inspection and Web3D functionality accessible via RESTful interfaces and analysis of Linked Data query results, i.e., a user’s par- into a coherent system which allows for the querying, com- ticular region of interest in the Web of Data, are typically bination and transformation of Linked Data into a format restricted to tabular or list presentations. In contrast to amenable to Web3D rendering. these existing systems, we provide a proof-of-concept pro- totype illustrating how to achieve Web3D visualisations of The remainder of the paper is organised as follows. In Sec- Linked Data query results in a completely distributed archi- tion 2 we cover related work, and in Section 3 we derive tecture. and describe several high-level requirements a Linked Data- driven Web3D application should fulfil. We provide an ap- plication prototype as well as a description of its essential 3. REQUIREMENTS FOR LINKED DATA- components in Section 4. Furthermore, we discuss the in- DRIVEN WEB3D APPLICATIONS terplay of data-providing and data-processing RESTful ser- Following Hausenblas [12], a Linked Data-driven Web appli- vices. In Section 5 we discuss our lessons learned, point out cation consumes and potentially manipulates Linked Data limitations and suggest areas which require future work. We sets and offers appropriate interfaces and content for both conclude with summary in Section 6. 4 http://api.talis.com/stores/iand-dev1/items/ dipper.html 2. RELATED WORK 5 http://www4.wiwiss.fu-berlin.de/bizer/ng4j/disco/ There are several approaches in the literature that describe 6 http://www5.wiwiss.fu-berlin.de/marbles the design and functionality of user interfaces for the Web 7 http://simile.mit.edu/wiki/Piggy_Bank of Data. These user interfaces can be grouped into systems 8 http://semweb.salzburgresearch.at/apps/ that solely provide text-based functionality and those that rdf-gravity/ 9 include visual presentation options. http://fenfire.org/ 10 http://www.foafnaut.org/ 11 We start by reviewing systems that use textual representa- http://wiki.dbpedia.org/DBpediaMobile humans and machines. We extend this definition towards Declarative integration: We aim to use declarative means Linked Data-driven Web3D applications in a straight-forward to describe data and links between the data, to arrive at an way and discuss several high-level requirements for Linked ecosystem in which data providers interlink their datasets Data-driven Web3D applications in the following. without the need for direct coordination. An ideal system would figure out the data sources to combine with dedi- Unifying Web3D and Linked Data representations: cated data processing services to ultimately arrive at the The description and augmentation of 3D models and vir- stated goal of a user. However, such a system has proven tual spaces with semantic metadata and ontologies has been elusive. We thus opt for a declarative coordination of the in the focus of the 3D modeling community for a long time, interoperation between data sources and functionality. yet, the issue is far from resolved. The Linked Data commu- nity, however, successfully facilitates this task for disparate Interactive visualisations: Typically, Linked Data-driven data sources by establishing typed data-level links between Web3D applications require that user input is possible, e.g. data items. We believe that several strategies exists in order for selecting a visual encoding. For an interactive applica- to, at least partially, transfer the Linked Data principles to tion, the overall system must provide high-throughput and the Web3D. The conventional approach, cf. Pittarello et al. high update rates with low latency. While these qualities [14], is to describe the semantics of Web3D content in anno- require further optimisations of the underlying Linked Data tation tags provided by the Web3D specification or by means and Web3D technologies, the overall user-perceived latency of RDFa12 annotations at the tag attribute level. In order to can be improved using techniques such as incremental con- benefit from such semantic annotations, the initial extrac- tent loading or user reassurance during wait times. tion and subsequent management of semantic scene annota- tions is required. A very radical concept following Kaloger- 4. A PROTOTYPICAL APPLICATION akis et al.[13] is to accept RDF as the single data model for In the following, we describe a straightforward Linked Data- publishing 3D content on the Web and to merge graphics driven Web3D application leveraging the emerging 3D graph- content and scene semantics into the Web of Data. How- ics capabilities of the W3C technology stack as well as the ever, this leaves open pressing questions on how to efficiently increasing amount of Linked Data available on the Web. render and manipulate graphics content in its RDF encod- Given statistical data from DBpedia (see Figure 1(a)) and ing. As a third stance and as a trait of Linked Data-driven geospatial data from GADM-RDF (see Figure 1(b)), we aim Web3D applications, we adopt REST principles through- at generating an interactive 3D choropleth map [9] visualis- out and retrieve Web3D content as REST representations ing the world distribution of wealth (see Figure 1(c)). We of Linked Data resources by content-negotiation. Although call our prototype application “Hello (3D) World!” and be- an established REST design practice, we feel that this con- lieve that its interactive Web3D interface allows the user to cept requires further thought. effectively grasp the meaning of the underlying Linked Data. On-demand integration: The diversity and size of Linked Realising the application involves several steps: querying Data sets make it difficult – even in our prototype applica- across data sources; transforming query results into a Web3D tion – to just fetch and integrate Linked Data and relevant scene graph; and rendering the Web3D scene graph. Based geometries from all sources and load the combined Web3D on REST principles, our prototype declaratively combines scene graph into a Web browser for rendering. Given that Linked Data into a format amenable to 3D rendering. To source datasets are often distributed, we require the over- this end, we use RESTful services13 for basic computer graph- all Linked Data-driven Web3D application (dispersed across ics, e.g. shading, meshing and coordinate transformations, multiple providers of data, functionality and client-side ren- SPARQL14 for queries spanning multiple disparate Linked dering) to access and integrate data on demand using the Data sources containing heterogeneous data, and XQuery15 pull model. Existing systems that demonstrate initial re- for executing the overall application logic. sults for integrating semantics into virtual environments suf- fer from scalability and real-time performance issues. Our Antedating a more detailed description of all involved arti- aim is to use caching and asynchronous communication to facts, Figure 2 demonstrates our Linked Data-driven design achieve performance conductive to interactive visualisations; and depicts the following interaction patterns: our initial experiments indicate that our system requires more optimisations to achieve the goal. 1. Via GADM-RDF ’s Linked Data Services[16], resolve Integration of content and functionality: Accepting Linked Data resources of the world’s nations and re- the preceding argument of on-demand integration, a Linked trieve RDF including (i) URIs for their KML geome- Data-driven Web3D application needs to integrate both con- tries and (ii) owl:sameAs’16 to interlinked data sets. tent and functionality. Examples for content are the GADM- This corresponds to executing the SPARQL query (cf. RDF or DBpedia datasets; examples for functionality are 3D Listing 2) against GADM-RDF. Cache the results lo- meshing and shading services. The various components have cally. to be connected together in a way that achieve the intended 2. Resolve each ?geo URI from Step 1, parse the retrieved application purpose. We see the Web as a platform and want KML data and send each < kml : P olygon > to to combine services that are decentralised. 13 http://jersey.java.net/ 14 http://www.w3.org/TR/rdf-sparql-query/ 15 http://www.w3.org/TR/xquery/ 16 owl:sameAs links indicate that two URI references actually 12 http://www.w3.org/TR/xhtml-rdfa-primer/ refer to the same thing. (a) DBpedia on the world’s GDP. (b) Geo data in GADM-RDF. (c) Hello (3D) World! Figure 1: Interactive Web3D choropleth map of the gross domestic product of countries. the REST service Geo2Ecef transforming WGS84 into supports library modules, i.e., collections of function defini- ECEF coordinates. Post the transformed polygons to tions and global variable declarations. The XQuery engine the REST service Poly2Mesh which in turn responds imports a module once during compilation, the compiled with fresh URIs for each generated XML3D mesh. The module is then made available through the static XQuery results are cached locally. context. In particular, we make use of the EXPath http- client module17 . This module allows one to deal with most 3. Using the owl:sameAs’s from Step 1, execute the query aspects of the HTTP protocol, and hereby enables the invo- shown in Listing 3 against DBpedia and retrieve each cation of RESTful data providing and processing services. nation’s gross domestic product based on the purchas- ing power parity. Post the ?gdp literals to the REST XQuery appears especially alluring given the fact that XS- service Gdp2Shader which responds with fresh URIs PARQL18 , a merge of SPARQL and XQuery providing con- for XML3D shaders. Cache the results locally. cise solutions for mapping between XML and RDF in ei- ther direction, is defined as an extension of XQuery’s for- 4. Use the URIs generated in Step 2 and Step 3 and gen- mal semantics adding a few normalization mapping rules. erate an XML3D-compliant scene graph. In essence, XSPARQL queries are reduced to XQuery with 5. Return the generated XML3D-compliant scene graph interleaved calls to a SPARQL engine via the SPARQL pro- to the browser for rendering and display. tocol [1]. On this account and considering the fact that XQuery has been successfully brought to the Web browser [8, 6], we opted for XQuery to implement our business logic In the following, we describe the general high-level compo- in a concise and declarative fashion (cf. Listing 1). For fu- nents of Linked Data-driven Web3D applications using the ture work, we suggest the porting of XSPARQL to the Web example of “Hello (3D) World!”. browser and a thorough investigation on using JavaScript and rdfQuery19 for implementing Linked Data-driven appli- 4.1 Runtime Environment cations. Linked Data-driven Web3D applications require some run- time environment for implementing their business logic. The 4.2 Linked Data Providers business logic coordinates the invocation of the various data Linked Data-driven Web3D applications consume and ma- sources and services in the right order to transform and nipulate various data sets and offer appropriate interfaces adapt the content into a 3D scene according to the speci- and content for both humans and machines. While we strive fications of the user. Such runtime environments should en- to ultimately arrive at 3D renderings of complex data, some able access to various distributed data sources using various technology for the retrieval, combination and manipulation languages, permit highly granular selection based on both of data stored in disparate sources is needed. The query the hierarchy and ordering of structured data, and allow for language SPARQL can be used to express queries across di- complex data transformations that may involve hierarchical verse Linked Data sources. Its syntax resembles SQL, but restructuring. SPARQL is far more powerful, enabling queries spanning multiple disparate data sources containing heterogeneous Developed by the XML Query working group of the W3C, data. XQuery is defined as a query language for XML data. Path expressions can be used to select based on XML structure Our prototypical implementation employs SPARQL in order (both hierarchical and sequential) and XML result struc- to retrieve Linked Data of the world’s nations from GADM- tures can be easily generated. The XQuery Update Facility provides the ability to update data or to add annotations 17 http://www.expath.org/modules/http-client/ and metadata; specialised capabilities beyond the large se- 18 http://www.w3.org/Submission/ lection of built-in functions and operators are provided via xsparql-language-specification/ 19 an extension mechanism through function libraries. XQuery http://code.google.com/p/rdfquery/ Renderer & Display Runtime Environment Linked Data Providers Web3D Services XML3D Browser Hello (3D) World GADM-RDF DBpedia Geo2Ecef Poly2Mesh Gdp2Shader execute SPARQL ?nation ?geo ?link RDF/XML GET ?geo KML GET ?poly XML POST ?poly URI SPARQL ?gdp RDF/XML POST ?gdp URI GET ?mesh_uri XML3D GET ?shader_uri XML3D XML3D Figure 2: “Hello (3D) World!” sequence diagram. RDF . The corresponding query shown in Listing 2. In ad- geo2ecef. This service is implemented to accept a kml:Polygon, dition, each nation’s gross domestic product based on the to convert its geodetic coordinates into Earth-centred earth- purchasing power parity is retrieved from DBpedia using fixed coordinates, and to respond with results in XML for- the SPARQL query shown in Listing 3. mat. In the following, we give an exemplary GET request and the service’s response. 1 PREFIX s p a t i a l : 2 PREFIX ngeo : GET /geo2ecef?input= 3 PREFIX owl : x1,y1,z1...’ HTTP/1.1 4 SELECT ? n a t i o n ? g e o ? l i n k Host: http://www.host.org 5 WHERE { 6 ? n a t i o n rdf : t y p e s p a t i a l : Country . Accept: application/xml 7 ? n a t i o n ngeo : geometry ? g e o . 8 ? n a t i o n owl : sameAs ? l i n k HTTP/1.1 200 OK 9 } Server: http://www.host.org Content-Type: application/xml f(x1,y1,z1)... Listing 2: SPARQL query against GADM-RDF gdp2shader. This service accepts numerical values for the generation of xml3d:shader elements to be resolved by a 1 PREFIX d b p e d i a 2 : 2 SELECT ? gdp Linked Data-driven application. The xml3d:shader element 3 WHERE { is derived from the service input and a predefined colour 4 ? l i n k d b p e d i a 2 : gdpPppPerCapita ? gdp . scale. Listing 4 shows XML3D code generated by this ser- 5 } vice. Anticipating more complex shader generation, the ser- vice is implemented as POST and responds with Linked Listing 3: SPARQL query against DBpedia Data containing fresh URIs for xml3d:shader elements. Ad- ditionally, this service provides a GET method for shader retrieval. 4.3 Web3D Services 1 Our prototype invokes Web3D REST services performing 2 < f l o a t 3 name=” d i f f u s e C o l o r ” >0.08 0 . 0 0.0 preprocessing and mapping operations. Invocation of the 3 0.4 preprocessing service geo2ecef performs coordinate trans- 4 formations, whereas the mapping services poly2mesh and gdp2shader produce xml3d elements. All Web3D services Listing 4: Generated XML3D shader element are implemented using JAX-RS and Jersey and deployed to Apache Tomcat Servlet containers. Adhering to Fielding’s architectural principles [7], we designed these services in the poly2mesh. When receiving POST requests, this mapping following ways. service accepts kml:Polygons, spawns triangulation threads 1 ( : S e t e n d p o i n t s and q u e r i e s : ) 2 l e t $gadm := h t t p : / / . . . gadm . . . / s e a r c h ? r d f t y p e=gadm:Country 3 l e t $ d b p e d i a := h t t p : // d b p e d i a . o r g / s p a r q l ? q u e r y= 4 l e t $ q u e r y := PREFIX d b p e d i a 2 : 5 SELECT DISTINCT ? gdp { XX d b p e d i a 2 : g d p P p p P e r C a p i t a ? gdp } 6 LIMIT 1000 7 l e t $ g e o 2 e c e f := h t t p : / / . . . g e o 2 e c f . . . / c o n v e r t ? p o l y g o n= 8 l e t $ poly2mesh := h t t p : / / . . . geo2mesh . . . / 9 10 ( : Get n a t i o n URIs from GADM : ) 11 l e t $ n a t i o n s := d a t a ( h t t p : g e t −node ( $gadm ) [ 2 ] / / r d f s : s e e A l s o / @ r d f : r e s o u r c e ) 12 13 ( : Get geom URIs from GADM : ) 14 l e t $ geoms := f o r $ n a t i o n i n $ n a t i o n s 15 r e t u r n d a t a ( h t t p : g e t −node ( c o n c a t ( $ n a t i o n , ” . r d f ” ) ) [ 2 ] / / n g e o : g e o m e t r y / @ r d f : r e s o u r c e ) 16 17 ( : Get l i n k URIs from GADM : ) 18 l e t $ l i n k s := f o r $ n a t i o n i n $ n a t i o n s 19 r e t u r n d a t a ( h t t p : g e t −node ( c o n c a t ( $ n a t i o n , ” . r d f ” ) ) [ 2 ] / / owl:sameAs ) 20 21 ( : Query DBpedia , t h e n g e t s h a d e r URIs : ) 22 $ l e t s h a d e r s := f o r $ l i n k i n $ l i n k s 23 l e t $ ep := f n : c o n c a t ( $ dbpedia , f n : r e p l a c e ( $ query , ’XX ’ $ l i n k ) ) 24 l e t $ gdps := d a t a ( h t t p : g e t −node ( $ ep ) [ 2 ] / / s p a r q l : b i n d i n g [ @name=”gdb ” ] / s p a r q l : l i t e r a l ) 25 f o r $ gdp i n $ gdps 26 r e t u r n h t t p : p o s t ( $ poly2mesh , $ gdp ) 27 28 ( : Get KML, p a r s e , c o n v e r t t o ECEF and g e t mesh URIs : ) 29 l e t $ meshes := f o r $ g e o i n $ g e o s 30 l e t $ p o l y g o n s := h t t p : g e t −node ( f n : c o n c a t ( $ geo , ’ . kml ’ ) ) [ 2 ] ) / / k m l : P o l y g o n 31 f o r $ polygon in $ polygons 32 l e t $ e c e f s := h t t p : g e t −node ( f n : c o n c a t ( $ g e o 2 e c e f , $ p o l y g o n ) ) [ 2 ] 33 for $ ecef in $ e c e f s 34 r e t u r n h t t p : p o s t ( $ geo2mesh , $ e c e f ) 35 36 ( : G e n e r a t e XML3D s c e n e : ) 37 38 39 . . . { 40 f o r $ shaderUri in $ shaders 41 r e t u r n h t t p : s e n d −r e q u e s t ( ) [ 2 ] 42 } . . . 43 . . . { 44 f o r $ meshUri i n $ meshes 45 r e t u r n h t t p : s e n d −r e q u e s t ( ) [ 2 ] 46 } 47 Listing 1: Application logic of “Hello (3D) World!” in XQuery for POSTed kml:Polygons and immediately returns Linked isations in the browser. Via the browser, users have the Data containing fresh URIs. These URIs identify xml3d:mesh ability to change various parameters that the application elements being computed using a Delaunay triangulation designer has provided. The input from the user interface backend20 and can be resolved by Linked Data-driven appli- triggers queries to the execution engine which in turn com- cations. The service additionally provides a GET method bines content from Linked Data sources and functionality for xml3d:mesh retrieval; an exemplary xml3d:mesh element from services into a Web3D scene graph. The Web3D scene generated by this service is shown in Listing 5. graph is handed to the rendering and displaying environment for generating the visual application output. We decided 1 for XML3D as rendering and displaying environment for its 2 0 1 2 1 3 2 clean and comprehensible specification; although we sadly 3 < f l o a t 3 name=” p o s i t i o n ” >0.96 . . . −0.13 miss support for external references in the current implemen- 4 < f l o a t 3 name=”normal ” >0.0 . . . 1.0 5 < f l o a t 2 name=” t e x c o o r d ” >1.0 . . . 0.0 tation. As future work, we would like to assess alternative 6 Web3D proposals with respect to ease of use, performance and scalability. Listing 5: Generated XML3D mesh element 5. DISCUSSION We now discuss lessons learned based on the experiences 4.4 Renderer and Display gained during experimentation and put our requirements Being focused on the task of conveying complex Linked Data into perspective. to the user, we aim at rendering and displaying 3D visual- The success of implementing a Linked Data-driven 3D Web 20 http://code.google.com/p/poly2tri/ Application crucially depends on the availability of high- quality data. In our scenario, we depend on a complete set Proceedings of the 5th European semantic web of links between countries in GADM-RDF and DBpedia. conference on The semantic web: research and While GADM initially provided some links, both datasets applications, ESWC’08, pages 432–447. were only sparsely interlinked. Only after completing the Springer-Verlag, 2008. linkage we were able to query both datasets in combination. [2] S. Auer, C. Bizer, G. Kobilarov, J. Lehmann, R. Cyganiak, and Z. Ives. DBpedia: A Nucleus for a The size of the geometries in GADM-RDF were another Web of Open Data The Semantic Web. In Proceedings stumbling block. Geometries of countries can reach sev- of 6th International Semantic Web Conference, 2nd eral MB, and merely transmitting these files takes time. Asian Semantic Web Conference (ISWC+ASWC We solved the issue by accessing more coarse-grained ver- 2007), volume 4825 of Lecture Notes in Computer sions of the geometries. For the triangulation, which is a Science, pages 722–735. Springer Berlin / Heidelberg, relatively time-consuming calculation, we opted for a ser- Nov. 2007. vice which queues the required computation steps and asyn- [3] J. Behr, P. Eschler, Y. Jung, and M. Zöllner. X3DOM: chronously processes the input. We use caching throughout a DOM-based HTML5/X3D integration model, (via HTTP’s Last-Modified header and a Squid cache21 ) to volume 1, pages 127–135. ACM, 2009. avoid costly re-computation. [4] T. Berners-Lee. Linked data. http://www.w3.org/DesignIssues/LinkedData.html, We use SPARQL queries and XQuery programs to access 2006. data and coordinate computation, which allows for a con- [5] T. Berners-Lee, Y. Chen, L. Chilton, D. Connolly, cise specification of the various computation steps. We used R. Dhanaraj, J. Hollenbach, A. Lerer, and D. Sheets. SPARQL to query the data in combination, and XQuery Tabulator: Exploring and analyzing linked data on the to invoke functionality, as XQuery engines can be extended semantic web. In Proceedings of the 3rd International with user-defined functions. However, using two separate Semantic Web User Interaction Workshop, 2006. query engines is suboptimal; an execution environment which [6] A. Couthures. Compiling xquery code into javascript natively supports RDF queries and XQuery-like program- instructions using xslt. In XML Prague 2012, pages ming constructs would be our more elegant system of choice. 125–139, 2012. Ideally, such an interpreter of data integration programs would run client-side in a web browser, to remove the bottle- [7] R. T. Fielding. Architectural styles and the design of neck which a centralised query processor represents. Whether network-based software architectures. PhD thesis, University of California, Irvine, 2000. AAI9980887. XSPARQLis a suitable candidate for such a language is sub- ject to future work. [8] G. Fourny, M. Pilman, D. Florescu, D. Kossmann, T. Kraska, and D. McBeath. Xquery in the browser. Finally, the lack of maturity of the deployed Web3D im- In WWW, pages 1011–1020. ACM, 2009. plementation required some workarounds; for example, the [9] M. Friendly. Milestones in the history of thematic XML3D specification allows for providing URIs which the cartography, statistical graphics, and data browser would dereference and include in the scene graph. visualization. In Seeing Science: Today. American Such functionality would fit our distributed architecture very Association for the Advancement of Science, Feb. well, however, current implementation lacks these network 2008. lookups, and thus we need to construct a large monolithic [10] Google. O3d. http://code.google.com/p/o3d/, 2011. file with the scene graph rather than having a scene graph [11] A. Harth. Visinav: Visual web data search and file which can include network-accessible references. navigation. In Database and Expert Systems Applications, volume 5690 of Lecture Notes in Computer Science, pages 214–228. Springer Berlin / 6. CONCLUSION Heidelberg, 2009. The overall goal of Linked Data-driven Web3D applications is to enable the end user to query, understand and interact [12] M. Hausenblas. Linked data applications - the genesis with often complex and incomprehensible Linked Data in and the challenges of using linked data on the web. more user-friendly and efficient ways. Suitable and coher- Technical Report 2009-07-26, Digital Enterprise ent Web3D visualisations may help in conveying complex Research Institute, 2009. Linked Data, support users in sense making and informa- [13] E. Kalogerakis, S. Christodoulakis, and tion exploration and discovery, and eventually provide de- N. Moumoutzis. Coupling ontologies with graphics scriptive, intuitive and effective user interfaces to the Web content for knowledge driven visualization. In of Data. To facilitate the specification and implementation Proceedings of the IEEE conference on Virtual Reality, of such Linked Data-driven Web3D applications, we pro- VR ’06, pages 43–50, Washington, DC, USA, 2006. vide an architecture blueprint that enables the integration IEEE Computer Society. of distributed content and functionality into coherent Linked [14] F. Pittarello and A. De Faveri. Semantic description of Data-driven applications with Web3D user interfaces. 3d environments: a proposal based on web standards. In Proceedings of the eleventh international conference on 3D web technology, Web3D ’06, pages 85–95, New 7. REFERENCES York, NY, USA, 2006. ACM. [1] W. Akhtar, J. Kopecký, T. Krennwallner, and [15] K. Sons, F. Klein, D. Rubinstein, S. Byelozyorov, and A. Polleres. Xsparql: traveling between the xml and P. Slusallek. Xml3d: interactive 3d graphics for the rdf worlds - and avoiding the xslt pilgrimage. In web. In Proceedings of the 15th International 21 Conference on Web 3D Technology, Web3D ’10, pages http://www.squid-cache.org/ 175–184, New York, NY, USA, 2010. ACM. [16] S. Speiser and A. Harth. Integrating linked data and services with linked data services. In The Semantic Web: Research and Applications, volume 6643 of Lecture Notes in Computer Science, pages 170–184. Springer Berlin / Heidelberg, 2011.