Section
7.2.2. of the current draft v4 spec describes using the id keyword to
"alter resolution scopes". An example is given. The spec states that JSON schema docs have "Base URIs" that are URIs according to RFC3986, and that the id keyword alters this base URI. However it does not state that "altering
resolution scopes" is intended to be consistent with Relative URI
Resolution described in RFC3986 (URIs section 5.2). Is it?
I think the example given is not detailed enough to unequivocally
get across the exact behavior of the "altering resolution scopes"
algorithm. I think this example could easily be made a bit more detailed to get across the intended behavior of of scope resolution whether or not the its intended to be consistent with RFC3986 relative URI resolution. Going by the example it appears that the scheme propose isnot consistent with RFC3986. Specifically, there is no difference between "/foo" (absolute path), and "foo" (relative path).
Another question one walks away with is that of relative fragments. AFAIK RFC3986 relative URI resolution does not describe a scheme for relative fragments, but such a thing just intuitively seems useful in JSON Reference. The spec and the example does not give enough detail for one to be confident one way or the other.
Could someone please clarify the scheme for "altering resolution scopes" (i.e. updating the base URI)?
Thanks,
Sam.