Skip to content

Releases: SPARQL-Anything/sparql.anything

v1.3.0

Choose a tag to compare

@github-actions github-actions released this 19 Oct 17:16

SPARQL Anything 1.3.0 brings the engine in line with the Façade-X specification (v0.1). It supports the new Façade-X namespaces, renames fx:root to fx:Root while keeping backward compatibility, and adds a test suite that keeps the implementation aligned with the spec.

New in this release: xml:lang support for XML, automatic delimiter detection for TSV, preservation of base on output, and JSON numbers that keep their lexical form (exponent values are now typed xsd:double). The CLI also gains a --help option.

Most of the work went into hardening, driven by acceptance testing of the release candidates. Highlights:

  • CLI: correct handling of multiple -v binding sets, proper non-zero exit codes on errors, acceptance of all documented RDF format names in -f, and -l <URL> now loads into the default graph.
  • Formats: .jsonld files are read correctly, JSON slicing works with slice.size > 1, .svgz is decompressed, and archive and HTTP options behave as documented.
  • Data model: containers from different data sources no longer share blank nodes.

Documentation grows with new guides on slicing, the --profile option, parametric queries, and contributing as a developer. Releases are also leaner on Maven Central from now on: release candidates go to the snapshots repository, and published artifacts carry only the required checksums.


As part of this release we had 46 issues closed.

Bugs

  • #663 Fix failing S3 integration test due to inaccessible MinIO image in CI
  • #675 [CLI] -o with multiple -v binding sets overwrites output (only first gets a suffix)
  • #677 [CLI] With multiple -v binding sets and no -o, only the first result is printed
  • #684 [v1.3.0-RC2] query option: NPE when the referenced query is not a classpath resource
  • #685 [v1.3.0-RC2] JSON slicing breaks with slice.size > 1 (parse errors, NPE, silent data loss)
  • #687 [v1.3.0-RC2] -v fails with NPE for JSON and XML result-set files
  • #688 [v1.3.0-RC2] CLI cannot read .jsonld files: the custom JSON language overrides JSON-LD
  • #689 [v1.3.0-RC2] archive-format option is ignored when the archive URL has an extension
  • #690 [v1.3.0-RC2] -f rejects documented RDF format names (TURTLE, NTRIPLES, NQUADS, JSONLD, JSONLD11)
  • #692 [v1.3.0-RC2] CLI exits with code 0 on syntax errors, unknown options and failed slices
  • #695 Java 21 Windows build fails since cd88d28
  • #696 [v1.3.0-RC2] RDF triplifier ignores content, command and read-from-std-in
  • #697 [v1.3.0-RC2] Containers of different data sources share blank nodes (archive.matches merges files under one root)
  • #698 [v1.3.0-RC2] HTTP options: .N suffixes not stripped, payload sent chunked, http.redirect false ignored
  • #699 [v1.3.0-RC2] .svgz files are not decompressed
  • #700 [v1.3.0-RC2] -l <URL>: remote RDF is loaded in a named graph, not the default graph

