[apps-discuss] JSON Hypertext Application Language

Mike Kelly <mikekelly321@gmail.com> Sat, 09 June 2012 18:39 UTC

Return-Path: <mikekelly321@gmail.com>
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 A830521F847D for <apps-discuss@ietfa.amsl.com>; Sat, 9 Jun 2012 11:39:58 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.556
X-Spam-Level:
X-Spam-Status: No, score=-3.556 tagged_above=-999 required=5 tests=[AWL=0.043, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
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 qONqfJKNucYr for <apps-discuss@ietfa.amsl.com>; Sat, 9 Jun 2012 11:39:58 -0700 (PDT)
Received: from mail-ob0-f172.google.com (mail-ob0-f172.google.com [209.85.214.172]) by ietfa.amsl.com (Postfix) with ESMTP id D37DD21F847B for <apps-discuss@ietf.org>; Sat, 9 Jun 2012 11:39:57 -0700 (PDT)
Received: by obbeh20 with SMTP id eh20so5789446obb.31 for <apps-discuss@ietf.org>; Sat, 09 Jun 2012 11:39:57 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; bh=VHTLc5Bg1A6YaL2DcH/7+e6olTltwhwLrTPYo4rM8bQ=; b=PJHjmjUlLQuNZDfC7z1UkgLgyLv9GvutxCsUpnyrnYG7n0BtYCNkLvA10Urpmy4xV7 G/qoH3E6XTZHLHw5o3mUVOYj5+j7HpWRCvg9G5yHTpybSfUE0Fe96itsQLikixYle7Ny a0b7+eA+1SA14cQspq1Ezw9nGhsoXVwKziptBPiWvEcuwyXi85BDgI0cq+LswMvikMSP tKZuRD4gwwb2+uy2ISvOebnOsWITwaR/iignmrYx7NHsyI1SuJqbKIscLC2arlLpwyRi 0v2IC3swesbPcwy563GdUx/0VZ2i63ikoY5vHA2IAFWmCvJidiwYNbSUqj6K2fiLPDyS R9Sw==
MIME-Version: 1.0
Received: by 10.182.174.36 with SMTP id bp4mr11384320obc.53.1339267197440; Sat, 09 Jun 2012 11:39:57 -0700 (PDT)
Received: by 10.60.28.195 with HTTP; Sat, 9 Jun 2012 11:39:57 -0700 (PDT)
In-Reply-To: <CANqiZJZcM8C2xudPDWaFP0GbB-=X7GX2BJ+HbD42hL-L=UyqqA@mail.gmail.com>
References: <CANqiZJa7GrBRbiV8X=o3Xkv-WcBEdKEntiZSFhMj4efQiNPEaQ@mail.gmail.com> <CABkgnnXVFqEhS5oympA7E_GHhzYB+P5TQh1PugK5p16qNWSBVQ@mail.gmail.com> <CANqiZJbGMVzFrcsvuW2dZaq4pOEzi4x=iamxs_1etetKGeZz2A@mail.gmail.com> <CABkgnnXMJX7EPXi3cqoswKbJDRupPdf5dt8Og1VqkROpM+P80A@mail.gmail.com> <CABP7Rbd+siKJz7qecx-z9wZv602ceC3LWXmLfCknPrAQm6h-Sw@mail.gmail.com> <CANqiZJbQT_40Q_mLP0EOtrM6L6zZct6U36ZqRiLEMepBDbUdAQ@mail.gmail.com> <CABP7Rbc2wgTD=At9v9T5QWd5sJPkgJ6Obq9WGbXeBVm3RVSy1g@mail.gmail.com> <CANqiZJZcM8C2xudPDWaFP0GbB-=X7GX2BJ+HbD42hL-L=UyqqA@mail.gmail.com>
Date: Sat, 09 Jun 2012 19:39:57 +0100
Message-ID: <CANqiZJbTh=EdFg1xKrc1CNR+sPYcadj7GEN8c5+ROfJPCxbimg@mail.gmail.com>
From: Mike Kelly <mikekelly321@gmail.com>
To: apps-discuss@ietf.org
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
Subject: [apps-discuss] JSON Hypertext Application Language
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: Sat, 09 Jun 2012 18:39:58 -0000

Hi James,

Thanks for sharing your thoughts, I have some follow up questions in line

On Sat, Jun 9, 2012 at 5:51 PM, James M Snell <jasnell@gmail.com> wrote:
> On Sat, Jun 9, 2012 at 12:55 AM, Mike Kelly <mikekelly321@gmail.com> wrote:
>> On Sat, Jun 9, 2012 at 2:04 AM, James M Snell <jasnell@gmail.com> wrote:
>>> HAL will just be way too verbose to be practical.
>>
>> I think 'way too verbose' is overstating the importance of this. You
>> are the first person to raise this as an issue at all, let alone as a
>> significant one.
>>
>
> Deep breath please and consider the *complete* statement I made... which was:
>
>  There are valid arguments for both, for certain, but I can see many
>  scenarios where HAL will just be way too verbose to be practical.
>
> Please allow me to stress the parts where I said, "there are valid
> arguments for both" and "I can see many scenarios..."
>
> It would be highly counterproductive to assume that HAL is appropriate
> for all possible scenarios; all my feedback was intended to do was
> indicate that, for the subset of interesting and relevant cases I've
> worked with in the content and activity syndication space, complex
> link structures tend towards overkill. That's not to say there's no
> place for them, not by any stretch of the imagination.

To be clear, there's no anxiety or animosity from my end on this - I'm
simply trying to understand why you would pick such emotive language
as "way too verbose to be practical" when all we're really talking
about is a very small difference in design. I understood your
rationale for proposing your slightly optimised alternative for
activity streams. I did (and still don't) understand why you believe
HAL's slightly-less-optimal approach to be so significant as to render
it "way too verbose" and/or "impractical".. at worst it's marginally
sub-optimal for some basic use cases.

>> Link Objects are necessary to allow for the "templated" indicator (for
>> when the link is a URI Template), for including the additional link
>> params established in the Web Linking RFC, and to provide the
>> opportunity for extension of link objects in any future types wanting
>> to extend HAL e.g. by adding additional controls or hints.
>>
>
> Ok. That all granted, for the majority of cases I've worked with, when
> you boil everything down, I still, most often, only need a url and a
> rel.

A rel and a url are all that is required to produce a valid link with
HAL. This is a valid link object:

{ "foo": { "href": "/bar" } }

Just to re-iterate, HAL's linking conventions have been around for
just under 2 years now, and you are the first person to consider this
a pressing issue.

>> Fwiw, I did actually consider also adding a direct string as you have
>> suggested here but decided against in the interests of
>> simplicity/consistency, given that the Link Object approach is
>> unavoidable (for the reasons stated above).
>>
>> On another note - HAL has been established for a while now (as a less
>> formal, public specification) and has a growing list of server and
>> client tooling, seems to me like it would be a win for Activity
>> Streams to adopt HAL's already established conventions, given that
>> your recent new proposal is so close to it anyway.
>>
>
> If the HAL spec is being used to address real application problems,
> then that's fantastic. For activity streams, my opinions tend to be
> driven more by the specific implementation requirements and a desire
> to keep things as simple as they possibly can be. My note was merely
> intended to provide (hopefully) constructive feedback from the
> perspective of someone else who has dealt (many many times) with the
> notion of generic linking mechanisms in JSON and XML data formats.
> Take it for what it's worth.

So, just to clarify.. your desire for simplicity is so strong that a
very minor optimisation that will:

- harm the expressiveness of links
- damage future extensibility
- not benefit from existing libraries

is still 'the right option' for activtity streams over adopting a
design that has existed for almost 2 years, has seen decent adoption
and brings with it a handful of libraries in various programming
languages?

Maybe I've missed something vital but at the moment I do not
understand where you are coming from. Sorry.

Cheers,
M