On 7/17/13 12:27 AM, Ben Campbell wrote:
I am the assigned Gen-ART reviewer for this draft. For background on
Gen-ART, please see the FAQ at
< http://wiki.tools.ietf.org/area/gen/trac/wiki/GenArtfaq>.
Please wait for direction from your document shepherd
or AD before posting a new version of the draft.
Document: draft-ietf-jcardcal-jcard-04
Reviewer: Ben Campbell
Review Date: 2013-07-16
IETF LC End Date: 2013-07-18
IESG Telechat date: 2013-07-18
Note: This draft is on the IESG Telechat agenda on the same date as it
completes IETF Last Call. Therefore, this review serves both purposes.
Summary: This draft is almost ready for publication as a proposed standard.
There are a few minor issues and editorial nits that should be considered prior
to publication.
Major issues:
-- None
Minor issues:
-- Section 1, design considerations:
You mention that the semantic results should survive round-tripping, but the
order of fields might not. I gather there are other changes that might occur
from the literal text, right? (e.g. Case changes, some optional parameter
usage). If so, it might be worth clarifying that.
Yes, thanks. I've added the case changes since even though upper-case is
RECOMMENDED in rfc6350, it is indeed information that is lost. Could you
elaborate which optional parameters you mean? If you mean the GROUP
parameter, this parameter is to be removed when converting back into
vCard, so there is no change to the original group construct.
I neither found nor recall any other examples where it would be
necessary to add anything.
-- 3.1, 2nd paragraph:
I assume the removal of escaping means that one renders the escaped text, not
simply removes it, right? Is that as simple as removing the escape characters
in vCards? I assume this doesn't apply to any content-specific escaping inside
vCard fields, e.g. URI escaping, right? If so, it might be worth mentioning.
I agree "removed" isn't the best word, I wasn't really happy with the
alternatives though, maybe "unescape" will work out (not sure if that is
a real word?). If not, then I'd go with your "render", although to me
that always suggests it is actually displayed. I'm happy for more
suggestions though:
OLD:
When converting from vCard to jCard, lines MUST be unfolded
first.
Afterwards, vCard escaping MUST be removed. The only
escaping that
may be applied is any escaping mandated by JSON (e.g., for
control
characters).
The reverse order applies when converting from jCard to
vCard. First,
JSON escaping MUST be removed. Afterwards, vCard escaping MUST be
applied. Finally, long lines SHOULD be folded as described in
[RFC6350].
NEW:
When converting from vCard to jCard, lines MUST be unfolded
first.
Afterwards, vCard escaping MUST be unescaped. The only
escaping that
may be applied is any escaping mandated by JSON (e.g., for
control
characters) and any content-specific escaping inside vCard
values,
e.g. URI escaping.
The reverse order applies when converting from jCard to
vCard. First,
JSON escaping MUST be unescaped. Afterwards, vCard escaping
MUST be
applied. Finally, long lines SHOULD be folded as described in
[RFC6350].
-- 3.2.1.1:
What happens for future versions of vCard? Do you simply use the new version
number, or would we need a new version of this spec? I suspect the latter. If
true, it might be worth mentioning that, or somewhere early in the draft
mention that this spec is for vCard 4.0 only.
I'd love to hear from the WG here, but given vCard 5.0 can at least in
theory be completely different, I think the correct thing to do would be
to restrict this jCard document to 4.x and when 5.x comes around create
a revision of the document. Of course the text could be changed so that
its "valid until revised by another document", in case the changes in
5.x are minor enough that no change in jCard is needed.
In any case, there should be a text change that any 4.x revision is
allowed. For example, I recently read a suggestion for signed vCards
that might use a version "4.0s".
-- sections 3.4.3 and 3.4.4:
Is the included ABNF a quotation of that in the referenced RFCs, or is it new
and authoritative? If the former, it would be helpful to mention that in the
text. (I note you did say that about the ABNF in the appendix).
The ISO specs don't provide a direct BNF for any of their constructs.
Instead they show examples in the form:
Basic format: YYYYMMDD Example: 19850412
Extended format: YYYY-MM-DD Example: 1985-04-12
The ABNF in jCard mimics this format, so it is not new, but given it
matches I guess we could say its authoritative. Unless someone tells me
otherwise (I'm still a bit uncertain when something can be called
authoritative), I'll change it by changing the hangText "ABNF Schema:"
to "ABNF Schema (authoritative):" in both sections.
-- 3.4.11:
If RFC6350 says that use of the timezone offset is NOT RECOMMENDED, can you elaborate on
why it's included here? (I can guess it's because people may still use it in vCards since
it was a "MUST NOT", but it would be good to say something to that effect in
the text.)
There is no other vCard property that uses a utc-offset as a type, so
this is just for the sake of an example. RFC6350 Section 6.5.1 has the
details, it says utc-offset SHOULD NOT be used on a TZ property. The
alternative would be to use an x-property for the example, i.e
["x-clock-offset", {}, "utc-offset", "-05:00"]
Do you think we should use this instead?
Nits/editorial comments:
-- Section 1, paragraph 1:
Please expand JSON on first mention.
Doing this in the introduction since you reference Section 1, paragraph
1. It already appears in the abstract, should I expand it there
instead/in addition?
As the first mention uses "JSON-based", I've reworded these two paragraphs:
OLD:
As certain similarities exist between vCard and the iCalendar data
format [RFC5545], there is also an effort to define a JSON-based data
format for calendar information called jCal [I-D.ietf-jcardcal-jcal]
that parallels the format defined in this specification.
The purpose of this specification is to define "jCard", a JSON format
for vCard data. One main advantage to using a JSON-based format as
defined in [RFC4627] over the classic vCard format is easier
processing for JavaScript based widgets and libraries, especially in
the scope of web-based applications.
NEW:
As certain similarities exist between vCard and the iCalendar data
format [RFC5545], there is also an effort to define a JSON-based data
format for calendar information called jCal [I-D.ietf-jcardcal-jcal]
that parallels the format defined in this specification. The term
JSON describes the JavaScript Object Notation defined in [RFC4627].
The purpose of this specification is to define "jCard", a JSON format
for vCard data. One main advantage to using a JSON-based format over
the classic vCard format is easier processing for JavaScript based
widgets and libraries, especially in the scope of web-based
applications.
-- Section 1, paragraph 3:
This paragraph seems redundant to paragraph 1.
Yes, the duplicate is now removed. Sorry about that!
-- 1, paragraph 7: " Preserve the semantics of the vCard data."
Imperative form sentence is confusing in context, and inconsistent with
surrounding text.
OLD:
Preserve the semantics of the vCard data. While a simple consumer
can easily browse the data in jCard, a full understanding of vCard
is still required in order to modify and/or fully comprehend the
directory data.
NEW:
The vCard data semantics are to be preserved, allowing a simple
consumer to easily browse the data in jCard. A full understanding
of vCard is still required in order to modify and/or fully
comprehend the directory data.
-- 1, paragraph 8:
Sentence Fragment.
The original intent was to make this a list of considerations, but as
the first sentences are full I agree this makes it seem weird. How is
this? I'm a little unsure about the "must not", but since this is just a
consideration for the document and not an order for the consumer I think
its ok with this casing:
OLD:
Ability to handle many extensions to the underlying vCard
specification without requiring an update to this document.
NEW:
Extensions to the underlying vCard specification must not lead to
requiring an update to jCard.
-- 3.2, Last Paragraph: "... for a parser check the data type..."
Missing "to"?
Done
-- 3.2.1.2, last paragraph before example:
Should the "iCalendar" reference be "vCard" instead?
Yes, copy/paste fail from jCal. Fixed.
-- 3.2.1.3, Last Paragraph:
RFCTODO? I gather in the IANA section, that may be a placeholder for "this
RFC", but that doesn't seem to fit here.
My intention was to keep the registration template as general as
possible, RFCTODO indeed references "this RFC", I've defined an entity
for it in the source. Do you want me to replace it with "this document"
instead? I was thinking if the registration template is maybe copied out
of the document and gathered somewhere, it would make sense to reference
the document by its rfc number.
-- 3.3.2: "Example 1:"
Other examples are not numbered.
Fixed
-- 5:
More occurrences of RFCTODO
Same reason, they appear in a registration template. I'm happy to
replace with "this document" in case I'm told the registration template
is never extracted from the document without any processing.
Thank you for the review!