|Initial release||1 September 2018|
0.7.6 / 9 March 2020
Sparql-Engine implements the complete SPARQL 1.1 query language and the SPARQL 1.1 Update protocol. It rely on the Volcano Model for evaluating SPARQL queries. It also provides support for non-standard SPARQL features (Full-Text Search, Query Hints, Extended Aggregations functions) inspired by the Blazegraph triple store.
- Supports the SPARQL 1.1 query language and the SPARQL 1.1 Update protocol.
- Supports the evaluation of all SPARQL property Paths.
- Supports Full-Text Search queries.
- Supports Custom SPARQL functions.
- Supports Semantic Caching, to speed up query evaluation of recurrent patterns.
- Supports Federated SPARQL queries using SERVICE clauses.
The framework is built following the OOP programming paradigm, with three main entities: the Graph, PlanBuilder and Pipeline classes.
The abstract class Graph encapsulates the logic of an RDF Graph over an arbitrary storage system, e.g., a filesystem or a relational-database. It provides methods for inserting and deleting RDF triples, and also for searching RDF triples matching a triple pattern. To implement their own SPARQL query engine, users need to create a subclass of Graph and implement these methods.
The PlanBuilder class is responsible for building physical query execution plans for executing SPARQL queries. It follows a Builder Design Pattern and defines stages builders to generates operators for executing all types of SPARQL operations. For example, the OrderByStageBuilder is invoked when the PlanBuilder needs to evaluate an ORDER BY modifier.
The Pipeline class (and its subclasses) is the main component used to evaluate all SPARQL operations under the Volcano model. It defines basic operations (map, filter, etc) that can be used to implements physical query operators to manipulate intermediate results and evaluate SPARQL queries. By default, the framework uses an implementation based on RxJS, but users can switch to their own implementations at will.
The SaGe software uses the Sparql-Engine framework to provides a widget for executing SPARQL queries in the browser.
|Version number||Release date||Significant changes|
|0.7.0||17 February 2020||Add automatic caching of Basic Graph Pattern evaluation using the Semantic Cache algorithm, add native support for the bound join algorithm, reworked the SPARQL expressions systems to uses the RDF.js data model to represent RDF terms.|
|0.6.0||22 January 2020||Add support for Full-Text Search SPARQL queries, allowing users to execute approximate string matching on RDF Terms retrieved by SPARQL queries, following an approach similar to Blazegraph.|
|0.5.0||12 May 2019||Added support for evaluation of all SPARQL Property Paths, with corresponding W3C tests. This support was developed by Arthur Trottier, Charlotte Cogan and Julien Aimonier-Davat, Master students at the Unversity of Nantes.|
|0.4.0||28 February 2019||Add the support for declaring custom SPARQL functions, implemented by @dwhitney.|
|0.3.0||8 November 2018||Major architectural rework, introducing the PlanBuilder and PipelineEngine classes.|
|0.2.1||19 September 2018||Added support for SPARQL 1.1 Update queries and SPARQL 1.1 Federated queries.|
|0.1.0||1 September 2018||Initial release, with complete support of the SPARQL 1.0 query language.|
In the media
- sparql-engine on npm
- Using the SPARQL Engine
- Callidon/sparql-engine: A framework for building ... - GitHub
- "SPARQL 1.1 Query Language". W3C. Retrieved 1 March 2020.
- "SPARQL 1.1 Update". W3C. Retrieved 1 March 2020.
- Graefe, Goetz; McKenna, William J. (1993). "The Volcano Optimizer Generator: Extensibility and Efficient Search". Proceedings of the Ninth International Conference on Data Engineering: 209–218. doi:10.1109/ICDE.1993.344061.
- "SPARQL 1.1 Property Paths". W3C. Retrieved 1 March 2020.
- Ren, Qun; Dunham, Margaret H.; Kumar, Vijay (2003). "Semantic Caching and Query Processing". EEE Transactions on Knowledge and Data Engineering. 15 (1): 192–210. doi:10.1109/TKDE.2003.1161590.
- "SPARQL 1.1 Federated Query". W3C. Retrieved 1 March 2020.
- "SaGe Website". Université de Nantes. Retrieved 1 March 2020.
- Schwarte, Andreas; Haase, Peter; Hose, Katja; Schenkel, Ralf; Schmidt, Michael (2011). "FedX: A Federation Layer for Distributed Query Processing on Linked Open Data". The Semantic Web: Research and Applications - 8th Extended Semantic Web Conference (ESWC 2011). 2: 481–486. doi:10.1007/978-3-642-21064-8_39.
- "RDF.js Data Model". RDF.js specifications. RDF.js W3C Community Group. Retrieved 1 March 2020.
This article "Sparql Engine" is from Wikipedia. The list of its authors can be seen in its historical. Articles taken from Draft Namespace on Wikipedia could be accessed on Wikipedia's Draft Namespace.