Semantic Web 0 (2015) 1–0 1 IOS Press

The YASGUI Family of SPARQL Clients 1

Editor(s): Eero Hyvönen, Aalto University, Finland Solicited review(s): Osma Suominen, Aalto University, Finland; Sébastien Ferré, Unversity Rennes 1, France; one anonymous reviewer

Laurens Rietveld a and Rinke Hoekstra a,b a Department of Computer Science, VU University Amsterdam, The Netherlands E-mail: {laurens.rietveld,rinke.hoekstra}@vu.nl b Leibniz Center for Law, Faculty of Law, University of Amsterdam, The Netherlands E-mail: [email protected]

Abstract. The size and complexity of the Semantic Web and its technology stack makes it difficult to query. Access to Linked Data could be greatly facilitated if it were supported by a tool with a strong focus on usability. In this paper we present the YASGUI family of SPARQL clients, a continuation of the YASGUI tool introduced more than two years ago. The YASGUI family of SPARQL clients enables publishers to improve ease of access for their SPARQL endpoints, and gives consumers of Linked Data a robust, feature-rich and user friendly SPARQL editor. We show that the YASGUI family had significant impact on the landscape of Linked Data management: YASGUI components are integrated in state-of-the-art triple-stores and Linked Data applications, and used as front-end by a large number of Linked Data publishers. Additionally, we show that the YASGUI web service – which provides access to any SPARQL endpoint – has a large and growing user base amongst Linked Data consumers.

Keywords: SPARQL, Query formulation, Data Publishing, Linked Data

1. Introduction Several good Linked Data programming libraries exist, but uptake of these still relies on a thorough Web developers can rely on advanced development understanding of SPARQL and the other members of tools such as in-browser debugging, integrated devel- the Semantic Web technology stack. The situation for opment environments, high-level libraries in all but SPARQL is worse. Existing SPARQL clients convey a the most austere programming languages, and increas- rather narrow interpretation of what a SPARQL client ingly simple and lightweight web-services. These are interface should do: POST (or GET) a SPARQL query essential enablers for broad take up in industry, and string to an endpoint URL. As a result, these imple- vice versa the use of web technology in industry drives mentations do not offer functionality that goes far be- the development of ever more developer-friendly tools. yond a simple HTML form (see section 2). Semantic Web and Linked Data technologies have The curious developer or potential enthusiast who some catching up to do, and steps in this direction wants to have a first taste of Linked Data is easily are under way. An example is the recent start of the scared away by the current set of SPARQL clients. W3C Linked Data Platform working group1 that aims For Semantic Web developers designing and testing to bring triple-store querying closer to the RESTful SPARQL queries is often a cumbersome and painful paradigm. experience: “All who know the RDF namespace URI by heart raise their hands now!”, and “Where is that Linked Data?”. Many will know the DBpedia endpoint 1This work is an extended version of the YASGUI workshop pa- per [13] URL, but can perhaps recall only a handful of end- 1See http://www.w3.org/2012/ldp points in total.

