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: Importance of simple & general ABNF

Per the message I just sent in reply to Les and Marty, I wanted to start a separate thread to focus directly on the issue of the simplicity and generality of the ABNF for XRI Syntax 2.1, since I believe this is the single most important issue in all of XRI architecture.

I’d like to encourage all TC members to study the ABNF below, which is the heart of the current ABNF proposal at http://wiki.oasis-open.org/xri/XriCd02/XriAbnf2dot1. Note that I have slightly rearranged the order of the rules from the ABNF on that page in order to better show how the logic tree unfolds (rule order is not significant in ABNF).


xri-hier-part     = xri-authority xri-path-abempty
xri-authority     = 1*global-ref
xri-path-abempty  = *( "/" xri-segment )
xri-segment       = [ ref-value ] *xri-subseg
xri-subseg        = global-ref
                  / local-ref
global-ref        = gcs-char [ ref-value ] *local-ref
local-ref         = lcs-char [ ref-value ]
gcs-char          = "=" / "@" / "+" / "$"
lcs-char          = "*" / "!"
ref-value         = encap-ref
                  / 1*xri-pchar
encap-ref         = "(" [ encap-ref-value] ")"
encap-ref-value   = xri-reference
                  / iri


I believe the most important property of this ABNF is its simplicity and generality. We have eliminated a number of special-exception rules that were present in the 2.0 ABNF.

I would like to invite any TC member who believes that either: a) there is an even more simple and general pattern that we should adopt, or b) that there is a special exception that is so important we should add it, to respond to this thread with a proposal.

I think this is the quickest way to close on the 2.1 ABNF so we can move forward with the 2.1 Syntax draft.



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