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.
- 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
For complete setup instructions including HTTP adapter configuration, store backend setup, and manifest configuration, see the Installation guide.
# 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)
)For a comprehensive guide covering installation, configuration, querying, and data management, see the User Guide.
For detailed API documentation, see the HexDocs documentation.
If you need help with your Elixir and Linked Data projects, just contact NinjaConcept via contact@ninjaconcept.com.
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.
(c) 2026 Marcel Otto. MIT Licensed, see LICENSE for details.
