Running Tentris Using Python
Requirements
Python>=3.12
rdflib>=7
glibc>=2.34
(e.g. ubuntu-22.04 or later)
Note: The Python bindings are not available for macOS yet.
Install
curl --proto https --tlsv1.2 -sSf https://raw.githubusercontent.com/tentris/tentris/refs/heads/main/install-python.sh | sh
Getting Started
The Tentris Python library is a plugin for rdflib.
Native
With the native TentrisStore
, Tentris is embeddeded in Python applications.
import tentris
import rdflib
# Create an RDFLib graph using Tentris as its backend
graph = rdflib.Graph(store="Tentris")
# Load the graph using the SPARQL Update operation `LOAD`
# https://www.w3.org/TR/2013/REC-sparql11-update-20130321/#load
graph.update("LOAD <https://files.tentris.io/mona-lisa.ttl>")
# Query the Mona Lisa knowledge graph
query_str = """
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT ?name WHERE {
dbr:Mona_Lisa dbo:author ?person .
?person foaf:name ?name .
}
"""
for binding in graph.query(query_str):
print(f"{binding.name.n3()}")
The TentrisStore
operates in-memory and does not persist data in the disk.
To use a disk-based instance of Tentris, the HTTP-based store should be used.
HTTP
Remote or local instances of Tentris can be queries using the HTTP-based TentrisHTTPStore
.
Local
Assuming a Tentris server is running on the localhost listening to the default port, it can be queried as shown in the example below.
import tentris
import rdflib
graph = rdflib.Graph(store="TentrisHTTP")
for binding in graph.query("SELECT * WHERE { ?s ?p ?o } LIMIT 10"):
print(f"{binding.s.n3()} {binding.p.n3()} {binding.o.n3()}")
Remote
To query remote instances of Tentris, the URL needs to be explicitly stated.
from tentris import TentrisHTTPStore
import rdflib
graph = rdflib.Graph(store=TentrisHTTPStore("https://dbpedia.data.dice-research.org"))
for binding in graph.query("SELECT * WHERE { ?s ?p ?o } LIMIT 10"):
print(f"{binding.s.n3()} {binding.p.n3()} {binding.o.n3()}")
For more information about setting up a disk-based instance of Tentris, please refer to the chapter Binary.