Metadata-Version: 2.5
Name: rdf-triplestore
Version: 0.1.0
Summary: A unified abstraction layer for interacting with multiple RDF triplestore backends
Project-URL: homepage, https://github.com/eellak/triplestore
Project-URL: source, https://github.com/eellak/triplestore.git
Project-URL: github, https://github.com/eellak/triplestore
Project-URL: issues, https://github.com/eellak/triplestore/issues
Author: Maira Papadopoulou
Author-email: "Alexios Zavras (zvr)" <python@zvr.gr>
Maintainer: Maira Papadopoulou
Maintainer-email: "Alexios Zavras (zvr)" <python@zvr.gr>
License-Expression: Apache-2.0
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Requires-Dist: rdflib
Provides-Extra: all
Requires-Dist: agraph-python>=104.3.0; extra == 'all'
Requires-Dist: psutil>=7.0.0; extra == 'all'
Requires-Dist: pyoxigraph>=0.4.11; extra == 'all'
Requires-Dist: requests>=2.32.4; extra == 'all'
Requires-Dist: shapely>=2.1.2; extra == 'all'
Provides-Extra: allegrograph
Requires-Dist: agraph-python>=104.3.0; extra == 'allegrograph'
Requires-Dist: requests>=2.32.4; extra == 'allegrograph'
Provides-Extra: blazegraph
Requires-Dist: requests>=2.32.4; extra == 'blazegraph'
Provides-Extra: dev
Requires-Dist: build; extra == 'dev'
Requires-Dist: mypy; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Provides-Extra: geo
Requires-Dist: shapely>=2.1.2; extra == 'geo'
Provides-Extra: graphdb
Requires-Dist: requests>=2.32.4; extra == 'graphdb'
Provides-Extra: jena
Requires-Dist: psutil>=7.0.0; extra == 'jena'
Requires-Dist: requests>=2.32.4; extra == 'jena'
Provides-Extra: oxigraph
Requires-Dist: pyoxigraph>=0.4.11; extra == 'oxigraph'
Provides-Extra: qlever
Requires-Dist: requests>=2.32.4; extra == 'qlever'
Provides-Extra: rdf4j
Requires-Dist: requests>=2.32.4; extra == 'rdf4j'
Provides-Extra: virtuoso
Requires-Dist: requests>=2.32.4; extra == 'virtuoso'
Description-Content-Type: text/markdown

# Triplestore Abstraction Library

This library provides a unified interface for interacting
with various RDF and GeoSPARQL triplestore backends.
It allows developers to write code that is agnostic
to the underlying triplestore implementation.

## Features

- Common API for multiple triplestore backends
- Easy integration and backend switching
- Support for basic CRUD operations on triples
- GeoSPARQL support when provided by the selected backend
- Extensible for new triplestore implementations

## Supported Backends

The library provides a unified abstraction layer for multiple triplestores.  
Currently supported backends (alphabetically):

- AllegroGraph
- Apache Jena
- Blazegraph
- GraphDB
- Oxigraph
- QLever
- RDF4J
- Virtuoso

## Installation

You can install the library along with **all supported backends** using:

```bash
pip install rdf-triplestore
# or
pip install rdf-triplestore[all]
pip install triplestore[all]
```

Alternatively, you can install the library with a **specific backend** only:
```bash
pip install rdf-triplestore[<backend>]
```
For example:
```bash
pip install rdf-triplestore[oxigraph]
```

GeoSPARQL-related dependencies are optional and can be installed separately with:
```bash
pip install rdf-triplestore[geo]
```

## Usage

```python
from triplestore import Triplestore

# Initialize with desired backend
store = Triplestore(backend="jena", config={...})

# Load triples
store.load(data_filename)

# Add a triple
store.add(subject, predicate, obj)

# Query triples
results = store.query("SELECT ?s ?p ?o WHERE { ?s ?p ?o }")
```
