[apps-discuss] Feedback on draft-wilde-profile-link-00

Mark Nottingham <mnot@mnot.net> Thu, 05 April 2012 16:25 UTC

Return-Path: <mnot@mnot.net>
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 4B63421F872B for <apps-discuss@ietfa.amsl.com>; Thu, 5 Apr 2012 09:25:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -106.599
X-Spam-Level:
X-Spam-Status: No, score=-106.599 tagged_above=-999 required=5 tests=[AWL=-4.000, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
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 762MKng5cadk for <apps-discuss@ietfa.amsl.com>; Thu, 5 Apr 2012 09:25:09 -0700 (PDT)
Received: from mxout-07.mxes.net (mxout-07.mxes.net [216.86.168.182]) by ietfa.amsl.com (Postfix) with ESMTP id 9944F21F8710 for <apps-discuss@ietf.org>; Thu, 5 Apr 2012 09:25:09 -0700 (PDT)
Received: from [10.6.129.168] (unknown [50.56.228.67]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id B221822E253; Thu, 5 Apr 2012 12:25:02 -0400 (EDT)
From: Mark Nottingham <mnot@mnot.net>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Date: Thu, 05 Apr 2012 11:25:01 -0500
Message-Id: <04FC3F79-93B5-4F86-82B2-42029138E202@mnot.net>
To: erik.wilde@emc.com
Mime-Version: 1.0 (Apple Message framework v1257)
X-Mailer: Apple Mail (2.1257)
Cc: "apps-discuss@ietf.org application-layer protocols" <apps-discuss@ietf.org>
Subject: [apps-discuss] Feedback on draft-wilde-profile-link-00
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: Thu, 05 Apr 2012 16:25:10 -0000

<http://tools.ietf.org/html/draft-wilde-profile-link-00>

Overall, I'm really happy to see this draft; have been considering doing something along these lines too.

That said:


*** Major issues

* "Resource Profiles" - this spec defines the profile is being about the *resource* of its context. This is too loose; in HTML and other uses I've seen, profiles are about the *representation* they occur within.

In other words, the common idea of a profile, IME, is that it describes the conventions, extensions, etc. that are used in a particular document, but it doesn't say anything about the resource that the document was retrieved from.

That's a good design, because link relations are already a defined mechanism to talk about resource behaviours; having two such mechanisms isn't a good idea (at least without some discussion).

E.g., when I interact with a resource, I know it supports particular behaviours, because it's been linked to with relation "Foo." When I get a representation from the "Foo" resource, it will have a media type that describes the format, and also a profile ("Bar") that describes additional features / conventions of that document (such as a particular use of JSON or XML), but that profile won't -- and shouldn't! -- be an additional way of describing the behaviours of the "Foo" resource.



*** Nits / minor feedback:

* """This link relation type is independent of the resource representation it is used in (but the representation must support types links for this mechanism to work)"""

I'd state this in terms of "context", as per the link RFC.


* s/must support types links/must support typed links/


* """
   In fact, for the purpose of this
   specification, the URI does not necessarily have to link to a
   dereferencable resource, and clients can treat the occurrence of a
   specific URI in the same sense as a namespace URI and invoke specific
   behavior based on the assumption that a specific profile URI signals
   that a resource follows a specific profile.
"""

Here, I'd state this in terms of "target URIs", as does the link RFC.


* Your Security Considerations section isn't going to pass muster; if it were me, I'd talk about how software shouldn't make security-sensitive assumptions based upon profiles.


*"""
   As one example, consider the case of podcasts, a specific kind of
   feed using additional fields for media-related metadata.  Using a
   'profile' link, it would be possible for a client to understand that
   a specific feed is supposed to be a podcast feed, and that it may
   contain entries using podcast-specific fields.  This may allow a
   client to behave differently when handling such a feed (such as
   rendering a UI), even when the current set of entries in the feed may
   not contain any podcast entries.
"""

This is an interesting use case. My use cases for "profile" tend to be things like "links that this document contain follow *this* convention". More examples would be good.

Cheers,

--
Mark Nottingham
http://www.mnot.net/