sempods

try it yourself

Start with the part that is real today

sempods is still young, so the entry points are not equally polished. The first one takes ten seconds. The deeper ones are for people who want to read or run the reference implementation.

1. Query a live public pod

Public contexts are readable without authentication. This query reads a real venue's event calendar from its own pod:

curl -X POST https://sempods.org/aaltra/_system/sparql/query \
  -H "Content-Type: application/sparql-query" \
  -H "Accept: application/sparql-results+json" \
  --data 'PREFIX schema: <https://schema.org/>
SELECT ?e ?name ?start WHERE {
  ?e a schema:Event ; schema:name ?name ; schema:startDate ?start
} ORDER BY ?start LIMIT 3'

The endpoint is ordinary HTTP. The query is ordinary SPARQL. The result is JSON from live linked data, not a special website API.

2. Follow the data

The query returns event URIs. Open one and the pod returns the resource itself with the statements you are allowed to see. That is the Linked Data part: the identifier is also the address.

This is the smallest useful proof of decentralization. The venue owns the event graph. Apps and websites can use it without becoming the place where the data lives.

3. Ask for a hosted test pod

Concrete pods can already live under sempods.org paths such as aaltra. There is no public hosting entry UI yet; new pods for early ideas or tests are created manually on request.

That is the fastest path when you want a real pod without operating the infrastructure yourself: backups, updates and migrations across version or schema changes are handled on the hosted side. For a test pod, write to danilo@sempods.org.

4. Run your own pod

The stronger decentralization proof is self-hosting. In sempods-kotlin, the local deployment brings up a pod and the services behind it, so you can test against infrastructure you run yourself.

This path is rougher than asking for a hosted test pod, but it matters. It proves sempods is not one hosted service with a public API; the hosted path is only the fastest way to begin.

5. Read or run the reference implementation

sempods-kotlin is the reference implementation. It contains the working server and client stack: Linked Data CRUD, contexts, grants, SPARQL sandboxing and a pod MCP endpoint at /_system/mcp.

The aaltra pod exposes that MCP path too, so the same live data can be tested through HTTP, SPARQL or MCP without changing the ownership model.

It is not meant to be the only implementation. It is the executable proof while the dedicated sempods-spec repository and OpenAPI contract are being prepared.

6. Build against the JVM artifacts

The artifacts are on Maven Central. Until a compiled quickstart example is pulled into the website, the coordinates live in one place here:

implementation(platform("org.sempods:sempods-bom:0.1.0"))
implementation("org.sempods:sempods-client")

Version 0.1.0, Java 21 bytecode. SempodsPodClientcovers reading, writing, contexts and SPARQL.

7. Try the preview apps

apps.sempods.org is an early collection of apps that connect to a pod by URL. Focus is a todo app, Explorer visualizes the graph, and Konsum is a small shopping-list app.

The surface is still rough, but the architecture is the important part here: these apps work against pods through the SDK that is being prepared for public release.

Explorer app visualizing an aaltra event from a sempods pod as a graph
Explorer reads the aaltra pod as a graph: event, description, dates, image data and schema.org terms stay connected. The image opens larger for reading labels and edges.

8. Wait for the easier path

The public TypeScript SDK is the next important surface for app builders. Once it is open, this page should shift from "read the reference implementation" toward "build a small app against a pod".

SHACL shapes and a TBox model may become part of that later: apps and agents should eventually be able to discover the shapes and meaning they can work with, not rely only on prose and convention.


Something does not behave as written?Open an issue. A first-run problem is one of the most useful reports a project at this stage can receive.