sempods

open specification · reference implementation · live pods

Your data belongs to you

Every app wants to become the place where your data lives. Your calendar is in one silo, your tasks in another, your notes somewhere else, and your AI memory inside whichever assistant you used last.

sempods takes the opposite route: put the data in a pod you control, describe it as structured linked data, and let apps, websites and agents come to it with permission. The pod is not just storage. It is where ownership, meaning and access control meet.

try it yourself

Query a real pod

A venue in Chemnitz publishes its events from its own pod. The public context is readable without an account, an API key or an SDK.

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'

What comes back is not a mock response. These are real events, served as Linked Open Data from a pod the venue controls.

One response, three claims

Structured

The response says schema:Event and schema:startDate. Those are shared vocabulary terms, not sempods fields.

An app that has never heard of this venue can still understand that it is looking at events and dates.

Linked

Every event has its own URI. Follow it and you get the resource itself, with the statements that are public to you.

That is the difference between a web of data and an API result shaped for one client.

Decentralized

Point the same query at another pod and the model stays the same. No central calendar platform has to know first.

The venue can use software without giving that software permanent ownership of the event graph.


The result is not another backend-as-a-service. It is a data layer for the open web: addressable by HTTP, readable as JSON-LD, queryable with SPARQL, and built so different implementations can speak the same contract.

The direction is close to the old promise of the web: decentralized, federated, linkable knowledge that no single product has to own. sempods is inspired by the same values as Solid, but takes its own route: semantic pods, context-based permissions, SPARQL, JSON-LD and MCP as one coherent model.

AI should not own your memory

Ask an AI assistant what is happening in your life. It can reason impressively about public knowledge, but it does not know your plans, your community, your projects or your private history unless those things are copied into yet another product.

That is the wrong direction. An agent should not need to become the owner of your memory. It should be a client of your memory: reading the contexts you grant, writing to the contexts you allow, and losing access when you revoke the token.

In sempods, AI is not a privileged path through the system. It is a client like a web app or mobile app. What makes agents interesting is that they are powerful enough to navigate a personal or organizational knowledge graph instead of waiting for every integration to be built by hand.

For people, that points toward personal pods and real data sovereignty. For companies, the same model is already becoming interesting for knowledge management: structured knowledge, clear permissions, links between sources and AI access that can find the right answer without flattening everything into one new silo.


A specification, not a private platform API

sempods is being written as an open specification. The goal is not that everyone uses one hosted service. The goal is that many pod servers, apps and agents can work with the same model.

sempods-kotlin is the reference implementation: the working server and client stack that makes the model concrete. The dedicated sempods-spec repository is being prepared and will carry the formal specification and OpenAPI contract.

Running today

  • public pods serving real event data as JSON-LD
  • Kotlin reference implementation and JVM artifacts
  • server-enforced SPARQL sandbox over context permissions
  • pod MCP endpoint at /_system/mcp
  • preview apps built against the SDK
  • hosted test pods by request via email

Next public surfaces

  • sempods-spec with the OpenAPI contract
  • TypeScript SDK and simpler app examples
  • better find adapters for search and optional vector retrieval
  • semantic contracts such as SHACL and a TBox model under exploration

Some early product conversations are already happening around this knowledge management layer. They are not public announcements, and they should not be treated as customer claims. They are a useful signal: the personal vision becomes more plausible when independent teams adopt the open model for their own reasons.