OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

xri message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [xri] ED07 Issue #2: Leading Slash in Path Element


Is this the particular sentence that you are referring to?

RFC3986 Section 6.2.3:

In general, a URI that uses the generic syntax for authority with an
empty path should be normalized to a path of "/".


If that's the case, I guess I still take issue with us following it 
religiously. For one, the "should" in that sentence is not uppercase. 
Secondly, the last sentence in that section says "Other scheme-specific 
normalizations are possible." Thirdly, if @example can be normalized to 
@example/ then we can expect to see it popping up everywhere like 
browser address bars.

=wil

Drummond Reed wrote:
>
> Yes, that’s right. I think it solves the issue without introducing any 
> backwards-compatability issues with XRDs in the wild.
>
> =Drummond
>
> ------------------------------------------------------------------------
>
> *From:* Gabe Wachob [mailto:gabe.wachob@amsoft.net]
> *Sent:* Tuesday, October 23, 2007 2:12 PM
> *To:* 'Drummond Reed'; 'OASIS XRI TC'
> *Subject:* RE: [xri] ED07 Issue #2: Leading Slash in Path Element
>
> You’re basically saying that a forward slash is assumed in the path 
> part of the query, and in the XRD Path element, with the further 
> proviso that an empty XRD Path element is also equals to one with a 
> forward slash.
>
> This is basically in alignment with the comparison rules from 3986, I 
> believe. Wil?
>
> -Gabe
>
> ------------------------------------------------------------------------
>
> *From:* Drummond Reed [mailto:drummond.reed@cordance.net]
> *Sent:* Tuesday, October 23, 2007 2:02 PM
> *To:* 'OASIS XRI TC'
> *Subject:* [xri] ED07 Issue #2: Leading Slash in Path Element
>
> In his feedback on ED06, Gabe noted that the rule in the Path matching 
> (section 12.3.7 of ED06) about removing the forward slash is “odd and 
> creates odd-looking scenarios in the example table. What’s the reason?”
>
> To this, Wil responded yesterday:
>
> I remember bringing this up several times before, but memory is 
> failing me why we do it.
>
> I think we are doing it for backward compatibility with WD10, which 
> doesn't have the leading slash in the Path element content (presumably 
> for user-friendliness.)
>
> I agree with Gabe that the brain has to work harder to see an 
> invisible slash in the Path content of the second column (XRD Path 
> Element). It would be much easier to compare column 1 and 2 without 
> having to perform that extra mental step. That said, a lot of the 
> scenarios are probably too obscure to be used. However, XDI might have 
> different requirements.
>
> ************
>
> Following appear to be our two choices with regard to leading forward 
> slashes in Path matching:
>
> OPTION #1: Stay with ED06 and specify that the forward slash that 
> separates the QXRI Path String from the QXRI Authority String is NOT 
> included in the <xrd:Path> element.
>
> OPTION #2: Change to specifying that the forward slash that separates 
> the QXRI Path String from the QXRI Authority String SHOULD be included 
> in the <xrd:Path> element, and then define handling of the two special 
> cases when:
>
> A) The <xrd:Path> element is empty
>
> B) The <xrd:Path> element does not begin with a forward slash.
>
> ************
>
> PROPOSED SOLUTION:
>
> Go with option #2, i.e., and add the following two rules:
>
> 1) If the <xrd:Path> element is empty, it is a match for an empty Path 
> String either WITH or WITHOUT a leading forward slash.
>
> 2) If the <xrd:Path> element does not begin with a forward slash, a 
> SINGLE FORWARD SLASH is ASSUMED. This will provide backwards 
> compatability with all XRDs in the wild.
>
> 3) If the <xrd:Path> element DOES begin with a forward slash, then all 
> forward slashes are signficant.
>
> These rules would produce the following revised Path Matching example 
> table:
>
> *QXRI (Path in bold)*
>
> 	
>
> *XRD Path Element*
>
> 	
>
> *Match*
>
> @example
>
> 	
>
> <Path></Path>
>
> 	
>
> POSITIVE
>
> @example
>
> 	
>
> <Path match="null"/>
>
> 	
>
> POSITIVE
>
> @example
>
> 	
>
> <Path>*/*</Path>
>
> 	
>
> POSITIVE
>
> @example/
>
> 	
>
> <Path></Path>
>
> 	
>
> POSITIVE
>
> @example/
>
> 	
>
> <Path>*/*</Path>
>
> 	
>
> POSITIVE
>
> @example/*/*
>
> 	
>
> <Path></Path>
>
> 	
>
> NEGATIVE
>
> @example/*/*
>
> 	
>
> <Path>*/*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*/*
>
> 	
>
> <Path>*//*</Path>
>
> 	
>
> POSITIVE
>
> @example/*/*
>
> 	
>
> <Path>*//foo*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*
>
> 	
>
> <Path>*foo*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*
>
> 	
>
> <Path>*/foo*</Path>
>
> 	
>
> POSITIVE
>
> @example/*/foo*
>
> 	
>
> <Path>*foo*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*/foo*
>
> 	
>
> <Path>*/foo*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*/foo*
>
> 	
>
> <Path>*//foo*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar*
>
> 	
>
> <Path>*/foo*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar*
>
> 	
>
> <Path>*/foo*bar*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar*
>
> 	
>
> <Path>*/foo*bar/*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar*
>
> 	
>
> <Path>*/foo*bar/baz*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar*
>
> 	
>
> <Path>*foo*bar*baz*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar*
>
> 	
>
> <Path>*/foo*bar!baz*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar/*
>
> 	
>
> <Path>*/foo*bar*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*foo*bar/*
>
> 	
>
> <Path>*/foo*bar/*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar/*
>
> 	
>
> <Path>*/foo*bar/baz*</Path>
>
> 	
>
> POSITIVE
>
> @example/*foo*bar/*
>
> 	
>
> <Path>*/foo*bar*baz*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*foo!bar*
>
> 	
>
> <Path>*/foo*bar*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*foo!bar*
>
> 	
>
> <Path>*/foo!bar*baz*</Path>
>
> 	
>
> POSITIVE
>
> @example/*(+foo)*
>
> 	
>
> <Path>*/(+foo)*</Path>
>
> 	
>
> POSITIVE
>
> @example/*(+foo)*bar*
>
> 	
>
> <Path>*/(+foo)*</Path>
>
> 	
>
> NEGATIVE
>
> @example/*(+foo)*bar*
>
> 	
>
> <Path>*/(+foo)*bar*</Path>
>
> 	
>
> POSITIVE
>
> @example/*(+foo)*bar*
>
> 	
>
> <Path>*/(+foo)*bar*baz*</Path>
>
> 	
>
> POSITIVE
>
> @example/*(+foo)!bar*
>
> 	
>
> <Path>*/(+foo)*bar*</Path>
>
> 	
>
> NEGATIVE
>
> Feedback? Votes?
>
> =Drummond
>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]