Gno
gnō-, Proto-Indo-European root meaning "to know."
-- Etymonline
Gno is an Elixir library that abstracts RDF dataset persistence across different storage backends, providing a single API for querying, updating, and managing RDF data regardless of the underlying SPARQL triple store. It uses DCAT-R for its structural model and RDF-based configuration.
Features
- Unified SPARQL API — query (
SELECT,ASK,CONSTRUCT,DESCRIBE), update, and manage graphs through a single interface - Multiple store backends — built-in adapters for Apache Jena Fuseki, Oxigraph, QLever, and Ontotext GraphDB, with a generic adapter for any SPARQL 1.1-compatible store
- RDF-based configuration — services, repositories, and stores are described in Turtle manifests using DCAT-R vocabulary, with environment-specific configs (dev/test/prod)
- Changeset system — structured representation of RDF changes with four actions (add, update, replace, remove) and automatic computation of minimal effective changes
- Transactional commits — changes applied atomically with automatic rollback on failure and an extensible middleware pipeline
Getting Started
Installation
For complete setup instructions including HTTP adapter configuration, store backend setup, and manifest configuration, see the Installation guide.
Quick Example
# Query data
{:ok, result} = Gno.select("SELECT ?s ?p ?o WHERE { ?s ?p ?o }")
# Insert data
:ok = Gno.insert_data(EX.S |> EX.p(EX.O))
# Commit structured changes transactionally
{:ok, commit} = Gno.commit(
add: EX.S1 |> EX.p(EX.O1),
update: EX.S2 |> EX.p(EX.O2),
remove: EX.S3 |> EX.p(EX.O3)
)Further Reading
For a comprehensive guide covering installation, configuration, querying, and data management, see the User Guide.
For detailed API documentation, see the HexDocs documentation.
Consulting
If you need help with your Elixir and Linked Data projects, just contact NinjaConcept via contact@ninjaconcept.com.
Acknowledgements
This project is funded through NGI Zero Core, a fund established by NLnet with financial support from the European Commission's Next Generation Internet program.
JetBrains supports the project with complimentary access to its development environments.
License and Copyright
(c) 2026 Marcel Otto. MIT Licensed, see LICENSE for details.