Skip to content

Latest commit

 

History

History
128 lines (106 loc) · 14.1 KB

File metadata and controls

128 lines (106 loc) · 14.1 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[unreleased]

Added

  • Support for ChronicleMap-based persistent cache for federation requests (including cardinality requests), with support for cache replacement and invalidation policies (546).
  • CLI program to issue queries to the HeFQUIN service (#616, #643).

Changed

  • Pushing projection variables and distinct into requests to SPARQL endpoints (#600, #629, #638, #639, #642).
  • Logging for query planner (#636, #637).
  • Refactoring of the context objects that are passed around during query processing (#645).
  • Fixing example vocabulary mapping for Wikidata to make the example query work (#640).
  • Removes ChronicleMap-based cardinality-specific cache implementation (ChronicleMapCardinalityCache) and related files (546).
  • Remove wrapped response from CardinalityResponseImpl (#628).

Planned for Next Release

  • Persistent cache for requests (#546, #590, #599).
  • SHACL shapes for the federation description vocabulary (#537).

[0.0.11] - 2026-05-19

Added

  • Adding a limit on the number of parallel requests that are executed against any particular endpoint/server at any point in time (#556).
  • Support for MINUS directly within the HeFQUIN engine (#586, #587, #592).
  • Support for DISTINCT directly within the HeFQUIN engine (#547, #550, #555, #558).
  • Support for projection directly within the HeFQUIN engine (#566, #568, #574).
  • Adding a new hash join algorithm and a (logical) left join operator; removing the right join operator (#561).
  • Adding a logical plan rewriting that removes subplans that are guaranteed to produce the empty result (#584, #593).
  • Adding a logical plan rewriting that pushes project operators (#580).
  • Initial version of a CLI tool to use the RML component of HeFQUIN explicitly (#601).

Changed

  • Reorganization of the vocabulary for federation descriptions (#597, #615).
  • Makes the parallel version of VALUES-based bind join the default bind-join variant (#623).
  • Refactoring the code of the logical plan rewriting rules to use the visitor pattern (#560, #569, #571, #575).
  • More effective filter push down and cardinality estimation for the case of a filter over a fixed-solmap operator (#588).
  • Extending filter push down with the option to push also into the pattern of a gpAdd operator (#589).
  • Bug fix in the executable operator for BIND (#612).
  • Separation of logical and physical plans for mapping algebra (#581, #596).
  • Fix in RML-to-algebra translation algorithm (#610).
  • Fix in code that expands URI templates (#611).
  • Removes unused provenance-related methods from DataRetrievalResponse (#582).
  • Removes deprecated federation access manager (#626).
  • Changes some of the example queries to use the QLever SPARQL endpoints for DBpedia and Wikidata (#620, #621, #622).
  • Logging for executable operators (#608, #609, #614, #617, #618, #619, #624, #625).

[0.0.10] - 2026-03-25

Added

  • Support for the UNFOLD operator for CDT literals (#539).
  • Support for multiple --fd arguments for the CLI tools, to split the federation description into multiple files (#529, #534, #538).
  • New arguments for the CLI tool to specify files into which the query plans and the statistics should be printed (#531, #536).

Changed

  • Bug fix: cache-related statistics for TPF have not been recorded correctly by the federation access manager (#548).

[0.0.9] - 2026-03-07

Added

  • Support for optional parameters in the template IRIs for REST APIs (#493).
  • Support for creating CDT literals in the RML processing component (#513).
  • Adding an implementation of the batch-based bind-join algorithm for SPARQL endpoints that issues the bind-join requests without blocking, handling the processing of their responses in parallel (#499).
  • Adding a dedicated folder with a few relevant example queries (#514, #517).

Changed

  • Change to Hydra vocabulary for the template IRIs of REST APIs in federation descriptions (#493).
  • Updated request processors to use an HTTP client provider and shared connection pools (#495).
  • Adding unique IDs for plans and sub-plan, and using these in the plan printers (#500).
  • Some clean up in the classes for plans and for operators (#500).
  • More effective implementation of executable operators that assume that at least a minimum number of input solution mappings are available to process (#502).
  • Fixes and improvements related to Web API querying and the related RML functionality (#502, #513, #518, #519, #520, #522).
  • Fixes of inconsistencies and minor mistakes in the vocabulary for federation descriptions (#523).
  • Bug fix in the base implementation of the bind-join algorithm, which did not correctly implement bag semantics (#498).
  • Bug fix in cardinality-based join reordering (#501).
  • Bug fix in join cardinality estimation (#501).

[0.0.8] - 2026-01-14

Added

  • Initial support for RML-wrapped REST endpoints as federation members (#486).
  • Adding a 'numberOfSolMapsRetrievedPerReqOp' entry to the stats of bind joins (#489).

Changed

  • Reimplementation of the printers for logical and for physical plans (#487).
  • Bux fix: 'equals' comparison of logical and also of physical plans must take the ID of the root operator into account (#488).

[0.0.7] - 2025-11-03

Added

  • Basis for proper management of query-planning-related information (#455, #456, #461).
  • Extending the text-based plan printers to include information about expected variables at each level of the plan (#457).
  • Adding the bound join algorithm from the FedX paper (#458).
  • Adding basic printing of executable plans (#473).
  • Adding the option to specify in the config file which logical-to-physical plan converter and which logical-to-physical operator converter should be used, including which physical operators they should consider (#481).

Changed

  • Merging the logical operators tpAdd, bgpAdd, and gpAdd into just one: gpAdd; likewise for tpOptAdd, bgpOptAdd, and gpOptAdd (#454).
  • Removing the old StatsPrinter in favor of the new JSON-based one (#460).
  • Changing the cardinality-based join ordering heuristic to avoid cardinality requests for plans without joins (#465).
  • Removing the "GreedyBasedReordering" heuristic from the default sequence of heuristics of the logical optimizer (#467).
  • Upgrading the code base to version 5.5.0 of Jena (#478).
  • Reorganizes completely how the federation access manager works (#480).

[0.0.6] - 2025-06-30

Added

  • Support for multiple VALUES clauses (#417).
  • Additional endpoint of the HeFQUIN service to request query processing details (#406).
  • Initial GUI with query editor (#427).
  • HeFQUINEngineBuilder added as a means to consolidate and simplify the creation of a HeFQUINEngine instance (#440, #441, and #448).
  • ExternalIntegrationDemo added as a means to demonstrate how the HeFQUIN engine can be used directly within the Java code of other Java projects (#448).

Changed

  • Improving the text-based plan printers to make the printed plans easier to look at (d83c8c2, 21020c5, 80189b7, 66d8124, #442)
  • The MergeRequests heuristic does not anymore push BIND operators into requests (#433).
  • Fixing and streamlining the various bind join implementations (#443 and e7ae6a9).
  • Removing the explicit notion of default components from the vocabulary for describing a HeFQUINEngine configuration (#441).
  • Replacing the implicit definition of the vocabulary for describing federations by an explicit one (#432).
  • Refactoring of DataRetrievalResponse (#409).
  • Refactoring of QueryPatternUtils (#428).
  • Moving the code for federation access into a separate Maven module called hefquin-access (#450).
  • Moving the code generated from the vocabularies into hefquin-vocabs, making that an actual Maven module (#450).

[0.0.5] - 2025-03-04

Starting the change log at this version.