Documentations

  • #336 [Documentation] Add section on slicing
  • #579 [Documentation] add tutorial for parametric queries / Basil variables
  • #604 Add documentation on --profile option
  • #638 [doc] "working-with-graph-nodes" is a bad grouping
  • #645 [Documentation] Guide for developers
  • #668 [Documentation] Automatically translate #N references to GH links
  • !673 [Documentation] Add section on slicing (#336)
  • !674 [Documentation] Add documentation on --profile option (#604)
  • #678 [Documentation] Improve documentation workflow (remove redundant files...)
  • #693 [v1.3.0-RC2] Documentation inconsistencies found by the acceptance tests (1.3.0)

Features

  • #571 preserve base on output
  • #657 Automatically set delimiter for TSV
  • #659 Support new Facade-X namespaces from the specification
  • #667 [XML] Support for xml:lang

Improvements

  • #357 Review Lang mappings between JSON and JSONLD when the expected content is RDF
  • #606 Refactor fx:root into fx:Root
  • !653 Bump pymdown-extensions from 10.21.3 to 11.0.1 in /docs
  • #658 Keep current development aligned with FX specifications (v0.1) via tests
  • #662 [JSON] Keep the lexical form of numbers; type exponent numbers xsd:double
  • #664 SLF4J warning on tests
  • #665 Multiple XML comments in pom
  • #681 fx:root vs fx:Root backward compatibility in v1.3.0
  • #694 [v1.3.0-RC2] Add CLI option --help

v1.3.0-RC3

v1.3.0-RC3 Pre-release
Pre-release

Choose a tag to compare

@enridaga enridaga released this 19 Oct 15:15

Third release candidate for SPARQL Anything v1.3.0. Please test it on your queries and report problems as GitHub issues before the final release.

RC3 fixes the problems found by the new acceptance test suite (#686), which checks the documented behaviour of the CLI, the options and the formats.

⚠️ Changes that may affect existing scripts and queries

  • -l loads into named graphs (#700). Each source (a file, a URL, or each file of a folder) is loaded into a named graph named after its URI. The default graph is the union of all loaded graphs. Queries without GRAPH still match all the data; GRAPH ?g now also works for a single file.
  • CLI exit status (#692). The CLI exits with 1 on SPARQL syntax errors, missing query or input files, and execution errors (including failed slices, unless the SERVICE is SILENT). It exits with 2 on an invalid command line. Before, it exited with 0.
  • HTTP options (#698).
    • Repeated parameters http.query.<name>.N / http.form.<name>.N are sent as <name>, in numeric order.
    • http.payload is sent with a Content-Length and no default content type; set it with http.header.Content-Type.
    • http.redirect=false is now honoured: a 3xx response makes the query fail.
  • --profile has no short form.

New

  • -h, --help prints the usage (#694).
  • The RDF triplifier accepts content, command and read-from-std-in, with media-type set (#696).
  • .svgz (gzipped SVG) and other gzipped XML input is decompressed (#699).

Bug fixes

  • query option: the referenced query is resolved as a URL, then as a file path, then as a classpath resource. Before, a file path failed with an NPE (#684). Windows paths are supported (#695).
  • JSON slicing with slice.size > 1: no more parse errors, NPEs or lost data (#685).
  • -v reads JSON and XML result-set files (#687).
  • -l reads .jsonld files (#688, #357).
  • archive-format takes precedence over the archive's file extension (#689).
  • -f accepts all documented format names, case-insensitively: TURTLE, NTRIPLES, NQUADS, JSONLD, JSONLD11, … (#690).
  • Containers from different data sources no longer share blank nodes, e.g. files matched by archive.matches (#697).
  • Remote RDF with -l <URL> is visible in the default graph (#700).

Documentation

Many corrections found by the acceptance tests (#693):

  • root IRIs;
  • JSON numbers as xsd:decimal in all examples;
  • the query resolution order and Windows paths;
  • variables as option values;
  • HTTP options;
  • CLI formats and exit status.

Known issues (planned for 1.4.0)

  • Option values bound outside the SERVICE clause (outer BIND / VALUES) are ignored; bind them inside the SERVICE (#701).
  • Parametrised queries: $_name_prefix_type binds a plain string instead of the prefixed datatype (#xxx).

What to test

  • Scripts that rely on the CLI exit status, or on -l with GRAPH.
  • Queries using the query option with file paths, especially on Windows.
  • HTTP sources with repeated parameters, payloads or http.redirect=false.
  • JSON with slice=true and slice.size.

Install

  • CLI: download sparql-anything-v1.3.0-RC3.jar from the assets below, then
    java -jar sparql-anything-v1.3.0-RC3.jar -q query.sparql
  • Server: sparql-anything-server-v1.3.0-RC3.jar, then
    java -jar sparql-anything-server-v1.3.0-RC3.jar (port 3000)
  • GeoSPARQL variants of both jars are also attached (-geosparql).
  • Maven:
  <dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-engine</artifactId>
    <version>1.3.0-RC3</version>
  </dependency>

Nightly Snapshot (v1.4-DEV) - 20261025-071719

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.4-DEV
Commit: 57dffef
Build Date: 20261025-071719
Maven Version: 1.4.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.4.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.4.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.4.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

Nightly Snapshot (v1.4-DEV) - 20261024-065258

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.4-DEV
Commit: 57dffef
Build Date: 20261024-065258
Maven Version: 1.4.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.4.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.4.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.4.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

Nightly Snapshot (v1.4-DEV) - 20261023-065933

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.4-DEV
Commit: 57dffef
Build Date: 20261023-065933
Maven Version: 1.4.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.4.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.4.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.4.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

Nightly Snapshot (v1.4-DEV) - 20261022-070727

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.4-DEV
Commit: 57dffef
Build Date: 20261022-070727
Maven Version: 1.4.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.4.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.4.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.4.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

Nightly Snapshot (v1.4-DEV) - 20261021-070534

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.4-DEV
Commit: 57dffef
Build Date: 20261021-070534
Maven Version: 1.4.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.4.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.4.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.4.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

Nightly Snapshot (v1.4-DEV) - 20261020-071139

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.4-DEV
Commit: 57dffef
Build Date: 20261020-071139
Maven Version: 1.4.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.4.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.4.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.4.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

Nightly Snapshot (v1.3-DEV) - 20261019-154524

Choose a tag to compare

🌙 Nightly Snapshot Build

Branch: v1.3-DEV
Commit: f1a99ee
Build Date: 20261019-154524
Maven Version: 1.3.0-NIGHTLY-SNAPSHOT

This is an automated snapshot build for testing purposes.

⚠️ Warning: This is a development snapshot and may be unstable. Use at your own risk.

Installation

Option 1: Download JAR
Download the JAR file and run:

java -jar sparql-anything-1.3.0-NIGHTLY-SNAPSHOT.jar

or run the server version

java -jar sparql-anything-server-1.3.0-NIGHTLY-SNAPSHOT.jar

Option 2: Maven Dependency
Add to your pom.xml:

<dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-libs</artifactId>
    <version>1.3.0-NIGHTLY-SNAPSHOT</version>
</dependency>

And add the snapshot repository:

<repositories>
    <repository>
        <id>central</id>
        <url>https://central.sonatype.com/repository/maven-snapshots/</url>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>

Latest Changes

See commit history for details.

v1.3.0-RC2

v1.3.0-RC2 Pre-release
Pre-release

Choose a tag to compare

@enridaga enridaga released this 08 Oct 11:02

Second release candidate for SPARQL Anything v1.3.0. Please test it on your queries and report problems as GitHub issues before the final release.

This release aligns SPARQL Anything with the first release (v0.1) of the W3C Data Façades Community Group specifications (#658).

Changes since RC1

  • fx:root as the type of the root container is accepted again: queries using it are rewritten to fx:Root, with a deprecation warning (#681). In RC1 such queries returned an empty result silently. The root option (fxe:root, or the deprecated fx:root on fx:properties) is unchanged.

⚠️ Changes that may affect existing queries

  • fx:root → fx:Root (#606). The root type now follows the Façade-X Schema vocabulary. Queries using fx:root still work, being rewritten to fx:Root with a deprecation warning (#681); please update them, as this will be removed in a future release.
  • Engine namespace (#659). Engine options and fx:properties move to fxe: (PREFIX fxe: <http://sparql.xyz/facade-x/engine/>), e.g. fxe:properties fxe:location "file.csv". The old fx: forms still work but are deprecated and log a warning.
  • JSON numbers (#662). Numbers keep their lexical form as written (-0 → "-0"^^xsd:decimal). Numerals with an exponent (1.5e3) are now xsd:double; before, they were ill-typed xsd:decimal. With json.path the lexical form cannot be kept, but literals are well-typed, and big integers no longer fail.
  • XML language tags (#667). Text and attribute values in the scope of xml:lang are now language-tagged. Set xml.lang-tags=false to get plain strings, as before. The xml:lang attribute is kept either way.
  • BASE in RDF output (#571). When the query declares a BASE (or -b is given), Turtle/TriG output is written with that base and IRIs under it are relativised. Use --no-write-base for the previous behaviour.
  • CSV delimiter (#657). When csv.delimiter is not given, the delimiter comes from csv.format if set, otherwise tab for .tsv/.tab or text/tab-separated-values, otherwise comma. An explicit csv.format (e.g. TDF) now keeps its own delimiter.

Bug fixes

  • CLI: with several -v binding sets and -o, every set now gets its own numbered file (out-1.csv, out-2.csv, …); before, results were overwritten (#675).
  • CLI: with several -v binding sets and no -o, all results are printed to STDOUT, not only the first (#677).
  • Build/CI: S3 integration test fixed (#663); SLF4J warnings in tests (#664); duplicated XML comments in pom (#665).
  • Dependency updates: jsoup 1.23.2, jackson 2.18.11 (#652, #666, #669, #670, #671).

Documentation

  • New sections on slicing (#336), the --profile option (#604), and parametric queries / Basil variables (#579).
  • A guide for developers (#645), including the release process.
  • Reorganised "working with graph nodes" (#638); #N references now link to GitHub issues (#668); a simpler documentation workflow (#678).

What to test

  • Queries that use fx:root (check the deprecation warning and that results are returned), or fx: engine options.
  • JSON sources with exponent or negative-zero numbers.
  • XML sources with xml:lang.
  • TSV files without csv.delimiter.
  • CLI runs with multiple -v binding sets, with and without -o.
  • Turtle output from queries that declare a BASE.

Install

  • CLI: download sparql-anything-v1.3.0-RC2.jar from the assets below, then
    java -jar sparql-anything-v1.3.0-RC2.jar -q query.sparql
  • Server: sparql-anything-server-v1.3.0-RC2.jar, then
    java -jar sparql-anything-server-v1.3.0-RC2.jar (port 3000)
  • GeoSPARQL variants of both jars are also attached (-geosparql).
  • Maven:
  <dependency>
    <groupId>io.github.sparql-anything</groupId>
    <artifactId>sparql-anything-engine</artifactId>
    <version>1.3.0-RC2</version>
  </dependency>
  • Docker: docker pull facadex/sparql-anything:v1.3.0-RC2

Full list: milestone v1.3.0