Re: [mile] Artart last call review of draft-ietf-mile-rolie-10

"Waltermire, David A. (Fed)" <david.waltermire@nist.gov> Wed, 06 December 2017 21:28 UTC

Return-Path: <david.waltermire@nist.gov>
X-Original-To: mile@ietfa.amsl.com
Delivered-To: mile@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8136F1200FC; Wed, 6 Dec 2017 13:28:42 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nistgov.onmicrosoft.com
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 R4V6dGyNhhBk; Wed, 6 Dec 2017 13:28:39 -0800 (PST)
Received: from gcc01-CY1-obe.outbound.protection.outlook.com (mail-cy1gcc01on0125.outbound.protection.outlook.com [23.103.200.125]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 185B51270AE; Wed, 6 Dec 2017 13:28:38 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nistgov.onmicrosoft.com; s=selector1-nist-gov; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=K7FQalJu7n4bZF54MYHTVy5ugVeOVsHTJdX/TumOgUo=; b=eIpPP56cpRF4peIZl3PL2esjG0LZ0eBnMutZhLroHsxZpPYYfp5jp6gfVPgDeQGezP33utebmCIriFu/iTRz0LmPXp8HsfOP5tHMMG17ahC1bYR/uhOyBDjYoS7AxjkXY5N4OZPyXz+hAGF998wfgNyaltWin1m48httXTYLZAw=
Received: from BN6PR09MB1491.namprd09.prod.outlook.com (10.173.202.143) by BN6PR09MB1187.namprd09.prod.outlook.com (10.172.17.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Wed, 6 Dec 2017 21:28:32 +0000
Received: from BN6PR09MB1491.namprd09.prod.outlook.com ([10.173.202.143]) by BN6PR09MB1491.namprd09.prod.outlook.com ([10.173.202.143]) with mapi id 15.20.0282.012; Wed, 6 Dec 2017 21:28:31 +0000
From: "Waltermire, David A. (Fed)" <david.waltermire@nist.gov>
To: Martin Thomson <martin.thomson@gmail.com>, "Banghart, Stephen A. (Fed)" <stephen.banghart@nist.gov>
CC: "mile@ietf.org" <mile@ietf.org>, "draft-ietf-mile-rolie.all@ietf.org" <draft-ietf-mile-rolie.all@ietf.org>
Thread-Topic: [mile] Artart last call review of draft-ietf-mile-rolie-10
Thread-Index: AQHTQLy6AlrnYGEzJkSW/mjw8rDt26Lra++AgAB9mgCAFejegIABI5oAgAO9KQCAMGTFUA==
Date: Wed, 06 Dec 2017 21:28:31 +0000
Message-ID: <BN6PR09MB1491F1B7EB8E2262705BCBAAF0320@BN6PR09MB1491.namprd09.prod.outlook.com>
References: <150752570618.18384.5615358468704377459@ietfa.amsl.com> <DM5PR09MB13070FC0B54EB6DB8C707EE7F0420@DM5PR09MB1307.namprd09.prod.outlook.com> <CABkgnnX5NVZgYtOWYMgD5yEOmdnk2GEZuyR2OLNDwbTO-BytAw@mail.gmail.com> <CABkgnnWhtGJG9Td4-9Rhv--F9pTCdnOAiRBtXL8hW8LJoOugkQ@mail.gmail.com> <MWHPR09MB11979FC6BD45C13589C99AA5F05D0@MWHPR09MB1197.namprd09.prod.outlook.com> <CABkgnnVucswghLsXi8h7tJC-gNhkPS6Ykdtb-dxv1MzKnquf9w@mail.gmail.com>
In-Reply-To: <CABkgnnVucswghLsXi8h7tJC-gNhkPS6Ykdtb-dxv1MzKnquf9w@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=david.waltermire@nist.gov;
x-originating-ip: [129.6.224.58]
x-ms-publictraffictype: Email
x-microsoft-exchange-diagnostics: 1; BN6PR09MB1187; 6:Bk5ruEOn9+8d2A7sGb+QZmVr4EOnquxOQoFadYnRvM/06/pe8RPGPzrJOa9F0Z2Qe+jwgaFsvRkpPQP7dVcjAVnbYXlCBUBvutM34VYCdymQKQn474a04nE2MR4nybcr1rlWbTlsGxlUoCIwQF0JyYLre5MV36vB1324iSDNSEPU9I4E0wxkKdlZSiso+zIikviE9PrfgmuvULMjxUSP8udSa5K6fc8O5CwYgCyXiM1+IYJ5f/rlfPjM1AUwPaj742mRY3ar7sB+h2UYo+ZKttkM8ZmgbFeblucI83i1IhvvUZ+PPwwLzUDH+4CmOFDhGo47BD+IG70zIHOE9Y0Yq4w8ycbNFVa4Kl2TuPDrf+8=; 5:V6Y3T8hZ2MB+OecCH3GJW8t4PF4CwEXdsJoNsenLAvdNPt89glXbWu/OU7t4BKXzzJCrwIGckNezmOK6DZsUxZUXtpO+kUzTKeQxXmwVVvgKZbxIqemVOTy51JiHcywaGOrh6QGHp8x413h8kip7Oex9FlwUZRaZQ4jRk2jWqgA=; 24:sGlkm9t7wU+1NUBIS6uyb/Tz8vNGk0TyYMvLOnLna3NXFgeufD6t13glvAS4ZSq8x2bUkT9NvIM6ywGk5v/tpzWvLzUBLatW0kxdbl8NH5w=; 7:iIcxE9Xymq7gSp1dxuXqoK+INd7ixvvdkj1nw7ivYs1DDU5M56u32ehGNavvQrK6AkqGgB687nFJ7R3+84U+DmZriduqCMPfFXxeXKL313yNYsU6CKelvVjtjzvQmh4E/Lbk7MlVBTIYMaenrZF/ks5rTdxd4y85i1r+ekEDPX9ssOM5goQAea8rzHy9wifg1iZUkuVzeeHd/oUbcPmz+khc3SuNSL5hy+S7rU7AsyMkJZS8k8vB91cC+J2hTooR
x-ms-exchange-antispam-srfa-diagnostics: SSOS;SSOR;
x-forefront-antispam-report: SFV:SKI; SCL:-1; SFV:NSPM; SFS:(10019020)(979002)(346002)(366004)(376002)(199004)(24454002)(189003)(13464003)(86362001)(8936002)(6246003)(93886005)(53936002)(6116002)(39060400002)(102836003)(3846002)(106356001)(575784001)(4326008)(3660700001)(25786009)(8676002)(105586002)(97736004)(316002)(81166006)(3280700002)(81156014)(77096006)(230783001)(6306002)(66066001)(9686003)(101416001)(55016002)(606006)(229853002)(53546010)(305945005)(7736002)(33656002)(6436002)(6506006)(5660300001)(54906003)(74316002)(76176011)(966005)(478600001)(6636002)(2950100002)(68736007)(110136005)(2900100001)(14454004)(7696005)(99286004)(2906002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1102; SCL:1; SRVR:BN6PR09MB1187; H:BN6PR09MB1491.namprd09.prod.outlook.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en;
x-ms-office365-filtering-correlation-id: 3803d49d-2c5e-4b3c-754f-08d53cf04c69
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(48565401081)(2017052603286); SRVR:BN6PR09MB1187;
x-ms-traffictypediagnostic: BN6PR09MB1187:
x-microsoft-antispam-prvs: <BN6PR09MB11876675FC04F44567DF8502F0320@BN6PR09MB1187.namprd09.prod.outlook.com>
x-exchange-antispam-report-test: UriScan:(65766998875637)(131327999870524)(1591387915157);
x-exchange-antispam-report-cfa-test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(3231022)(3002001)(93006095)(93001095)(10201501046)(6055026)(6041248)(20161123560025)(20161123555025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123562025)(20161123564025)(6072148)(201708071742011); SRVR:BN6PR09MB1187; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BN6PR09MB1187;
x-forefront-prvs: 05134F8B4F
received-spf: None (protection.outlook.com: nist.gov does not designate permitted sender hosts)
spamdiagnosticoutput: 1:99
spamdiagnosticmetadata: NSPM
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: nist.gov
X-MS-Exchange-CrossTenant-Network-Message-Id: 3803d49d-2c5e-4b3c-754f-08d53cf04c69
X-MS-Exchange-CrossTenant-originalarrivaltime: 06 Dec 2017 21:28:31.1934 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 2ab5d82f-d8fa-4797-a93e-054655c61dec
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR09MB1187
Archived-At: <https://mailarchive.ietf.org/arch/msg/mile/HHbfr29oLJ84hSuippgVYuHdNyo>
Subject: Re: [mile] Artart last call review of draft-ietf-mile-rolie-10
X-BeenThere: mile@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Managed Incident Lightweight Exchange, IODEF extensions and RID exchanges" <mile.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mile>, <mailto:mile-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mile/>
List-Post: <mailto:mile@ietf.org>
List-Help: <mailto:mile-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mile>, <mailto:mile-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 06 Dec 2017 21:28:42 -0000

Martin,

Comments below.

> -----Original Message-----
> From: Martin Thomson [mailto:martin.thomson@gmail.com]
> Sent: Sunday, November 05, 2017 7:58 PM
> To: Banghart, Stephen A. (Fed) <stephen.banghart@nist.gov>
> Cc: mile@ietf.org; draft-ietf-mile-rolie.all@ietf.org
> Subject: Re: [mile] Artart last call review of draft-ietf-mile-rolie-10
> 
> On Sat, Nov 4, 2017 at 2:52 AM, Banghart, Stephen A. (Fed)
> <stephen.banghart@nist.gov> wrote:
> > Martin,
> >
> > Could you clarify which XML issues you mean? The rolie:format /
> rolie:property elements or something else?
> >
> > rolie:format is necessary beyond media types for differentiating between
> formats that don't have their own media type, and for making clear the
> difference between a "media type" and a "format". Media types provide
> information about the serialization of content, but don't actually define the
> model of the content. Schemas can be used to help the parser understand the
> content, rolie:format provides a means to describe both the model and the
> schema of the content. We could solve this by providing some modified media
> type, but this would require just as much specification as our current solution.
> As an example, how would we best specify to a consumer that the content
> element links to an IODEF document? It's media type is XML, but there remains
> information that can only be gleaned  by downloading the entire content file.
> 
> You describe the exact purpose of a media type.  The advantage of media types
> being that the type is available in more places than just a ROLIE Feed.  For
> instance, you can use content negotiation in HTTP to ensure that you get
> something you can consume.
> 
> I'm not saying that this is more or less specification, it's just that you get more
> value from a media type than you do with this sort of mechanism.  Even if it
> means minting a few more media types.

I agree that media types would be ideal here, but they are insufficient for what we are trying to accomplish in ROLIE. Let's use a ROLIE entry for an IODEF resource as an example. A notional example ROLIE entry might look like this:

<entry>
  <id>ec15f322-24d2-4cae-b6d0-344bf94a1b0d</id>
  <title>Makebelieve Incident Report</title>
  <link rel="self" href="https://example.com/rolie/ec15f322-24d2-4cae-b6d0-344bf94a1b0d"/>
  <link rel="alternate" href="https://example.com/rolie/ec15f322-24d2-4cae-b6d0-344bf94a1b0d"/>
  <published>2012-08-04T18:13:51.0Z</published>
  <updated>2017-12-05T09:35:31.0Z</updated>
  <summary>This is a made up incident report record to use as a ROLIE example.</summary>
  <rolie:format ns="urn:ietf:params:xml:ns:iodef-2.0" version="2.0"
    schema-location="https://www.iana.org/assignments/xml-registry/schema/iodef-2.0.xsd"
    schema-type="application/xml" />
  <content type="application/xml"
    href=" https://example.com/data/a1706568-efec-49d6-8c00-9f2a2b4dc6f1" />
</entry>

The media type defined in the content element ("application/xml") is insufficient to allow the client to know that this ROLIE entry points to IODEF content. Your suggestion to handle this using improved media types is one to strive for, but RFC 7970 does not provide a media type for IODEF XML. This means that without the <rolie:format> element, the most a client can know before accessing the content is that the content is any arbitrary, well-formed XML content ("application/xml").

The use of <rolie:format> provides a mechanism to determine more information about the model using the @ns and @version attributes, and the schema for the outer model using the @schema-location and @schema-type attributes. The @ns attribute is used to determine the model of the content, while the @schema-location and @schema-type are optional elements that can be used to determine the type and location of a schema, which also can support alternate schema languages for XML or JSON. These four attributes can give the client a richer set of contextual information to determine if the content is interesting or not.

In the example, the <rolie:format> element informs the client that the content is IODEF v2 content, which can then be used by the client to make a decision to filter or download the content. The client may choose to filter if it doesn't support IODEF 2.0 as an example.

> Furthermore, identifying a schema is usually inadequate to describe the relevant
> parts of an XML format.  There are many generic container formats in XML for
> which listing the top-level schema is pointless.

While I agree, identifying the container format is better than only knowing "application/xml". Unfortuately, "application/xml" is all that can be known in common cases like IODEF v2 when no specific media type is defined. This solution acknowledges that the ideal does not always happen and provides a workable solution for when we get less from existing standards.

> ROLIE itself suffers from this because it uses Atom.  It's not even possible to list
> schemas, because that loses critical information about what elements are used
> in what contexts.  In order to properly capture the full transitive closure of
> formats, you need something considerably richer (I once thought that this worth
> doing/possible, but that idea was quickly abandoned without really testing it
> fully:
> https://tools.ietf.org/html/draft-thomson-simple-expressing-xml-support-00).

Interesting background. Thanks.

> > rolie:property has a couple of advantages over defining the key-value pairs in
> XML. Defining new elements in XML is expensive. In the ROLIE core document we
> define 4 new properties, which would yield 4 new elements in the schema. In our
>  Software Descriptor we define another software specific property, and we may
>  add more as we iterate the draft. There are two other extensions in development
> that may add new properties as well. rolie:property provides a means to easily
> define new properties without generating a huge number of new elements.
>
> I disagree on the XML - the amount of effort you put in to define your
> XML properties is pretty minimal: a namespace and schema, plus
> semantics of each of the fields.  You gain the ability to properly
> constrain the grammar (for example, you could use xs:dateTime for
> content-updated-date instead of prose).  You have demonstrated how
> easy that can be in this document (by defining rolie:property itself).

Yes. The ease of use argument is not the one I would have used.

A primary reason in my mind is that we are looking for an approach that will map to JSON objects easily. We are working on new drafts for representing ROLIE feeds in JSON and CBOR. In such an approach, use of a URN-based property table (with indexes for CBOR) provides a path that can be more easily translated to JSON as compared to using ns+localname. We are willing to forego some constraints in the grammar to make JSON and CBOR an easier proposition for this application.

Note: We do not intend to create a general ATOM XML to JSON conversion since mapping arbitrary XML to JSON is not a fruitful exercise. Instead, we want to define a more limited ROLIE XML to JSON/CBOR mapping instead, which is more straightforward. I'd be happy to talk with you about our ideas on JSON and CBOR, but this should not hold up ROLIE. 

> I've dealt with extensible fields like this in the past (see RFC
> 6848), and it's no more difficult to pair up ns+localname and simple
> value than it is to pair up URN and simple value.

See above.

> As proposed, you also have a new registry for these fields, which is
> strictly more costly.

Yes. But it provides a mechanism for index and URN registration allowing for collision avoidance in a way that can facilitate work going forward. Should we document this better in ROLIE in order to move forward?

> p.s., I thought you were going to remove
> "urn:ietf:params:rolie:property:local", but it is still in -13.  That
> would of course be moot if you did as I suggest.

We will submit a -15 with the registration removed and any other required changes.

Thanks,
Dave