Hi,

Il 20/09/2023 18:34, Pawel Kowalik ha scritto:

Hi Andrew,

The new draft goes in the right direction, but for me there are still few elements, that seem to be too complex for the purpose.

For all fields there is an assumed plurality with lists of values, where theoretically the only differentiator should be the localization, however actually the data structure does not exclude that there are several values with the same localization or without any localization, which might be confusing and also requires a complex processing by the clients to always iterate the whole list in order to find out if there is a certain localization present in the response.

[ML] I agree with Pawel that the main values should be separated from their language-dependent variants. In addition, it seems to me that the simple contact data model allows for some inconsistencies.

For example, it allows for multiple individual names.

I'm perfectly know that it doesn't correspond to a real case but the point is that, in theory, the current model allows for that.

This is because of the lacking of constraints.

Representing the individual name information as a single text wouldn't allow to set multiple individual names accidentally.

In addition, using simple type values whenever it is possible allows to validate the objects against some constraints by simply annotating the object members in the source code.

Lists have still the issue of addressing the list elements with JSON Pointers in redaction process.

[ML] This is one of the reasons why almost all of the JSContact collections are maps.  The drawbacks from using JSONPointers in JSContact localizations are the same as those from using JSONPaths in the redaction process.

As localization is a specific use case and would used on a need basis, the case of single value being the main use-case, I would rather see the values to be singular international value, with a localization being a separate optional dictionary.

Using the example from 2.8 of a draft it would be something like this:

{

  "individualName": "Yomada Taro",

  "individualNameLoc": {

    "ja": "山田太郎"

  }

}

This approach allows a very compact representation if there is no localization provided, and also a deterministic data structure if the localization is necessary. It matches also EPP model in RFC 5733, where actually max 2 postalInfo objects are allowed, one in internationalized and one in local version.

An access to the localization can be also very easily be implemented by the clients by looking up if the "Loc" key is present and then by dictionary lookup of the needed localization.

[ML] Having multiple properties representing localizations is inefficient in my opinion. Grouping all the localizations in one property makes very easy for a client to know if there are localizations or not and process all the localizations in the same way.

In addition, if this model will ever be extended with a property admitting languange-dependent variants, there will be no need to define an additional property representing the related localizations.

I also suggest to stick to the field names and structure as defined in RFC 5733, rather than defining new names or partially reusing existing ones..

addr instead of postalAddress

streets instead of address

postalInfo as a wrapping object etc.

[ML] Why doesn't the postal address include a property representing the city ? The country code and the city are required information in RFC5733 while the postal code is optional.

Last, since the RDAP implementers have already mapped the RFC5733 "addr" elements to the related vCard ADR elements, why  should they change that mapping instead of simply replacing the target properties with new ones ?

An unstructured address can be represented through a seprated property.


Best,

Mario



Example of complete simple contact (without localization):

{
   "objectClassName" : "entity",
   "handle":"XXXX",
   "sc_data": {
     "kind" : "individual",
     "postalInfo": {
       "individualName" : "Yomada Taro",
       "roleName" : "Registration Services Help Desk",
       "organizationName" : "ACME",
       "addr" : {
        "streets" : [
             "Sunny Mansion #203",
             "4-7 Hommachi 2-choume",
             "Shibuya-ku, TOKYO 150-2345"
           ],
           "cc" : "JP-13",
           "pc" : "150-2345"
         }
     },
     "email" :"yamada.t...@example.net",
     "voice" : ["+81(03) 1234-5678"],
     "fax:" : ["tel:+810312345679"],
     "webContacts" : ["https://example.net/contact-me";]
   }
   ...
}

Kind Regards,

Pawel


Am 31.08.23 um 12:02 schrieb Andrew Newton:
Hi all,

We have posted an update to Simple Contact. Here are the summary of the changes:

* removed structured names
* removed structured addresses
* fixed ISO-3166-2 usage
* removed the "masked" property
* updated the example
* added a section on linking to vcard / jcard / jscontact

Overall, this simplifies the draft significantly, which was the
overall feedback from IETF 117.

-andy

---------- Forwarded message ---------
From:<internet-dra...@ietf.org>
Date: Thu, Aug 31, 2023 at 5:56 AM
Subject: New Version Notification for
draft-newton-regext-rdap-simple-contact-01.txt
To: Andy Newton<a...@hxr.us>, Tom Harrison<t...@apnic.net>


A new version of Internet-Draft draft-newton-regext-rdap-simple-contact-01.txt
has been successfully submitted by Andy Newton and posted to the
IETF repository.

Name:     draft-newton-regext-rdap-simple-contact
Revision: 01
Title:    RDAP Simple Contact
Date:     2023-08-31
Group:    Individual Submission
Pages:    11
URL:https://www.ietf.org/archive/id/draft-newton-regext-rdap-simple-contact-01.txt
Status:https://datatracker.ietf.org/doc/draft-newton-regext-rdap-simple-contact/
HTML:https://www.ietf.org/archive/id/draft-newton-regext-rdap-simple-contact-01.html
HTMLized:https://datatracker.ietf.org/doc/html/draft-newton-regext-rdap-simple-contact
Diff:https://author-tools.ietf.org/iddiff?url2=draft-newton-regext-rdap-simple-contact-01

Abstract:

    This document describes an extension to the Registry Data Access
    Protocol for entity contact data using basic JSON values, objects,
    and arrays.  The data model defined by this document is purposefully
    limited to the data in-use by Internet Number Registries and Domain
    Name Registries and does not attempt to model the full data-set that
    can be expressed with other contact models such as jCard or
    JSContact.



The IETF Secretariat

_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext
Pawel Kowalik
Head of Product Management
--
DENIC eG, Theodor-Stern-Kai 1, 60596 Frankfurt am Main, GERMANY
E-Mail:pawel.kowa...@denic.de, Fon: +49 69 27235-105, Fax: -235
https://www.denic.de
Angaben nach § 25a Absatz 1 GenG: DENIC eG (Sitz: Frankfurt am Main)
Vorstand: Thomas Keller, Martin Küchenthal, Andreas Musielak, Sebastian Röthler
Vorsitzender des Aufsichtsrats: Daniel Rink
Eingetragen unter Nr. 770 im Genossenschaftsregister, Amtsgericht Frankfurt am 
Main
Allgemeiner Hinweis zur Erfüllung unserer Informationspflichten gemäß Art. 13, Art. 14 DS-GVO: Informationen zur Verarbeitung personenbezogener Daten durch DENIC finden Sie unterhttps://www.denic.de/datenverarbeitung-allgemein/

_______________________________________________
regext mailing list
regext@ietf.org
https://www.ietf.org/mailman/listinfo/regext

--
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