Re: [regext] EPP Contact Mapping for RDAP

Mario Loffredo <mario.loffredo@iit.cnr.it> Fri, 22 February 2019 16:21 UTC

Return-Path: <mario.loffredo@iit.cnr.it>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 23679128B36 for <regext@ietfa.amsl.com>; Fri, 22 Feb 2019 08:21:05 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.19
X-Spam-Level:
X-Spam-Status: No, score=-4.19 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4Uly1fSy1ctn for <regext@ietfa.amsl.com>; Fri, 22 Feb 2019 08:21:01 -0800 (PST)
Received: from smtp.iit.cnr.it (mx3.iit.cnr.it [146.48.98.150]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 071ED1276D0 for <regext@ietf.org>; Fri, 22 Feb 2019 08:21:00 -0800 (PST)
Received: from localhost (localhost [127.0.0.1]) by smtp.iit.cnr.it (Postfix) with ESMTP id BB72C6003D8; Fri, 22 Feb 2019 17:20:58 +0100 (CET)
X-Virus-Scanned: Debian amavisd-new at mx3.iit.cnr.it
Received: from smtp.iit.cnr.it ([127.0.0.1]) by localhost (mx3.iit.cnr.it [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U7aFH4ya0-SX; Fri, 22 Feb 2019 17:20:56 +0100 (CET)
Received: from [192.12.193.108] (pc-loffredo.nic.it [192.12.193.108]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.iit.cnr.it (Postfix) with ESMTPSA id DCFB06002BD; Fri, 22 Feb 2019 17:20:55 +0100 (CET)
DMARC-Filter: OpenDMARC Filter v1.3.1 smtp.iit.cnr.it DCFB06002BD
Authentication-Results: smtp.iit.cnr.it; dmarc=none header.from=iit.cnr.it
To: Gavin Brown <gavin.brown@centralnic.com>, Andy Newton <andy@hxr.us>
Cc: "regext@ietf.org" <regext@ietf.org>
References: <afe74a3a-c7f5-2fdb-f6ab-e558f199ec2f@centralnic.com> <c5356f9d-f7cb-c58a-87d8-82ff2fbe25d4@iit.cnr.it> <20190219112315.mlcgldexolacpwov@zeke> <43c2ec61-cc0e-9faa-b428-9010418bb75d@centralnic.com>
From: Mario Loffredo <mario.loffredo@iit.cnr.it>
Message-ID: <84f29510-2107-7242-43ba-82ae00b2413d@iit.cnr.it>
Date: Fri, 22 Feb 2019 17:20:48 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1
MIME-Version: 1.0
In-Reply-To: <43c2ec61-cc0e-9faa-b428-9010418bb75d@centralnic.com>
Content-Type: multipart/alternative; boundary="------------E8818E24956549C98F32B38B"
Content-Language: it
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/uX1zHD3woDT1_ej285_BJ29b6uQ>
Subject: Re: [regext] EPP Contact Mapping for RDAP
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 22 Feb 2019 16:21:05 -0000

Hi all,

Il 22/02/2019 14:41, Gavin Brown ha scritto:
> Thanks Andy, Mario and Bernhard for the useful feedback.
>
> It seems to me that there is a lot of appetite for a way to replace
> jCard: in addition to F2F conversations and discussions in the ICANN
> world, I've also had private feedback on this draft which indicates a
> lot of frustration with jCard from implementers.
>
> If anyone implementing an RDAP client or server has some experiences
> with jCard that they can share that would be very helpful in
> understanding the demand for an alternative.
>
> jCard was added in draft-ietf-weirds-json-response-03, so the last
> version to have "native" contacts was -02.
>
> In it, entities in DNRs had a different syntax to entities in RIRs,
> however, there was a lot of similarity. Adding jCard helped in that the
> contact information got moved into a subordinate object property rather
> than being mixed in with the metadata (handle, roles, links, etc).
>
> You can use the syntax for the contact info in the -02 draft and replace
> the "eppContactInfo" object in my draft with a generic "contactInfo"
> object such as the following:
>
> {
>    "objectClassName": "entity",
>    "handle": "XXXX",
>
>    "contactInfo": {
>      "entityNames": [
>        "Joe Bob, Inc.",
>        "Bobby Joe Shopping"
>      ],
>      "postalAddress": [
>        "123 Maple Ave",
>        "Suite 90001",
>        "Vancouver",
>        "BC",
>        "12393"
>      ],
>      "emails": [
>        "joe@bob.com",
>        "bob@joe.com"
>      ],
>      "phones": {
>        "office": [
>          "1-958-555-4321",
>          "1-958-555-4322"
>        ],
>        "fax": [
>          "1-958-555-4323"
>        ],
>        "mobile": [
>          "1-958-555-4324"
>        ]
>      }
>    },
>
>    // rest of metadata
> }
>
> G.

I would like to give my contribution to the discussion. In my opinion, 
the real mess of jCard is the massive use of jagged arrays which makes 
deserialization harder than having objects with fixed members.

On the other side, I think jCard provides a very flexible representation 
of entity information. Basically, it is a list of 4-tuples  where the 
fourth item is either simple or structured value and the addition of a 
new property results in defining a new value for the first item.

That being said, the possible representation for an RDAP entity coming 
in my mind are the following:

1) A structure including a set of fixed members each having a specific 
meaning (like the one proposed by Gavin).

*Pros*: Easy deserialization. Conceptually elegant. *Cons*: Not very 
flexible. Any additional information provided by a server will not be 
recognized in deserialization. If we consider the 80-20 ratio, 80% of 
most common information will be recognized, 20% of uncommon information 
will not.

2) A JSON transformation of vCard different than jCard. According to 
that, the contact information could be represented as an array of 
objects including a set of fixed members having a generic meaning like 
the following:

   { "key" : "string",

     "simple" : "string",

     "structured": [

                                {"key": "string",

                                 "simple": "string"}

                            ]

}

In brief, something more generic and, therefore, more flexible but, at 
the same time, simple to be deserialized. Obviously, "simple" and 
"structured" are alternatives.

*Pros*: Very flexible***Cons*: Not very conceptually elegant. The 
meaning of each contact property is specified by a string value (the 
same as it happens in jCard)

3) A hybrid solution. Most common properties are modelled by objects 
whose structure is fixed (e.g. "postalAddress" could be on object 
containing "street", "city", "cc" and so on)  like those proposed in the 
first solution, while the possible remaining properties could be 
represented as an array of the same item as described by the second 
solution. No information would be lost in deserialization.

Hope this could be useful.

Regards,

mario

>
> On 19/02/2019 11:23, Andy Newton wrote:
>> On Tue, Feb 19, 2019 at 08:05:50AM +0100, Mario Loffredo wrote:
>>> Hi Gavin,
>>>
>>> if I understand correctly, this extension involves only those RDAP entities
>>> in common with EPP (i.e registrant, admin, tech, billing), doesn't it?
>>>
>>> If so, what about the other entities (e.g. registrar, reseller) ? Should
>>> they be represented by jCard ?
>> I have the same question and concern. While I support moving away
>> from jCard, we should not be focusing only on EPP especially since RDAP was
>> first widely adopted and is used today by non-EPP communities. RDAP itself is
>> not a product of the EPP community but was an outgrowth of experiments
>> conducted by the RIRs.
>>
>> That said, being compatible with EPP is certainly a requirement in my opinion.
>>
>> Given this is a rather substantial change, we should also be thorough in our
>> approach:
>>
>>    1. We should dig up the pre-jCard RDAP drafts and see if there is good stuff
>> there.
>>    2. We should either consult or repeat the work of CN-NIC during the WEIRDS
>> working group where they study the Whois output of all available registries and
>> found what was needed.
>>    3. We should also pay attention to the discussions around contacts in JMAP
>> now going on in the IETF.
>>
>> Overall, what is specified here looks good to me. Here are my comments for
>> improvements:
>>
>>    1. The country and region codes should be tied to ISO-3166 or a superset.
>>    2. There should be a place to spell out both region and country. Some
>> registries do not collect 3166 codes.
>>    3. Phone, fax, email should be arrays because some registries collect
>> multiples of these.
>>    4. There should be an indicator noting that the contact information is for an
>> individual.
>>
>> -andy
>>
>
> _______________________________________________
> regext mailing list
> regext@ietf.org
> https://www.ietf.org/mailman/listinfo/regext

-- 
Dr. Mario Loffredo
Servizi Internet e Sviluppo Tecnologico
CNR - Istituto di Informatica e Telematica
via G. Moruzzi 1, I-56124 PISA, Italy
E-Mail: mario.loffredo@iit.cnr.it
Phone: +39.0503153497
Web: http://www.iit.cnr.it/mario.loffredo