urn:solid:
This specification defines a lightweight convention for using the urn:solid:
namespace for temporary RDF predicates within the Solid ecosystem. These predicates serve as stand-ins for future stable URIs and support early experimentation, mirroring the way developers use JSON keys before formalizing vocabularies.
Solid developers often need to introduce new predicates rapidly. Minting stable HTTP URIs can be too heavyweight during early stages. As in JSON development, temporary identifiers like "foo"
or "isCool"
are useful. In RDF, this role can be filled by simple URNs like:
urn:solid:isCool
This mirrors JSON idioms while staying valid within RDF and Linked Data tooling.
A urn:solid:
predicate consists of:
urn:solid:{term}
Where {term}
:
Examples:
urn:solid:syncToken
urn:solid:hasFavoriteColor
urn:solid:completedStep
urn:solid:
predicates only during prototyping.Benefit | Cost |
---|---|
Simple and readable (like JSON keys) | Not globally unique |
No need to mint HTTP URIs early | Not dereferenceable |
Easy to adopt in Solid apps | Risk of name collisions if shared across apps |
Encourages rapid development | No discovery or linking via RDF tooling |
urn:solid:userPrefsTheme
)Maintain a mapping table when upgrading:
urn:solid:userPrefsTheme → https://example.com/ns#theme
When predicates stabilize:
https://example.org/ns#foo
owl:equivalentProperty
or rdfs:seeAlso
urn:solid:
formurn:solid:*
as valid IRIs.While urn:solid:
is not an IANA-registered namespace, its use in Solid is pragmatic and scoped. It aligns with RFC 8141 §3.1 which allows informal URN namespaces for limited/private use.
This proposal introduces a simple, JSON-inspired convention—urn:solid:foo
—to allow RDF predicates to be created without ceremony. It supports developer agility, fosters rapid prototyping, and remains compatible with RDF tools while keeping a clear migration path to stable vocabularies.