RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

From
Drummond Reed <>
Date
2004-08-20T21:46:50+00:00
ID
Thread
RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis
Title: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

I too agree with Dave's proposals. Here's the
BNF as I interpret what he suggests:

 

xri-gen-delims   =  "/" /
"?" / "#" / "[" / "]" / "@" /
"(" /

                   
")" / "$" / "+" / "=" / "!" 
/  "*"

xri-sub-delims   =  "&" / ":" /
";" / "," / "'"

xri-pchar        =  xri-unreserved /
pct-encoded / xri-sub-delims

sub-segment      =  ( *xri-pchar / xref )

nz-sub-segment   =  ( 1*xri-pchar /  xref )

xri-segment      =  sub-segment  *( ( "!"
/ "*" ) sub-segment )

nz-segment       =  nz-sub-segment  *( (
"!" / "*" ) nz-sub-segment )

XRI-authority    =  GCS-authority / xref-authority

 

GCS-authority    =  gcs-char [ "!"
/ "*" ] [ nz-segment ]

xref-authority   =  xref  *( ( "!" /
"*" ) nz-segment )

relative-path    =  xri-segment * ( "/"
xri-segment ) [ "?" xri-query ]

                   
[ "#" xri-fragment ]

See also my next
email about GCS chars and star.

 

=Drummond 

 

 

From: Lindelsee, Mike
[mailto:] 

Sent: Friday, August 20, 2004 2:18 PM

To: 

Subject: RE: [xri] Initial
proposed XRI 1.1 ABNF and issues analysis

 

I like your proposals, Dave.  In
principle, I agree with all of them (complete agreement will take actually
making the changes to the ABNF and looking it over in detail). ;)

 

Mike

-----Original Message-----

From: Dave McAlpin
[mailto:]

Sent: Friday, August 20, 2004 12:11 PM

To: Lindelsee, Mike ;


Subject: RE: [xri] Initial
proposed XRI 1.1 ABNF and issues analysis

Sorry I
haven't tracked this closely, but glancing through the BNF below I have a
couple of comments.

1) I'd rather have xri-sub-delims mirror the 2396bis production of sub-delims,
so I'd change the name "xri-alt-delims" to xri-sub-delims".

2) For the characters "!" and "*", I'd prefer to move them
to xri-gen-delims and represent them literally in the productions with
xri-sub-delims below, the same way "/" is represented literally.

3) If we don't take my recommendation in 2, don't forget to update xri-reserved
to include xri-alt-delims.

4) nz-subsegment doesn't allow foo*!bar, which I suspect you intended to allow.
I think you really wanted something like

nz-segment       =  nz-sub-segment  *(
( "!" / "*" ) sub-segment )

I'll try to review the ABNF more closely in the next couple of weeks.

Dave

-----Original Message-----

From: Lindelsee, Mike  [mailto:]

Sent: Fri 8/20/2004 12:42 PM

To: 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

Good point.  Your changes work for me.

Mike

-----Original Message-----

From: Drummond Reed [mailto:]

Sent: Thursday, August 19, 2004 11:01 PM

To: Lindelsee, Mike ; 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

Problem: this last BNF would not allow xri-auth-delims (! and *) in a path
segment.

I'm thinking that while the initial proposal to generalize the subsegment
delimiters was intended to make things simpler, the problem Mike pointed out
actually makes it more complex than another approach: putting just two
delimiters (! and *) into "xri-sub-delims", then putting all the rest
of the URI sub-delims into a new "xri-alt-delims". Now xri-pchar can
include xri-alt-delims just like URI pchar includes URI sub-delims in
RFC2396bis.

                                                                                                                    

So we'd have:

xri-gen-delims   =  "/" / "?" /
"#" / "[" / "]" / "@" / "(" /

                   
")" / "$" / "+" / "="

xri-sub-delims   =  "!"  /  "*"

xri-alt-delims   =  "&" / ":" /
";" / "," / "'"

xri-pchar        =  xri-unreserved /
pct-encoded / xri-alt-delims

