Everything you need to publish, query and maintain FAIR RDF datasets.
Koetai is a self-hosted FAIR SPARQL platform. Each registered user can create multiple datasets. Every dataset gets a dedicated named graph and a public SPARQL endpoint, backed by either QLever (ultra-fast read-only index) or Apache Jena Fuseki (updateable TDB2 store).
RDF data can be loaded from local file uploads, GitHub/GitLab repositories, or arbitrary web download pages. Shapes (ShEx / SHACL) can be inferred automatically and visualised as Mermaid class diagrams. Any SPARQL query can be turned into a parameterized REST endpoint.
Koetai is invitation-only. To register:
Admins can generate invite links from the Invites menu item (visible only to admins after sign-in).
Create a dataset from My Datasets → New Dataset. Each dataset requires:
ordo). Forms part of the
endpoint URL: /u/{orcid}/{slug}/sparql.All triples are stored inside a named graph
https://koetai.semscape.org/u/{orcid}/{slug}/data.
From the dataset page, use the Upload tab to load a local file (up to 500 MB).
Supported formats: .ttl, .nt, .n3, .rdf,
.owl, .trig, .nq, .jsonld.
For .owl and .rdf files an Apply OWL reasoning checkbox
appears — see the OWL reasoning section below.
After upload, QLever datasets are automatically re-indexed (this may take a few seconds to minutes depending on file size). Fuseki datasets are immediately queryable.
From the dataset page, click the Git tab. You can link one or more GitHub or GitLab repositories:
owner/repository (e.g. Orphanet/ORDO).For each source you can then:
A GitHub personal access token in .env (GITHUB_TOKEN) removes the
60 req/hr anonymous rate limit. Similarly GITLAB_TOKEN for private GitLab repos.
From the dataset page, click the Web tab. Paste the URL of any download page (e.g. Orphadata or WikiPathways).
Every dataset exposes a SPARQL 1.1 endpoint at:
https://koetai.semscape.org/u/{orcid}/{slug}/sparql
The endpoint accepts GET and POST with a query
parameter. Public datasets are readable without authentication.
Click the SPARQL tab from the dataset page to open the built-in YASGUI editor with the endpoint pre-configured.
Click the Shapes tab on any dataset page.
Inferred shapes are saved to the database and can be downloaded as plain text or viewed as a Mermaid diagram.
Click the API tab. Each SPARQLList query is a SPARQL template with
{{param}} placeholders that become URL query parameters.
Example: a template with FILTER(?disease = <{{iri}}>)
is called as:
/u/{orcid}/{slug}/api/{query-slug}?iri=http://example.org/disease/123
Results are returned as JSON-LD by default. An interactive form is shown in the browser for manual testing.
Click the Examples tab to create named SPARQL queries that are stored with the dataset. Examples have a slug, label, optional description, keywords, and the query text. They can be run directly in the built-in SPARQL editor.
When importing .owl or .rdf files (via upload, Git, or Web sources),
an Apply OWL reasoning option appears. Three regimes are available:
Reasoning runs as a subprocess; the number of inferred triples is shown in the import result.
| Extension | Format |
|---|---|
.ttl | Turtle |
.nt | N-Triples |
.n3 | Notation3 |
.rdf | RDF/XML |
.owl | OWL/RDF-XML |
.trig | TriG (named graphs) |
.nq | N-Quads |
.jsonld | JSON-LD |