concepts · HTTP
The resource keeps its address
An event's URI identifies the event and gives clients a place to read about it. Apps can use ordinary HTTP operations on linked data that exists outside any one SDK.
Read a resource
Request the URI and receive the description you may read, usually as JSON-LD. Reads can merge statements from readable Contexts. Anonymous callers receive public data; authenticated callers may receive more.
A client can narrow the read to selected Contexts. Graph-aware representations can preserve Context grouping when provenance matters.
Write into an explicit Context
In the current contract, each write selects one Context. The resource IRI says which thing is described; the Context identifies the statements the caller is authorized to change. A replacement affects that resource's outgoing statements within the selected Context.
Conditional operations help a client avoid overwriting a change it has not read. The contract also exposes property slots and edges with their own operation rules.
Control-plane authority has its own routes
Grants and registrations are protected control-plane state. Writing RDF about an identity or permission does not grant authority. Their management goes through explicit APIs under /_system.
The specification and implementation also protect reserved namespaces. Check the contract and known deviations before treating a control-plane IRI as an ordinary write target.
A client library makes the path easier
Kotlin 0.2 separates the HTTP client from optional RDF4J and media adapters. The HTTP core handles JSON-LD text and bytes, with endpoint groups for resources, subjects, slots, Contexts, SPARQL and metadata.
The wire contract stays inspectable. You can choose another library or write a client in another language.
CRUD contract JVM client guide Read a resource with the client