Releases: ruby-rdf/sparql
Releases · ruby-rdf/sparql
Release 3.3.2
This version adds more support of query optimization, which is necessary for running some queries involving property paths.
RDF 1.2
- RDF 1.2 LL(1) Parser
- Preserve 1.1 version of parser, using
use11
option. Update script for use11 and profile options.
- Preserve 1.1 version of parser, using
- RDF 1.2 PEG Parser
- Unescape codepoints in input rather than on terminals.
- Fix problems with using the 1.1 parser in script/tc.
Testing
- Update test locations.
- Automatically skip missing test manifests.
- Test SEP-0004 even though it's not implemented.
- Test on Ruby 3.4.
- Use Rackup::Server instead of the defunct Rack::Server. Still no good testing strategy. (Fixes #51.)
- Update dependencies.
- Depend on sinatra ~> 4.0 rather than 3.1.
Other
- Use optimize option in SPARQL.parse and SPARQL::Algebra.parse to run optimizer, if specified.
- Add some path optimmization for reverse and first/rest chains involving path*.
- Work on freezing/detecting frozen bnodes in INSERT DATA.
- Note some problem cases on filters in OPTIONAL.
- Group Concat adds language if all operands have the same language.
- Updates for Rack/Sinatra.
- Add
host_authorization
option to SPARQL Server application, needed for testing, at least. - Support 'x' and 'q' flags in regular expressions.
Release 3.3.1
- Update test suite locations.
- Verify that table row variable count matches declared variables.
- CONCAT() without parameter
- Update dependencies on SXP and EBNF.
- Unescape PName.
- fixing missing block argument in sequence operator
Release 3.3.0
Updates for version 3.3.0 with minimum Ruby version 3.0.
Release 3.2.6
- Relax dependency on rack and sinatra.
- Fix checking for equality of blank nodes, variables, and functions containing either in parser.
- Fix expected SXP for group example.
- Update test suite locations. (Introduces some problems to investigate later).
Release 3.2.5
- Simplify STR_EXPR terminal by using
\s+
instead of#{WS}
due to changes in Ruby 3.2 regular expressions. Fixes #45. - Change the way depth keyword argument is passed when used with **options.
- Address problem in results when adding a singleton method to a frozen result.
Release 3.2.4
- Assign pre-bound variables in Filter and LeftJoin, as necessary.
- Assign pre-bound variables in Expand, as necessary.
- Parse SERVICE operator.
- Update RDF dependency to 3.2.8.
Release 3.2.3
- Re-publish gem due to file permission problem.
- Document the ability to use a solution as query bindings, not just expression bindings. This supports pre-bound variables, for example as used by SHACL.
Release 3.2.2
- General:
- Update parser to merge patterns and paths, as sequencing is important. Fixes #42.
- Add
:all_vars
option to parser, which will emit a(project () (...))
when aSELECT *
is parsed. This currently defaults tofalse
, but will becometrue
, or non=optional in a future release. This causesSELECT *
to project all in-scope variables. - Better error detection when using variables from groups that are not exported.
- Fix result formats for boolean values.
- Implements SPARQL 1.1 Protocol using the new
SPARQL::Server
Sinatra application.
- Documentation
- Update documentation links to use gh-pages, and add action to publish gh-pages from Yard docs.
- SPARQL 1.2
- Updates to support SPARQL 1.2 SEP-002 for XPath date/time/dateTime/duration functions and operations.
- Parse property path ranges. (e.g.,
:a :b{1,2} :c
. For SPARQL 1.2 SEP-0003. - Add path_range and path_zero operators to support path min/max.
- SPARQL*
- Use
qtriple
for quoted triples instead oftriple
, which can be confused with the TRIPLE function. - Restore
Operator::Triple
, and add SXP parsing rules to distinguish (triple) function from pattern. As a pattern, it can appear as the child of the following:BGP
,Construct
,Delete
,DeleteData
,DeleteWhere
,Graph
,Insert
,InsertData
, orPath
. - Add
qtriple
for quoted triples, with support of thequoted
attribute of anRDF::Statement
/Pattern
.
- Use
Release 3.2.1
Finish up most remaining to_sparql
serialization use cases.
- Round-tripping SPARQL using extension functions (other than XSD) requires those functions to be included in the runtime.
- Improve Algebra documentation, with specific references to Jena.
- Minor improvement to parser error reporting.
Release 3.2.0
- Minimum Ruby version now 2.6.
- Synch with SXP changes in version 1.2 of the SXP gem. Move some to_sxp to the SXP gem.
- Update algebra examples with SPARQL Grammar and resulting SSE.
- Initial implementation of
SPARQL::Algebra::Operator#to_sparql
(and related for operator-like classes). (For #38.)- Update sparql CLI and README for outputting query in SPARQL Grammar format.
- Caveat Emptor: this is a highly experimental feature and subject to further revision. Further testing has shown many failure modes, but look to improvements in future releases.