Release 1.16.0: Full spec compliance, property paths, CSV/TSV, basic auth, and fixes

Monday, August 24, 2020

On this page

    With the latest release of Comunica, we have achieved the major milestone of full compliance to the SPARQL 1.1 specification. While Comunica has had support for all SPARQL 1.1 operators for a while, some small parts were not always fully handled according to the spec, and property paths were not fully supported.

    Thanks to the help of several students over the summer, these issues have been resolved, and all tests from the SPARQL 1.1 test suite now pass.

    SPARQL 1.1 Query compliance

    Our continuous integration tool has been configured to continuously check correctness using unit tests, integration tests, and the SPARQL 1.1 query test suite. So far, some tests from this test suite used to fail, primarily due to the lack of full property path support. Thanks to the help of several students that contributed during the summer, all of these issues have been resolved, which makes Comunica fully compliant to the SPARQL 1.1 Query specification.

    The next major goal will now be to implement the SPARQL 1.1 Update specification.

    Interested in helping out? Let us know via GitHub.

    Property paths

    SPARQL 1.1 provides the property paths syntax, which is a power-user feature that allows complex paths between two resources to be expressed. As of now, Comunica implements all property paths functionality according to the specification.

    For example, property paths allow you to define alternative predicates:

    SELECT ?person WHERE {
      [ rdfs:label "Bruce Willis"@en ] (dbpedia-owl:spouse|dbpedia-owl:child) ?person.

    Try out some example queries live via our Web client:

    Should you run into any bugs related to property paths, be sure to report them on our issue tracker.

    CSV/TSV Serializers

    While there already was support for many result formats in Comunica, CSV and TSV support was missing. As of this release, this lack has been resolved. They can be used by requesting the text/csv or text/tab-separated-values media types.

    For example, try it out as follows from the command line:

    $ comunica-sparql \
        "SELECT * WHERE { ?s ?p ?o } LIMIT 100" \
        -t 'text/csv'

    Basic authentication

    Sometimes, access to data on the Web requires HTTP Basic Authentication. As of this release, you can configure Comunica to pass the required credentials to access these sources that require authentication.

    For example, username and password can be passed from the command line:

    $ comunica-sparql \
        "SELECT * WHERE { ?s ?p ?o }"

    And more

    Aside from the main features above, several fixes have been done. Check out the full changelog to read more about them.