Appendix F: SpatialDDS URI Scheme (ABNF)
SpatialDDS defines a URI scheme for anchors, content, and services. The human-readable pattern is:
spatialdds://<authority>/<zone>/<rtype>/<rid>[;param][?query][#fragment]
- authority — a DNS name, case-insensitive.
- zone — a namespace identifier (letters, digits,
-,_,:). - rtype — resource type (for example
anchor,content,tileset,service,stream). - rid — resource identifier (letters, digits,
-,_). - param — optional
key=valueparameters separated by;. - query/fragment — follow RFC 3986 semantics.
ABNF
The grammar below reuses RFC 3986 terminals (ALPHA, DIGIT, unreserved, pct-encoded, query, fragment).
spatialdds-URI = "spatialdds://" authority "/" zone "/" rtype "/" rid
*( ";" param ) [ "?" query ] [ "#" fragment ]
authority = dns-name
dns-name = label *( "." label )
label = alnum [ *( alnum / "-" ) alnum ]
alnum = ALPHA / DIGIT
zone = 1*( zone-char )
zone-char = ALPHA / DIGIT / "-" / "_" / ":"
rtype = "anchor" / "content" / "tileset" / "service" / "stream"
rid = 1*( rid-char )
rid-char = ALPHA / DIGIT / "-" / "_"
param = pname [ "=" pvalue ]
pname = 1*( ALPHA / DIGIT / "-" / "_" )
pvalue = 1*( unreserved / pct-encoded / ":" / "@" / "." )
Notes
- Comparison rules: authority is case-insensitive; all other components are case-sensitive after percent-decoding.
- Reserved params:
v(revision identifier),ts(RFC 3339 timestamp). Others are vendor-specific. - Semantics: URIs without
;v=act as persistent identifiers (PID). With;v=they denote immutable revisions (RID).
Examples
spatialdds://museum.example.org/hall1/anchor/01J9Q0A6KZ;v=12
spatialdds://openarcloud.org/zone:sf/tileset/city3d;v=3?lang=en