1570-0844/15/$27.50 c 2015 – IOS Press and the authors. All rights reserved Existing clients offer only a small selection of the and provides an overview of the features present in the features that we, as a community, could offer to both current state of the art in SPARQL user interfaces (Ta- ourselves as well as new users of Semantic Web tech- ble 1 reflects the new situation). Section 3 builds on nology. We propose to overcome this hurdle by means the description of the original YASGUI of [13] to com- of simple, lightweight and user friendly clients for in- pare and explain the features and design considerations teracting with Linked Data that integrate with existing of the new YASGUI, YASQE and YASR components. services in the field. Impact of the YASGUI family is discussed in Section This was our main motivation for designing and 4. We conclude in section 5. building Yet Another SPARQL GUI (YASGUI), 2 first introduced in a workshop paper [13]. YASGUI is a web-based SPARQL client that can be used to query 2. State of the Art in SPARQL User Interfaces both remote and local endpoints. It integrates linked data services and web to offer features such The features of SPARQL clients can be categorized as auto-completion and endpoint lookup. It supports under three main headers, syntactic features (auto- query retention – query texts persist across sessions completion, syntax highlighting and validation), appli- – and query ‘permalinks’, as well as syntax checking cability features (endpoint or platform dependent/in- and highlighting. YASGUI is easy to deploy locally, dependent) and usability (query retention, results ren- and it is robust. Because of its dependency on third dering and download, quick evaluation). Table 1 lists party services, we have paid extra attention to grace- seventeen SPARQL clients – that range from very ba- ful degradation when these services are inaccessible sic to elaborate – and depicts what features they im- or produce unintelligible results. The YASGUI family plement. This section describes these features in more of SPARQL clients enables publishers to improve ease detail, and discusses whether and how the clients of of access for their SPARQL endpoints, and gives con- Table 1 implement these features. sumers of Linked Data a robust, feature-rich and user We excluded query interfaces that were not fully re- friendly SPARQL editor. producible (SPARQLinG [12], ViziQuer [19], SPAR- In [13], we showed the added value of combining QLViz [6] and NITELIGHT [17]) or only cover a sub- Web 2.0 and Semantic Web technologies [1,3] in this set of the SPARQL standard (iSPARQL 3) setting. Two later papers [15,14] relied on client-side query logs accumulated through YASGUI, to break 2.1. Syntactic Features Linked Data usage interpretation from the confines of single-store server side logs (see Section 4). Most modern applications that feature textual input This paper builds on parts of [13] that illustrate support some form of auto-completion. Examples are the premises of this work (see below), but contains the Google website which shows an auto-completion two significant new contributions. Firstly, YASGUI list for your search query, or your browser which has grown into a family of reusable components: two (based on forms you previously filled in) shows auto- new, fully client side components (YASQE and YASR) complete lists for text inputs. One advantage of auto- that can be used independently, and a new, more completion is that it saves you from writing the com- lightweight version of the full-fledged YASGUI tool. plete text. Another advantage is the increase in trans- Secondly, we show that since the 2013 paper, YASGUI parency, as the auto-completion suggestions may con- has had considerable impact in the field. Our com- tain information the user was not aware of. The lat- ponents have found their way into several third-party ter is particularly interesting for SPARQL, where users tools, and are now incorporated in three popular triple might not always know the exact namespace prefix stores. YASGUI is currently used by several impor- they would like to use, or where the user might not tant data publishers, and has shown to provide a useful know all available properties in a triple-store. Several information source for further research. SPARQL interfaces offer naive auto-completion func- tionalities, such as the Flint SPARQL Editor4 which Structure of the Paper auto-completes SPARQL syntax and functions. Other This paper is structured as follows. Section 2 is an updated version of the corresponding section in [13] 3See http://dbpedia.org/isparql/ 4See http://openuplabs.tso.co.uk/demos/ 2See http://yasgui.org sparqleditor Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients 3 Feature npitSac + - + + - - - - + - + - - + - + - - + - - - + + + - + - + - + + - + - + + + + + + + - - - + - + + - + - - + + + + + + - - - + + - + - + - - + + - - + + + + + - - + + - + - - - - + - - - - + - - - - + + - + ------+ + - - - + - - - - + + - + - + - - + + - + - + - - - - + - - + + + - - Search - Endpoint - - + - + - + - download Results - - Visualizations + - - Chart - - rendering Results - + - + - - upload File retention - Query + - + - + features Usability + library + as - - Available - independent Platform - - - Endpoints Multiple features Applicability - - Validation Syntax Highlighting Syntax Auto-completion features Syntactic e d c b a h edrn osntuehprik o R resources. Virtuoso. URI OpenLink for or hyperlinks Sesame use OpenRDF not e.g. does API, rendering SAIL The OpenRDF the implements that store triple local a requires upload File ieula sapandfaue sn lu rpesoesrie eg dydra.com) (e.g. services triple-store cloud using feature, planned a is upload File a elwt iie ubro npit,eg nyCR nbe ones. enabled CORS only e.g. endpoints, of number limited a with version deal workshop Can the to compared added/improved is Feature

4Store

± OpenLink Virtuoso e

+ + + StarDog

ClioPatria

al :SAQ letfauematrix feature client SPARQL 1: Table SNORQL

± SPARQLer e

+ + Apache Jena

Sesame Workbench ± ± Sesame2 Windows Client e c + - - - - - + + - + TopBraid Composer

± Glint e

± Twinkle e ± ± SparqlGUI b e + + + + +

- - SparQLed

Gosparqled

± Squebi b

