# SPARQL File

Serve an RDF file as an [RDFLib](https://rdflib.readthedocs.io/) Graph through a SPARQL endpoint served as [fastapi](https://fastapi.tiangolo.com/) with [rdflib-endpoint](https://pypi.org/project/rdflib-endpoint/) ([github](https://github.com/vemonet/rdflib-endpoint)).

## CLI Installation

```sh
$ pipx install sparql-file[cli]
```

## Usage

```sh
$ sparql-file --help
```

## Development Install

```sh
$ task install
```

or

```sh
$ poetry install
```

## Run Locally

```sh
$ GRAPH_FILE=graph.ttl task serve:dev
# or
$ GRAPH_FILE=graph.ttl task serve:uvicorn
```

or

```sh
$ GRAPH_FILE=graph.ttl poetry run fastapi dev sparql_file.py
# or
$ GRAPH_FILE=graph.ttl poetry run uvicorn sparql_file:app --host '' --port 8080
```

## Run With Podman/Docker (local build)

```sh
$ task build
$ podman run -d --rm -v /path/to/graph_file.ttl:/data/graph.ttl:z -p 8080:8080 localhost/sparql-file:latest
```

## Run With Podman/Docker (ghcr.io registry build)

```sh
$ GRAPH_FILE=graph.ttl task serve:container
```

or

```sh
$ podman run -d --rm -e GRAPH_FILE="/data/graph.ttl" -v /path/to/graph_file.ttl:/data/graph.ttl:z -p 8080:8080 ghcr.io/aksw/sparql-file:main
```
