Hi all,

Please find below some comments I didn't make at last meeting due to time constraints.


1) Chapter "JSContact extra information"

Like vCard, JSContact is a generic representation for contacts. Hence, it includes information that is likely inapplicable to the RDAP context.

The queston is: Can the existence of such extra information be a factor to exclude the use of JSContact in RDAP ?

To support my answer I need to make a brief recall of the RFC 7483 history. The first two versions included a contact representation very close to SimpleContact, maybe exactly the same as the one proposed by Andy in the first post introducing SimpleContact as opposed to JSContact. As far as I have deduced from the mails (please correct me if I'm wrong), after a discussion, the WEIRD WG decided to opt for vCard due to the following reasons:

a) vCard was an IETF spec

b) It defined a superset of the information needed by RDAP

c)  Every registry would have fitted its own information into vCard

d) There was no need to reinvent the wheel

AFAIU, nobody complained about the vCard data inapplicable to the RDAP context.

If I remember well the outcomes of the ICANN RDAP Pilot Project, the main concern with jCard was about its format rather than its content.

Having to completely map the vCard information, the original JSContact proposal already included those data but this was deemed irrelevant in order to adopt rdap-jscontact.

That said, I'm very surprised to know now that the main reason supporting the replacement of JSContact with SimpleContact is something that has been considered negligible for a decade.


2) Chapter "Make it simpler"

Prefer "Make it better". I mean, simplicity cannot be the only parameter used within IETF to evaluate a technical solution. IMO there are other parameters that are more important: flexibility, estensibility, efficiency.

In addition, no one in their right mind deliberately makes a proposal inherently complex. JSContact started as simple as possible and get more complex to meet the requirements.

Indeed, the collections were first represented as arrays and the language dependent variants were treated as instances of the LocalizedString object (i.e. a <text, language> pair).

Later, we opted for PatchObject to model every localization regardless of the type of the JSON value to localize and whether such value was pre-defined or introduced by an extension.

Almost at the same time, we realized that maps were most suitable for both getting the items and referring to items to be localized and, then, we decided to use maps for all the unordered collections.

Arrays are used for the collections where the order matters (i.e. name components and address components) and, to avoid the issue about selecting an array item when localizing, the spec requires to localize the entire array.

RDAP presents requirements close to those inspiring the implementation choices in JSContact.

Maybe localizing cannot be so frequent but redacting is usual instead, and redacting a map entry is less troublesome than redacting an array item.

The JSContact "localizations" property allows to separate the main values related to the default language from their language dependent variants (see recent Pawel's feedback about SimpleContact).

Every new extension doesn't require an additional effort to handle its possible localizations because, once the PatchObject have been implemented , you don't need to do anything else.

Please note as well that JSON patching is an IETF spec and has already been used in other RFCs.

Finally, JSContact allows to define addresses and names in both unstructured and structured fashion and let implementers to opt for the desired level of accuracy through the use of components.


3) Chapter "JSContact implementation"

In addition to mine and Gavin's from RegExt (I guess Gavin limits his implementation to handle the properties used in RDAP), there are other full implementations from CalExt guys (see https://github.com/cyrusimap/cyrus-imapd and https://www.audriga.com/en/Index)

We have also collected feedback and expressions of interest in other forums. Therefore, to help implementers, I and Robert Stepanek have published the interoperation tests at https://github.com/jmapio/jscontact-tests.


4) Chaper "About the future of JSContact in RDAP"

I strongly disagree about having two specs with the same puropose and I do believe that the WG should take the responsibility to decide what is mostly suitable for RDAP now and for the future.

It makes no sense to me to let the market decide especially because, in doing it, RDAP clients and servers wouldn't be absolutely free as they would have to follow the RDAP profiles.

After all, this WG was chartered in order  to "coordinate and standardize extensions and profiles to be used by registries" so we shouldn't delegate such a task to someone else.


My apologies for the long post.


Best,

Mario








--
Dott. Mario Loffredo
Senior Technologist
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web:http://www.iit.cnr.it/mario.loffredo
_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

Reply via email to