Re: [apps-discuss] feedback on draft-ietf-appsawg-json-patch-01.txt

"Paul C. Bryan" <pbryan@anode.ca> Tue, 20 March 2012 18:44 UTC

Return-Path: <pbryan@anode.ca>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 65FAA21F8557 for <apps-discuss@ietfa.amsl.com>; Tue, 20 Mar 2012 11:44:37 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.598
X-Spam-Level:
X-Spam-Status: No, score=-2.598 tagged_above=-999 required=5 tests=[AWL=-0.000, BAYES_00=-2.599, HTML_MESSAGE=0.001]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id yD6OB6P4CqLS for <apps-discuss@ietfa.amsl.com>; Tue, 20 Mar 2012 11:44:36 -0700 (PDT)
Received: from maple.anode.ca (maple.anode.ca [72.14.183.184]) by ietfa.amsl.com (Postfix) with ESMTP id 8196821F854A for <apps-discuss@ietf.org>; Tue, 20 Mar 2012 11:44:36 -0700 (PDT)
Received: from [192.168.11.246] (unknown [209.52.95.5]) by maple.anode.ca (Postfix) with ESMTPSA id CB3A36456 for <apps-discuss@ietf.org>; Tue, 20 Mar 2012 18:44:35 +0000 (UTC)
Message-ID: <1332269074.2171.21.camel@neutron>
From: "Paul C. Bryan" <pbryan@anode.ca>
To: apps-discuss@ietf.org
Date: Tue, 20 Mar 2012 11:44:34 -0700
In-Reply-To: <4F68BDB7.7030808@gmx.de>
References: <20120309212231.16366.52439.idtracker@ietfa.amsl.com> <4F689626.9070500@gmx.de> <1332261146.2171.7.camel@neutron> <4F68B37E.9060608@gmx.de> <1332262482.2171.11.camel@neutron> <4F68BDB7.7030808@gmx.de>
Content-Type: multipart/alternative; boundary="=-+wYDg3vU/Z12trYopwJ0"
X-Mailer: Evolution 3.2.2-1
Mime-Version: 1.0
Subject: Re: [apps-discuss] feedback on draft-ietf-appsawg-json-patch-01.txt
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 20 Mar 2012 18:44:37 -0000

On Tue, 2012-03-20 at 18:26 +0100, Julian Reschke wrote:

> On 2012-03-20 17:54, Paul C. Bryan wrote:
> > Why remove Section 6? Where are fragment identifiers being used in
> > Appendix A?
> 
> Section 6 says:
> 
> 6. URI Fragment Identifier Representation
> 
>     A JSON Pointer MAY be represented in a URI fragment identifier.
> The
>     JSON pointer MUST be UTF-8 [RFC3629] encoded as octets; octets not
> in
>     the URI "unreserved" set SHOULD be percent-encoded, per [RFC3986],
>     section 2.5.
> 
> What's the point of making this statement? What media type is this
> about?


Okay, sorry, didn't know you were referring to the JSON Pointer spec
when referencing these sections.

The intent of JSON Pointer is to be expressed in a URI fragment
identifier for resources that have JSON representations. To that end, it
makes sense to establish the rules for encoding pointers in URIs.


> Appendix A contains:
> 
>     http://example.com/example.json#/foo/inner%20object
>        Resolves to the object value of the "inner object" member in
> the
>        "foo" object value in the root object.
> 
>     http://example.com/example.json#/foo/inner%20object/baz
>        Resolves to the string value "qux", which is the value of the
>        "baz" member in the "inner object" member in the "foo" member
> in
>        the root object.
> 
>     http://example.com/example.json#/foo/bar/0
>        Resolves to the string value "element0", which is the first
> value
>        in the "bar" array in the "foo" member in the root object.
> 
> ...which to me reads like using JSON pointers as fragment identifiers 
> for payloads of type application/json. If that's not the case, it
> should 
> be clarified somehow.
> 
> Going back two mails you said:
> 
> > I happen to think JSON Pointer should be the pointer syntax for
> fragment identifiers used by JSON Patch, not application/json per se.


I'll now retract this statement. I don't think fragments should have
anything to do with JSON Patch, and there's nothing in the JSON Patch
spec where fragments are in use.


> In that case however the JSON Patch specification should state in the 
> media type registration what the fragment syntax is (see 
> <http://trac.tools.ietf.org/html/draft-ietf-appsawg-media-type-regs-03#appendix-C> 
> fourth item), and the JSON Pointer spec should clarify that both
> Section 
> 6 and the examples in the appendix are about media types that have 
> chosen to use JSON pointer as fragment identifier, which is not the
> case 
> for application/json.


I don't think it makes a lot of sense for JSON Pointer spec to reference
every spec that happens to reference it.


> Right now it's way too easy for people to jump to the conclusion that
> JSON Pointer *is* the fragment identifier syntax for application/json.


Simply based on the JSON Pointer spec text itself?

Paul