± Flint SPARQL Editor b + d a a a a a a YASGUI Family 4 Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients interfaces offer more auto-completion functionalities RDF Sesame Workbench [7] and SPARQLer12. More using external APIs, such as Squebi5 for prefix auto- generic endpoint independent clients are the Sesame2 completion, and ClioPatria6 and Apache Jena7 for pre- Windows Client [7], Glint13, Twinkle14 and Sparql- fix and property/class auto-completions. Editors such GUI15. Other applications only provide access to some as SparQLed [9] and Gosparqled8 offer even more re- SPARQL endpoints. The Flint SPARQL Editor and liable auto-completions of resources, though this re- Squebi only connect to endpoints that are CORS en- quires a dedicated back-end server. abled (i.e. support cross-domain JavaScript access). Syntax highlighting is a common functionality for This is a problem because we observe that 38% of programming language editors. It allows users to all available endpoints16 are in-accessible via cross- distinguish between different properties, variables, domain JavaScript. Other editors support only XML strings, etc. The same advantage holds for query lan- or JSON as query results, such as SNORQL17 (part of guages such as SPARQL, where you would like to D2RQ18), which only supports query results in SPAR- distinguish between literals, URIs, query variables, QL/JSON format. function calls, etc. The few SPARQL editors that sup- Platform In-dependence increases the accessibility port syntax highlighting are the Flint SPARQL Ed- of a SPARQL client. The user can access the client on itor (or its derivatives) and Squebi, which both use any operating system. Web interfaces are a good ex- the CodeMirror JavaScript library9 to bring color to ample, as a site should work on any major browser (In- SPARQL queries. ternet Explorer/Firefox/Chrome), and at least one of Most Integrated Development Environments (IDEs) these browsers is available for any type of common op- provide feedback when code contains syntax errors erating system. Examples are the SPARQL interfaces (i.e. runtime syntax validation). Feedback is immedi- of Virtuoso, 4Store and the Gosparqled. Another ex- ate, which means the user can spot syntax errors in ample of multi-platform support is the use of a .jar the code without having to execute them. Again, such file (e.g. Twinkle), as all major operating systems sup- functionality is useful for SPARQL editing as well. Im- port java. Examples of single-platform applications are mediate feedback on a SPARQL syntax means the user Sesame2 Windows Client and SparqlGUI: they require can spot invalid queries without having to execute it Windows. on a SPARQL endpoint. The quality of such feedback Interfaces that are open-source and available as is often better compared to endpoint error messages: standalone library, are easy to integrate into other an IDE can pinpoint the error location in the user in- projects and libraries. Most of the presented interfaces terface, where the returned errors from endpoints (de- are either closed source, or not published as an inde- pending on the triple-store) can differ greatly in both pendent library. The SPARQL interfaces that do en- able such re-use, are SparQLed, Gosparqled, Squebi specificity and quality. The Flint, SparQLed, Gospar- and the Flint SPARQL Editor. qled, Sesame Workbench, Apache Jena and ClioPatria SPARQL editors support immediate live syntax check- 2.3. Usability Features ing by means of JavaScript SPARQL parsers. Query retention enables re-use of important or often 2.2. Applicability Features used queries, and allows users to close the application, and resume working on the query later. There are only six clients that allow access to mul- Quick evaluation or testing of a graph generated tiple endpoints. Most triple-stores provide a client in- by the user should not require the hassle of installing terface, linking to that specific endpoint. They are end- a local triple-store. Ideally, this functionality would point dependent. Examples are 4Store [10], ClioPatria, be embedded in the SPARQL client application itself. StarDog10, Apache Jena, OpenLink Virtuoso11, Open-

12See http://www.sparql.org/ 5See https://github.com/tkurz/squebi 13See https://github.com/MikeJ1971/Glint 6See http://cliopatria.swi-prolog.org/ 14See http://www.ldodds.com/projects/twinkle/ 7See https://jena.apache.org/ 15See http://www.dotnetrdf.org/content.asp? 8See https://github.com/scampi/gosparqled pageID=SparqlGUI 9See http://codemirror.net/ 16See sparqles.okfn.org 10See http://stardog.com/ 17See https://github.com/kurtjx/SNORQL/ 11See http://virtuoso.openlinksw.com/ 18See http://d2rq.org/ Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients 5