sub-segment      =  ( *xri-pchar / xref )

nz-sub-segment   =  ( 1*xri-pchar /  xref )

xri-segment      =  sub-segment  *(
xri-sub-delims sub-segment )

nz-segment       =  nz-sub-segment  *(
xri-sub-delims nz-sub-segment )

XRI-authority    =  ( gcs-char [xri-sub-delims] [
nz-segment ] ) / xref-authority

relative-path    =  xri-segment * ( "/"
xri-segment ) [ "?" xri-query ]

                   
[ "#" xri-fragment ]

xref-authority   =  xref  *( xri-sub-delims nz-sub-segment
)

=Drummond

  _____ 

From: Lindelsee, Mike [mailto:]

Sent: Thursday, August 19, 2004 2:25 PM

To: 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

It seems to me that if we drop xri-path-delim (absorb those characters back
into xri-sub-delim), and include xri-auth-delim in xri-gen-delim (and correct
the relevent productions), we solve Dave's first concern.  Fixing the XRI
authority to support "@!"  (as well as the rest of the GCS
characters) is actually really easy in a consistent way -- just add an optional
xri-auth-delims after the gcs-char in the XRI-authority production (see below
for the updated ABNF productions).  Changing the production would allow
for "@*" as well.  While we can probably consider this as the default
meaning of a single GCS character (such as "@"), I like the
regularity of supporting it explicity.

The problem that I have with allowing the characters in xri-sub-delims both
delimit a sub-segment and to be part of a sub-segment (by being part of
xri-pchar) is that it creates an ambiguity as to what constitutes a
sub-segment.  For example,  is the local path in the following xri
composed of 2 or 3 sub-segments? 

      xri://@corp/a;b;c

According to the ABNF (if xri-sub-delims are both used in the xri-path-segment
production and in the xri-pchar production), one could consider the
sub-segments to be (1) a, b, and c, (2) a;b and c, or (3) a and b;c.  I'd
prefer to avoid introducing the ambiguity if at all possible. 

My recommendation is to make the changes below and also exclude xri-sub-delims
from the xri-pchar production.

Mike

Updated Changes to ABNF

---------------------------------------

xri-sub-delims   =  "&" / ":" /
";" / "," / "'"

xri-auth-delims  =  "!"  /  "*"

xri-gen-delims   =  "/" / "?" / "#"
/ "[" / "]" / "@" / "(" /

                  
"(" / ")" / "$" / "+" / "=" /
xri-auth-delims

xri-auth-segment =  auth-sub-segment  *( xri-auth-delims
auth-sub-segment )

xri-path-segment =  path-sub-segment  *( xri-sub-delims
path-sub-segment )

XRI-authority    =  ( gcs-char [xri-auth-delims] [
xri-auth-segment ] ) / xref-authority

relative-path    =  xri-path-segment * ( "/"
xri-path-segment ) [ "?" xri-query ]

                                          
[ "#" xri-fragment ]

xref-authority   =  xref  *( xri-auth-delims
auth-sub-segment )

auth-sub-segment =  ( 1*xri-pchar /  xref )

path-sub-segment =  ( *xri-pchar / xref )

xri-pchar        =  xri-unreserved /
pct-encoded / xri-sub-delims

-----Original Message-----

From: Drummond Reed [mailto:]

Sent: Wednesday, August 18, 2004 4:20 PM

To: 'Dave McAlpin'; Lindelsee, Mike ; 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

Agreed. Then, Dave, do you agree with Mike's suggestion of creating a new
"delims" category for xri-auth-delims?

I'm beginning to wonder if the generalized treatment of subsegments in the
proposed XRI 1.1 path is worth the trouble. Would it be simpler to just define
* and ! as the two sub-delimins and then let the other subdelims be part of the
path? That way they will be available for all producer-specific algorithms
anyway

Mike, do you think it would be simpler to just have an
"xri-path-delim" production for * and ! ? In that case the XRI
authority segment and the path segments could go back to being the same.

Mike, one thing that occurred to me this morning: we can't eliminate null
subsegments in the XRI authority segment without knocking out using ! after a
GCS character (e.g., "@!1234"), as by the current BNF, ! is proceeded
by a null subsegment. We'd either have to otherwise change the BNF to support
that (taking us back into "decorator" land) or simply have tight
resolution rules about null subsegments.

=Drummond

  _____ 

From: Dave McAlpin [mailto:]

Sent: Wednesday, August 18, 2004 2:51 PM

To: Lindelsee, Mike ; 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

Unless there's a compelling reason to do otherwise, I'd suggest that we move
"*" and "!" back to xri-gen-delims.

Dave

-----Original Message-----

From: Lindelsee, Mike  [ mailto:]

Sent: Wed 8/18/2004 1:13 PM

To: 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

Do you think that we should place "*" and "!" in gen-delims
then?  Or are my proposed changes ok as they stand?

Mike

-----Original Message-----

From: Dave McAlpin [ mailto:]

Sent: Wednesday, August 18, 2004 12:58 AM

To: Lindelsee, Mike ; 

Subject: RE: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

I intentionally included xri-sub-delims in xri-pchar, and this was correct in
the original ABNF. Since then, someone moved sub-segment delimiters from
xri-gen-delims to xri-sub-delims. I think this is just a misunderstanding of
what I intended for xri-sub-delims. The idea (borrowed from 2396bis), is that
xri-gen-delims are delimiters for which we define semantics and are reserved
for the purpose defined in the spec. In contrast, xri-sub-delims are reserved
as delimiters with no defined semantics, intended for processor specific
algorithms.

Dave

-----Original Message-----

From: Lindelsee, Mike  [ mailto:]

Sent: Tue 8/17/2004 4:23 PM

To: 

Subject: [xri] Initial proposed XRI 1.1 ABNF and issues analysis

I've taken a look at the proposed ABNF and would like to recommend a couple of
changes.  First, I think we should be relatively strict in the authority
part and restrict the segment delimiters to only those that are valid
delimiters.  My concern is that showing other delimeters in the authority
part will imply to people reading the ABNF that those delimiters might have
some sort of meaning.  The second change is to remove the support for null
segments in the authority part.  While there is an XDI use for null
segments in the path part, it doesn't seem to be needed in the authority
part.  And not allowing null segments in the authority part helps to keep
resolution as simple as possible.

I also noticed what might be a bug -- the inclusion of xri-sub-delims in the
xri-pchar production.  This allows segment delimiters to be embedded
within segments.  I don't think that this makes sense (Dave, please
correct me if I'm wrong on this).

Mike

Proposed changes to the updated XRI ABNF

----------------------------------------

(change)        xri-sub-delims  = 
xri-auth-delims /  xri-path-delims

(add)          
xri-auth-delims =  "!"  /  "*"

(add)          
xri-path-delims =  "&" / ":" / ";" /
"," / "'"

(remove)       
xri-segment            
=  sub-segment  *( xri-sub-delims sub-segment )

(add)          
xri-auth-segment        = 
auth-sub-segment  *( xri-auth-delims auth-sub-segment )

(add)          
xri-path-segment        = 
path-sub-segment  *( xri-sub-delims path-sub-segment )

(change)        XRI-authority  
=  ( gcs-char [ xri-auth-segment ] ) / xref-authority

(change)        relative-path  
=  xri-path-segment * ( "/" xri-path-segment ) [ "?"
xri-query ]

                                          
[ "#" xri-fragment ]

(change)        xref-authority  = 
xref  *( xri-auth-delims auth-sub-segment )

(remove)       
sub-segment            
=  ( *xri-pchar / xref )

(add)          
auth-sub-segment        =  (
1*xri-pchar /  xref )

(add)           path-sub-segment 
=  ( *xri-pchar / xref )

(change-bug)xri-pchar          
=  xri-unreserved / pct-encoded

To unsubscribe from this mailing list (and be removed from the roster of the
OASIS TC), go to http://www.oasis-open.org/apps/org/workgroup/xri/members/leave_workgroup.php.