-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Melvin Carvalho edited this page May 26, 2025
·
3 revisions
This page outlines the trade-offs of different strategies for defining RDF predicates in Solid applications. It is intended to guide developers, app authors, and spec contributors in choosing appropriate approaches for various stages of development, from prototyping to standardization.
| Strategy | Example | Description |
|---|---|---|
| URN:solid | urn:solid:foo |
A URN-based local identifier for rapid prototyping. |
| Pod-local URI | /profile/card#foo |
A user- or app-local identifier, unique to the Pod domain. |
| Custom HTTP URI | https://app.example/vocab#foo |
A hosted vocabulary term by the app or organization. |
| W3ID | https://w3id.org/solid/foo |
Long-term stable URI under community control. |
| Global Standard | https://schema.org/name |
Widely adopted and resolvable term managed externally. |
| Criteria | URN:solid | Pod-local URI | Custom HTTP URI | W3ID | Global Standard |
|---|---|---|---|---|---|
| Simple for developers | β | β | β | ||
| Requires minting process | β | β | β | β | |
| Globally unique | β | β | β | β | |
| Dereferenceable | β | β | β | β | β |
| Discoverable via RDF tooling | β | β | β | β | |
| Risk of collisions | β | β | β | ||
| Privacy-preserving | β | β | β | β | |
| Best for interop across apps | β | β | β | β | |
| Works offline / air-gapped setups | β | β | β | β | |
| Encourages rapid prototyping | β | β | β* | β | |
| Stable long-term | β | β | β | β |
β
= Yes / good
β = No / not recommended for that use case
- feedback from Noel de Martin
I can prototype an app using a w3id vocabulary without registering it for real until the app is "done". I also disagree with all the β on that column
| Use Case | Recommended Strategy |
|---|---|
| Internal app development |
urn:solid:*, Pod-local |
| Early prototyping with real data | Pod-local or custom HTTP URI |
| Cross-app interoperability | Custom HTTP URI or W3ID |
| Public-facing specs or standards | W3ID or Global Standard |
| Privacy-focused / edge environments | Pod-local or URNs |
Encourage evolution of vocabularies over time:
- Move from
urn:solid:*to custom HTTP URIs or W3ID as terms stabilize. - Use
owl:sameAs,rdfs:seeAlso, or JSON-LD@contextto map terms. - Provide tooling to validate and promote terms from local to global.
This document is open for feedback. Please suggest improvements or propose edits via pull request or GitHub discussion.