Most applications that require a local installation on the users computer support this feature, such as Twin- kle. The Sesame Windows Client supports file uploads as well, though it requires a local triple-store that im- plements the OpenRDF SAIL API. Query results (such as JSON or XML) for SELECT queries are often relatively difficult to read and in- terpret, especially for a novice. A rendering method which is easy to interpret and understand is a table. All applications except 4Store support the rendering of query results into a table. Because of the use of per- sistent URIs, we would expect navigable results for re- sources, e.g. in the form of drawing the URIs as hy- perlinks. This feature is not supported by some ap- plications, such as Virtuoso, Twinkle or SparqlGUI. SNORQL appears to be the application with the most elaborate way of visualizing query results: Next to a simple URI hyper-link button, the user can click on a link to browse the current endpoint for resources rele- Fig. 1. The YASGUI interface vant to that URI. Rendering the results in a tabular fashion might not 3. The YASGUI Family suit every use case. Instead, aggregating and visualiz- ing the SPARQL results as charts may be preferable. The preceding section shows how current SPARQL Existing Chart solution exists, such as SgVizler [16] clients fall short in supporting Linked Data access. (which indirectly uses Google Charts and D3.js), but This is both a publisher and consumer problem. From none of the existing SPARQL editors support such a consumer perspective, Linked Data access is difficult drawing of charts. because available SPARQL interfaces simply do not Downloading the results as a file allows for better suffice. Publishers face the problem that no SPARQL re-use of these results. A user might want to avoid run- interface libraries exist that would facilitate access and ning the same heavy query more than once, and store lower the threshold for the potential users of their data. 19 the results locally instead. Additionally, the results of This section presents the open source YASGUI CONSTRUCT queries are often used in other applica- family of SPARQL clients, consisting of components tions or triple-stores. Saving the user from needing to targeted at both publishers and consumers. The main component is a rewritten, modularized and extended copy & paste query results clearly improves user expe- version of YASGUI, first published in [13]. YAS- rience as well. The only applications that do not sup- GUI is a user-friendly web-based interface for inter- port the downloading of results are the Flint SPARQL acting with any SPARQL endpoint. It is targeted to- editor and SparQLed. wards consumers of linked data, and is available online at http://yasgui.org. Most of the clients described above are restricted For publishers, we provide three JavaScript pack- to one simple task: accessing information behind a ages: the complete YASGUI interface, the part of SPARQL endpoint. However, equally important to this YASGUI responsible for writing the SPARQL query task is assisting the user in doing so. Looking at the (YASQE, or ‘Yet Another SPARQL Query Editor’), table, the most elaborate editors are Squebi, Flint, and the part of YASGUI responsible for visualizing Gosparqled and SparQLed. However, these all fall the SPARQL results (YASR, or ’Yet Another SPARQL short in usability features, and most importantly: the Result-set visualizer). To increase the ease of integra- ability to access any SPARQL endpoint. We conclude tion by publishers and developers, all the JavaScript li- that currently no single endpoint independent, accessi- ble, user-friendly SPARQL client exists. 19See https://github.com/YASGUI 6 Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients braries are available via the NodeJS Package Manager Furthermore, YASQE provides query permalink (NPM), the JavaScript dependency manager Bower, functionality: For a given query, YASQE generates a and via the JsDelivr20 and CDNjs21 Content Delivery link. Opening the link in a browser opens YASQE with Networks. the specified query filled in. We believe this is a wel- Below, we first discuss the YASQE and YASR com- come feature for people working together with a need ponents, the used technology and services, and how to share queries. the features of both JavaScript libraries compare to Finally, YASQE has built-in support for submitting the tools presented in the previous section. We then SPARQL queries to endpoints. By providing an ab- present how both libraries are combined to form the stract layer on top of the HTTP protocol, publishers YASGUI library. and developers do not have to implement their own (error-prone) HTTP requests to SPARQL endpoints. 3.1. YASQE YASQE is developed to cater for many different publishing use cases, where not all features are needed all the time. To this end, YASQE is both configurable and extensible. Configurable, because publishers can toggle any of the above features on or off. And ex- tensible, e.g. by modifying SPARQL auto-completion methods. The extendability is concretely illustrated by the Gosparqled editor,24 which takes YASQE as its main component, and adds custom auto-completion functionality. Fig. 2. The YASQE interface 3.2. YASR YASQE22 (See Figure 2) is an extensive JavaScript library, targeted at Semantic Web publishers. YASQE takes a simple HTML text area, and – with one JavaScript command – transforms it into a full featured IDE-like SPARQL query editor. YASQE is based on the CodeMirror JavaScript li- brary23, an extensive HTML text editor. Using CodeMir- ror and the JavaScript SPARQL grammar from the Flint SPARQL Editor, YASQE is able to tokenize, highlight, validate, and dissect SPARQL queries. If needed, users are presented with immediate validation errors of their queries, and information on the type of Fig. 3. The YASR interface validation error. Additionally, YASQE provides sev- eral auto-completion services: Full namespace URIs 25 are completed as you type, using the Prefix.cc web The YASR JavaScript library (See Figure 3), service. Properties and classes are auto-completed as aimed at publishers as well, parses and visualizes any well, using the Linked Open Vocabularies [2] (LOV) SPARQL query response. API. The W3C specifies several SPARQL result formats, Using HTML 5 functionalities, YASQE stores that including XML, JSON, CSV, and RDF/XML. application state, making it persistent between user To decrease the load on the publisher or developer, sessions: a returning user will see the screen as it was YASR consumes any of these data formats, by pars- when she last closed the YASQE browser page. ing the results and wrapping them in an internal data representation. A first parse attempt is based on the Content-Type specified by the HTTP response. When 20See http://www.jsdelivr.com/ 21See https://cdnjs.com/ 22See http://yasqe.yasgui.org 24See https://github.com/scampi/gosparqled. 23See http://codemirror.net 25See http://yasr.yasgui.org Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients 7 such a Content-Type header is missing or appears to be several visualizations on and off. Thanks to the mod- invalid, YASR tries to parse the SPARQL results on a ular architecture of YASR, adding a custom visual- best-effort basis. ization is easy, as developers can ignore the different YASR has to deal with the wide variety of possi- SPARQL response serializations and use the internal ble errors returned by endpoints. The SPARQL proto- YASR response representation directly. This is illus- col specifies what the endpoint request and response trated by the Visu tool26, which extends YASR by in- should look like, but leaves error handling unspecified: corporating Google Chart visualizations. In turn, the what HTTP error code should be sent by an endpoint, Visu features have been integrated into YASR. and how should error messages be communicated? As a result, triple-stores come with various ways of con- 3.3. YASGUI veying errors. Some endpoints return the error as part of an HTML page (with the regular 200 HTTP code), 3.3.1. JavaScript Library or as a SPARQL query result. Others only return an The YASGUI JavaScript library27 (See Figure 1) in- HTTP error code, where only some include a reason cludes YASQE and YASR, adds user functionality, and phrase together with the error code. The latter is a best wraps the libraries in a tabbed graphical user inter- practice for RESTful services. The absence of a stan- face. Next to the features described above, YASGUI dard, and the failure to adhere to best practices, makes includes several usability features described below. a generic robust error handling solution messy and dif- To increase the findability of SPARQL endpoints, ficult to implement. Developing such a solution re- YASGUI uses the SPARQLES [8] service to provide quires coding and testing by trial and error. YASR de- endpoint search functionality. SPARQLES is a web creases the publishers and developers load by wrap- service which monitors the up-time and characteris- ping such SPARQL errors in an internal data represen- tics of SPARQL endpoints, in effect providing a list tation. of available SPARQL endpoints. However, YASGUI The result of the procedures described above is a only uses this information in a static fashion, as SPAR- JavaScript library which is capable of handling any QLES does not publish this information dynamically SPARQL response, moving the burden of writing via e.g. a SPARQL endpoint or regular API. Other ser- SPARQL result-set parsers and error handlers away vices and endpoint catalogs exist such as DataHub.io, from the publisher. but these include endpoints which are often down and As Table 1 shows, most SPARQL clients support unavailable, and these catalogs do not publish their both rendering and downloading of query results to data via an API accessible by JavaScript. some extent, which YASR supports as well. Users YASGUI also supports user-configurable requests. are provided with an extensive number of visualiza- For instance, some endpoints may only support the tions: A table renderer for SELECT query responses, XML results format, or allow the use of additional re- and another renderer for visualizing the raw high- quest parameters such as the ‘soft-limit’ of 4Store or lighted query response. Next to these two simple vi- different reasoning levels of StarDog. Such endpoints sualizations, YASR supports visualization via Google can only be used to their full potential if users are able Charts, including line, bar and scatter plots, geograph- to specify these additional arguments manually. There- ical maps, and several others. YASR supports a pivot- fore, YASGUI supports the specification of an arbi- table functionality as well, allowing users to perform trary number of request parameters for every endpoint. simple post-processing tasks on the SPARQL results. Where YASQE and YASR make the application This functionality mimics functionality found in office states persistent between browser sessions, YASGUI suites such as Microsoft Excel and OpenOffice Calc, as goes a step further. YASGUI keeps track of queries and users can cross-reference variables, aggregate on e.g. endpoints you have accessed in the past, and allows frequency counts or values, and plot these aggregated you to restore these queries from your local history. numbers on charts. The features described above are all bundled in the Most of the YASR visualizations are available for YASGUI JavaScript library. For those publishers that download, enabling offline re-use. The download op- require more elaborate features going beyond the pos- tions include CSV for tabular data, the as-is raw re- sibilities of client-side JavaScript, we provide a server- sponse, or the SVG renderings of charts. Just as YASQE, YASR aims to be as extendable and 26See https://github.com/jiemakel/visu configurable as possible. Publishers can easily toggle 27See http://doc.yasgui.org 8 Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients side back-end as well. This light-weight back-end is impact the YASGUI family has had on the landscape written in JavaScript and runnable as a NodeJS server. of Linked Data management. As mentioned in section 2.2, client-side web ap- plications such as the FLINT SPARQL Editor are 4.1. Integration in Triple-stores endpoint independent, but only work for endpoints that enable Cross-Origin Resource Sharing (CORS)28. Making YASQE and YASR available as highly con- To overcome this limitation, YASGUI (optionally) in- figurable, lightweight, JavaScript-based front-ends for cludes this server-side proxy to access SPARQL end- SPARQL interfaces has turned out to significantly points which are otherwise not accessible via client- lower the threshold for bundling YASGUI function- side JavaScript. For endpoints which do support cross ality with triple stores. YASQE and YASR have now domain JavaScript, YASGUI executes the queries from made their way into three major triple stores: the clients side directly. Apache Jena The YASGUI server also acts as a URL shortener. Includes both YASQE and YASR in the new Web developers deploying YASGUI can choose to use Apache Jena-Fuseki 2 SPARQL interface this shortener, or configure YASGUI to use one of the OpenRDF Sesame available web URL shorteners. The rational behind a Includes YASQE as its main query editor. custom YASGUI shortener is that common web short- ClioPatria eners can suffer from link rot (they might disappear), Includes both YASQE and YASR as query editor they often require API key access, are not accessible from client-side JavaScript directly, and often have a 4.2. Integration in Other Applications limitation to the number of characters in a URL. 3.3.2. Web Service The YASGUI family reduces the effort required Other than enabling Linked Data publishers to im- from other developers to program against the idiosyn- prove access to their SPARQL endpoints, we provide a crasies of SPARQL endpoints and SPARQL responses. running YASGUI instance as a web service as well29. It thereby enables developers of SPARQL applica- This YASGUI instance, which includes a back-end tions to kick-start their user interfaces by integrating server for CORS-disabled endpoints, presents users or building on top of the YASGUI tools. Until now, we with a single usable editor for all SPARQL endpoints. have been able to find the following usage of our work This web service functions much like a local appli- in five other applications: cation: just as the regular YASGUI library, it can ac- Gosparqled cess SPARQL endpoints installed locally. Even more, An extension of YASQE, which provides (via a in modern browsers, this application is still accessible back-end server) smart, context-dependent auto- when disconnected from the internet. completions for properties and classes. Visu The first library to extend YASR with Google 4. Impact Chart functionality. Now published together with the YASQE editor. In our earlier work [13] we voiced our expectation Snapper 30 that YASGUI will fill a void in the tool chain of Linked An online Turtle and N-Triples editor, connect- Data consumers and publishers. As in the previous sec- ing to APIs which implement the SPARQL Graph tions, we tried to substantiate this expectation by giv- Store Protocol. The tool uses several SPARQL ing an in depth comparison with other, similar tools, queries to e.g. fetch items for auto-completions. and showing that YASGUI is substantially more fea- Snapper allows users to configure such queries by ture rich than the competition. Nonetheless, it was just means of YASQE. an expectation: because YASGUI hadn’t been around Sefarad 31 for very long, we could not show that this expectation A data exploration tool-set which includes a rang true. This section gives a brief overview of the SPARQL editor for templated SPARQL queries.

28See http://www.w3.org/TR/cors/ 30See http://jiemakel.github.io/snapper 29See http://yasgui.org 31See https://github.com/gsi-upm/Sefarad/ Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients 9

This SPARQL editor is based on YASQE and in a canonical compressed N-Triples/N-Quads YASR format. The corresponding meta-data and prove- Brwsr 32 nance are stored in a SPARQL endpoint, and ac- A lightweight Linked Data browser which incor- cessible via both YASQE and YASR. porates YASQE and YASR to provide SPARQL MetaLex 38 access The MetaLex [11] service hosts almost all Dutch national regulations as Linked Data, and pub- 4.3. Publishers lishes these via a SPARQL endpoint. The SPARQL endpoint is accessible via the YASGUI interface. YASGUI components are used by a large number CEDAR project 39 of publishers, in both open and closed, and non-profit The CEDAR project publishes Dutch census data and for-profit environments. Below we present a (non- via a SPARQL endpoint, accessible via YASQE exhaustive) list of Linked Data publishers that use and YASR. YASGUI components. We excluded those publishers KennisNet that already publish YASGUI components via their de- Kennisnet is the public IT partner for educational fault endpoint interface, as discussed in Section 4.1. organizations in The Netherlands. It uses YAS- GUI internally for accessing their SPARQL end- HealthData.gov 33 point. A US federal government website managed by Building Bits 40 the department of Health & Human Services. Ac- A Semantic Web technology company which, for cess to the healthcare data is provided via YAS- one of their customers, uses YASQE internally for GUI. accessing their triple-store. Smithsonian 34 Kennisnet 41 The Smithsonian American Art museum pub- Kennisnet is a Dutch institute responsible for the lishes art and artwork collections data as Linked basic education IT infrastructure. Some of the Open Data [18]. YASGUI is used to provide ac- data that Kennisnet manages and publishes are cess to the corresponding SPARQL endpoint. exposed via regular APIs, but internally accessi- ZBW 35 ble via SPARQL, using YASQE and YASR The German National Library of Economics pro- vides access to catalog information using YASQE 4.4. Use by Consumers and YASR. Linked Open Vocabularies 36 Linked Open Vocabularies is a vocabulary cat- Netherlands alog, which publishes their data via SPARQL 23.5% 24.8% United States endpoint and via regular APIs. As discussed in France section 3, YASQE uses the LOV API for auto- Germany completion functionality. In turn, LOV uses both United Kingdom YASQE and YASR to provide access to their Spain Italy SPARQL endpoint. 24% Japan 37 LOD Laundromat 8.1% Other The LOD Laundromat [4] service crawls the LOD Cloud, and re-publishes Linked Datasets Fig. 4. Locations of YASGUI users

32See https://github.com/Data2Semantics/brwsr The YASGUI web service is publicly available since 33See http://www.healthdata.gov/sparql October 2012, and we have gathered usage statistics 34See http://americanart.si.edu/collections/ search/lod/about/sparql.cfm 35See http://zbw.eu/labs/en/blog/ 38See http://doc.metalex.eu/query publishing-sparql-queries-live and http: 39See http://lod.cedar-project.nl/cedar/data. //zbw.eu/beta/sparql-gui/ html 36See http://lov.okfn.org/dataset/lov/sparql 40See http://www.buildingbits.nl/ 37See http://lodlaundromat.org/sparql/ 41See http://www.kennisnet.nl/ 10 Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients from January 2013 onwards. Over this period, we these are rather austere clients with little focus on us- tracked (if permitted to do so) at least 5.200 unique ability, extendability, and feature completeness. Most visitors from over 80 countries (See figure 4), who ex- striking is that their functionality is largely comple- ecuted 90.000 queries on around 600 endpoints. mentary: we have the SNORQL client for associative We observe that the use of the YASGUI web service browsing, the Squebi editor for highlighted queries, is increasing: we tracked 4.300 user sessions in 2013, several libraries which are accessible as SPARQL in- which doubled to 8.400 user sessions in 2014. Note terface libraries, and other tools whose major selling that these are conservative statistics, as only 58% of point is access to any SPARQL endpoint. This large the users allowed us to track their information. collection of tools, each with their own specific ‘area of expertise’, makes it hard for consumers to find and 4.5. Research Impact use the right tool for their task, and makes it time consuming for publishers to improve access to their As the USEWOD challenge [5] shows, query logs SPARQL endpoint. Increasing user accessibility to the enable research in the area of the use of Linked Data. Semantic Web would require a tool-set which com- This challenge distributes server SPARQL query logs bines as much of these features as possible. from 6 endpoints (including DBpedia and Bio2RDF), This is why we introduced the YASGUI family, tar- and has seen an impact beyond the workshop as several get at both data publishers and data consumers. The research papers have been published using the USE- JavaScript libraries of YASQE, YASR and YASGUI WOD query log collection. The YASGUI service query logs contribute to this enable data publishers to easily improve access to data. research area for two reasons. First, the YASGUI logs The YASGUI web service allows Linked Data con- are solely written by real persons, allowing us to distin- sumers to access any SPARQL endpoint – both remote guish man-made queries from (routine) machine use. and local –, and includes all the features present in This is something that cannot be done using server the JavaScript libraries such as auto-completions, end- logs alone. Secondly, the USEWOD logs cover only 6 point lookup, persistent user sessions, and syntax vali- public endpoints, while the YASGUI logs cover both dation. In some areas there is room from improvement: open and closed Linked Data; i.e. all endpoints listed we plan on extending the visualizations in YASR, and by SPARQLES as well as local, private endpoints. making them more intuitive to create. Additionally, we Using the YASGUI logs, we were able to perform plan to improve the YASQE auto-completions using a preliminary study of the structural properties of the the dataset itself, presenting users with more suitable Linked Data cloud [15]. We also quantified the differ- suggestions. ences between server query logs as published by USE- Since its launch more than two years ago, three WOD and the YASGUI query logs [14], and showed triple-stores integrated YASGUI in their endpoint how these server logs are strongly biased by machine front-end, and several developers either adapted or in- queries, and differ greatly from those written by hu- cluded YASGUI components in new Linked Data ap- mans (i.e. the YASGUI logs). These studies would not plications. A large number of publishers use YASGUI have been possible without YASGUI. components as their SPARQL endpoint interface, and To provide broader access to this unique research as- close to a hundred thousand queries have been exe- set, we made the logs publicly available via the 2015 cuted via the YASGUI web service on hundreds of USEWOD challenge. The USEWOD log collection SPARQL endpoints. The logs collected from this web now has a more balanced representation of machine service proved to be a useful data source for further and man-made queries, covering the whole (offline and research. This shows that the YASGUI family made a online) LOD Cloud. large impact on the landscape of Linked Data manage- ment. 5. Conclusion

The size and complexity of the Semantic Web make Acknowledgements it difficult to query, and requires tools with a strong fo- cus on usability. In this paper we presented the state of This work was supported by the Dutch national pro- the art in SPARQL user interfaces, and showed most of gram COMMIT. Laurens Rietveld and Rinke Hoekstra / The YASGUI Family of SPARQL Clients 11

References Harith Alani, Jamie Taylor, Abraham Bernstein, Lalana Ka- gal, Natasha Fridman Noy, and Eva Blomqvist, editors, Inter- [1] Anupriya Ankolekar, Markus Krötzsch, Thanh Tran, and national Semantic Web Conference, volume 7032 of Lecture Denny Vrandecic. The Two Cultures: Mashing up Web 2.0 Notes in Computer Science, pages 128–143. Springer, 2011. and the Semantic Web. In WWW ’07: Proceedings of the 16th [12] Frederik Hogenboom, Viorel Milea, Flavius Frasincar, and international conference on World Wide Web, pages 825–834, Uzay Kaymak. RDF-GL: A SPARQL-Based Graphical Query New York, NY, USA, 2007. ACM Press. Language for RDF. In Richard Chbeir, Youakim Badr, Ajith [2] Thomas Baker, Pierre-Yves Vandenbussche, and Bernard Abraham, and Aboul-Ella Hassanien, editors, Emergent Web Vatant. Requirements for vocabulary preservation and gover- Intelligence: Advanced Information Retrieval, Advanced In- nance. Library Hi Tech, 31(4):657–668, 2013. formation and Knowledge Processing, pages 87–116. Springer [3] Robert Battle and Edward Benson. Bridging the Semantic Web London, 2010. and Web 2.0 with Representational State Transfer (REST). Web [13] Laurens Rietveld and Rinke Hoekstra. YASGUI: Not Just An- Semantics: Science, Services and Agents on the World Wide other SPARQL Client. In Philipp Cimiano, Miriam Fernández, Web, 6(1):61–69, February 2008. Vanessa Lopez, Stefan Schlobach, and Johanna Völker, editors, [4] Wouter Beek, Laurens Rietveld, Hamid R. Bazoobandi, Jan The Semantic Web: ESWC 2013 Satellite Events, volume 7955 Wielemaker, and Stefan Schlobach. LOD Laundromat: A of Lecture Notes in Computer Science, pages 78–86. Springer Uniform Way of Publishing Other People’s Dirty Data. In Berlin Heidelberg, 2013. Peter Mika, Tania Tudorache, Abraham Bernstein, Chris [14] Laurens Rietveld and Rinke Hoekstra. Man vs. Machine: Welty, Craig A. Knoblock, Denny Vrandecic, Paul T. Groth, Differences in SPARQL Queries. In Bettina Berendt, Laura Natasha F. Noy, Krzysztof Janowicz, and Carole A. Goble, edi- Hollink, Markus Luczak-Rösch, Knud Möller, and David Val- tors, Semantic Web Conference, volume 8796 of Lecture Notes let, editors, Proceedings of the 4th USEWOD Workshop on Us- in Computer Science, pages 213–228. Springer, 2014. age Analysis and the Web of Data, ESWC, Crete, Greece, 2014. [5] Bettina Berendt, Laura Hollink, Vera Hollink, Markus Luczak- [15] Laurens Rietveld and Rinke Hoekstra. YASGUI: Feeling Rösch, Knud Möller, and David Vallet. Usage Analysis and the the Pulse of Linked Data. In Krzysztof Janowicz, Ste- Web of Data. In ACM SIGIR Forum, volume 45, pages 63–69. fan Schlobach, Patrick Lambrix, and Eero Hyvönen, editors, ACM, 2011. EKAW, volume 8876 of Lecture Notes in Computer Science, [6] Jethro Borsje and Hanno Embregts. Graphical Query Com- pages 441–452. Springer, 2014. position and Natural Language Processing in an RDF Visu- [16] Martin G. Skjæveland. Sgvizler: A JavaScript Wrapper for alization Interface. Erasmus School of Economics and Busi- Easy Visualization of SPARQL Result Sets. In Elena Sim- ness Economics, Vol. Bachelor. Erasmus University, Rotter- perl, Barry Norton, Dunja Mladenic, Emanuele Della Valle, dam, 2006. Irini Fundulaki, Alexandre Passant, and Raphaël Troncy, edi- [7] Jeen Broekstra, Arjohn Kampman, and Frank van Harmelen. tors, The Semantic Web: ESWC 2012 Satellite Events, volume Sesame: A Generic Architecture for Storing and Querying 7540 of Lecture Notes in Computer Science, pages 361–365. RDF and RDF Schema. In Ian Horrocks and James Hendler, Springer Berlin Heidelberg, 2015. editors, The Semantic Web – ISWC 2002, volume 2342 of Lec- [17] Paul R. Smart, Alistair Russell, Dave Braines, Yannis ture Notes in Computer Science, pages 54–68. Springer Berlin Kalfoglou, Jie Bao, and Nigel. Shadbolt. A Visual Approach Heidelberg, 2002. to Semantic Query Design Using a Web-Based Graphical [8] Carlos Buil-Aranda, Aidan Hogan, Jürgen Umbrich, and Query Designer. In Aldo Gangemi and Jérôme Euzenat, edi- Pierre-Yves Vandenbussche. SPARQL Web-Querying Infras- tors, Knowledge Engineering: Practice and Patterns, volume tructure: Ready for Action? In Harith Alani, Lalana Kagal, 5268 of Lecture Notes in Computer Science, pages 275–291. Achille Fokoue, Paul Groth, Chris Biemann, Xavier Parreira, Springer Berlin Heidelberg, 2008. Josiane, Lora Aroyo, Natasha Noy, Chris Welty, and Krzysztof [18] Pedro A. Szekely, Craig A. Knoblock, Fengyu Yang, Xuming Janowicz, editors, The Semantic Web – ISWC 2013, volume Zhu, Eleanor E. Fink, Rachel Allen, and Georgina Goodlan- 8219 of Lecture Notes in Computer Science, pages 277–293. der. Connecting the Smithsonian American Art Museum to Springer Berlin Heielberg, 2013. the Linked Data Cloud. In Philipp Cimiano, Oscar Corcho, [9] Stephane Campinas, Thomas E. Perry, Diego Ceccarelli, Re- Valentina Presutti, Laura Hollink, and Sebastian Rudolph, ed- naud Delbru, and Giovanni Tummarello. Introducing RDF itors, ESWC, volume 7882 of Lecture Notes in Computer Sci- Graph Summary with Application to Assisted SPARQL For- ence, pages 593–607. Springer, 2013. mulation. In Abdelkader Hameurlain, A Min Tjoa, and Roland [19] Martins Zviedris and Guntis Barzdins. ViziQuer: A Tool to Wagner, editors, DEXA Workshops, pages 261–266. IEEE Explore and Query SPARQL Endpoints. In Grigoris Anto- Computer Society, 2012. niou, Marko Grobelnik, Elena Simperl, Bijan Parsia, Dimitris [10] S. Harris, N. Lamb, and N. Shadbolt. 4store: The design and Plexousakis, Pieter De Leenheer, and Jeff Pan, editors, The implementation of a clustered rdf store. In Proceedings of the Semanic Web: Research and Applications, volume 6644 of 5th International Workshop on Scalable Semantic Web Knowl- Lecture Notes in Computer Science, pages 441–445. Springer edge Base Systems (SSWS2009), pages 94–109, Chantilly, VA, Berlin Heidelberg, 2011. USA, 2009. [11] Rinke Hoekstra. The MetaLex Document Server - Legal Doc- uments as Versioned Linked Data. In Lora Aroyo, Chris Welty,