New "Language and labels" configuration element to specify
properties (e.g., rdfs:comment) and language tags
for the tooltip contents of entities and concepts. The default
is to use URIs. There is also an option to have void
New "Language and labels" configuration element to specify
(e.g., rdfs:seeAlso, foaf:homepage)
for the hyperlinks on entities. The default is to use the
entity URI (according to the Linked Data principle). There is
also an option to have void hyperlinks.
New "Endpoint and queries" configuration element to avoid
very long queries in the retrieval of suggestions.
New ontology configuration for using materialized
transitive closures when computing hierarchies. The
Sparklis-specific property lis-owl:transitiveOf
must be used to relate property P1 to
property P2, where P1 holds the materialized
transitive closure of P2.
Link to the Github repo in the Learn menu. Github
is the new place where to report issues.
Download of the table of results as a CSV file. There are
options to control whether URIs or labels are output, and the
maximum number of results to download.
The navigation history is recorded in the browser storage
for each visited SPARQL endpoint. It is accessible by clicling
button History in the navigation toolbar at the top,
and from there, previous queries can be opened. It is possible
to clear the history for the current endpoint.
When the focus is on RDF lists, a
pseudo-property rdf:item is suggested to reach
all the list elements. It is an alias for the property
Release of source code under Apache 2.0 licence, and
client web files under CC-BY-NC license. The source code is
with instructions for use and reuse.
New menu Issues and command to create and post an
issue. Use it to report any bug or problem you encounter when
using Sparklis. You can also use it to express feature
Three new filtering operators: "is exactly", "starts
with", "ends with". They allow more precise filtering on
strings, concepts, and entities.
Highlight (in yellow) of all UI elements that can be
selected to move the query focus or modify the query.
Buttons on top of suggestion lists as another way for
triggering the multi-selection mode. The number of selected
items, and applicable operators are shown in a yellow
When filtering suggestions results in an empty list, the
elements that match the filtering condition but not the query
(i.e. they would lead to empty results) are shown striked
through and cannot be selected.
New configuration option (in Advanced features) to choose
whether pressing ENTER in filtering inputs should insert the
filtering condition in the query (default) or trigger the
filtering of suggestions (instead of input changes by
Nested tables as a new result view, and the new default
one. It presents results in a more structured and legible way,
reflecting the dependencies between the result columns
(i.e. between the related entities in the query).
Several improvements for the Wikidata endpoint that make
it much practical to explore. In particular, use of Wikidata
search API for efficient entity filtering. See the 10 queries
added to the example page.
Invalid filter inputs on top of suggestion lists are shown
New button / below lists of suggestions
(concepts and terms) to turn hierarchies upside-down. This
replaces the former suggestion (inverse hierarchy)
New configuration option in the Ontology panel to
restrict suggested classes and properties to those that belong
to the specified meta-classes (to be defined by the
dataset). This allows to define different user profiles,
e.g. basic vs advanced profiles.
Syntactic modifier suggestions, i.e. those that are
neither aggregators nor functions, are now accessible at the
end of the query focus as a dropdown menu triggered by
notably includes coordinations (and, or), modalities (not,
optionally), and solution modifiers (highest-to-lowest,
Next to column headers, Sparklis now displays the number
of unique values for that column. If the computed query
results are partial, then a plus sign is shown, and the number
can be clicked in order to display the exact and complete
number of unique values.
More results can be retrieved beyond the maximum number of
results, simply by continuing to click on the 'next page' icon
of the table of results.
The browser URL now always reflect the current navigation
state (endpoint, configuration, query, and focus). It is
therefore possible to use the bookmarks facilities of the
browser to record and retrieve Sparklis queries. The
'permalink' button simply returns a shorten version of that
In the Language and labels configuration panel
several properties and several language tags can be given in
each field, in preference order. Separate them with commas,
and use the empty string for labels with no language tag.
New configuration option to distinguish two limits: for
the number of query results, and for the number of results to
use as a sample for computing the class and property
suggestions. This allows to increase the number of displayed
results without increasing the response time for class and
Support for date-time and duration arithmetics
(subtracting two dates, adding a duration to a date,
etc.). BEWARE: not supported by all triplestores (Jena/fuseki
does support it).
New switches at the bottom of suggestion lists to choose
their ordering between decreasing frequency ordering (default)
and logical/lexicographic ordering.
The property schema:logo can be used to add a
small icon to the labelling of entities, classes and
properties. Activate this feature in the Presentation
configuration panel, and set the icon height.
The property schema:position can be used to
control the ordering of entities, classes, and properties in
suggestion lists. Activate this feature in
the Presentation configuration panel.
The query focus is now recorded in permalinks.
New configuration option to generate or not short URLs for permalinks.
Dutch version of the interface (by Erwin Folmer, Kadaster NL).
Support for Wikidata statements and qualifiers, based on the support for n-ary relationships. Look for Wikidata in the list of endpoints, and the configuration option in Ontology.
Support for n-ary relationships (e.g., in the Mondial dataset, countries have languages at some percentage), if the related Ontology option is activated. The relevant suggestions are displayed in the left column along with classes and properties, and are colored in cyan. The support assumes the reification of n-ary relationships by statements or events. Two Sparklis-specific schema properties can be used to let Sparklis know about n-ary relationships in a dataset: nary:subjectObject and nary:eventObject where the prefix nary: stands for the namespace http://www.irisa.fr/LIS/ferre/vocab/nary#. The former is used to relate the event-to-subject property to the event-to-object property; and the latter is used to relate the subject-to-event property to the event-to-object property. For example, in the Mondial dataset, we have added the triple mondial:ofCountry nary:subjectObject mondial:onLanguage. Qualifier properties, i.e. other properties that apply to the event, are detected automatically by Sparklis and suggested as prepositional phrases.
The Sparklis-specific property rdfs:inheritsThrough enables to declare that the values of some property P are hierarchically organized by a property H. Each time property P is inserted into the query, a (hierarchy) in construct is automatically inserted based on property H. It has a similar effect to type inheritance through the class hierarchy. In fact, triple (rdf:type, rdfs:inheritsThrough, rdfs:subClassOf) has the same effect as RDFS type inheritance. Examples of use are triples (ex:livesIn, rdfs:inheritsThrough, ex:subPlaceOf) (geographical locations), and (ex:hasTopic, rdfs:inheritsThrough, skos:broader) (topics).
Support for hierarchies of entities (e.g. taxonomies, locations, historical periods, genealogies). The modifiers (hierarchy) in and (inverse hierarchy) in allow to use the last selected property as a hierarchical relationship in order to display the values of that property as a tree. The latter modifier displays the tree upside-down. When a value is selected, it is equivalent to select all values under (above if inverse hierarchy) the selected value in the tree.
Full-text search based on Jena's text:query or Virtuoso's bif:contains. See option in Language and labels configuration panel. Of course, this assumes appropriate text indices have been built on the endpoint (see instructions of the target triplestore).
Multiple selection of suggestions is now available. Use Ctrl+Click to define the multiple selection, then click one of the suggested buttons at the top of a suggestion list to choose a coordination of the selected suggestions (... and ... or ... or ...).
New result view: slideshow of images and videos appearing in the table of results. The contents of the corresponding table line is displayed under the image to provide context for the image/video.
Buttons ▼/► at the bottom of suggestion lists to expand/collapse all concepts/entities.
New user interface based on Bootstrap for a more modern look-and-feel, and a responsive design.
Generation of short URLs for permalinks, based on bit.ly.
Support for named graphs. Two new options allow to specify a named graph as the default, and the named graph that contains the dataset schema. For a more fine-grained control, new constructs according to ... and according to which there is ... can be inserted into the query (the counterpart of the GRAPH construct of SPARQL).
New result view: map showing the geolocation of entities in the table of results. This requires the insertion of pseudo-property has geolocation on the entities to be displayed on the map. That pseudo-property is suggested when well-known properties are defined for both latitude and longitude (vocabularies: wgs84, vcard, schema.org).
Classes and properties can now be organized into hierarchies (assumes materialized inference in the dataset). Check options on the Ontology configuration panel.
New modifier to duplicate the subquery under focus.
New modifier a choice between ... in expressions to allow for non-deterministic expressions (i.e. expressions that have several possible values). This was found useful to define custom aggregation dimensions.
New option to filter out the suggestions whose URI matches some regexp.
Spanish version of the interface (by José Enrique Ortiz Vivar).
Integration of YASGUI as an editable view of the SPARQL translation of the Sparklis query.
New option to send GET requests instead of POST requests. The latter is to be prefered (and the default) because it better supports long queries.
New option to send credentials in HTTP requests. Required for endpoints with access control.
Implicit conversions on RDF literals in computations for better robustness w.r.t. poorly datatyped datasets.
Support for SPARQL computations: expressions, aggregations, GROUP BY, BIND. This appears in Sparklis as a lot of new modifiers for inserting functions, operators, aggregators, and for choosing grouping criteria. Literal values can be input in the list of suggested entities, with input fields according to the expected datatypes. Complex combinations and compositions of the SPARQL computations features are covered. See the Examples page.
New option to specify a SPARQL endpoint to be used as a proxy to query a target SPARQL endpoint that is not CORS-enabled. A default endpoint at IRISA is provided.
French version of the interface.
Configuration options put into permalinks.
Options in the Language and labels configuration panel to choose a property and language tag for the labels of classes, properties, and entities.
Option to deactivate the collection of usage statistics.
Options to configure the maximum number of computed results, and the maximum number of suggested classes and properties.
Configuration panel to adapt to the endpoint, and customize the presentation of contents.
Drop-down list of SPARQL endpoints.
Improved verbalization from URIs (uncamelizing, replacing underscores by spaces, etc).
Support for blank nodes, avoiding to inject them into SPARQL queries.
Pretty-printing of generated SPARQL queries: indentation, mnemonic variables, automated definition of namespace prefixes.
Small icons to open URIs (in query, suggestions, and results) in another browser tab.
Column headers in results are verbalized and can be clicked to change focus.
Co-references in suggestions and queries. Enables to build graph patterns with cycles.
New construct has relation from/to... to allow for crossing any property, and for moving the focus on the predicate position of a triple.
Full-text search at initial step by using bif:contains (available in Virtuoso).
Coordinations of noun phrases (and, or, not, optionally), as a way to factorize queries and make them more natural and concise.
In filters, different comparators for numbers and strings (including dates/times).
New filters for matching the language tag and the datatype.
Introduction of filters on suggestion lists, based on string matching and comparators.
Support for simple aggregations: one or several columns can be aggregated, grouping by the other columns. A column can be ignored in the results with the modifier any.
New constructs highest-to-lowest, lowest-to-highest can be applied to an entity in the query to sort its values in the table of results.
Support for UNION, OPTIONAL, NOT EXISTS with the coordination of verb phrases (and, or, not, optional).
Support for ASK queries.
The SPARQL endpoint is shown, and can be changed dynamically.
Navigation history, and associated controls: back, forward, home.
Addition of tooltips for contextual help.
The focus can be moved by clicking different parts of the query, and its content can be removed from the query.
Display of media contents in the table of results.
Dynamic filtering of suggestion lists by keyword inputs.
Computation of suggestions right from the endpoint.
First version allowing to build simple queries, evaluate them at DBpedia, and display a table of results.