[httpapi] Re: Link Hint 02 feedback

Herbert Van de Sompel <hvdsomp@gmail.com> Sun, 02 March 2025 07:48 UTC

Return-Path: <hvdsomp@gmail.com>
X-Original-To: httpapi@mail2.ietf.org
Delivered-To: httpapi@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 38C694BDC69 for <httpapi@mail2.ietf.org>; Sat, 1 Mar 2025 23:48:22 -0800 (PST)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_SBL_A=0.1] autolearn=unavailable autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6SIOlZLXocH5 for <httpapi@mail2.ietf.org>; Sat, 1 Mar 2025 23:48:18 -0800 (PST)
Received: from mail-lj1-x22a.google.com (mail-lj1-x22a.google.com [IPv6:2a00:1450:4864:20::22a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id A7DC54BDC29 for <httpapi@ietf.org>; Sat, 1 Mar 2025 23:48:18 -0800 (PST)
Received: by mail-lj1-x22a.google.com with SMTP id 38308e7fff4ca-30b83290b7bso40614381fa.1 for <httpapi@ietf.org>; Sat, 01 Mar 2025 23:48:18 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1740901697; x=1741506497; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=fZla25yqA/iMNdJOptOhOqN9+fCJ8dDv6H59sWWbWXU=; b=a+PKSOQNMAngo095Qgk4sI5b7h/kUSXlF6gKtkjeC5VohsqObs7tDvojCONWYJPL+P Wv1drOnxVEMZnbKPZkJg+rBUOf9FoEDn54hUe+5LW8TqCumXtcAGCgF4cxHC+3g5lERg 5iCUSh37zxoLLo13uEI6zxwRkCmYsHK54e9zr9SWuj/dN2tRFOOETS2yPeyohB0K5m+t PZLV2wg4Dh4bVsnd2MANn8aF4Rqx6SJU2T22bYHVmR9RO9hoHEL0yDB0mN4ak8jyEJit mn48nYT8ujFbTyxtY0WZVqdcOUbKE/WY5adPzoktCFx20o6tvHTzCras1fZ32LWrrGvu eLRA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1740901697; x=1741506497; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=fZla25yqA/iMNdJOptOhOqN9+fCJ8dDv6H59sWWbWXU=; b=KPeBjWrSNDYhPw1D7Yz61VjKDis9FnwU8x5+aV0OBLUsTPiNNy8sodCD9RSdc+mLaS i+JQczuTe8piO13dKdQHzPjRSeY+QqdHJe3NOuxW+vPbHT1P6vgqakJep7WNKZh6vIVm x2fT+eJkPFgD0aIJMPjDA19kAlO1WKy7LdW0hs19EklAgJ6b0pfhBULFFP4/nshAiYdM lC+UjYzFsRvau/UIjIIYRon0r0XX+/ZWqouC0I4Punbpip9h3lfG3W+pcYTnj/Uptg4r /UsEYN5IJzO7XPVFlFAPCTG980rpt62S1KsBEzX0b/rfbXACWlX93ziBqSM2YgvO4wOc w5tQ==
X-Forwarded-Encrypted: i=1; AJvYcCVyA5/Tw78PyzYCPxapsTZ+Sx2NpBMvO403L49Pn+0a+2VjfRpEKz1y9Mkj4n4ZfN8vwNlXuK5v@ietf.org
X-Gm-Message-State: AOJu0Yzb6mksc49st1v5uk5wTtx+Od2eHL/AXD6UROGcwOREp0/D319I gn+GVy7t3J56Q8RIYH01+Me/ywvEEs5Lv0yKxwh/I+6cpeMUgwgob7iKIZKKtt5UubdpiVBNj6b lf/P9NP2AW9bKPmAuOvMjJpYBlR8=
X-Gm-Gg: ASbGncs4eLJahFJTqcfvmuq9+LkuAKlS9HupHqIz8qaTS0XGFHSkx1pssIKWyoKopsL GBqLwZUsqP+fqy5kARuMFNlrzwXH+50hN9jIwuwbvyguUOSAmXe2BQ4z0p5c4i3cqxq2PT8LfdM eBuiEpN10dSYsyGiEXkLCTrf7Ueulk93Vb69kEu3zsHpb+3B/RAo1hIVUksg==
X-Google-Smtp-Source: AGHT+IFpXiTVgNC/Ho/4IDOnghFve5M/B30dwF2uWr7JJxs5z4QExFzZTqhf2d8BKIPqHJBkkpjzG1uBcYIIvsxgFyM=
X-Received: by 2002:a2e:b8d5:0:b0:302:2598:de91 with SMTP id 38308e7fff4ca-30b932357c0mr32071241fa.16.1740901696868; Sat, 01 Mar 2025 23:48:16 -0800 (PST)
MIME-Version: 1.0
References: <AF875164-4064-4AD0-8DBA-92869D18AEF3@mnot.net> <0C580CFF-982C-44C5-A255-768FF48AEC93@gmail.com> <PH0PR08MB98621DFB70D95937C06C9958B7C22@PH0PR08MB9862.namprd08.prod.outlook.com> <878DEFA7-8631-4055-83AB-B09B27B3B1AE@mnot.net> <CAOywMHcSFyVQVZETHBAGe_5gCsxpHoDuy7Z0Mw0B9sjTNwsvjA@mail.gmail.com> <SJ2PR01MB810255984E8C120CA006B406A3CF2@SJ2PR01MB8102.prod.exchangelabs.com>
In-Reply-To: <SJ2PR01MB810255984E8C120CA006B406A3CF2@SJ2PR01MB8102.prod.exchangelabs.com>
From: Herbert Van de Sompel <hvdsomp@gmail.com>
Date: Sun, 02 Mar 2025 08:48:05 +0100
X-Gm-Features: AQ5f1JrWpCzE8lOgtvt-De43TbFCp4TfsOpg1bO8dP1-YmSTxV7YNznfTV70nkc
Message-ID: <CAOywMHckZ-MTUZwkHV-RL7ywLt1rGrG5MZ375SXUojLdymt-fg@mail.gmail.com>
To: Darrel Miller <darrel@tavis.ca>
Content-Type: multipart/alternative; boundary="0000000000003b1a8f062f574393"
Message-ID-Hash: QXCUFDCAHNZQV54SWZ2DV3VV5MVV2RHZ
X-Message-ID-Hash: QXCUFDCAHNZQV54SWZ2DV3VV5MVV2RHZ
X-MailFrom: hvdsomp@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: Mark Nottingham <mnot=40mnot.net@dmarc.ietf.org>, Phil Archer <phil.archer@gs1.org>, "httpapi@ietf.org" <httpapi@ietf.org>, Herbert Van de Sompel <hvdsomp@gmail.com>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [httpapi] Re: Link Hint 02 feedback
List-Id: Building Blocks for HTTP APIs <httpapi.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/httpapi/8l7Gx3Sm-s18uIl1gt7BWw5LWCo>
List-Archive: <https://mailarchive.ietf.org/arch/browse/httpapi>
List-Help: <mailto:httpapi-request@ietf.org?subject=help>
List-Owner: <mailto:httpapi-owner@ietf.org>
List-Post: <mailto:httpapi@ietf.org>
List-Subscribe: <mailto:httpapi-join@ietf.org>
List-Unsubscribe: <mailto:httpapi-leave@ietf.org>

On Sat, Mar 1, 2025 at 6:22 PM Darrel Miller <darrel@tavis.ca> wrote:

> Herbert,
>
> > we have asked whether HTTP API WG would be interested and received no
> helpful response
>
> In the Google doc you referenced, you mentioned this email from me Re:
> [dispatch] HTTP profile negotiation -- implementation evidence (was: HTTP
> profile negotiation - httpapi?)
> <https://mailarchive.ietf.org/arch/msg/dispatch/5gj5RWakDt-XbbsYjtLtn84sHBM/>
>
> I just want to reiterate that was an individual opinion without a chair
> hat.  If there is support from participants of the HTTPAPI working group to
> work on this effort, I as a chair would be fully supportive.
>
>
Thanks for the clarification, Darrel! I corrected the Google doc
accordingly.

Greetings

Herbert





> Darrel
> ------------------------------
> *From:* Herbert Van de Sompel <hvdsomp@gmail.com>
> *Sent:* Thursday, February 27, 2025 6:44 AM
> *To:* Mark Nottingham <mnot=40mnot.net@dmarc.ietf.org>
> *Cc:* Phil Archer <phil.archer@gs1.org>; httpapi@ietf.org <
> httpapi@ietf.org>
> *Subject:* [httpapi] Re: Link Hint 02 feedback
>
> On Thu, Feb 27, 2025 at 2:31 AM Mark Nottingham <mnot=
> 40mnot.net@dmarc.ietf.org> wrote:
>
> Hmm. RFC 6906 defines the profile link relation, but AFAIK there isn't any
> way to communicate this in HTTP. Since the scope of this effort is *HTTP*
> based hints, we should probably define how to do that first.
>
> I think the options are:
>
> 1) Just use the Link header field
> 2) Put a parameter on the media type
> 3) Define a new field
>
> (1) is problematic because it requires modelling all possible links as
> hints, and that adds complexity that we're trying to get away from. Web
> linking is great if you need to have integration between links expressed in
> content and headers (for example), but for protocol-level details (such as
> something you might use for lower-layer dispatch, like a media type) it
> really should be a primary protocol mechanism, not something buried down
> inside a generic mechanism like this. In particular you don't want to force
> someone to parse all of the links on a response just to get one bit of
> information out if it's on the critical path.
>
> (2) is problematic IIRC because it's effectively usurping individual media
> types' ability to control their own name space (would have to check with
> the media type folks to be sure) and parameters are stripped/dropped by
> some software (still?).
>
> That might just leave (3). I know that <
> https://datatracker.ietf.org/doc/html/draft-svensson-profiled-representations>
> started down this path; personally I'd go a bit further and a) define a
> Profile header rather than reusing Link, and b) making it a Client Hint
> (since we have that now).
>
>
> I am involved in the Profile Negotiation I-D which, honestly, is in limbo
> because:
> * It is unclear where the specification should occur, IETF or W3C:
> - we have asked whether HTTP API WG would be interested and received no
> helpful response
> - there exists a parallel W3C document that has a broader scope but, as it
> comes to the scope of the I-D, describes to a large extent the same
> approach be it more as an implementation guideline than a spec:
> https://www.w3.org/TR/dx-prof-conneg/
> * my co-authors don't respond to my mails anymore; I assume they are
> discouraged
> - for those interested, additional background about the Profile
> Negotiation I-D history is at
> https://docs.google.com/document/d/1WUGML4cfthRBKzMW729thjlCZjPWku__IjEjdNWq9pU/edit?usp=sharing
>
> But, going back to Mark's response to Phil's mail:
>
> * Indeed, the I-D chose to express the existence of profiles available for
> negotiation by means of the Link header (using the "alternate" link
> relation). The major motivation was reuse of an existing header rather than
> introducing a new one. Using the Link header, an approach is needed to
> express profiles for media types for which the "profile" attribute has not
> been defined. And landed on the "formats" Link Hint. But, since it is not
> clear how Link Hints need to be serialized in a Link header, that aspect of
> the I-D has been in limbo for a long time now.
> * Using a dedicated Profile header (symmetrical to Accept-Profile), as
> suggested by Mark, would be an option but I think it would run into the
> same problem as the Link header approach: It would need to list available
> media-types and their associated profiles. The question then becomes which
> attribute to use to convey profile URIs: (a) "profile" for media types that
> have defined that attribute and another (e.g. "formats") for those that
> haven't? (b) another (e.g. "formats") in all cases, i.e. also when
> "profile" has been defined. Quite inelegant either way.
> * Note, BTW, that for media types for which "profile" has been defined,
> negotiation using Accept also comes with challenges and led colleagues that
> work on JSON-LD to look at Profile Negotiation as a way out, see
> https://github.com/w3c/json-ld-syntax/issues/436
>
> Cheers
>
> Herbert
>
>
>
>
> Cheers,
>
>
> > On 26 Feb 2025, at 11:15 pm, Phil Archer <phil.archer@gs1.org> wrote:
> >
> > Thanks very much for working on this, Mark. I can see the potential in
> GS1's implementation of RFC 9264 (Herbert and Erik W's work on Linksets).
> >
> > An issue that has been around for a long time is that a media type is
> often only half the story. An application will typically want content that
> is serialized as, say, application/json, but it wants JSON that uses a
> specific vocabulary/data model. A hint of 'profile', that takes a URI as
> value, would probably be sufficient for this? Then a service can offer
> links to the same data (I'm thinking product descriptions but could be
> anything), following  different data models, all of which are serialized as
> JSON.
> >
> > Phil
> >
> > ---
> >
> > Phil Archer
> > Web Solutions Director, GS1
> > https://www.gs1.org
> >
> > https://philarcher.org
> > +44 (0)7887 767755
> > @philarcher.bsky.social
> >
> > -----Original Message-----
> > From: Herbert Van de Sompel <hvdsomp@gmail.com>
> > Sent: 26 February 2025 11:15
> > To: Nottingham Mark <mnot@mnot.net>
> > Cc: httpapi@ietf.org
> > Subject: [httpapi] Re: Link Hint 02 feedback
> >
> > Hi Mark
> >
> > Thanks for the helpful clarification.
> >
> > I’m totally ok with simplification too. As you indicate, it’s about
> “hints”.
> >
> > Greetings
> >
> > Herbert
> >
> >> On Feb 26, 2025, at 09:08, Mark Nottingham <mnot@mnot.net> wrote:
> >>
> >> Hi Herbert,
> >>
> >> This draft is a transitional step away from using JSON as the base data
> model. What I'd like to do is to use a subset of JSON or Structured Fields
> data types, and then describe how to map them into another format. What
> I've done here is to start that process by removing the most complex
> structures (objects).
> >>
> >> It'd be helpful to know how people feel about this -- especially
> whether the constraint and loss of information is acceptable. Personally
> I'm OK with it, since 'hints' shouldn't be too detailed (IMO).
> >>
> >> Cheers,
> >>
> >>
> >>> On 26 Feb 2025, at 6:53 pm, Herbert Van de Sompel <hvdsomp@gmail.com>
> wrote:
> >>>
> >>> hi all,
> >>>
> >>> I was happy to see the publication of a new version of the Link Hints
> I-D. I do want to share some feedback:
> >>>
> >>> (1) From the outset of this effort, I have failed to understand the
> motivation for making JSON the canonical serialization format. I assume
> that boat has sailed but think that the draft would benefit from some extra
> wording to make it more accessible to those who are more familiar with
> HTTP/HTML links:
> >>>
> >>> (*) Given there is no formal definition of the canonical JSON
> structure for Link Hints, a description of the opening example provided in
> Section 2 would be helpful for those less familiar with expressing links in
> JSON.
> >>>
> >>> (*) Since Appendix A describes how JSON Link Hints are mapped to links
> in the HTTP header, it would be helpful to represent the examples provided
> there in a verbose manner that aligns with the opening example of Section 2:
> >>> - this would allow understanding where the rel="sample" comes from in
> >>> both examples
> >>> - this would allow understanding how the content of the second example
> relates to that of the Section 2 example. That is really not obvious to me,
> because the content of the second example is contained in square brackets
> that I can't seem to map to the opening example.
> >>> - use of a more realistic/intuitive complex example might also help.
> >>>
> >>> (*) It might be nice to include an example/appendix regarding
> representation of Link Hints in (JSON) Link Sets.
> >>>
> >>> (2) Section 5.1 lists some reserved names. Should "anchor" and
> "title*" be included there? It looks like title* would not be allowed on
> the basis of the restricted character set for Link Hints but maybe being
> explicit could be helpful?
> >>>
> >>> Greetings
> >>>
> >>> Herbert
> >>>
> >>> --
> >>> ==================
> >>> Herbert Van de Sompel
> >>> https://hvdsomp.info
> >>> https://orcid.org/0000-0002-0715-6126
> >>> --
> >>> httpapi mailing list -- httpapi@ietf.org To unsubscribe send an email
> >>> to httpapi-leave@ietf.org
> >>
> >> --
> >> Mark Nottingham   https://www.mnot.net/
> >>
> >
> > --
> > httpapi mailing list -- httpapi@ietf.org To unsubscribe send an email
> to httpapi-leave@ietf.org
> >
> > CONFIDENTIALITY / DISCLAIMER: The contents of this e-mail are
> confidential and are not to be regarded as a contractual offer or
> acceptance from GS1 (registered in Belgium).
> > If you are not the addressee, or if this has been copied or sent to you
> in error, you must not use data herein for any purpose, you must delete it,
> and should inform the sender.
> > GS1 disclaims liability for accuracy or completeness, and opinions
> expressed are those of the author alone.
> > GS1 may monitor communications.
> > Third party rights acknowledged.
> > (c) 2020.
>
> --
> Mark Nottingham   https://www.mnot.net/
>
> --
> httpapi mailing list -- httpapi@ietf.org
> To unsubscribe send an email to httpapi-leave@ietf.org
>
>
>
> --
> ==================
> Herbert Van de Sompel
> https://hvdsomp.info
> https://orcid.org/0000-0002-0715-6126
>


-- 
==================
Herbert Van de Sompel
https://hvdsomp.info
https://orcid.org/0000-0002-0715-6126