Re: [netmod] metadata in JSON

Reinaldo Penno <rapenno@gmail.com> Tue, 26 August 2014 14:47 UTC

Return-Path: <rapenno@gmail.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D39BF1A802B for <netmod@ietfa.amsl.com>; Tue, 26 Aug 2014 07:47:53 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.999
X-Spam-Level:
X-Spam-Status: No, score=-0.999 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, J_BACKHAIR_44=1, SPF_PASS=-0.001] autolearn=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 v54-Tihb-cvL for <netmod@ietfa.amsl.com>; Tue, 26 Aug 2014 07:47:52 -0700 (PDT)
Received: from mail-pd0-x233.google.com (mail-pd0-x233.google.com [IPv6:2607:f8b0:400e:c02::233]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 19C911A7D80 for <netmod@ietf.org>; Tue, 26 Aug 2014 07:47:52 -0700 (PDT)
Received: by mail-pd0-f179.google.com with SMTP id v10so22687575pde.24 for <netmod@ietf.org>; Tue, 26 Aug 2014 07:47:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:subject:references :in-reply-to:content-type; bh=jIJ17pMzjhydsV+zf9MFyGZ+G5aBypC19ngavcNy8qs=; b=qN7DMO+vkAaIaJVvR/C+9EPDgibfGH7VHHFTP7WiyxNDjbrG4jdKy5qr6uttWzZ/T4 Xw6Jr2yOymZDQ0ZV7vK2Mq+dI/5ICRFXvsVnZh9heWu6pkxmeiqwpnbyU+j8AL0xM5yy P2theKZMdxJ74FBstLfhkw83+9+sU8hIB5r/v4FeEWJkY9vdO7h9G1nPeFlZ1JLCsBfm CYcZpv/TE0mjSKQAi+y4CWZTJPc9pWUJs/u6rRiOsMbSAQEaHcs2cKgZdGNiW+a31SJq dm9hd5x7qOKEUNYXzeorVMRxpjtryEakjpryb2WCRJ/rBdR+ncCjrM9+fKeHadr9Fw+6 hipg==
X-Received: by 10.70.61.162 with SMTP id q2mr37712688pdr.50.1409064471631; Tue, 26 Aug 2014 07:47:51 -0700 (PDT)
Received: from [10.21.94.61] (128-107-239-233.cisco.com. [128.107.239.233]) by mx.google.com with ESMTPSA id pd7sm11158451pac.33.2014.08.26.07.47.49 for <netmod@ietf.org> (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 26 Aug 2014 07:47:50 -0700 (PDT)
Message-ID: <53FC9E15.6060301@gmail.com>
Date: Tue, 26 Aug 2014 07:47:49 -0700
From: Reinaldo Penno <rapenno@gmail.com>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:31.0) Gecko/20100101 Thunderbird/31.0
MIME-Version: 1.0
To: netmod@ietf.org
References: <CABCOCHS8aXQKMqq+h=7fvjhpdiBpR8PbCT5QkwM3Y9KKyV0=eQ@mail.gmail.com> <E0C7A946-BB33-493C-BD95-B3BFC3EC11DF@nic.cz> <CABCOCHTOYqBe1dVAJA2CmBhho2AG68nEg9o5pPwQavvDHy=3Vg@mail.gmail.com> <m2bns7qfno.fsf@nic.cz> <20140730110826.GE61382@elstar.local> <DB5305F2-2BE1-44FC-A8AA-648E4633F85E@nic.cz> <20140730130412.GB61698@elstar.local> <E3612646-17B9-44FA-8C4C-9C2F3FA1C67E@nic.cz> <20140731055201.GC63208@elstar.local> <5BA7630E-B06F-47B5-9ACD-92D9A3512864@nic.cz> <20140731122200.GC64359@elstar.local> <m2zjer2yga.fsf@nic.cz> <CABCOCHQEwamRQ3AC6NCTTi0UGa553gfkVmc4XnjsRE4MHxqLmQ@mail.gmail.com>
In-Reply-To: <CABCOCHQEwamRQ3AC6NCTTi0UGa553gfkVmc4XnjsRE4MHxqLmQ@mail.gmail.com>
Content-Type: multipart/alternative; boundary="------------000102020005030708020307"
Archived-At: http://mailarchive.ietf.org/arch/msg/netmod/mz-IqKfOcrXtRgmZLSyLoyKzLIs
Subject: Re: [netmod] metadata in JSON
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 26 Aug 2014 14:47:54 -0000

I agree that vendors could define metadata as long as there is a 
procedure for that such as a IETF document and a IANA registry.

My reasoning is that I see this metadata is much like decorators in 
Java. In the case of JAVA<->JSON there are multiple libraries that can 
do serialization and they use different decorators, therefore not very 
interoperable. So, we I would suggest metadata/decorators are registered 
somewhere and there is possibility for standard, experimental and 
private notations.

On 8/26/14 7:19 AM, Andy Bierman wrote:
> Hi,
>
> This issue and been opened and closed again at least 3 times.
> Are we spinning on this issue until you get the answer you like?
> Which choice is the solution from Martin we already agreed to use?
> That is the one I prefer.   The namespace URI is much longer than
> the module-name, and not easy to remember like the module name.
> But if YANG will not have attributes, then there may be no other choice.
>
> I do not agree with the CLR that only the RESTCONF protocol doc
> can define meta-data.  What is the purpose of that rule?  NETCONF
> has "with-defaults" in a separate document.  The protocol
> needs to be modular so new optional features can be added over time.
> Vendors should be able to add meta-data as well.
>
>
> Andy
>
>
> On Tue, Aug 26, 2014 at 6:05 AM, Ladislav Lhotka <lhotka@nic.cz 
> <mailto:lhotka@nic.cz>> wrote:
>
>     Hi,
>
>     I would like to resolve the issue of metadata encoding in JSON, so let
>     me summarize the options we have. There are actually two valid
>     questions:
>
>     1. Does the specification of the mapping of XML attributes in JSON
>        belong to the yang-json document, and if so, in what form?
>
>     Possible answers:
>
>     1.1. No, as YANG doesn't model XML attributes.
>     1.2. Yes, as normative text.
>     1.3. Yes, as non-normative text.
>
>     For 1.2 and 1.3, we have to answer the second question because I
>     assume
>     most XML attributes in use with YANG-modelled data will have
>     non-null namespace:
>
>     2. How do we represent the namespace of an attribute in JSON?
>
>     Possible answers, using
>
>       <elem xmlns:x="http://example.com/ns/URI" x:attr="foo">bar</elem>
>
>     as an example:
>
>     2.1. Use Clark's notation [1]:
>
>       "elem": "bar",
>       "@elem": {
>         "{http://example.com/ns/URI}attr
>     <http://example.com/ns/URI%7Dattr>": "foo"
>       }
>
>     2.2. Associate somehow every attribute with a YANG module, and
>     then use
>          the same notation as for encoding the namespace of YANG data
>     nodes:
>
>       "elem": "bar",
>       "@elem": {
>         "somemodule:attr": "foo"
>       }
>
>     2.3. Associate somehow the XML namespace URI with a prefix in JSON and
>          then use the same notation as for XML:
>
>       "elem": "bar",
>       "@elem": {
>         "x:attr": "foo"
>       }
>
>     In both 2.2 and 2.3, we need to say what "somehow" actually means.
>     If we
>     accept 1.3, it could I guess involve a certain amount of
>     hand-waving but
>     leaving it completely unanswered IMO makes the whole thing useless.
>
>     I personally think that 2.3 would be a step in a wrong direction
>     because
>     the URI-prefix duality was recognized as a serious problem of XML
>     namespaces [2].
>
>     Please indicate your preferences or propose something else.
>
>     Thanks, Lada
>
>     [1] http://tools.ietf.org/html/draft-saintandre-json-namespaces-00
>     [2] http://blog.jclark.com/2010/01/xml-namespaces.html
>
>     Juergen Schoenwaelder <j.schoenwaelder@jacobs-university.de
>     <mailto:j.schoenwaelder@jacobs-university.de>> writes:
>
>     > On Thu, Jul 31, 2014 at 10:49:07AM +0200, Ladislav Lhotka wrote:
>     >>
>     >> On 31 Jul 2014, at 07:52, Juergen Schoenwaelder
>     <j.schoenwaelder@jacobs-university.de
>     <mailto:j.schoenwaelder@jacobs-university.de>> wrote:
>     >>
>     >> > On Wed, Jul 30, 2014 at 05:53:30PM +0200, Ladislav Lhotka wrote:
>     >> >>
>     >> >>>>> understand that this makes the solution somewhat
>     incomplete but it
>     >> >>>>> allows us to finish this document now and to move forward.
>     >> >>>>
>     >> >>>> That is my priority, too.
>     >> >>>
>     >> >>> Good. So what speaks against saying that if attribute names
>     clash and
>     >> >>> if attributes are scoped by a module name, then the
>     encoding is XYZ?
>     >> >>
>     >> >> I thought YANG 1.1 was a good opportunity to decide about
>     how to do this scoping, provided that standard attributes are
>     really needed.
>     >> >>
>     >> >
>     >> > Lets keep the discussion focused on the JSON document. Are
>     you OK with
>     >> > the proposal to add text that attribute names may be scoped?
>     >>
>     >> Yes, if there is no other choice. It is unclear what “scoped”
>     means.
>     >>
>     >
>     > Scoped by a namespace, such as 'namespace:identifier'.
>     >
>     > /js
>     >
>     > --
>     > Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>     > Phone: +49 421 200 3587         Campus Ring 1, 28759 Bremen, Germany
>     > Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>
>
>     --
>     Ladislav Lhotka, CZ.NIC Labs
>     PGP Key ID: E74E8C0C
>
>
>
>
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod