Next in thread → Next in month →

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

From
Lindelsee, Mike <>
Date
2004-08-23T22:32:13+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

One change I'd 
propose is that the GCS-authority be changed to:

 

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

 

Unless you 
intend to allow xri:@! and xri:@* as valid XRIs.

 

Mike

  
-----Original Message-----
From: Drummond Reed 
  [mailto:]
Sent: Friday, August 20, 2004 
  2:47 PM
To: Lindelsee, Mike ; 
  
Subject: 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.
Next in thread → Next in month →