Skip to content

SPARQL UPDATE and PostgreSQL support

Compare
Choose a tag to compare
@Callidon Callidon released this 09 Jan 12:55
· 52 commits to master since this release

Major features

  • Add support for SPARQL INSERT DATA and DELETE DATA queries.
    • They are sent to the server using the SPARQL 1.1 protocol and must completely run inside a quantum.
    • Quads that could be processed inside the quantum will be ignored.
    • Upon query completion, the SaGe server returns the set of quads that were successfully processed during the quantum. Quads that could not be processed due to an error are ignored, to avoid a crash of query execution.
  • Add support for PostgreSQL as a backend. Two backends are available: postgres and postgres-mvcc, where the later rely on multi-version concurrency control to provide reads against consistent snapshots of the RDF graphs. More details on these backends are available in the technical documentation.
  • All HTTP interfaces have been unified under the SPARQL 1.1 protocol. Consequently, all previous APIs have been deprecated.
  • The HTTP server has been rewritten using FastAPI and Uvicorn. This new version provides cleaner errors when the API is misused and significantly increase performance under heavy load.
  • The SaGe Web interface has been externalized as a standalone project called sage-web. Consequently, it is no longer included with sage-engine and must be used separately.
  • A complete technical documentation is available in the docs directory and can be built using sphinx. It describes the sage-engine software, how to use it, how to configure each backend and includes the complete autodoc of the sage package. Upon merge, this doc will be hosted on the Github page of this repo.

Minor features

  • Update the syntax of YAML config files.
    • The datasets field has been renamed to graphs. This change is part of a general effort to align the vocabulary used inside the package with the RDF and SPARQL specifications.
    • Added the stateless field to switch the server between stateless and stateful mode.
    • The quota and max_results can now be set to "inf" to use an infinite quantum and disable the limit of results sent per HTTP request, respectively. Doing so will trigger warning messages when starting the server, but it's fine if you know what you are doing 😉
  • Support for RDF config files, but it is currently reserved for advanced usage of the engine.
  • Increase test coverage.
  • Add type hints to all functions, methods & classes in the sage package.
  • Complete rewriting of the pydoc of all functions, methods & classes in the sage package.

What's Changed

  • SPARQL UPDATE and PostgreSQL support by @Callidon in #9

Full Changelog: v2.1.0...2.1.0