Awesome
<img src="sparql-logo.png" align="right" />SPARQL.ex
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
andGRAPH
- Solution sequence modification
- Projection with the
SELECT
clause - Assignments to variables in the
SELECT
clause -
DISTINCT
-
REDUCED
-
ORDER BY
-
OFFSET
-
LIMIT
- Projection with the
- 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
andHAVING
- 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.