Skip to content

rdf-elixir/sparql-ex

Repository files navigation

SPARQL.ex

CI Hex.pm

An implementation of the SPARQL standards for Elixir.

It allows to execute SPARQL queries against RDF.ex data structures. With the separate SPARQL.Client package SPARQL queries can be executed against SPARQL protocol endpoints.

The API documentation can be found here. For a guide and more information about SPARQL.ex and it's related projects, go to https://rdf-elixir.dev.

Current state

Note: The SPARQL.Client supports the full SPARQL 1.1 query language. The missing query language features in the following list are just not yet supported by the query engine executing queries against RDF.ex data structures.

  • SPARQL 1.1 Query Language
    • Basic Graph Pattern matching
    • Group Graph Pattern matching
    • Optional Graph Pattern matching via OPTIONAL
    • Alternative Graph Pattern matching via UNION
    • Pattern matching on Named Graphs via FROM and GRAPH
    • Solution sequence modification
      • Projection with the SELECT clause
      • Assignments to variables in the SELECT clause
      • DISTINCT
      • REDUCED
      • ORDER BY
      • OFFSET
      • LIMIT
    • Restriction of solutions via FILTER
    • All builtin functions specified in SPARQL 1.0 and 1.1
    • Ability to define extension functions
    • All XPath constructor functions as specified in the SPARQL 1.1 spec
    • Assignments via BIND
    • Negation via MINUS
    • Negation via NOT EXIST
    • Inline Data via VALUES
    • Aggregates via GROUP BY and HAVING
    • Subqueries
    • Property Paths
    • ASK query form
    • DESCRIBE query form
    • CONSTRUCT query form
  • SPARQL 1.1 Update
  • SPARQL Query Results XML Format
  • SPARQL 1.1 Query Results JSON Format
  • SPARQL 1.1 Query Results CSV and TSV Formats
  • SPARQL 1.1 Protocol (currently client-only; in a separate package: sparql_client)
  • SPARQL 1.1 Graph Store HTTP Protocol
  • SPARQL 1.1 Service Description
  • SPARQL 1.1 Federated Query
  • SPARQL 1.1 Entailment Regimes

Other features on the roadmap:

  • parallelization of the query execution
  • query DSL

Contributing

see CONTRIBUTING for details.

Consulting

If you need help with your Elixir and Linked Data projects, just contact NinjaConcept via contact@ninjaconcept.com.

License and Copyright

(c) 2017-present Marcel Otto. MIT Licensed, see LICENSE for details.