Print

Print


Continuing with comments from Saašha Metsärantala .....

 
> [7] The BNF #316 for a choice list does not accept [1970..1973] and
> requires a reformulation like [1970, 1971..1973]. If I misinterpret our
> specification, a clarification may be needed. As I interpret our
> specification, choice lists like [1970..1973] should also validate.
> Therefore, I would suggest the following modifications:
> 
> > choiceListContent = choiceListElement (“,” choiceListElement)+
> choiceListContent = choiceListElement (“,” choiceListElement)* (* with
> an asterisk instead of a plus sign *)

Ok.


> 
> > choiceListElement = date | date “..” date | earlier | later
> choiceListElement = date "," date | date “..” date | earlier | later |
> date "," choiceListElement | choiceListElement "," date

Sorry, this one is not making sense to me. 


> 
> Furthermore, the numbering #317, #3171 and #316 in our specification is
> in a non-intuitive order.

At some point (maybe soon) I will completely re-number, but I have wanted to retain original numbering so that links to these items will remain stable. That meant that if there was a #317 and #318 and I added an item that logically fit between the two I couldn't keep consecutive numbering. 

 
> [8] Likewise, the BNF for inclusiveList accepts {1970, 1971..1973} but
> not {1970..1973}. As I interpret #317 in our specification, {1970..1973}
> should validate.

Ok, I've fixed this.


 
> [9] interval:

> > yearMonth "/P" monthsDuration
> yearMonth "/P" ( yearsDuration )? monthsDuration (* read below *)

Ok I've made this change, for now, but it raises the question (for me) if you have a duration longer than 12 months (or 11), do you have to express it as yearMonth, for example, "2 years, 3 months" and "27 months" are the same duration; ccan't you express this as "27 months" and if so, why do we even need yearMonth, when month alone would be sufficient.  
 
> > yearMonthDay "/P" daysDuration
> yearMonthDay "/P" ( ( yearsDuration ( monthsDuration | "0M" )) |
> monthsDuration )? daysDuration (* maybe *)

I don't know if I agree here. I can go along with the previous suggestion because every year has 12 months and therefore yearMonth can be accurately converted to months. It's not the same situation as monthDay vs. day where not every month has the same number of days, and therefore a representation of duration in terms of monthDay will not give an accurate duration in terms of days - which is what I think we want here. 


> 
> [10] duration:
> 
> The BNF does not mention times (hours, etc.) for duration, whereas both
> our specification and the W3C XML Schema 1.1 do. 

I think the spec is silent on this, and it should say one way or the other, but I have assumed that we do not need to represent time within duration,




Furthermore, the
> following expression
> 
> > (yearsDuration ((monthsDuration | "0")(daysDuration | "0")?)?)
> probably may need to be reformulated to maybe:
> 
> ( yearsDuration ( monthsDuration | ( ( monthsDuration | "0M")
> daysDuration
> ) )? )

Ok.


> > monthsDuration = positiveInteger "M"
> monthsDuration = oneThru11 "M"

This whole issue of what constraints there are on the components of duration needs more study. I looked at ISO 8601 and it doesn't give any guidance (that I can see).



> [11] longYear
> 
> The uppercase "Y" may need to be changed to lowercase "y". 

Ok.


> the dot (period) before the "e" does not match our specification. The
> BNF does not either accepts "1.7e8" as described in our specification.

I don't see that.

	positiveDigit “.e” yearExponent

Will produce  1.7e8


> I would suggest to avoid decimal dots because, it makes it easier to
> write a BNF that do not allow non-integer years, such as 1.2345e3 and
> it solves the problem with different decimal separators in different
> countries (often dots or commas).
> 
> Thus, I would suggest "17e7" instead of "1.7e8", 

I'd like to hear comments on this suggestion.  I am reluctant to make such a change without input from other implementers. 


> [12] season
> 
> What about choosing the caret character (^) before the qualifier, in
> analogy with the calendar?

I don't see what is gained by doing that. 'q' was chosen because it indicates "qualifier".

 
> > year = baseYear | "("baseYear")" ("?" | "~")
> year = baseYear ("?" | "~") (* without parenteses around the year *)

The intention is that "?" or "~" may be used without parenthesis when it applies to the entire expression and that parenthesis be used to apply it to a part of the expression.

Thanks much for the comments, suggestions, and corrections!

--Ray