SETLr Documentation
January 19, 2026 ยท View on GitHub
Welcome to the SETLr (Semantic Extract, Transform and Load-er) documentation!
Table of Contents
- Quick Start
- Installation
- Tutorial
- JSLDT Template Language
- Python API
- Advanced Features
- Examples
- CLI Reference
What is SETLr?
SETLr is a powerful tool for generating RDF graphs from tabular data sources. It uses declarative SETL (Semantic Extract, Transform, Load) scripts to:
- Extract data from CSV, Excel, JSON, XML, and RDF sources
- Transform data using JSON-LD templates with Jinja2 templating
- Load results to files or SPARQL endpoints
Key Features
- ๐ Multiple Data Formats: CSV, Excel, JSON, XML, RDF, SAS files
- ๐ Powerful Transformations: JSON-LD templates with @if, @for, @with control structures
- ๐ Python Integration: Call from Python code or use custom Python functions
- โก Streaming: Efficient XML parsing for large files with XPath filtering
- โ Validation: Built-in SHACL validation support
- ๐ฏ SPARQL: Execute SPARQL queries and load to endpoints
Quick Example
from rdflib import Graph
import setlr
# Load your SETL script
setl_graph = Graph()
setl_graph.parse("my_script.setl.ttl", format="turtle")
# Execute the ETL pipeline
resources = setlr.run_setl(setl_graph)
# Access generated RDF
output_graph = resources[URIRef('http://example.com/output')]
Learn More
- New to SETLr? Start with the Quick Start Guide
- Want to learn the basics? Follow the Tutorial
- Need to write transforms? Check the JSLDT Template Language
- Using Python? See the Python API Documentation