Subject: Re: [xri] Stable XRI 1.1 ABNF
It took a little while, but Gabe and I have worked through the ABNF and have a couple of comments/recommendations. 1. In xri-hier-part, iauthority is used. This allows an IRI authority that can't be distinguished from an XRI authority. The problem is with the iuserinfo part of iauthority -- @ihost is allowed. This could just as easily be an XRI authority. Our recommendation is to use ihost (or a similar production) instead of iauthority. We believe that the goal is to allow authorities based on IP addresses and DNS names. It isn't clear that keeping the iuserinfo part is meaningful in the context of XRI. 2. ireg-name (the production that is used to allow DNS names) allows strings that are not legal DNS names. While IRI allows this, our opinion is that in XRI, we should further restrict this to support only valid DNS names. This turns out to be quite a chore, though, if we allow internationalized DNS names. 3. Is the absolute-XRI production just for parallelism with IRI? It's not clear why we need it in XRI. 4. There doesn't seem to be a need to restrict the first segment in the path to being a non-null segment. IRI needs to do this to avoid ambiguity, but the XRI ABNF doesn't have this ambiguity. Our recommendation is to replace the xri-path-absolute production as follows: xri-path-absolute = "/" [ xri-segment ] *[ "/" xri-segment] This would allow us to get rid of the xri-segment-nz and xri-subseg-od-nz productions. 5. The ABNF explicitly disallows cross references as the first segment of a relative XRI. This is due to allowing "xri://" to be optional.