
From ioseb.dzmanashvili@gmail.com  Tue Aug 27 02:03:06 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 60C7011E816F; Tue, 27 Aug 2013 02:03:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 Y5xYNtvmghJM; Tue, 27 Aug 2013 02:03:05 -0700 (PDT)
Received: from mail-ea0-x229.google.com (mail-ea0-x229.google.com [IPv6:2a00:1450:4013:c01::229]) by ietfa.amsl.com (Postfix) with ESMTP id 207D611E816D; Tue, 27 Aug 2013 02:03:04 -0700 (PDT)
Received: by mail-ea0-f169.google.com with SMTP id k11so2142802eaj.28 for <multiple recipients>; Tue, 27 Aug 2013 02:03:03 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:subject:mime-version:content-type :content-transfer-encoding:content-disposition; bh=N6QsvA/2dGpleIUjePp3tUOTLhDKK4kTBnuMp+88xdc=; b=DPV9uy9FHBVcb4MfboLl/wlAgy+DxjVWgmw/Y5bOnZrA7RXmmFh9gnTJYFZcaQrkCZ YqKrr9ve1d12lFQG47Ty9fYqL4wyG+SfcTm2RJh+iAP1jfukG4Ul7NLphNkvOb5wTi2F hjoZ00IRS9GTrI8XCAAYTLUrW3qE197zLFFG2seGGzbPojxAXhrcAHOXSsVCwt7hKt8y QPMQ2NAxlAtr1E4ehTqDwLEWrB0jzOqUdD+DLepoigdlV2GHZAD3A/hhxXp3oUWj98O0 yW47vluPKYp0JJP1zF2x0HIorEtS8NpRrMbqffvPuai7kKY/mLqlJNkG+23j2P1y6ULB j6Dw==
X-Received: by 10.14.174.8 with SMTP id w8mr758357eel.84.1377594182964; Tue, 27 Aug 2013 02:03:02 -0700 (PDT)
Received: from [10.131.33.142] ([213.131.60.234]) by mx.google.com with ESMTPSA id f49sm27490889eec.7.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 27 Aug 2013 02:03:02 -0700 (PDT)
Date: Tue, 27 Aug 2013 13:03:00 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: link-relations <link-relations@ietf.org>
Message-ID: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com>
Subject: NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: IETF Apps Discuss <apps-discuss@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 09:03:06 -0000

Hi All,

I've updated the "action" link relation type spec[1] based on initial feedback. 

As far as initial reactions were very controversial and raised a lot of issues i tried to address all of them and entirely changed the spec.

==================================================
When included in a response, the "action" link relation indicates a
target resource that is responsible for performing action which MAY:

- Affect state of the context resource; or
- Initiate process.

The "action" link relation type can be used to indicate the
availability of actions supported by the target resource. Examples
of such actions include:

-  Enable/Disable
-  Publish/Unpublish
-  Start/Stop

The "action" link relation type doesn't convey any semantics other
than that an indicated resources represent machine readable
description of a particular action and representation SHOULD contain
all necessary details such as: request method, action URI and other
related details to enable agents to be able to construct requests
without relying on out-of-band information.

Exact type of action SHOULD be indicated through the "action-type"
link-extension value as per [RFC5988] and for maintaining shared
understanding of action types current specification introduces the
registry of actions with initial values of widely accepted and well
understood action types.

For example, if a resource represents a service, that same
representation may include links to resources that represent actions 
supported by the service:

Link: </restart-action>; rel="action"; action-type="restart"
Link: </stop-action>; rel="action"; action-type="stop"

==================================================


1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-01 

Cheers,
ioseb

-- 
Ioseb Dzmanashvili
AzRy LLC
Software Architect
#8, Chachava str. Tbilisi, 0159, Georgia
Mobile: +(995) 99753388
azry.com
github.com/ioseb
twitter.com/iosebi





From julian.reschke@gmx.de  Tue Aug 27 03:15:30 2013
Return-Path: <julian.reschke@gmx.de>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B01F11E8163 for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 03:15:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.599
X-Spam-Level: 
X-Spam-Status: No, score=-102.599 tagged_above=-999 required=5 tests=[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 cAFRhCkXjtMA for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 03:15:24 -0700 (PDT)
Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by ietfa.amsl.com (Postfix) with ESMTP id CBE5111E816E for <link-relations@ietf.org>; Tue, 27 Aug 2013 03:15:23 -0700 (PDT)
Received: from [192.168.1.102] ([217.91.35.233]) by mail.gmx.com (mrgmx003) with ESMTPSA (Nemesis) id 0LqALY-1VjBGq3hOi-00dr8e for <link-relations@ietf.org>; Tue, 27 Aug 2013 12:15:21 +0200
Message-ID: <521C7C36.9000505@gmx.de>
Date: Tue, 27 Aug 2013 12:15:18 +0200
From: Julian Reschke <julian.reschke@gmx.de>
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8
MIME-Version: 1.0
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com>
In-Reply-To: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit
X-Provags-ID: V03:K0:ZQfbPJv0zsmd7mbEIamPg1xjidAyYcz16+jzMkKTs3+x85EJAyd QmLttc+ifxTLzHdmlL7DgCF/i0mUEmO3qtIhcQq3IdBbXmC4v1MDUVuD7QdwSfA6DPh5eaP WwEwpIFV9n0pcNpOTHGAgvEiSJfHnxNGbuBtaQ5MfdgYo9HgspiREDvgO2Gfcg8Q5norKaG 89Ma9+dAYDalKukI67GLQ==
Cc: IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 10:15:30 -0000

On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> Hi All,
>
> I've updated the "action" link relation type spec[1] based on initial feedback.
>
> As far as initial reactions were very controversial and raised a lot of issues i tried to address all of them and entirely changed the spec.
>
> ==================================================
> When included in a response, the "action" link relation indicates a
> target resource that is responsible for performing action which MAY:
>
> - Affect state of the context resource; or
> - Initiate process.
>
> The "action" link relation type can be used to indicate the
> availability of actions supported by the target resource. Examples
> of such actions include:
>
> -  Enable/Disable
> -  Publish/Unpublish
> -  Start/Stop
>
> The "action" link relation type doesn't convey any semantics other
> than that an indicated resources represent machine readable
> description of a particular action and representation SHOULD contain
> all necessary details such as: request method, action URI and other
> related details to enable agents to be able to construct requests
> without relying on out-of-band information.
>
> Exact type of action SHOULD be indicated through the "action-type"
> link-extension value as per [RFC5988] and for maintaining shared
> understanding of action types current specification introduces the
> registry of actions with initial values of widely accepted and well
> understood action types.
>
> For example, if a resource represents a service, that same
> representation may include links to resources that represent actions
> supported by the service:
>
> Link: </restart-action>; rel="action"; action-type="restart"
> Link: </stop-action>; rel="action"; action-type="stop"
> ...

It seems that you are just adding an indirection mechanism. Why is that 
necessary?

Best regards, Julian

From mark@coactus.com  Tue Aug 27 06:16:06 2013
Return-Path: <mark@coactus.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B7FD311E8334 for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 06:16:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level: 
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 xaYM9N6qaYHO for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 06:16:01 -0700 (PDT)
Received: from mail-pa0-f46.google.com (mail-pa0-f46.google.com [209.85.220.46]) by ietfa.amsl.com (Postfix) with ESMTP id 432E911E8302 for <link-relations@ietf.org>; Tue, 27 Aug 2013 06:16:00 -0700 (PDT)
Received: by mail-pa0-f46.google.com with SMTP id fa1so4812532pad.19 for <link-relations@ietf.org>; Tue, 27 Aug 2013 06:16:00 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=ErJOpKndlYmjxpCW9rXL3dXdqBykuQNvDlkWu2+/gAk=; b=I22Sc5xInZ5eu7s3mlrJjQr3+OTL8QMP1RO0QhxXPsHhAhI3PI4kBXPnwIJ4Xyd1tW k7qOf53w3F6HlDoafZXtAI3HJrrBmBK9LSCIC2wW9bTZbo50iCpKVoUnsEfOknjH1rMh K9wIkZEnx/cWTr/Y14cvNYECXMmiHU+2WHMOtfP/Sw6VjfcDzeWptiAnmPaPISWvdJGz E+nBXsKom0syMD1sAqdopTkPth91fav2SDr/9UVy2ciFYgCUqRzvBVLcOT10XjilKRCj IJxDbld6IH3VDpitwRuYzOWjX4MEr0jxpz1b1ItGSbSBVGzAq5xdA4DTONzyrTxZtKuH oaTg==
X-Gm-Message-State: ALoCoQki3GIFfRZRQYeTOEEJ9YSJfh+IDW5Zs7kMCoK8y4rGWGOTvATdAds0EuU0U3a5ANwo88m5
MIME-Version: 1.0
X-Received: by 10.66.255.10 with SMTP id am10mr8889900pad.165.1377609360283; Tue, 27 Aug 2013 06:16:00 -0700 (PDT)
Sender: mark@coactus.com
Received: by 10.70.25.67 with HTTP; Tue, 27 Aug 2013 06:16:00 -0700 (PDT)
X-Originating-IP: [184.148.180.204]
Received: by 10.70.25.67 with HTTP; Tue, 27 Aug 2013 06:16:00 -0700 (PDT)
In-Reply-To: <521C7C36.9000505@gmx.de>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de>
Date: Tue, 27 Aug 2013 09:16:00 -0400
X-Google-Sender-Auth: sEx411EBuCiz3fz7eDpu5vHCAto
Message-ID: <CALcoZirj+Dhm2kDUUcC4epDxP9qxfQoF-d+J37XBoKQ6jOVt4w@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
From: Mark Baker <distobj@acm.org>
To: Julian Reschke <julian.reschke@gmx.de>
Content-Type: multipart/alternative; boundary=047d7b15fc358f217604e4edac51
X-Mailman-Approved-At: Tue, 27 Aug 2013 06:24:09 -0700
Cc: apps-discuss@ietf.org, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 13:16:06 -0000

--047d7b15fc358f217604e4edac51
Content-Type: text/plain; charset=ISO-8859-1

On 2013-08-27 6:15 AM, "Julian Reschke" <julian.reschke@gmx.de> wrote:
> It seems that you are just adding an indirection mechanism. Why is that
necessary?

Agreed. The action-types should be registered as the relations.

Also, you might consider reusing the good work of the folks behind
Schema.org;

http://schema.org/Action

--047d7b15fc358f217604e4edac51
Content-Type: text/html; charset=ISO-8859-1

<p dir="ltr"><br>
On 2013-08-27 6:15 AM, &quot;Julian Reschke&quot; &lt;<a href="mailto:julian.reschke@gmx.de">julian.reschke@gmx.de</a>&gt; wrote:<br>
&gt; It seems that you are just adding an indirection mechanism. Why is that necessary?</p>
<p dir="ltr">Agreed. The action-types should be registered as the relations.</p>
<p dir="ltr">Also, you might consider reusing the good work of the folks behind Schema.org;</p>
<p dir="ltr"><a href="http://schema.org/Action">http://schema.org/Action</a><br>
</p>

--047d7b15fc358f217604e4edac51--

From jasnell@gmail.com  Tue Aug 27 08:39:09 2013
Return-Path: <jasnell@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BBAAF11E837D; Tue, 27 Aug 2013 08:39:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-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 Rj517WPNI8G1; Tue, 27 Aug 2013 08:39:09 -0700 (PDT)
Received: from mail-oa0-x235.google.com (mail-oa0-x235.google.com [IPv6:2607:f8b0:4003:c02::235]) by ietfa.amsl.com (Postfix) with ESMTP id F018711E8379; Tue, 27 Aug 2013 08:39:08 -0700 (PDT)
Received: by mail-oa0-f53.google.com with SMTP id k18so5422498oag.26 for <multiple recipients>; Tue, 27 Aug 2013 08:39:08 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=zuyIxln+pPiHNXyfdwD1SWX0ldcI+uekhOQv7SgVAYU=; b=CWbHa188AY9pKQDBc6Mqhib/3kJ63T43Z9l63XI/Nkpkwq54uJ9UNa0kEoJGlPUd9/ Kvo7d6vOomPmRWgBYo2q+Ae/wZvww/yuarz9Sh2FG5S+W7ZH6ZQpQ32BCy12QnQ0hMUn 7C8X0ShvVpLobgZafydI15W5lrxaHhiJS8Foj9ynMB+7GR4azrdNxtKlXXGZiuWIpW+U 3W33vO02ysFhm1XlsXE67JCmi57HoBLiaFb2AlLQf/QKI7mada4PaTbkYcRU4WjVJbFb zmzFlSP05vrKpiCpFyiIq5zajELvhn9Nv0zNsjIETtHCrIaXmwpmrZUkdVE9z3fq4d27 8Asw==
X-Received: by 10.182.87.73 with SMTP id v9mr2376256obz.90.1377617948502; Tue, 27 Aug 2013 08:39:08 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.124.137 with HTTP; Tue, 27 Aug 2013 08:38:48 -0700 (PDT)
In-Reply-To: <CALcoZirj+Dhm2kDUUcC4epDxP9qxfQoF-d+J37XBoKQ6jOVt4w@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <CALcoZirj+Dhm2kDUUcC4epDxP9qxfQoF-d+J37XBoKQ6jOVt4w@mail.gmail.com>
From: James M Snell <jasnell@gmail.com>
Date: Tue, 27 Aug 2013 08:38:48 -0700
Message-ID: <CABP7Rbexv93UHu2q70L56pLcnjRKO9GE8EDLm6Q6onDF25c9QQ@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Mark Baker <distobj@acm.org>
Content-Type: text/plain; charset=UTF-8
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 15:39:10 -0000

On Tue, Aug 27, 2013 at 6:16 AM, Mark Baker <distobj@acm.org> wrote:
>
> On 2013-08-27 6:15 AM, "Julian Reschke" <julian.reschke@gmx.de> wrote:
>> It seems that you are just adding an indirection mechanism. Why is that
>> necessary?
>
> Agreed. The action-types should be registered as the relations.
>
> Also, you might consider reusing the good work of the folks behind
> Schema.org;
>
> http://schema.org/Action
>

Not to mention activitystrea.ms where many of these verbs already
exist (and could easily be used as link relations themselves).

  Link: <start-action>; rel="start"
  Link: <restart-action>; rel="restart"

Would be generally easier overall.

- James

>
> _______________________________________________
> apps-discuss mailing list
> apps-discuss@ietf.org
> https://www.ietf.org/mailman/listinfo/apps-discuss
>

From darrel.miller@gmail.com  Tue Aug 27 10:47:16 2013
Return-Path: <darrel.miller@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 83E0E11E83CE; Tue, 27 Aug 2013 10:47:16 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-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 Y0L3gGmF6TL0; Tue, 27 Aug 2013 10:47:15 -0700 (PDT)
Received: from mail-oa0-x233.google.com (mail-oa0-x233.google.com [IPv6:2607:f8b0:4003:c02::233]) by ietfa.amsl.com (Postfix) with ESMTP id A82A211E83A1; Tue, 27 Aug 2013 10:47:15 -0700 (PDT)
Received: by mail-oa0-f51.google.com with SMTP id h1so5867290oag.38 for <multiple recipients>; Tue, 27 Aug 2013 10:47:15 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:date:message-id:subject:from:to:content-type; bh=4J3ix++KSfXfigQRIlGEybH91BcgJS7D2/Nt5Wxqvks=; b=Kd7BCo+X+WB77/TkHeqd+vU+o9jwWpRFsnHMGUJctduVoPUwI8mHA2uQuvLDnmANc+ +GgsMdeF7mPZPExbxDbvUkqhDX67FscyeUk1A23rdS/KV6wDJAWIuIEwnQsNkLaHTMWj 6Ac0ej5TWZbp1EPkPdcWLVYOmw6WrHyLsZS4mv7SEfOxcGe77WN3aAXCTyCKZXmaMC1m SgXMGfOux6gywgk1qC7dIGwSmgq69eDW9Y6vy6As3tdemBsfZJxDVvDhRTI84sg7n8IX Tex7exhneslwRnReDhi+pLrE8v2f2uxpmfEF5bUgWVqDumvhMpeI/AkreUw4p3AWb9EW uKtg==
MIME-Version: 1.0
X-Received: by 10.50.43.170 with SMTP id x10mr10590485igl.45.1377625635219; Tue, 27 Aug 2013 10:47:15 -0700 (PDT)
Received: by 10.43.77.66 with HTTP; Tue, 27 Aug 2013 10:47:15 -0700 (PDT)
Date: Tue, 27 Aug 2013 13:47:15 -0400
Message-ID: <CAKioOqsWt2T=88Cy8AukkZnaxWcJU05+BQ9Y31mzuPW3Qm7bew@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
From: Darrel Miller <darrel.miller@gmail.com>
To: IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
Content-Type: text/plain; charset=ISO-8859-1
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
Reply-To: darrel@tavis.ca
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 17:47:16 -0000

Unfortunately, I agree that this latest revision of the action link
relation spec does not add value beyond what can be done directly with
link relations.

However, I don't believe that is the case with the original action
link relation spec. [1]

The original spec defined the action link relation type to convey just
enough semantics to allow a client to activate that link.  The
semantics of the link relation were "perform an unsafe request by
performing a POST to the target resource using an empty body".

Some user agents have no need to understand the semantics of "start",
"restart", "MoveAction", "PlayAction", etc.  As long as the hypermedia
affordance can be rendered and  interpreted by the user, why does the
user-agent need to know anything more that POST an empty body to this
processing resource upon activation?

The feedback received on the link relations list was that this type of
link relation would encourage RPC like interactions and the proposal
was rejected.  I still have not completely understood why a
representation that includes a body is OK but a representation that
has no body is considered RPC like.

>From what I am reading here, in this thread is that rel="start" or
rel="restart" are considered valid interactions.  Then I see no reason
why the more generic and much more widely applicable "action" relation
would not be considered valid also.

Considering the example James gave, why not this,

 Link: <start-action?id=1212>; rel="action"; title="Start"
 Link: <restart-action?id=1212>; rel="action"; title="Restart"

Darrel Miller

[1] http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-00

On Tue, Aug 27, 2013 at 11:38 AM, James M Snell <jasnell@gmail.com> wrote:
> On Tue, Aug 27, 2013 at 6:16 AM, Mark Baker <distobj@acm.org> wrote:
>>
>> On 2013-08-27 6:15 AM, "Julian Reschke" <julian.reschke@gmx.de> wrote:
>>> It seems that you are just adding an indirection mechanism. Why is that
>>> necessary?
>>
>> Agreed. The action-types should be registered as the relations.
>>
>> Also, you might consider reusing the good work of the folks behind
>> Schema.org;
>>
>> http://schema.org/Action
>>
>
> Not to mention activitystrea.ms where many of these verbs already
> exist (and could easily be used as link relations themselves).
>
>   Link: <start-action>; rel="start"
>   Link: <restart-action>; rel="restart"
>
> Would be generally easier overall.
>
> - James
>
>>

From ioseb.dzmanashvili@gmail.com  Tue Aug 27 12:40:09 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6FDB121F9EDB; Tue, 27 Aug 2013 12:40:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.999
X-Spam-Level: 
X-Spam-Status: No, score=-1.999 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, J_CHICKENPOX_92=0.6]
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 qFyZLvf6BA-I; Tue, 27 Aug 2013 12:40:08 -0700 (PDT)
Received: from mail-ea0-x236.google.com (mail-ea0-x236.google.com [IPv6:2a00:1450:4013:c01::236]) by ietfa.amsl.com (Postfix) with ESMTP id F293821F9CA0; Tue, 27 Aug 2013 12:40:07 -0700 (PDT)
Received: by mail-ea0-f182.google.com with SMTP id o10so2524220eaj.27 for <multiple recipients>; Tue, 27 Aug 2013 12:40:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=ytapiNgrnfcpH97mIRqck563cFMFVsvgU5CBzz+SXfc=; b=PJ0ckQZA1sKZTO7e6xrA7nskJgdHp5cY44n7IfqQGflH38wkKr2IgchIEnfpfhu3TF UqkuzRoLcCGNBUfe9QP02ZPnDkgtl0krBazpPLsQ6bLvH7HDKVh2+A+vGOm3usqIVHah fPJLLPkYbG7WBs3mlxzIjM5ZIF9kSSoNEnEwbs0GklDla9E0XRmQ/5ZeqG8rQgEbd7oS so9ShXbOW4EU6yx/u6LuR9RCMQo5V3Lzp+YYDA5h1253NHZ/mHQIgE3PdoveTeG9rdXA JKPKZfJqFI1ulTB8ZkYRpbK9xNBkuSj2uok7QQNoje4VlMbBITu1KBwKAiDvzhYKp5TW YtUQ==
X-Received: by 10.15.48.197 with SMTP id h45mr37173781eew.0.1377632407112; Tue, 27 Aug 2013 12:40:07 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id bn13sm31522234eeb.11.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 27 Aug 2013 12:40:06 -0700 (PDT)
Date: Tue, 27 Aug 2013 23:40:05 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: Julian Reschke <julian.reschke@gmx.de>
Message-ID: <7F2E562DC01C452390F9AB2476D66F8C@gmail.com>
In-Reply-To: <521C7C36.9000505@gmx.de>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 19:40:09 -0000

Hi Julian,

Thanks for response! 

On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:

> On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > Hi All,
> > 
> > I've updated the "action" link relation type spec[1] based on initial feedback.
> > 
> > As far as initial reactions were very controversial and raised a lot of issues i tried to address all of them and entirely changed the spec.
> > 
> > ==================================================
> > When included in a response, the "action" link relation indicates a
> > target resource that is responsible for performing action which MAY:
> > 
> > - Affect state of the context resource; or
> > - Initiate process.
> > 
> > The "action" link relation type can be used to indicate the
> > availability of actions supported by the target resource. Examples
> > of such actions include:
> > 
> > - Enable/Disable
> > - Publish/Unpublish
> > - Start/Stop
> > 
> > The "action" link relation type doesn't convey any semantics other
> > than that an indicated resources represent machine readable
> > description of a particular action and representation SHOULD contain
> > all necessary details such as: request method, action URI and other
> > related details to enable agents to be able to construct requests
> > without relying on out-of-band information.
> > 
> > Exact type of action SHOULD be indicated through the "action-type"
> > link-extension value as per [RFC5988] and for maintaining shared
> > understanding of action types current specification introduces the
> > registry of actions with initial values of widely accepted and well
> > understood action types.
> > 
> > For example, if a resource represents a service, that same
> > representation may include links to resources that represent actions
> > supported by the service:
> > 
> > Link: </restart-action>; rel="action"; action-type="restart"
> > Link: </stop-action>; rel="action"; action-type="stop"
> > ...
> 
> 
> 
> It seems that you are just adding an indirection mechanism. Why is that 
> necessary?

With indirection mechanism i'm trying to solve issues raised around initial version of the spec[1]. There were several issues:

1. The "action" link relation type doesn't have enough semantics and automated agents can not follow such links if there are several actions included in a representation. With the "action-type" link extension + registry of predefined action types agents can distinguish actions from each other. 

2. Initial spec stated that if the "action" link exists in representation, only thing agents should do is to send empty POST request to the target in order to perform action. This approach was considered as an anti pattern(RPCish and non RESTful). With having the "action-type" agents can:

a) distinguish action links from each other; 
b) if necessary dereference the target to obtain instructions for constructing non empty POST/PUT requests;
c) send properly constructed request back to the target; and
d) it makes possible for servers to dictate structure of the request according to there own needs.

Main purpose of the "action" link relation type is to define semantics of particular class of links - actions. This eliminates the need to redefine notion of "action" for each link relation type which may be qualified as action link. The "action-type" is just for naming actions and is particularly useful for automated agents not necessarily for human interaction oriented agents.

Having action type registry is important for maintaining shared understanding of particular action types. For example "reset" or "publish" verbs do not need to be redefined from application to application. I also believe that it is not efficient(or feasible) to register all possible actions as link relations.

1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-00 
2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-01
> 
> Best regards, Julian 
Cheers, 
ioseb


From ioseb.dzmanashvili@gmail.com  Tue Aug 27 12:46:18 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 7568011E81C7; Tue, 27 Aug 2013 12:46:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.299
X-Spam-Level: 
X-Spam-Status: No, score=-2.299 tagged_above=-999 required=5 tests=[AWL=0.300,  BAYES_00=-2.599]
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 EB2MwgtkVQAT; Tue, 27 Aug 2013 12:46:17 -0700 (PDT)
Received: from mail-ee0-x22e.google.com (mail-ee0-x22e.google.com [IPv6:2a00:1450:4013:c00::22e]) by ietfa.amsl.com (Postfix) with ESMTP id 225A411E81BC; Tue, 27 Aug 2013 12:46:16 -0700 (PDT)
Received: by mail-ee0-f46.google.com with SMTP id c13so2488039eek.33 for <multiple recipients>; Tue, 27 Aug 2013 12:46:16 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=MYdqEO4H/fUsF7MkYle3ag75vf/OOifWsG4rLTQHxvI=; b=dS3UMmC4EMk8EHmH2HSQMJncHVGyxdnl/VnB1tB+p96ON8ogxGrmp0MZ2H0py5KOJo rV/oCltVh1ZfFaOAuWMyoNhhn2RNgoWwt0Y1hyEoZJCsPOfbSCEBqKNGI6XK64oZYR8I RYRupu2rXmfp2F/bY1/mWg2f3MKQjO8oC/llLl/wXzGrtVU0TYdp33NBQNeruZPBFeNV XLDCW1cvhMaD73lhoYUx1Rk71j17sP+q/ZtMLoxpSJ+ErpgqBEggyhPasmvGj1TI8UpC M917V68tu4QH3ShTrpfup4OAoprmDgEB+SSItGh/wngkrscQMhQHWoVmhykvwOEeec+G pBjw==
X-Received: by 10.14.182.9 with SMTP id n9mr5953746eem.66.1377632776201; Tue, 27 Aug 2013 12:46:16 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id x47sm31559210eea.16.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 27 Aug 2013 12:46:15 -0700 (PDT)
Date: Tue, 27 Aug 2013 23:46:12 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: James M Snell <jasnell@gmail.com>
Message-ID: <571BBAACFF6C47A7B0E01B81F8BDED81@gmail.com>
In-Reply-To: <CABP7Rbexv93UHu2q70L56pLcnjRKO9GE8EDLm6Q6onDF25c9QQ@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <CALcoZirj+Dhm2kDUUcC4epDxP9qxfQoF-d+J37XBoKQ6jOVt4w@mail.gmail.com> <CABP7Rbexv93UHu2q70L56pLcnjRKO9GE8EDLm6Q6onDF25c9QQ@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, Mark Baker <distobj@acm.org>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 19:46:18 -0000

Hi James,

Thanks for response!  

On Tuesday, August 27, 2013 at 7:38 PM, James M Snell wrote:

> On Tue, Aug 27, 2013 at 6:16 AM, Mark Baker <distobj@acm.org (mailto:distobj@acm.org)> wrote:
> > 
> > On 2013-08-27 6:15 AM, "Julian Reschke" <julian.reschke@gmx.de (mailto:julian.reschke@gmx.de)> wrote:
> > > It seems that you are just adding an indirection mechanism. Why is that
> > > necessary?
> > 
> > 
> > 
> > Agreed. The action-types should be registered as the relations.
> > 
> > Also, you might consider reusing the good work of the folks behind
> > Schema.org (http://Schema.org);
> > 
> > http://schema.org/Action
> 
> Not to mention activitystrea.ms (http://activitystrea.ms) where many of these verbs already
> exist (and could easily be used as link relations themselves).
> 
> Link: <start-action>; rel="start"
> Link: <restart-action>; rel="restart"
> 
> Would be generally easier overall.
It is not about "start" or "restart" link relation types, i included these as examples. As i already explained in response to Julian, it is about to define what the "action" itself is and make it reusable for particular class of links without the need to redefine meaning of "action" each time. Action type registry is for maintaining minimal shared understanding and is actually only useful for m2m interaction scenarios.
> 
> - James
> 
> > 
> > _______________________________________________
> > apps-discuss mailing list
> > apps-discuss@ietf.org (mailto:apps-discuss@ietf.org)
> > https://www.ietf.org/mailman/listinfo/apps-discuss
> 
> 
> _______________________________________________
> link-relations mailing list
> link-relations@ietf.org (mailto:link-relations@ietf.org)
> https://www.ietf.org/mailman/listinfo/link-relations


Cheers,
ioseb 


From mca@amundsen.com  Tue Aug 27 12:58:12 2013
Return-Path: <mca@amundsen.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DA05C21E805D for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 12:58:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.521
X-Spam-Level: 
X-Spam-Status: No, score=0.521 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, FORGED_YAHOO_RCVD=2.297, HTML_MESSAGE=0.001, J_CHICKENPOX_38=0.6, J_CHICKENPOX_92=0.6, 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 HK1RBopc-Nte for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 12:58:08 -0700 (PDT)
Received: from mail-wg0-f53.google.com (mail-wg0-f53.google.com [74.125.82.53]) by ietfa.amsl.com (Postfix) with ESMTP id D0A2711E81E3 for <link-relations@ietf.org>; Tue, 27 Aug 2013 12:58:07 -0700 (PDT)
Received: by mail-wg0-f53.google.com with SMTP id c11so4631753wgh.32 for <link-relations@ietf.org>; Tue, 27 Aug 2013 12:58:06 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=iAhl3Zpzp6qgvY7sbFCO+1/3rv75FlQsrWg5kiik63Q=; b=Wj2GxF+f85SjewwVYo2gsKtQFBdHbcKDwz6s1hLRdwHY4khxmV+/0znEsjinoKLIO8 q6BEPCXDBOv/XUoR1hVPpwfzP/lFUPQFq3Jxe1ylGnzeD1qNNV6iy54Ys2zbUDEGCWLk LZtWt6p6b63qHOnNCSjdBW+bu+7DI8yeTs9GVlOGCEUkYIj02vv9bX8DueWjfY8pMuzo RbwFuow550/Bld+gTkZ9Ys9udsGo8DgYeDRRXcOlkgRk8L2NM2J9SdenYMhAn2CkBajQ LskgWgg30Xh6jz9NcLLg2R3xZ3W+i1U4CMxMPos65c6eXOcdWMXakUh0z7mZ6hVXDIRK 1HYw==
X-Gm-Message-State: ALoCoQkOSBDKIU5p19L3luS5IVIK3GgqWPmG3yBfr3D3sAs2X4cyTB01+Q1lrT42SM7sRR7IznfB
X-Received: by 10.180.198.79 with SMTP id ja15mr12776034wic.36.1377633486861;  Tue, 27 Aug 2013 12:58:06 -0700 (PDT)
MIME-Version: 1.0
Sender: mca@amundsen.com
Received: by 10.194.151.7 with HTTP; Tue, 27 Aug 2013 12:57:46 -0700 (PDT)
In-Reply-To: <7F2E562DC01C452390F9AB2476D66F8C@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com>
From: mike amundsen <mamund@yahoo.com>
Date: Tue, 27 Aug 2013 15:57:46 -0400
X-Google-Sender-Auth: VZzAFuRJ8FiL2bZPyWyVgcWhRmU
Message-ID: <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=047d7b6242529d8fe604e4f34a38
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 19:58:12 -0000

--047d7b6242529d8fe604e4f34a38
Content-Type: text/plain; charset=ISO-8859-1

Ioseb:

it is not clear to me why: <link rel="action;action-type='edit'" href="..."
/>
is preferable to: <link rel="edit" href="..." />

talk me down ;)
mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mikeamundsen




On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <
ioseb.dzmanashvili@gmail.com> wrote:

> Hi Julian,
>
> Thanks for response!
>
> On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
>
> > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > Hi All,
> > >
> > > I've updated the "action" link relation type spec[1] based on initial
> feedback.
> > >
> > > As far as initial reactions were very controversial and raised a lot
> of issues i tried to address all of them and entirely changed the spec.
> > >
> > > ==================================================
> > > When included in a response, the "action" link relation indicates a
> > > target resource that is responsible for performing action which MAY:
> > >
> > > - Affect state of the context resource; or
> > > - Initiate process.
> > >
> > > The "action" link relation type can be used to indicate the
> > > availability of actions supported by the target resource. Examples
> > > of such actions include:
> > >
> > > - Enable/Disable
> > > - Publish/Unpublish
> > > - Start/Stop
> > >
> > > The "action" link relation type doesn't convey any semantics other
> > > than that an indicated resources represent machine readable
> > > description of a particular action and representation SHOULD contain
> > > all necessary details such as: request method, action URI and other
> > > related details to enable agents to be able to construct requests
> > > without relying on out-of-band information.
> > >
> > > Exact type of action SHOULD be indicated through the "action-type"
> > > link-extension value as per [RFC5988] and for maintaining shared
> > > understanding of action types current specification introduces the
> > > registry of actions with initial values of widely accepted and well
> > > understood action types.
> > >
> > > For example, if a resource represents a service, that same
> > > representation may include links to resources that represent actions
> > > supported by the service:
> > >
> > > Link: </restart-action>; rel="action"; action-type="restart"
> > > Link: </stop-action>; rel="action"; action-type="stop"
> > > ...
> >
> >
> >
> > It seems that you are just adding an indirection mechanism. Why is that
> > necessary?
>
> With indirection mechanism i'm trying to solve issues raised around
> initial version of the spec[1]. There were several issues:
>
> 1. The "action" link relation type doesn't have enough semantics and
> automated agents can not follow such links if there are several actions
> included in a representation. With the "action-type" link extension +
> registry of predefined action types agents can distinguish actions from
> each other.
>
> 2. Initial spec stated that if the "action" link exists in representation,
> only thing agents should do is to send empty POST request to the target in
> order to perform action. This approach was considered as an anti
> pattern(RPCish and non RESTful). With having the "action-type" agents can:
>
> a) distinguish action links from each other;
> b) if necessary dereference the target to obtain instructions for
> constructing non empty POST/PUT requests;
> c) send properly constructed request back to the target; and
> d) it makes possible for servers to dictate structure of the request
> according to there own needs.
>
> Main purpose of the "action" link relation type is to define semantics of
> particular class of links - actions. This eliminates the need to redefine
> notion of "action" for each link relation type which may be qualified as
> action link. The "action-type" is just for naming actions and is
> particularly useful for automated agents not necessarily for human
> interaction oriented agents.
>
> Having action type registry is important for maintaining shared
> understanding of particular action types. For example "reset" or "publish"
> verbs do not need to be redefined from application to application. I also
> believe that it is not efficient(or feasible) to register all possible
> actions as link relations.
>
> 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-00
> 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-01
> >
> > Best regards, Julian
> Cheers,
> ioseb
>
> _______________________________________________
> link-relations mailing list
> link-relations@ietf.org
> https://www.ietf.org/mailman/listinfo/link-relations
>

--047d7b6242529d8fe604e4f34a38
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Ioseb:<div><br></div><div>it is not clear to me why: &lt;l=
ink rel=3D&quot;action;action-type=3D&#39;edit&#39;&quot; href=3D&quot;...&=
quot; /&gt;</div><div>is preferable to: &lt;link rel=3D&quot;edit&quot; hre=
f=3D&quot;...&quot; /&gt;</div>


<div><br></div><div>talk me down ;)<br clear=3D"all"><div>mamund<div><span>=
<span id=3D"gc-number-38" class=3D"gc-cs-link" title=3D"Call with Google Vo=
ice">+1.859.757.1449</span></span><br>skype: mca.amundsen<br><a href=3D"htt=
p://amundsen.com/blog/" target=3D"_blank">http://amundsen.com/blog/</a><br>

<a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter.com/=
mamund</a><br><a href=3D"https://github.com/mamund" target=3D"_blank">https=
://github.com/mamund</a><br><a href=3D"http://www.linkedin.com/in/mikeamund=
sen" target=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a></div>

</div>
<br>
<br></div>
<br><br><div class=3D"gmail_quote">On Tue, Aug 27, 2013 at 3:40 PM, Ioseb D=
zmanashvili <span dir=3D"ltr">&lt;<a href=3D"mailto:ioseb.dzmanashvili@gmai=
l.com" target=3D"_blank">ioseb.dzmanashvili@gmail.com</a>&gt;</span> wrote:=
<br>


<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi Julian,<br>
<br>
Thanks for response!<br>
<div><div><br>
On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:<br>
<br>
&gt; On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:<br>
&gt; &gt; Hi All,<br>
&gt; &gt;<br>
&gt; &gt; I&#39;ve updated the &quot;action&quot; link relation type spec[1=
] based on initial feedback.<br>
&gt; &gt;<br>
&gt; &gt; As far as initial reactions were very controversial and raised a =
lot of issues i tried to address all of them and entirely changed the spec.=
<br>
&gt; &gt;<br>
&gt; &gt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D<br>
&gt; &gt; When included in a response, the &quot;action&quot; link relation=
 indicates a<br>
&gt; &gt; target resource that is responsible for performing action which M=
AY:<br>
&gt; &gt;<br>
&gt; &gt; - Affect state of the context resource; or<br>
&gt; &gt; - Initiate process.<br>
&gt; &gt;<br>
&gt; &gt; The &quot;action&quot; link relation type can be used to indicate=
 the<br>
&gt; &gt; availability of actions supported by the target resource. Example=
s<br>
&gt; &gt; of such actions include:<br>
&gt; &gt;<br>
&gt; &gt; - Enable/Disable<br>
&gt; &gt; - Publish/Unpublish<br>
&gt; &gt; - Start/Stop<br>
&gt; &gt;<br>
&gt; &gt; The &quot;action&quot; link relation type doesn&#39;t convey any =
semantics other<br>
&gt; &gt; than that an indicated resources represent machine readable<br>
&gt; &gt; description of a particular action and representation SHOULD cont=
ain<br>
&gt; &gt; all necessary details such as: request method, action URI and oth=
er<br>
&gt; &gt; related details to enable agents to be able to construct requests=
<br>
&gt; &gt; without relying on out-of-band information.<br>
&gt; &gt;<br>
&gt; &gt; Exact type of action SHOULD be indicated through the &quot;action=
-type&quot;<br>
&gt; &gt; link-extension value as per [RFC5988] and for maintaining shared<=
br>
&gt; &gt; understanding of action types current specification introduces th=
e<br>
&gt; &gt; registry of actions with initial values of widely accepted and we=
ll<br>
&gt; &gt; understood action types.<br>
&gt; &gt;<br>
&gt; &gt; For example, if a resource represents a service, that same<br>
&gt; &gt; representation may include links to resources that represent acti=
ons<br>
&gt; &gt; supported by the service:<br>
&gt; &gt;<br>
&gt; &gt; Link: &lt;/restart-action&gt;; rel=3D&quot;action&quot;; action-t=
ype=3D&quot;restart&quot;<br>
&gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&quot;action&quot;; action-type=
=3D&quot;stop&quot;<br>
&gt; &gt; ...<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; It seems that you are just adding an indirection mechanism. Why is tha=
t<br>
&gt; necessary?<br>
<br>
</div></div>With indirection mechanism i&#39;m trying to solve issues raise=
d around initial version of the spec[1]. There were several issues:<br>
<br>
1. The &quot;action&quot; link relation type doesn&#39;t have enough semant=
ics and automated agents can not follow such links if there are several act=
ions included in a representation. With the &quot;action-type&quot; link ex=
tension + registry of predefined action types agents can distinguish action=
s from each other.<br>



<br>
2. Initial spec stated that if the &quot;action&quot; link exists in repres=
entation, only thing agents should do is to send empty POST request to the =
target in order to perform action. This approach was considered as an anti =
pattern(RPCish and non RESTful). With having the &quot;action-type&quot; ag=
ents can:<br>



<br>
a) distinguish action links from each other;<br>
b) if necessary dereference the target to obtain instructions for construct=
ing non empty POST/PUT requests;<br>
c) send properly constructed request back to the target; and<br>
d) it makes possible for servers to dictate structure of the request accord=
ing to there own needs.<br>
<br>
Main purpose of the &quot;action&quot; link relation type is to define sema=
ntics of particular class of links - actions. This eliminates the need to r=
edefine notion of &quot;action&quot; for each link relation type which may =
be qualified as action link. The &quot;action-type&quot; is just for naming=
 actions and is particularly useful for automated agents not necessarily fo=
r human interaction oriented agents.<br>



<br>
Having action type registry is important for maintaining shared understandi=
ng of particular action types. For example &quot;reset&quot; or &quot;publi=
sh&quot; verbs do not need to be redefined from application to application.=
 I also believe that it is not efficient(or feasible) to register all possi=
ble actions as link relations.<br>



<br>
1. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-li=
nk-relation-00" target=3D"_blank">http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-00</a><br>
2. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-li=
nk-relation-01" target=3D"_blank">http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-01</a><br>
&gt;<br>
&gt; Best regards, Julian<br>
Cheers,<br>
ioseb<br>
<div><div><br>
_______________________________________________<br>
link-relations mailing list<br>
<a href=3D"mailto:link-relations@ietf.org" target=3D"_blank">link-relations=
@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/link-relations" target=3D"=
_blank">https://www.ietf.org/mailman/listinfo/link-relations</a><br>
</div></div></blockquote></div><br></div>

--047d7b6242529d8fe604e4f34a38--

From ioseb.dzmanashvili@gmail.com  Tue Aug 27 16:51:10 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id F13E111E8100; Tue, 27 Aug 2013 16:51:09 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.249
X-Spam-Level: 
X-Spam-Status: No, score=-1.249 tagged_above=-999 required=5 tests=[AWL=-1.050, BAYES_00=-2.599, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_92=0.6]
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 FCC8GYZI-N5F; Tue, 27 Aug 2013 16:51:08 -0700 (PDT)
Received: from mail-ea0-x22d.google.com (mail-ea0-x22d.google.com [IPv6:2a00:1450:4013:c01::22d]) by ietfa.amsl.com (Postfix) with ESMTP id 4DB5711E80F5; Tue, 27 Aug 2013 16:51:08 -0700 (PDT)
Received: by mail-ea0-f173.google.com with SMTP id g10so2577375eak.4 for <multiple recipients>; Tue, 27 Aug 2013 16:51:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=SCeXUk6LDn3QOLhtECJG/yZiFFQB5CB/ohlrIor3uTE=; b=pgC1C8ojcvdXv07s6uquRxIL4SppV1ibR8dHmEbl2NhbADuJwyenzeYaKdIqgNKcuM xw9OPBURA6mxy0PnJVrDo3vcDQAqOh1eE8+O+l1/BcH98mnE0tqYXrNDHL9CtcoIsO9Z CjGc8kPBQQ4WS2fQoeEGbJzkl0zpuJprFWdduWLuAkcrc0T0008yV1gW9eFJPV4fcizP UnqRIS4UmwAkB96QBFkdH7eW7+BSPqUWGBSrYKgHWVrNTFjtQFVa+Kss3g3jB8LfwfKZ WkL9NFnxHlVlTPLcKItGHCdcD13OVaMZYhG6Mw43uI4rsP/zpdU8igcMobTrw4HSSLr7 ZhMQ==
X-Received: by 10.14.122.132 with SMTP id t4mr38629361eeh.20.1377647467321; Tue, 27 Aug 2013 16:51:07 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id r48sm32725960eev.14.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Tue, 27 Aug 2013 16:51:06 -0700 (PDT)
Date: Wed, 28 Aug 2013 03:51:03 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: mike amundsen <mamund@yahoo.com>
Message-ID: <70B4B39BB3F44DC99274739DEB4B4717@gmail.com>
In-Reply-To: <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 27 Aug 2013 23:51:10 -0000

Hi Mike,

Thanks for the question=21 =20

On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:

> Ioseb:
> =20
> it is not clear to me why: <link rel=3D=22action;action-type=3D'edit'=22=
 href=3D=22...=22 />
> is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 />
> =20
> talk me down ;)
let me try ;)

Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=22; action-=
type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=22edit=22.

Of course i'd choose rel=3D=22run-forest-run=22 if there is a registered =
link relation type, but:

1. The =22action=22 link relation is generic enough, has well understood =
meaning and is useful on its own especially for human oriented agents.
2. The =22action-type=22 optional attribute may be used for specifying ex=
act meaning of actions and this makes action links more useful for m2m sc=
enarios.

Now consider this link:

Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22suspend=22;=
 title=3D=22Suspend=22

What it says=3F

1. it is an action
2. target resource represents description of the action which contains: r=
equest method, submit URI, definition of action, other details etc
3. agent can look inside =22action-type=22 to determine whether it needs =
this action type or not
4. agent can dereference it, construct request and send it to server


now if we add more actions:

Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22suspend=22;=
 title=3D=22Suspend=22
Link: </restart-action>; rel=3D=22action=22; action-type=3D=22restart=22;=
 title=3D=22Restart=22

Link: </stop-action>; rel=3D=22action=22; action-type=3D=22stop=22; title=
=3D=22Stop=22


=231, =232, =233 and =234 will be true for all of them without exceptions=
.

Now consider that representation containing these links is used by GUI ag=
ent, in this case even =22action-type=22 is not necessary at all and agen=
t can rely on user's choice. Agent only needs to know that:

1. link is an action(and this question is explicitly answered)
2. if user choose one agent needs just to dereference indicated URI
3. construct request =20
4. send request to server
5. show results to user

All of these will remain true for any action type.

I'm not sure if i talked you down, but i believe =22action=22 relation ty=
pe is useful and not because it is better(or simpler) compared to rel=3D=22=
edit=22 for example. =20

1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relati=
on-00
2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relati=
on-01

P.S.
I was talking about 01 version of spec. 00 is a different story.

Cheers,
ioseb
> mamund
> +1.859.757.1449
> skype: mca.amundsen
> http://amundsen.com/blog/
> http://twitter.com/mamund
> https://github.com/mamund
> http://www.linkedin.com/in/mikeamundsen =20
> =20
> =20
> =20
> On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <ioseb.dzmanashvili=
=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dzmana=
shvili=40gmail.com)> wrote:
> > Hi Julian,
> > =20
> > Thanks for response=21
> > =20
> > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
> > =20
> > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > Hi All,
> > > > =20
> > > > I've updated the =22action=22 link relation type spec=5B1=5D base=
d on initial feedback.
> > > > =20
> > > > As far as initial reactions were very controversial and raised a =
lot of issues i tried to address all of them and entirely changed the spe=
c.
> > > > =20
> > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
> > > > When included in a response, the =22action=22 link relation indic=
ates a
> > > > target resource that is responsible for performing action which M=
AY:
> > > > =20
> > > > - Affect state of the context resource; or
> > > > - Initiate process.
> > > > =20
> > > > The =22action=22 link relation type can be used to indicate the
> > > > availability of actions supported by the target resource. Example=
s
> > > > of such actions include:
> > > > =20
> > > > - Enable/Disable
> > > > - Publish/Unpublish
> > > > - Start/Stop
> > > > =20
> > > > The =22action=22 link relation type doesn't convey any semantics =
other
> > > > than that an indicated resources represent machine readable
> > > > description of a particular action and representation SHOULD cont=
ain
> > > > all necessary details such as: request method, action URI and oth=
er
> > > > related details to enable agents to be able to construct requests=

> > > > without relying on out-of-band information.
> > > > =20
> > > > Exact type of action SHOULD be indicated through the =22action-ty=
pe=22
> > > > link-extension value as per =5BR=46C5988=5D and for maintaining s=
hared
> > > > understanding of action types current specification introduces th=
e
> > > > registry of actions with initial values of widely accepted and we=
ll
> > > > understood action types.
> > > > =20
> > > > =46or example, if a resource represents a service, that same
> > > > representation may include links to resources that represent acti=
ons
> > > > supported by the service:
> > > > =20
> > > > Link: </restart-action>; rel=3D=22action=22; action-type=3D=22res=
tart=22
> > > > Link: </stop-action>; rel=3D=22action=22; action-type=3D=22stop=22=

> > > > ...
> > > > =20
> > > =20
> > > =20
> > > =20
> > > =20
> > > It seems that you are just adding an indirection mechanism. Why is =
that
> > > necessary=3F
> > > =20
> > =20
> > =20
> > With indirection mechanism i'm trying to solve issues raised around i=
nitial version of the spec=5B1=5D. There were several issues:
> > =20
> > 1. The =22action=22 link relation type doesn't have enough semantics =
and automated agents can not follow such links if there are several actio=
ns included in a representation. With the =22action-type=22 link extensio=
n + registry of predefined action types agents can distinguish actions fr=
om each other.
> > =20
> > 2. Initial spec stated that if the =22action=22 link exists in repres=
entation, only thing agents should do is to send empty POST request to th=
e target in order to perform action. This approach was considered as an a=
nti pattern(RPCish and non RESTful). With having the =22action-type=22 ag=
ents can:
> > =20
> > a) distinguish action links from each other;
> > b) if necessary dereference the target to obtain instructions for con=
structing non empty POST/PUT requests;
> > c) send properly constructed request back to the target; and
> > d) it makes possible for servers to dictate structure of the request =
according to there own needs.
> > =20
> > Main purpose of the =22action=22 link relation type is to define sema=
ntics of particular class of links - actions. This eliminates the need to=
 redefine notion of =22action=22 for each link relation type which may be=
 qualified as action link. The =22action-type=22 is just for naming actio=
ns and is particularly useful for automated agents not necessarily for hu=
man interaction oriented agents.
> > =20
> > Having action type registry is important for maintaining shared under=
standing of particular action types. =46or example =22reset=22 or =22publ=
ish=22 verbs do not need to be redefined from application to application.=
 I also believe that it is not efficient(or feasible) to register all pos=
sible actions as link relations.
> > =20
> > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-re=
lation-00
> > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-re=
lation-01
> > > =20
> > > Best regards, Julian
> > Cheers,
> > ioseb
> > =20
> > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
> > link-relations mailing list
> > link-relations=40ietf.org (mailto:link-relations=40ietf.org) (mailto:=
link-relations=40ietf.org)
> > https://www.ietf.org/mailman/listinfo/link-relations
> > =20
> =20
> =20




From mca@amundsen.com  Tue Aug 27 18:26:57 2013
Return-Path: <mca@amundsen.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id EE65221E8105 for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 18:26:56 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 2.421
X-Spam-Level: **
X-Spam-Status: No, score=2.421 tagged_above=-999 required=5 tests=[AWL=-1.900,  BAYES_50=0.001, FM_FORGED_GMAIL=0.622, FORGED_YAHOO_RCVD=2.297,  HTML_MESSAGE=0.001, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_92=0.6, 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 HLX3fHx-7p7n for <link-relations@ietfa.amsl.com>; Tue, 27 Aug 2013 18:26:51 -0700 (PDT)
Received: from mail-we0-f181.google.com (mail-we0-f181.google.com [74.125.82.181]) by ietfa.amsl.com (Postfix) with ESMTP id EAB9221E80F5 for <link-relations@ietf.org>; Tue, 27 Aug 2013 18:26:48 -0700 (PDT)
Received: by mail-we0-f181.google.com with SMTP id q57so4468194wes.26 for <link-relations@ietf.org>; Tue, 27 Aug 2013 18:26:46 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=pIinXS3/8DvYc1mgQWEl/YElOz0cuzJ4EbGqtKVBs1g=; b=UkT2PYRqq2NeCmaj5R8eCWRdC1Eg8vNiwxbmmMTnSx7wAqAkBI5pzxjvaGqUNckIGC UTBBN94gxtQrt09FCTYmgzLw4+xUz+G/buj35a05zTDbgMycY6/cBTY/bZNP0ZqkhSAs l6g82/KofIlBuLnmVO1olYa2VsvQGFZ5HkDSsG/KCoThYhpZoC1oHI/CNMwdmdVsV9su Mfah3ZosH4MnwL4Tx4exd/uaQy3yg2mfkBPc4IWBzdQbd4zdZZe+kwjWQPuQKP7WFi3f 6fDyFg+NkYBywfoDknQs8a8sGqmEZDgdlSLu+tQAL2NNcakICjLRJqr0YgIJjz6QmL2m ZwgA==
X-Gm-Message-State: ALoCoQk203lB11uchfu4czDFrKqh9Zett+W/Ntkrsiz7ZzCEFPVDBCDmqv6rfuup0Xvz07Iq9Buy
X-Received: by 10.194.93.105 with SMTP id ct9mr16742481wjb.6.1377653206604; Tue, 27 Aug 2013 18:26:46 -0700 (PDT)
MIME-Version: 1.0
Sender: mca@amundsen.com
Received: by 10.194.151.7 with HTTP; Tue, 27 Aug 2013 18:26:25 -0700 (PDT)
In-Reply-To: <70B4B39BB3F44DC99274739DEB4B4717@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com>
From: mike amundsen <mamund@yahoo.com>
Date: Tue, 27 Aug 2013 21:26:25 -0400
X-Google-Sender-Auth: nBnCRhSCvXbikeJCx4Xw1WxK5Ho
Message-ID: <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=047d7bb03e7800f0f704e4f7e2cb
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 01:26:57 -0000

--047d7bb03e7800f0f704e4f7e2cb
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

OK, from your response i get the following:

1) you want to support a pattern where machine-readable state transition
instructions appear at the end of some URL.
2) you want to indicate those instructions are available by marking the URL
w/ the string literal "action" (via rel in your illustrations)
3) you want to indicate the reason for using these instructions w/ an
"action-type" string (via a link-rel param in your illustrations)

that's it. nothing else.

do i have this correct?


mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mikeamundsen


On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <
ioseb.dzmanashvili@gmail.com> wrote:

> Hi Mike,
>
> Thanks for the question!
>
> On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
>
> > Ioseb:
> >
> > it is not clear to me why: <link rel=3D"action;action-type=3D'edit'"
> href=3D"..." />
> > is preferable to: <link rel=3D"edit" href=3D"..." />
> >
> > talk me down ;)
> let me try ;)
>
> Question is not about why: Link: <=85>; rel=3D"action"; action-type=3D"ed=
it" is
> preferable to: Link: <=85>; rel=3D"edit".
>
> Of course i'd choose rel=3D"run-forest-run" if there is a registered link
> relation type, but:
>
> 1. The "action" link relation is generic enough, has well understood
> meaning and is useful on its own especially for human oriented agents.
> 2. The "action-type" optional attribute may be used for specifying exact
> meaning of actions and this makes action links more useful for m2m
> scenarios.
>
> Now consider this link:
>
> Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend";
> title=3D"Suspend"
>
> What it says?
>
> 1. it is an action
> 2. target resource represents description of the action which contains:
> request method, submit URI, definition of action, other details etc
> 3. agent can look inside "action-type" to determine whether it needs this
> action type or not
> 4. agent can dereference it, construct request and send it to server
>
>
> now if we add more actions:
>
> Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend";
> title=3D"Suspend"
> Link: </restart-action>; rel=3D"action"; action-type=3D"restart";
> title=3D"Restart"
>
> Link: </stop-action>; rel=3D"action"; action-type=3D"stop"; title=3D"Stop=
"
>
>
> #1, #2, #3 and #4 will be true for all of them without exceptions.
>
> Now consider that representation containing these links is used by GUI
> agent, in this case even "action-type" is not necessary at all and agent
> can rely on user's choice. Agent only needs to know that:
>
> 1. link is an action(and this question is explicitly answered)
> 2. if user choose one agent needs just to dereference indicated URI
> 3. construct request
> 4. send request to server
> 5. show results to user
>
> All of these will remain true for any action type.
>
> I'm not sure if i talked you down, but i believe "action" relation type i=
s
> useful and not because it is better(or simpler) compared to rel=3D"edit" =
for
> example.
>
> 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
>
> P.S.
> I was talking about 01 version of spec. 00 is a different story.
>
> Cheers,
> ioseb
> > mamund
> > +1.859.757.1449
> > skype: mca.amundsen
> > http://amundsen.com/blog/
> > http://twitter.com/mamund
> > https://github.com/mamund
> > http://www.linkedin.com/in/mikeamundsen
> >
> >
> >
> > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
> > > Hi Julian,
> > >
> > > Thanks for response!
> > >
> > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
> > >
> > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > Hi All,
> > > > >
> > > > > I've updated the "action" link relation type spec[1] based on
> initial feedback.
> > > > >
> > > > > As far as initial reactions were very controversial and raised a
> lot of issues i tried to address all of them and entirely changed the spe=
c.
> > > > >
> > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> > > > > When included in a response, the "action" link relation indicates=
 a
> > > > > target resource that is responsible for performing action which
> MAY:
> > > > >
> > > > > - Affect state of the context resource; or
> > > > > - Initiate process.
> > > > >
> > > > > The "action" link relation type can be used to indicate the
> > > > > availability of actions supported by the target resource. Example=
s
> > > > > of such actions include:
> > > > >
> > > > > - Enable/Disable
> > > > > - Publish/Unpublish
> > > > > - Start/Stop
> > > > >
> > > > > The "action" link relation type doesn't convey any semantics othe=
r
> > > > > than that an indicated resources represent machine readable
> > > > > description of a particular action and representation SHOULD
> contain
> > > > > all necessary details such as: request method, action URI and oth=
er
> > > > > related details to enable agents to be able to construct requests
> > > > > without relying on out-of-band information.
> > > > >
> > > > > Exact type of action SHOULD be indicated through the "action-type=
"
> > > > > link-extension value as per [RFC5988] and for maintaining shared
> > > > > understanding of action types current specification introduces th=
e
> > > > > registry of actions with initial values of widely accepted and we=
ll
> > > > > understood action types.
> > > > >
> > > > > For example, if a resource represents a service, that same
> > > > > representation may include links to resources that represent
> actions
> > > > > supported by the service:
> > > > >
> > > > > Link: </restart-action>; rel=3D"action"; action-type=3D"restart"
> > > > > Link: </stop-action>; rel=3D"action"; action-type=3D"stop"
> > > > > ...
> > > > >
> > > >
> > > >
> > > >
> > > >
> > > > It seems that you are just adding an indirection mechanism. Why is
> that
> > > > necessary?
> > > >
> > >
> > >
> > > With indirection mechanism i'm trying to solve issues raised around
> initial version of the spec[1]. There were several issues:
> > >
> > > 1. The "action" link relation type doesn't have enough semantics and
> automated agents can not follow such links if there are several actions
> included in a representation. With the "action-type" link extension +
> registry of predefined action types agents can distinguish actions from
> each other.
> > >
> > > 2. Initial spec stated that if the "action" link exists in
> representation, only thing agents should do is to send empty POST request
> to the target in order to perform action. This approach was considered as
> an anti pattern(RPCish and non RESTful). With having the "action-type"
> agents can:
> > >
> > > a) distinguish action links from each other;
> > > b) if necessary dereference the target to obtain instructions for
> constructing non empty POST/PUT requests;
> > > c) send properly constructed request back to the target; and
> > > d) it makes possible for servers to dictate structure of the request
> according to there own needs.
> > >
> > > Main purpose of the "action" link relation type is to define semantic=
s
> of particular class of links - actions. This eliminates the need to
> redefine notion of "action" for each link relation type which may be
> qualified as action link. The "action-type" is just for naming actions an=
d
> is particularly useful for automated agents not necessarily for human
> interaction oriented agents.
> > >
> > > Having action type registry is important for maintaining shared
> understanding of particular action types. For example "reset" or "publish=
"
> verbs do not need to be redefined from application to application. I also
> believe that it is not efficient(or feasible) to register all possible
> actions as link relations.
> > >
> > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > > >
> > > > Best regards, Julian
> > > Cheers,
> > > ioseb
> > >
> > > _______________________________________________
> > > link-relations mailing list
> > > link-relations@ietf.org (mailto:link-relations@ietf.org) (mailto:
> link-relations@ietf.org)
> > > https://www.ietf.org/mailman/listinfo/link-relations
> > >
> >
> >
>
>
>
>

--047d7bb03e7800f0f704e4f7e2cb
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div style><font face=3D"arial, sans-serif">OK, from your =
response i get the following:</font></div><div style><font face=3D"arial, s=
ans-serif"><br></font></div><div style><font face=3D"arial, sans-serif">1) =
you want to support a pattern where machine-readable state transition instr=
uctions appear at the end of some URL.</font></div>

<div style><font face=3D"arial, sans-serif">2) you want to indicate those i=
nstructions are available by marking the URL w/ the string literal &quot;ac=
tion&quot; (via rel in your illustrations)</font></div><div style><font fac=
e=3D"arial, sans-serif">3) you want to indicate the reason for using these =
instructions w/ an &quot;action-type&quot; string (via a link-rel param in =
your illustrations)</font></div>

<div style><font face=3D"arial, sans-serif"><br></font></div><div style><fo=
nt face=3D"arial, sans-serif">that&#39;s it. nothing else.=A0</font></div><=
div style><font face=3D"arial, sans-serif"><br></font></div><div style><fon=
t face=3D"arial, sans-serif">do i have this correct?</font></div>

<div style><font face=3D"arial, sans-serif"><br></font></div></div><div cla=
ss=3D"gmail_extra"><br clear=3D"all"><div>mamund<div>+1.859.757.1449<br>sky=
pe: mca.amundsen<br><a href=3D"http://amundsen.com/blog/" target=3D"_blank"=
>http://amundsen.com/blog/</a><br>

<a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter.com/=
mamund</a><br><a href=3D"https://github.com/mamund" target=3D"_blank">https=
://github.com/mamund</a><br><a href=3D"http://www.linkedin.com/in/mikeamund=
sen" target=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a></div>

</div>
<br><br><div class=3D"gmail_quote">On Tue, Aug 27, 2013 at 7:51 PM, Ioseb D=
zmanashvili <span dir=3D"ltr">&lt;<a href=3D"mailto:ioseb.dzmanashvili@gmai=
l.com" target=3D"_blank">ioseb.dzmanashvili@gmail.com</a>&gt;</span> wrote:=
<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Hi Mike,<br>
<br>
Thanks for the question!<br>
<div class=3D"im"><br>
On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:<br>
<br>
&gt; Ioseb:<br>
&gt;<br>
&gt; it is not clear to me why: &lt;link rel=3D&quot;action;action-type=3D&=
#39;edit&#39;&quot; href=3D&quot;...&quot; /&gt;<br>
&gt; is preferable to: &lt;link rel=3D&quot;edit&quot; href=3D&quot;...&quo=
t; /&gt;<br>
&gt;<br>
&gt; talk me down ;)<br>
</div>let me try ;)<br>
<br>
Question is not about why: Link: &lt;=85&gt;; rel=3D&quot;action&quot;; act=
ion-type=3D&quot;edit&quot; is preferable to: Link: &lt;=85&gt;; rel=3D&quo=
t;edit&quot;.<br>
<br>
Of course i&#39;d choose rel=3D&quot;run-forest-run&quot; if there is a reg=
istered link relation type, but:<br>
<br>
1. The &quot;action&quot; link relation is generic enough, has well underst=
ood meaning and is useful on its own especially for human oriented agents.<=
br>
2. The &quot;action-type&quot; optional attribute may be used for specifyin=
g exact meaning of actions and this makes action links more useful for m2m =
scenarios.<br>
<br>
Now consider this link:<br>
<br>
Link: &lt;/suspend-action&gt;; rel=3D&quot;action&quot;; action-type=3D&quo=
t;suspend&quot;; title=3D&quot;Suspend&quot;<br>
<br>
What it says?<br>
<br>
1. it is an action<br>
2. target resource represents description of the action which contains: req=
uest method, submit URI, definition of action, other details etc<br>
3. agent can look inside &quot;action-type&quot; to determine whether it ne=
eds this action type or not<br>
4. agent can dereference it, construct request and send it to server<br>
<br>
<br>
now if we add more actions:<br>
<br>
Link: &lt;/suspend-action&gt;; rel=3D&quot;action&quot;; action-type=3D&quo=
t;suspend&quot;; title=3D&quot;Suspend&quot;<br>
Link: &lt;/restart-action&gt;; rel=3D&quot;action&quot;; action-type=3D&quo=
t;restart&quot;; title=3D&quot;Restart&quot;<br>
<br>
Link: &lt;/stop-action&gt;; rel=3D&quot;action&quot;; action-type=3D&quot;s=
top&quot;; title=3D&quot;Stop&quot;<br>
<br>
<br>
#1, #2, #3 and #4 will be true for all of them without exceptions.<br>
<br>
Now consider that representation containing these links is used by GUI agen=
t, in this case even &quot;action-type&quot; is not necessary at all and ag=
ent can rely on user&#39;s choice. Agent only needs to know that:<br>
<br>
1. link is an action(and this question is explicitly answered)<br>
2. if user choose one agent needs just to dereference indicated URI<br>
3. construct request<br>
4. send request to server<br>
5. show results to user<br>
<br>
All of these will remain true for any action type.<br>
<br>
I&#39;m not sure if i talked you down, but i believe &quot;action&quot; rel=
ation type is useful and not because it is better(or simpler) compared to r=
el=3D&quot;edit&quot; for example.<br>
<div class=3D"im"><br>
1. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-li=
nk-relation-00" target=3D"_blank">http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-00</a><br>
2. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-li=
nk-relation-01" target=3D"_blank">http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-01</a><br>
<br>
</div>P.S.<br>
I was talking about 01 version of spec. 00 is a different story.<br>
<br>
Cheers,<br>
ioseb<br>
<div class=3D"im">&gt; mamund<br>
&gt; <a href=3D"tel:%2B1.859.757.1449" value=3D"+18597571449">+1.859.757.14=
49</a><br>
&gt; skype: mca.amundsen<br>
&gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http://amundse=
n.com/blog/</a><br>
&gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter=
.com/mamund</a><br>
&gt; <a href=3D"https://github.com/mamund" target=3D"_blank">https://github=
.com/mamund</a><br>
&gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D"_blank">=
http://www.linkedin.com/in/mikeamundsen</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
</div><div><div class=3D"h5">&gt; On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dz=
manashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmana=
shvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com=
">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanas=
hvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>)&gt; wrote:<br>


&gt; &gt; Hi Julian,<br>
&gt; &gt;<br>
&gt; &gt; Thanks for response!<br>
&gt; &gt;<br>
&gt; &gt; On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:<br>
&gt; &gt; &gt; &gt; Hi All,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I&#39;ve updated the &quot;action&quot; link relation t=
ype spec[1] based on initial feedback.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; As far as initial reactions were very controversial and=
 raised a lot of issues i tried to address all of them and entirely changed=
 the spec.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D<br>
&gt; &gt; &gt; &gt; When included in a response, the &quot;action&quot; lin=
k relation indicates a<br>
&gt; &gt; &gt; &gt; target resource that is responsible for performing acti=
on which MAY:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; - Affect state of the context resource; or<br>
&gt; &gt; &gt; &gt; - Initiate process.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; The &quot;action&quot; link relation type can be used t=
o indicate the<br>
&gt; &gt; &gt; &gt; availability of actions supported by the target resourc=
e. Examples<br>
&gt; &gt; &gt; &gt; of such actions include:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; - Enable/Disable<br>
&gt; &gt; &gt; &gt; - Publish/Unpublish<br>
&gt; &gt; &gt; &gt; - Start/Stop<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; The &quot;action&quot; link relation type doesn&#39;t c=
onvey any semantics other<br>
&gt; &gt; &gt; &gt; than that an indicated resources represent machine read=
able<br>
&gt; &gt; &gt; &gt; description of a particular action and representation S=
HOULD contain<br>
&gt; &gt; &gt; &gt; all necessary details such as: request method, action U=
RI and other<br>
&gt; &gt; &gt; &gt; related details to enable agents to be able to construc=
t requests<br>
&gt; &gt; &gt; &gt; without relying on out-of-band information.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Exact type of action SHOULD be indicated through the &q=
uot;action-type&quot;<br>
&gt; &gt; &gt; &gt; link-extension value as per [RFC5988] and for maintaini=
ng shared<br>
&gt; &gt; &gt; &gt; understanding of action types current specification int=
roduces the<br>
&gt; &gt; &gt; &gt; registry of actions with initial values of widely accep=
ted and well<br>
&gt; &gt; &gt; &gt; understood action types.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; For example, if a resource represents a service, that s=
ame<br>
&gt; &gt; &gt; &gt; representation may include links to resources that repr=
esent actions<br>
&gt; &gt; &gt; &gt; supported by the service:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Link: &lt;/restart-action&gt;; rel=3D&quot;action&quot;=
; action-type=3D&quot;restart&quot;<br>
&gt; &gt; &gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&quot;action&quot;; a=
ction-type=3D&quot;stop&quot;<br>
&gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; It seems that you are just adding an indirection mechanism. =
Why is that<br>
&gt; &gt; &gt; necessary?<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; With indirection mechanism i&#39;m trying to solve issues raised =
around initial version of the spec[1]. There were several issues:<br>
&gt; &gt;<br>
&gt; &gt; 1. The &quot;action&quot; link relation type doesn&#39;t have eno=
ugh semantics and automated agents can not follow such links if there are s=
everal actions included in a representation. With the &quot;action-type&quo=
t; link extension + registry of predefined action types agents can distingu=
ish actions from each other.<br>


&gt; &gt;<br>
&gt; &gt; 2. Initial spec stated that if the &quot;action&quot; link exists=
 in representation, only thing agents should do is to send empty POST reque=
st to the target in order to perform action. This approach was considered a=
s an anti pattern(RPCish and non RESTful). With having the &quot;action-typ=
e&quot; agents can:<br>


&gt; &gt;<br>
&gt; &gt; a) distinguish action links from each other;<br>
&gt; &gt; b) if necessary dereference the target to obtain instructions for=
 constructing non empty POST/PUT requests;<br>
&gt; &gt; c) send properly constructed request back to the target; and<br>
&gt; &gt; d) it makes possible for servers to dictate structure of the requ=
est according to there own needs.<br>
&gt; &gt;<br>
&gt; &gt; Main purpose of the &quot;action&quot; link relation type is to d=
efine semantics of particular class of links - actions. This eliminates the=
 need to redefine notion of &quot;action&quot; for each link relation type =
which may be qualified as action link. The &quot;action-type&quot; is just =
for naming actions and is particularly useful for automated agents not nece=
ssarily for human interaction oriented agents.<br>


&gt; &gt;<br>
&gt; &gt; Having action type registry is important for maintaining shared u=
nderstanding of particular action types. For example &quot;reset&quot; or &=
quot;publish&quot; verbs do not need to be redefined from application to ap=
plication. I also believe that it is not efficient(or feasible) to register=
 all possible actions as link relations.<br>


&gt; &gt;<br>
&gt; &gt; 1. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili=
-action-link-relation-00" target=3D"_blank">http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-00</a><br>
&gt; &gt; 2. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili=
-action-link-relation-01" target=3D"_blank">http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-01</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; Best regards, Julian<br>
&gt; &gt; Cheers,<br>
&gt; &gt; ioseb<br>
&gt; &gt;<br>
&gt; &gt; _______________________________________________<br>
&gt; &gt; link-relations mailing list<br>
</div></div>&gt; &gt; <a href=3D"mailto:link-relations@ietf.org">link-relat=
ions@ietf.org</a> (mailto:<a href=3D"mailto:link-relations@ietf.org">link-r=
elations@ietf.org</a>) (mailto:<a href=3D"mailto:link-relations@ietf.org">l=
ink-relations@ietf.org</a>)<br>


&gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/link-relations" =
target=3D"_blank">https://www.ietf.org/mailman/listinfo/link-relations</a><=
br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</blockquote></div><br></div>

--047d7bb03e7800f0f704e4f7e2cb--

From ioseb.dzmanashvili@gmail.com  Wed Aug 28 00:35:10 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id BEC6D11E814B; Wed, 28 Aug 2013 00:35:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.401
X-Spam-Level: 
X-Spam-Status: No, score=0.401 tagged_above=-999 required=5 tests=[AWL=-2.000,  BAYES_50=0.001, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_92=0.6]
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 pQIV+qPQU4Ni; Wed, 28 Aug 2013 00:35:09 -0700 (PDT)
Received: from mail-ee0-x22c.google.com (mail-ee0-x22c.google.com [IPv6:2a00:1450:4013:c00::22c]) by ietfa.amsl.com (Postfix) with ESMTP id A0F6811E8136; Wed, 28 Aug 2013 00:35:08 -0700 (PDT)
Received: by mail-ee0-f44.google.com with SMTP id b47so2755703eek.3 for <multiple recipients>; Wed, 28 Aug 2013 00:35:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=XcqvAfDV2cpY9Ps/U34q5dfqStWHUlY8rdmdzW6X/NA=; b=Xy08Xzid8wnIpktau6Ucf/o47Ns+ipE8w5+haw2nIui0HTirvQ9vqk2VzOxDdLYU9L WmiRJDbR1BUWECkDZ+HKot55qp9Kza7pKYn0WFR7w4yTGHJLehaoPHkUXNdFddrOQT3R 39yEpC5RAr+r8HiVwBdxhRvimaOkmq5KC7Jw473OgWmzmxJY8CSMFA8QS0rtt6sEBpIF RJ+oZ0I9BnTsPHoQWwFWSA4Q7Ix2IJcsCMV+/3NEiHX6x7SICUIuCdrHtA37nErAoiL2 gHLIRMq1jpTvk0EddpYhUldHy8D5kcbMxA+edpLC2uTPiZvE8WN4MdXQqQccs2ru6S1C cbwQ==
X-Received: by 10.15.90.132 with SMTP id q4mr213628eez.98.1377675307773; Wed, 28 Aug 2013 00:35:07 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id n48sm34927998eeg.17.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 00:35:06 -0700 (PDT)
Date: Wed, 28 Aug 2013 11:35:03 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: mike amundsen <mamund@yahoo.com>
Message-ID: <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com>
In-Reply-To: <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 07:35:10 -0000

Mike,

On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:

> OK, from your response i get the following:
> =20
> 1) you want to support a pattern where machine-readable state transitio=
n instructions appear at the end of some URL. =20
> 2) you want to indicate those instructions are available by marking the=
 URL w/ the string literal =22action=22 (via rel in your illustrations)
> 3) you want to indicate the reason for using these instructions w/ an =22=
action-type=22 string (via a link-rel param in your illustrations)
> =20
> that's it. nothing else. =20
> =20
> do i have this correct=3F =20
> =20

Exactly=21 That's it and nothing else. =20

Cheers,
ioseb
 =20
> =20
> =20
> mamund
> +1.859.757.1449
> skype: mca.amundsen
> http://amundsen.com/blog/
> http://twitter.com/mamund
> https://github.com/mamund
> http://www.linkedin.com/in/mikeamundsen =20
> =20
> On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <ioseb.dzmanashvili=
=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > Hi Mike,
> > =20
> > Thanks for the question=21
> > =20
> > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > =20
> > > Ioseb:
> > > =20
> > > it is not clear to me why: <link rel=3D=22action;action-type=3D'edi=
t'=22 href=3D=22...=22 />
> > > is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 />
> > > =20
> > > talk me down ;)
> > let me try ;)
> > =20
> > Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=22; act=
ion-type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=22edit=22=
.
> > =20
> > Of course i'd choose rel=3D=22run-forest-run=22 if there is a registe=
red link relation type, but:
> > =20
> > 1. The =22action=22 link relation is generic enough, has well underst=
ood meaning and is useful on its own especially for human oriented agents=
.
> > 2. The =22action-type=22 optional attribute may be used for specifyin=
g exact meaning of actions and this makes action links more useful for m2=
m scenarios.
> > =20
> > Now consider this link:
> > =20
> > Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22suspend=
=22; title=3D=22Suspend=22
> > =20
> > What it says=3F
> > =20
> > 1. it is an action
> > 2. target resource represents description of the action which contain=
s: request method, submit URI, definition of action, other details etc
> > 3. agent can look inside =22action-type=22 to determine whether it ne=
eds this action type or not
> > 4. agent can dereference it, construct request and send it to server
> > =20
> > =20
> > now if we add more actions:
> > =20
> > Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22suspend=
=22; title=3D=22Suspend=22
> > Link: </restart-action>; rel=3D=22action=22; action-type=3D=22restart=
=22; title=3D=22Restart=22
> > =20
> > Link: </stop-action>; rel=3D=22action=22; action-type=3D=22stop=22; t=
itle=3D=22Stop=22
> > =20
> > =20
> > =231, =232, =233 and =234 will be true for all of them without except=
ions.
> > =20
> > Now consider that representation containing these links is used by GU=
I agent, in this case even =22action-type=22 is not necessary at all and =
agent can rely on user's choice. Agent only needs to know that:
> > =20
> > 1. link is an action(and this question is explicitly answered)
> > 2. if user choose one agent needs just to dereference indicated URI
> > 3. construct request
> > 4. send request to server
> > 5. show results to user
> > =20
> > All of these will remain true for any action type.
> > =20
> > I'm not sure if i talked you down, but i believe =22action=22 relatio=
n type is useful and not because it is better(or simpler) compared to rel=
=3D=22edit=22 for example.
> > =20
> > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-re=
lation-00
> > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-re=
lation-01
> > =20
> > P.S.
> > I was talking about 01 version of spec. 00 is a different story.
> > =20
> > Cheers,
> > ioseb
> > > mamund
> > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> > > skype: mca.amundsen
> > > http://amundsen.com/blog/
> > > http://twitter.com/mamund
> > > https://github.com/mamund
> > > http://www.linkedin.com/in/mikeamundsen
> > > =20
> > > =20
> > > =20
> > > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <ioseb.dzmanash=
vili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dz=
manashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > > > Hi Julian,
> > > > =20
> > > > Thanks for response=21
> > > > =20
> > > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
> > > > =20
> > > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > > Hi All,
> > > > > > =20
> > > > > > I've updated the =22action=22 link relation type spec=5B1=5D =
based on initial feedback.
> > > > > > =20
> > > > > > As far as initial reactions were very controversial and raise=
d a lot of issues i tried to address all of them and entirely changed the=
 spec.
> > > > > > =20
> > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
> > > > > > When included in a response, the =22action=22 link relation i=
ndicates a
> > > > > > target resource that is responsible for performing action whi=
ch MAY:
> > > > > > =20
> > > > > > - Affect state of the context resource; or
> > > > > > - Initiate process.
> > > > > > =20
> > > > > > The =22action=22 link relation type can be used to indicate t=
he
> > > > > > availability of actions supported by the target resource. Exa=
mples
> > > > > > of such actions include:
> > > > > > =20
> > > > > > - Enable/Disable
> > > > > > - Publish/Unpublish
> > > > > > - Start/Stop
> > > > > > =20
> > > > > > The =22action=22 link relation type doesn't convey any semant=
ics other
> > > > > > than that an indicated resources represent machine readable
> > > > > > description of a particular action and representation SHOULD =
contain
> > > > > > all necessary details such as: request method, action URI and=
 other
> > > > > > related details to enable agents to be able to construct requ=
ests
> > > > > > without relying on out-of-band information.
> > > > > > =20
> > > > > > Exact type of action SHOULD be indicated through the =22actio=
n-type=22
> > > > > > link-extension value as per =5BR=46C5988=5D and for maintaini=
ng shared
> > > > > > understanding of action types current specification introduce=
s the
> > > > > > registry of actions with initial values of widely accepted an=
d well
> > > > > > understood action types.
> > > > > > =20
> > > > > > =46or example, if a resource represents a service, that same
> > > > > > representation may include links to resources that represent =
actions
> > > > > > supported by the service:
> > > > > > =20
> > > > > > Link: </restart-action>; rel=3D=22action=22; action-type=3D=22=
restart=22
> > > > > > Link: </stop-action>; rel=3D=22action=22; action-type=3D=22st=
op=22
> > > > > > ...
> > > > > =20
> > > > > =20
> > > > > =20
> > > > > =20
> > > > > =20
> > > > > It seems that you are just adding an indirection mechanism. Why=
 is that
> > > > > necessary=3F
> > > > =20
> > > > =20
> > > > =20
> > > > With indirection mechanism i'm trying to solve issues raised arou=
nd initial version of the spec=5B1=5D. There were several issues:
> > > > =20
> > > > 1. The =22action=22 link relation type doesn't have enough semant=
ics and automated agents can not follow such links if there are several a=
ctions included in a representation. With the =22action-type=22 link exte=
nsion + registry of predefined action types agents can distinguish action=
s from each other.
> > > > =20
> > > > 2. Initial spec stated that if the =22action=22 link exists in re=
presentation, only thing agents should do is to send empty POST request t=
o the target in order to perform action. This approach was considered as =
an anti pattern(RPCish and non RESTful). With having the =22action-type=22=
 agents can:
> > > > =20
> > > > a) distinguish action links from each other;
> > > > b) if necessary dereference the target to obtain instructions for=
 constructing non empty POST/PUT requests;
> > > > c) send properly constructed request back to the target; and
> > > > d) it makes possible for servers to dictate structure of the requ=
est according to there own needs.
> > > > =20
> > > > Main purpose of the =22action=22 link relation type is to define =
semantics of particular class of links - actions. This eliminates the nee=
d to redefine notion of =22action=22 for each link relation type which ma=
y be qualified as action link. The =22action-type=22 is just for naming a=
ctions and is particularly useful for automated agents not necessarily fo=
r human interaction oriented agents.
> > > > =20
> > > > Having action type registry is important for maintaining shared u=
nderstanding of particular action types. =46or example =22reset=22 or =22=
publish=22 verbs do not need to be redefined from application to applicat=
ion. I also believe that it is not efficient(or feasible) to register all=
 possible actions as link relations.
> > > > =20
> > > > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-lin=
k-relation-00
> > > > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-lin=
k-relation-01
> > > > > =20
> > > > > Best regards, Julian
> > > > Cheers,
> > > > ioseb
> > > > =20
> > > > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=

> > > > link-relations mailing list
> > > > link-relations=40ietf.org (mailto:link-relations=40ietf.org) (mai=
lto:link-relations=40ietf.org) (mailto:link-relations=40ietf.org)
> > > > https://www.ietf.org/mailman/listinfo/link-relations
> > > =20
> > =20
> =20




From mikekelly321@gmail.com  Wed Aug 28 00:45:10 2013
Return-Path: <mikekelly321@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C9EE911E815B; Wed, 28 Aug 2013 00:45:10 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HTML_MESSAGE=0.001, NO_RELAYS=-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 iwrHTVQX+yDb; Wed, 28 Aug 2013 00:45:10 -0700 (PDT)
Received: from mail-ee0-x233.google.com (mail-ee0-x233.google.com [IPv6:2a00:1450:4013:c00::233]) by ietfa.amsl.com (Postfix) with ESMTP id DEA4421F9F0E; Wed, 28 Aug 2013 00:45:09 -0700 (PDT)
Received: by mail-ee0-f51.google.com with SMTP id c1so2687505eek.24 for <multiple recipients>; Wed, 28 Aug 2013 00:45:09 -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 :cc:content-type; bh=TtTHCfcK0VWM/iLMwMqqtkH96x7cJN6Ku6u82phPWIo=; b=PTgW6x/F67Gvb0XInk9hZ5OJjGAVV903WNTbqgssJjRBNmWWrjLInpv39m9qva3FO8 i/Da4VGpcYCPTDKgMQE34fOg6j7LJAd1NgAG5WbL6CEKKWWlU3MnN0hVV2OBogMu6fZC kocEnCOpxNG9FX2yiCI/ZrvI8Xi73YznubpP0yGN4kZkmuckqXq1wogdOp97CY3c2kvp 6H3vAbfHga9B29w9+KWkGtIAkFjDZ6OP/i2fNRwYb/fw0/Gr/Se3tO5bWET09rzpOSKX eJGX9bRVI4+1OPVjt0/TPAsrjNgO5kFcEwVCuML6dMgBh2l30OjIwGbdshFsrVgxepqG 9wrg==
MIME-Version: 1.0
X-Received: by 10.15.36.9 with SMTP id h9mr41753874eev.30.1377675909016; Wed, 28 Aug 2013 00:45:09 -0700 (PDT)
Received: by 10.223.172.193 with HTTP; Wed, 28 Aug 2013 00:45:08 -0700 (PDT)
Received: by 10.223.172.193 with HTTP; Wed, 28 Aug 2013 00:45:08 -0700 (PDT)
In-Reply-To: <70B4B39BB3F44DC99274739DEB4B4717@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com>
Date: Wed, 28 Aug 2013 08:45:08 +0100
Message-ID: <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
From: Mike Kelly <mikekelly321@gmail.com>
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=089e0160cd802c50a604e4fd2b3d
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations@ietf.org
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 07:45:10 -0000

--089e0160cd802c50a604e4fd2b3d
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

On 28 Aug 2013 00:51, "Ioseb Dzmanashvili" <ioseb.dzmanashvili@gmail.com>
wrote:
>
> Hi Mike,
>
> Thanks for the question!
>
> On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
>
> > Ioseb:
> >
> > it is not clear to me why: <link rel=3D"action;action-type=3D'edit'"
href=3D"..." />
> > is preferable to: <link rel=3D"edit" href=3D"..." />
> >
> > talk me down ;)
> let me try ;)
>
> Question is not about why: Link: <=85>; rel=3D"action"; action-type=3D"ed=
it" is
preferable to: Link: <=85>; rel=3D"edit".
>
> Of course i'd choose rel=3D"run-forest-run" if there is a registered link
relation type, but:
>
> 1. The "action" link relation is generic enough, has well understood
meaning and is useful on its own especially for human oriented agents.
> 2. The "action-type" optional attribute may be used for specifying exact
meaning of actions and this makes action links more useful for m2m
scenarios.
>

Hey Ioseb, isn't this what extension relations are for?

Cheers,
M

--089e0160cd802c50a604e4fd2b3d
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr"><br>
On 28 Aug 2013 00:51, &quot;Ioseb Dzmanashvili&quot; &lt;<a href=3D"mailto:=
ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>&gt; wrote:<b=
r>
&gt;<br>
&gt; Hi Mike,<br>
&gt;<br>
&gt; Thanks for the question!<br>
&gt;<br>
&gt; On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:<br>
&gt;<br>
&gt; &gt; Ioseb:<br>
&gt; &gt;<br>
&gt; &gt; it is not clear to me why: &lt;link rel=3D&quot;action;action-typ=
e=3D&#39;edit&#39;&quot; href=3D&quot;...&quot; /&gt;<br>
&gt; &gt; is preferable to: &lt;link rel=3D&quot;edit&quot; href=3D&quot;..=
.&quot; /&gt;<br>
&gt; &gt;<br>
&gt; &gt; talk me down ;)<br>
&gt; let me try ;)<br>
&gt;<br>
&gt; Question is not about why: Link: &lt;=85&gt;; rel=3D&quot;action&quot;=
; action-type=3D&quot;edit&quot; is preferable to: Link: &lt;=85&gt;; rel=
=3D&quot;edit&quot;.<br>
&gt;<br>
&gt; Of course i&#39;d choose rel=3D&quot;run-forest-run&quot; if there is =
a registered link relation type, but:<br>
&gt;<br>
&gt; 1. The &quot;action&quot; link relation is generic enough, has well un=
derstood meaning and is useful on its own especially for human oriented age=
nts.<br>
&gt; 2. The &quot;action-type&quot; optional attribute may be used for spec=
ifying exact meaning of actions and this makes action links more useful for=
 m2m scenarios.<br>
&gt;</p>
<p dir=3D"ltr">Hey Ioseb, isn&#39;t this what extension relations are for?<=
/p>
<p dir=3D"ltr">Cheers,<br>
M</p>

--089e0160cd802c50a604e4fd2b3d--

From ioseb.dzmanashvili@gmail.com  Wed Aug 28 01:04:55 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6B94011E815F; Wed, 28 Aug 2013 01:04:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.599
X-Spam-Level: 
X-Spam-Status: No, score=-1.599 tagged_above=-999 required=5 tests=[AWL=1.000,  BAYES_00=-2.599]
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 1GyVrHrXSHx0; Wed, 28 Aug 2013 01:04:54 -0700 (PDT)
Received: from mail-ee0-x233.google.com (mail-ee0-x233.google.com [IPv6:2a00:1450:4013:c00::233]) by ietfa.amsl.com (Postfix) with ESMTP id 9DAC211E815C; Wed, 28 Aug 2013 01:04:53 -0700 (PDT)
Received: by mail-ee0-f51.google.com with SMTP id c1so2769718eek.10 for <multiple recipients>; Wed, 28 Aug 2013 01:04:51 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=/9ogjKtygiho+io8F3gJleY64H2geDeKgqLkzYnBXC4=; b=ov+tjEwHmgKoH8LVEmKDdpL/EU6BneZw7F9cV5DvhZ7/opa6GeM5YdvDm9auq4RBFv E9CbxfEzP3vU3+WETLbDd3BtzYqhZ2FZ3NCjSlkE7QYyKbBTRaoNmha8jv+DbwO0QjUl PMpaaI4ArF0jL0zo84rYAQFrIieQ3LmzQLh29OJZmqPCFBfibYnGeK9e+Gb6W+2UVO+y yAKP7YdF+B5JU+GHgsg/hZQcv0LBaOSc/c2boyzxxj7oacFs1P9T6U61ZsCrTu1F7GEZ 0qj6arjAGqM7fb+zyFW+BAVX+BtH/RMAkl+rfx9/tfHurEEqajhS7E+aB8BRNyuDFklW tTuw==
X-Received: by 10.15.26.7 with SMTP id m7mr1647622eeu.56.1377677091582; Wed, 28 Aug 2013 01:04:51 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id r48sm35114607eev.14.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 01:04:50 -0700 (PDT)
Date: Wed, 28 Aug 2013 12:04:48 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: Mike Kelly <mikekelly321@gmail.com>
Message-ID: <2815EAE84FC243169D0D4802A0169C21@gmail.com>
In-Reply-To: <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations@ietf.org
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 08:04:55 -0000

Hi Mike,

On Wednesday, August 28, 2013 at 11:45 AM, Mike Kelly wrote:

> =20
> On 28 Aug 2013 00:51, =22Ioseb Dzmanashvili=22 <ioseb.dzmanashvili=40gm=
ail.com (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > =20
> > Hi Mike,
> > =20
> > Thanks for the question=21
> > =20
> > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > =20
> > > Ioseb:
> > > =20
> > > it is not clear to me why: <link rel=3D=22action;action-type=3D'edi=
t'=22 href=3D=22...=22 />
> > > is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 />
> > > =20
> > > talk me down ;)
> > let me try ;)
> > =20
> > Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=22; act=
ion-type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=22edit=22=
.
> > =20
> > Of course i'd choose rel=3D=22run-forest-run=22 if there is a registe=
red link relation type, but:
> > =20
> > 1. The =22action=22 link relation is generic enough, has well underst=
ood meaning and is useful on its own especially for human oriented agents=
.
> > 2. The =22action-type=22 optional attribute may be used for specifyin=
g exact meaning of actions and this makes action links more useful for m2=
m scenarios.
> =20
> Hey Ioseb, isn't this what extension relations are for=3F


 =20
=40mamund perfectly summarised major goals of the spec so i'm copying it =
here:

1) you want to support a *pattern* where machine-readable state transitio=
n instructions appear at the end of some URL.
2) you want to indicate those instructions are available by marking the U=
RL w/ the string literal =22action=22 (via rel in your illustrations)
3) you want to indicate the reason for using these instructions w/ an =22=
action-type=22 string (via a link-rel param in your illustrations)



Additionally semantics of extension relations may vary from application t=
o application. With the =22action-type=22 optional attribute + registry o=
f machine readable action type names i'm trying to address the issue of s=
hared semantics and at the same time the =22action=22 relation itself sti=
ll remains useful for GUI scenarios without the =22action-type=22 attribu=
te.

Cheers,
ioseb
 =20
> Cheers,
> M =20




From pezra@barelyenough.org  Wed Aug 28 07:15:13 2013
Return-Path: <pezra@barelyenough.org>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6D72C21E8051 for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 07:15:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.976
X-Spam-Level: 
X-Spam-Status: No, score=-2.976 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, HTML_MESSAGE=0.001, 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 sNUAu+6LqqU8 for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 07:15:09 -0700 (PDT)
Received: from mail-lb0-f169.google.com (mail-lb0-f169.google.com [209.85.217.169]) by ietfa.amsl.com (Postfix) with ESMTP id F422621E8064 for <link-relations@ietf.org>; Wed, 28 Aug 2013 07:15:01 -0700 (PDT)
Received: by mail-lb0-f169.google.com with SMTP id u10so4890693lbi.0 for <link-relations@ietf.org>; Wed, 28 Aug 2013 07:15:00 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=7oHB79dgqaHyPdapDLckUC9e7p3ZWbxSu8MMEy2CuJY=; b=Ck6J/LlSkgfR5EpHGGw6PB3ujYDPrySHGDwN4uekTJ6XT1kdBkf/uWT6brW779yvD0 tb519FBI53fjLx3T29PMPjJG59tVPws3T3NPTafEy8rU568llOXlFUGT6Xrsu68Nrl7O vYlRSoETJ6WUrGMNb4Yd6gDK32fwYd2p4GH/GCz8ZtLS4UNFqZJAjAxM5/zCnc/6Jbnq 55zeUT17nx+fyGGJ2Wt2XlVpooVIImSGQ4v9XUbctK6I5ujZOUATvlgtd+3wRfo+Ap3Z f526m6fZvCcYrdeMNeTrZA32H15Y9KSy5Sv9ncF/rxMPJyAxvA3VK0L/9SsotMRouk8k iPvg==
X-Gm-Message-State: ALoCoQlMcJ5Ctk2A9ymVx428EEGUTM+kCZ8ZBrGw46UnKEBpO99YRsbK0nSO5skrKvoBjc7B+r2i
MIME-Version: 1.0
X-Received: by 10.152.22.65 with SMTP id b1mr356926laf.46.1377699300001; Wed, 28 Aug 2013 07:15:00 -0700 (PDT)
Received: by 10.114.75.137 with HTTP; Wed, 28 Aug 2013 07:14:59 -0700 (PDT)
Received: by 10.114.75.137 with HTTP; Wed, 28 Aug 2013 07:14:59 -0700 (PDT)
In-Reply-To: <2815EAE84FC243169D0D4802A0169C21@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com> <2815EAE84FC243169D0D4802A0169C21@gmail.com>
Date: Wed, 28 Aug 2013 08:14:59 -0600
Message-ID: <CAK5VdzySC++-VqN7HKaLhjLR-JX=4fZKeZbsXarJ9UaDNvb4JA@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
From: Peter Williams <pezra@barelyenough.org>
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=089e0158b92a6258d604e5029de0
Cc: apps-discuss@ietf.org, link-relations@ietf.org
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 14:15:13 -0000

--089e0158b92a6258d604e5029de0
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

I have a question about how this might affect future relationship
registrations. Consider the following scenario:

This proposal is adopted. As many apps begin exposing `start` links it
becomes obvious that start is a really common relationship. A proposal is
made to register a top level relationship `start`. (I am using `start`
purely for example purposes, this scenario works for any registered action
type.)

In this case would you expect the new relationship registration to be a)
rejected on the grounds that you can already accomplish it via the
action+action-type approach, b) accepted and the action relation updated to
declare the start action type archaic, c) accepted and action relation to
left as is, leaving it up to implementers to decide which approach to use
for themselves? (Or perhaps there is a option I have over looked.) What are
the implications for existing representations and consumers under that
outcome? What about new representations and consumers?

Cheers,
Peter
Hi Mike,

On Wednesday, August 28, 2013 at 11:45 AM, Mike Kelly wrote:

>
> On 28 Aug 2013 00:51, "Ioseb Dzmanashvili" <ioseb.dzmanashvili@gmail.com(=
mailto:
ioseb.dzmanashvili@gmail.com)> wrote:
> >
> > Hi Mike,
> >
> > Thanks for the question!
> >
> > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> >
> > > Ioseb:
> > >
> > > it is not clear to me why: <link rel=3D"action;action-type=3D'edit'"
href=3D"..." />
> > > is preferable to: <link rel=3D"edit" href=3D"..." />
> > >
> > > talk me down ;)
> > let me try ;)
> >
> > Question is not about why: Link: <=85>; rel=3D"action"; action-type=3D"=
edit"
is preferable to: Link: <=85>; rel=3D"edit".
> >
> > Of course i'd choose rel=3D"run-forest-run" if there is a registered li=
nk
relation type, but:
> >
> > 1. The "action" link relation is generic enough, has well understood
meaning and is useful on its own especially for human oriented agents.
> > 2. The "action-type" optional attribute may be used for specifying
exact meaning of actions and this makes action links more useful for m2m
scenarios.
>
> Hey Ioseb, isn't this what extension relations are for?



@mamund perfectly summarised major goals of the spec so i'm copying it here=
:

1) you want to support a *pattern* where machine-readable state transition
instructions appear at the end of some URL.
2) you want to indicate those instructions are available by marking the URL
w/ the string literal "action" (via rel in your illustrations)
3) you want to indicate the reason for using these instructions w/ an
"action-type" string (via a link-rel param in your illustrations)



Additionally semantics of extension relations may vary from application to
application. With the "action-type" optional attribute + registry of
machine readable action type names i'm trying to address the issue of
shared semantics and at the same time the "action" relation itself still
remains useful for GUI scenarios without the "action-type" attribute.

Cheers,
ioseb

> Cheers,
> M



_______________________________________________
link-relations mailing list
link-relations@ietf.org
https://www.ietf.org/mailman/listinfo/link-relations

--089e0158b92a6258d604e5029de0
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<p dir=3D"ltr">I have a question about how this might affect future relatio=
nship registrations. Consider the following scenario:</p>
<p dir=3D"ltr">This proposal is adopted. As many apps begin exposing `start=
` links it becomes obvious that start is a really common relationship. A pr=
oposal is made to register a top level relationship `start`. (I am using `s=
tart` purely for example purposes, this scenario works for any registered a=
ction type.)</p>

<p dir=3D"ltr">In this case would you expect the new relationship registrat=
ion to be a) rejected on the grounds that you can already accomplish it via=
 the action+action-type approach, b) accepted and the action relation updat=
ed to declare the start action type archaic, c) accepted and action relatio=
n to left as is, leaving it up to implementers to decide which approach to =
use for themselves? (Or perhaps there is a option I have over looked.) What=
 are the implications for existing representations and consumers under that=
 outcome? What about new representations and consumers?</p>

<p dir=3D"ltr">Cheers,<br>
Peter</p>
<div class=3D"gmail_quot&lt;blockquote class=3D" style=3D"margin:0 0 0 .8ex=
;border-left:1px #ccc solid;padding-left:1ex">Hi Mike,<br>
<br>
On Wednesday, August 28, 2013 at 11:45 AM, Mike Kelly wrote:<br>
<br>
&gt;<br>
&gt; On 28 Aug 2013 00:51, &quot;Ioseb Dzmanashvili&quot; &lt;<a href=3D"ma=
ilto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a> (mailto=
:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.c=
om</a>)&gt; wrote:<br>

&gt; &gt;<br>
&gt; &gt; Hi Mike,<br>
&gt; &gt;<br>
&gt; &gt; Thanks for the question!<br>
&gt; &gt;<br>
&gt; &gt; On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Ioseb:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; it is not clear to me why: &lt;link rel=3D&quot;action;actio=
n-type=3D&#39;edit&#39;&quot; href=3D&quot;...&quot; /&gt;<br>
&gt; &gt; &gt; is preferable to: &lt;link rel=3D&quot;edit&quot; href=3D&qu=
ot;...&quot; /&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; talk me down ;)<br>
&gt; &gt; let me try ;)<br>
&gt; &gt;<br>
&gt; &gt; Question is not about why: Link: &lt;=85&gt;; rel=3D&quot;action&=
quot;; action-type=3D&quot;edit&quot; is preferable to: Link: &lt;=85&gt;; =
rel=3D&quot;edit&quot;.<br>
&gt; &gt;<br>
&gt; &gt; Of course i&#39;d choose rel=3D&quot;run-forest-run&quot; if ther=
e is a registered link relation type, but:<br>
&gt; &gt;<br>
&gt; &gt; 1. The &quot;action&quot; link relation is generic enough, has we=
ll understood meaning and is useful on its own especially for human oriente=
d agents.<br>
&gt; &gt; 2. The &quot;action-type&quot; optional attribute may be used for=
 specifying exact meaning of actions and this makes action links more usefu=
l for m2m scenarios.<br>
&gt;<br>
&gt; Hey Ioseb, isn&#39;t this what extension relations are for?<br>
<br>
<br>
<br>
@mamund perfectly summarised major goals of the spec so i&#39;m copying it =
here:<br>
<br>
1) you want to support a *pattern* where machine-readable state transition =
instructions appear at the end of some URL.<br>
2) you want to indicate those instructions are available by marking the URL=
 w/ the string literal &quot;action&quot; (via rel in your illustrations)<b=
r>
3) you want to indicate the reason for using these instructions w/ an &quot=
;action-type&quot; string (via a link-rel param in your illustrations)<br>
<br>
<br>
<br>
Additionally semantics of extension relations may vary from application to =
application. With the &quot;action-type&quot; optional attribute + registry=
 of machine readable action type names i&#39;m trying to address the issue =
of shared semantics and at the same time the &quot;action&quot; relation it=
self still remains useful for GUI scenarios without the &quot;action-type&q=
uot; attribute.<br>

<br>
Cheers,<br>
ioseb<br>
<br>
&gt; Cheers,<br>
&gt; M<br>
<br>
<br>
<br>
_______________________________________________<br>
link-relations mailing list<br>
<a href=3D"mailto:link-relations@ietf.org">link-relations@ietf.org</a><br>
<a href=3D"https://www.ietf.org/mailman/listinfo/link-relations" target=3D"=
_blank">https://www.ietf.org/mailman/listinfo/link-relations</a><br>
</div>

--089e0158b92a6258d604e5029de0--

From mca@amundsen.com  Wed Aug 28 07:34:06 2013
Return-Path: <mca@amundsen.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id B750621E80A7 for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 07:34:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.228
X-Spam-Level: ****
X-Spam-Status: No, score=4.228 tagged_above=-999 required=5 tests=[AWL=0.093,  BAYES_40=-0.185, FM_FORGED_GMAIL=0.622, FORGED_YAHOO_RCVD=2.297, HTML_MESSAGE=0.001, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_92=0.6, 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 cvThD+Q-7C11 for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 07:34:03 -0700 (PDT)
Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by ietfa.amsl.com (Postfix) with ESMTP id 2F7B411E819F for <link-relations@ietf.org>; Wed, 28 Aug 2013 07:34:01 -0700 (PDT)
Received: by mail-wi0-f178.google.com with SMTP id c10so2717214wiw.5 for <link-relations@ietf.org>; Wed, 28 Aug 2013 07:33:59 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=gkqxgDTn+mXEwmtKWuZSBLWPRyyzMuFylS//KANAodE=; b=EUCVsGWKf8AfZehEXY8CjQDDPEz8bd39wvlJaCG4b5TqSTcxROFeTmP5kgWzvSm2vu 1kOLBFxLnjzYGCUYqZJrK0sOC/4wvm/tMkPEecOQpEnJxuoWW0xWm/azbMDVeD6LK8G7 2RveeWrOhkpHyHr0DBKsFDKg/1UnLW3BZeDy9oLT9xZ2alPKBJADHgig4J4ZlxwSoJBD rW0UDukeaMEasxRF0TJ3L1WHYjQp6aoH1zLEt5N+WjWy5F2k1aGsnebXrxMi8u1yVL2s i2yy6sZuXM9MsxAQNJcBaKXkRiYuLsKc+RMerXGWnj7bi73uAbfbLcbNYWMP1f7F7kVT 3wiQ==
X-Gm-Message-State: ALoCoQnmXuYu3VDKcJDelA7dyD8zqNdDrePDd2BNxGX3dV5M2B5vqAtb5ypV7Z0Q8c4jojbQlPH7
X-Received: by 10.194.133.167 with SMTP id pd7mr2942855wjb.56.1377700439031; Wed, 28 Aug 2013 07:33:59 -0700 (PDT)
MIME-Version: 1.0
Sender: mca@amundsen.com
Received: by 10.194.151.7 with HTTP; Wed, 28 Aug 2013 07:33:38 -0700 (PDT)
In-Reply-To: <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com>
From: mike amundsen <mamund@yahoo.com>
Date: Wed, 28 Aug 2013 10:33:38 -0400
X-Google-Sender-Auth: 8dkwG3SBxVq3FMBh_uiqOAx3oHg
Message-ID: <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=089e012292e64696e204e502e1a4
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 14:34:06 -0000

--089e012292e64696e204e502e1a4
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

Ioseb:

now that i understand your aim...

it seems the first item (support a pattern...) is the important one and the
other two are just means to that end.  so why is this a good approach?

1) why use the "action" rel PLUS a param ("start")? why not just use the
param ("start") as the rel?
2) why not use two values for the rel as in <LINK rel=3D"action start" />?
3) why not use (as mike kelly suggests) an extension URI for the rel as in
<LINK rel=3D"http://actions.io/start" ... />
4) why not use a unique element attribute/property such as <LINK
rel=3D"action" reason=3D"start" .../>?
5) why not use a unique document element/property such as <action
rel=3D"start" href=3D"..."/> or {"action": {"rel":"start", "href":"..."}}?



mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mikeamundsen


On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanashvili <
ioseb.dzmanashvili@gmail.com> wrote:

> Mike,
>
> On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:
>
> > OK, from your response i get the following:
> >
> > 1) you want to support a pattern where machine-readable state transitio=
n
> instructions appear at the end of some URL.
> > 2) you want to indicate those instructions are available by marking the
> URL w/ the string literal "action" (via rel in your illustrations)
> > 3) you want to indicate the reason for using these instructions w/ an
> "action-type" string (via a link-rel param in your illustrations)
> >
> > that's it. nothing else.
> >
> > do i have this correct?
> >
>
> Exactly! That's it and nothing else.
>
> Cheers,
> ioseb
>
> >
> >
> > mamund
> > +1.859.757.1449
> > skype: mca.amundsen
> > http://amundsen.com/blog/
> > http://twitter.com/mamund
> > https://github.com/mamund
> > http://www.linkedin.com/in/mikeamundsen
> >
> > On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)> wrote=
:
> > > Hi Mike,
> > >
> > > Thanks for the question!
> > >
> > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > >
> > > > Ioseb:
> > > >
> > > > it is not clear to me why: <link rel=3D"action;action-type=3D'edit'=
"
> href=3D"..." />
> > > > is preferable to: <link rel=3D"edit" href=3D"..." />
> > > >
> > > > talk me down ;)
> > > let me try ;)
> > >
> > > Question is not about why: Link: <=85>; rel=3D"action"; action-type=
=3D"edit"
> is preferable to: Link: <=85>; rel=3D"edit".
> > >
> > > Of course i'd choose rel=3D"run-forest-run" if there is a registered
> link relation type, but:
> > >
> > > 1. The "action" link relation is generic enough, has well understood
> meaning and is useful on its own especially for human oriented agents.
> > > 2. The "action-type" optional attribute may be used for specifying
> exact meaning of actions and this makes action links more useful for m2m
> scenarios.
> > >
> > > Now consider this link:
> > >
> > > Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend";
> title=3D"Suspend"
> > >
> > > What it says?
> > >
> > > 1. it is an action
> > > 2. target resource represents description of the action which
> contains: request method, submit URI, definition of action, other details
> etc
> > > 3. agent can look inside "action-type" to determine whether it needs
> this action type or not
> > > 4. agent can dereference it, construct request and send it to server
> > >
> > >
> > > now if we add more actions:
> > >
> > > Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend";
> title=3D"Suspend"
> > > Link: </restart-action>; rel=3D"action"; action-type=3D"restart";
> title=3D"Restart"
> > >
> > > Link: </stop-action>; rel=3D"action"; action-type=3D"stop"; title=3D"=
Stop"
> > >
> > >
> > > #1, #2, #3 and #4 will be true for all of them without exceptions.
> > >
> > > Now consider that representation containing these links is used by GU=
I
> agent, in this case even "action-type" is not necessary at all and agent
> can rely on user's choice. Agent only needs to know that:
> > >
> > > 1. link is an action(and this question is explicitly answered)
> > > 2. if user choose one agent needs just to dereference indicated URI
> > > 3. construct request
> > > 4. send request to server
> > > 5. show results to user
> > >
> > > All of these will remain true for any action type.
> > >
> > > I'm not sure if i talked you down, but i believe "action" relation
> type is useful and not because it is better(or simpler) compared to
> rel=3D"edit" for example.
> > >
> > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > >
> > > P.S.
> > > I was talking about 01 version of spec. 00 is a different story.
> > >
> > > Cheers,
> > > ioseb
> > > > mamund
> > > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> > > > skype: mca.amundsen
> > > > http://amundsen.com/blog/
> > > > http://twitter.com/mamund
> > > > https://github.com/mamund
> > > > http://www.linkedin.com/in/mikeamundsen
> > > >
> > > >
> > > >
> > > > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)>
> wrote:
> > > > > Hi Julian,
> > > > >
> > > > > Thanks for response!
> > > > >
> > > > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
> > > > >
> > > > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > > > Hi All,
> > > > > > >
> > > > > > > I've updated the "action" link relation type spec[1] based on
> initial feedback.
> > > > > > >
> > > > > > > As far as initial reactions were very controversial and raise=
d
> a lot of issues i tried to address all of them and entirely changed the
> spec.
> > > > > > >
> > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D
> > > > > > > When included in a response, the "action" link relation
> indicates a
> > > > > > > target resource that is responsible for performing action
> which MAY:
> > > > > > >
> > > > > > > - Affect state of the context resource; or
> > > > > > > - Initiate process.
> > > > > > >
> > > > > > > The "action" link relation type can be used to indicate the
> > > > > > > availability of actions supported by the target resource.
> Examples
> > > > > > > of such actions include:
> > > > > > >
> > > > > > > - Enable/Disable
> > > > > > > - Publish/Unpublish
> > > > > > > - Start/Stop
> > > > > > >
> > > > > > > The "action" link relation type doesn't convey any semantics
> other
> > > > > > > than that an indicated resources represent machine readable
> > > > > > > description of a particular action and representation SHOULD
> contain
> > > > > > > all necessary details such as: request method, action URI and
> other
> > > > > > > related details to enable agents to be able to construct
> requests
> > > > > > > without relying on out-of-band information.
> > > > > > >
> > > > > > > Exact type of action SHOULD be indicated through the
> "action-type"
> > > > > > > link-extension value as per [RFC5988] and for maintaining
> shared
> > > > > > > understanding of action types current specification introduce=
s
> the
> > > > > > > registry of actions with initial values of widely accepted an=
d
> well
> > > > > > > understood action types.
> > > > > > >
> > > > > > > For example, if a resource represents a service, that same
> > > > > > > representation may include links to resources that represent
> actions
> > > > > > > supported by the service:
> > > > > > >
> > > > > > > Link: </restart-action>; rel=3D"action"; action-type=3D"resta=
rt"
> > > > > > > Link: </stop-action>; rel=3D"action"; action-type=3D"stop"
> > > > > > > ...
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > >
> > > > > > It seems that you are just adding an indirection mechanism. Why
> is that
> > > > > > necessary?
> > > > >
> > > > >
> > > > >
> > > > > With indirection mechanism i'm trying to solve issues raised
> around initial version of the spec[1]. There were several issues:
> > > > >
> > > > > 1. The "action" link relation type doesn't have enough semantics
> and automated agents can not follow such links if there are several actio=
ns
> included in a representation. With the "action-type" link extension +
> registry of predefined action types agents can distinguish actions from
> each other.
> > > > >
> > > > > 2. Initial spec stated that if the "action" link exists in
> representation, only thing agents should do is to send empty POST request
> to the target in order to perform action. This approach was considered as
> an anti pattern(RPCish and non RESTful). With having the "action-type"
> agents can:
> > > > >
> > > > > a) distinguish action links from each other;
> > > > > b) if necessary dereference the target to obtain instructions for
> constructing non empty POST/PUT requests;
> > > > > c) send properly constructed request back to the target; and
> > > > > d) it makes possible for servers to dictate structure of the
> request according to there own needs.
> > > > >
> > > > > Main purpose of the "action" link relation type is to define
> semantics of particular class of links - actions. This eliminates the nee=
d
> to redefine notion of "action" for each link relation type which may be
> qualified as action link. The "action-type" is just for naming actions an=
d
> is particularly useful for automated agents not necessarily for human
> interaction oriented agents.
> > > > >
> > > > > Having action type registry is important for maintaining shared
> understanding of particular action types. For example "reset" or "publish=
"
> verbs do not need to be redefined from application to application. I also
> believe that it is not efficient(or feasible) to register all possible
> actions as link relations.
> > > > >
> > > > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > > > > >
> > > > > > Best regards, Julian
> > > > > Cheers,
> > > > > ioseb
> > > > >
> > > > > _______________________________________________
> > > > > link-relations mailing list
> > > > > link-relations@ietf.org (mailto:link-relations@ietf.org) (mailto:
> link-relations@ietf.org) (mailto:link-relations@ietf.org)
> > > > > https://www.ietf.org/mailman/listinfo/link-relations
> > > >
> > >
> >
>
>
>
>

--089e012292e64696e204e502e1a4
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">Ioseb:<div><br></div><div style>now that i understand your=
 aim...</div><div style><br></div><div style>it seems the first item (suppo=
rt a pattern...) is the important one and the other two are just means to t=
hat end. =A0so why is this a good approach?</div>

<div style><br></div><div style>1) why use the &quot;action&quot; rel PLUS =
a param (&quot;start&quot;)? why not just use the param (&quot;start&quot;)=
 as the rel?</div><div style>2) why not use two values for the rel as in &l=
t;LINK rel=3D&quot;action start&quot; /&gt;?</div>

<div style>3) why not use (as mike kelly suggests) an extension URI for the=
 rel as in &lt;LINK rel=3D&quot;<a href=3D"http://actions.io/start">http://=
actions.io/start</a>&quot; ... /&gt;</div><div style>4) why not use a uniqu=
e element attribute/property such as &lt;LINK rel=3D&quot;action&quot; reas=
on=3D&quot;start&quot; .../&gt;?=A0</div>

<div style>5) why not use a unique document element/property such as &lt;ac=
tion rel=3D&quot;start&quot; href=3D&quot;...&quot;/&gt; or {&quot;action&q=
uot;: {&quot;rel&quot;:&quot;start&quot;, &quot;href&quot;:&quot;...&quot;}=
}?=A0</div>

<div style><br></div><div style><br></div></div><div class=3D"gmail_extra">=
<br clear=3D"all"><div>mamund<div>+1.859.757.1449<br>skype: mca.amundsen<br=
><a href=3D"http://amundsen.com/blog/" target=3D"_blank">http://amundsen.co=
m/blog/</a><br>

<a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter.com/=
mamund</a><br><a href=3D"https://github.com/mamund" target=3D"_blank">https=
://github.com/mamund</a><br><a href=3D"http://www.linkedin.com/in/mikeamund=
sen" target=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a></div>

</div>
<br><br><div class=3D"gmail_quote">On Wed, Aug 28, 2013 at 3:35 AM, Ioseb D=
zmanashvili <span dir=3D"ltr">&lt;<a href=3D"mailto:ioseb.dzmanashvili@gmai=
l.com" target=3D"_blank">ioseb.dzmanashvili@gmail.com</a>&gt;</span> wrote:=
<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Mike,<br>
<div class=3D"im"><br>
On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:<br>
<br>
&gt; OK, from your response i get the following:<br>
&gt;<br>
&gt; 1) you want to support a pattern where machine-readable state transiti=
on instructions appear at the end of some URL.<br>
&gt; 2) you want to indicate those instructions are available by marking th=
e URL w/ the string literal &quot;action&quot; (via rel in your illustratio=
ns)<br>
&gt; 3) you want to indicate the reason for using these instructions w/ an =
&quot;action-type&quot; string (via a link-rel param in your illustrations)=
<br>
&gt;<br>
&gt; that&#39;s it. nothing else.<br>
&gt;<br>
&gt; do i have this correct?<br>
&gt;<br>
<br>
</div>Exactly! That&#39;s it and nothing else.<br>
<div class=3D"im"><br>
Cheers,<br>
ioseb<br>
<br>
&gt;<br>
&gt;<br>
&gt; mamund<br>
&gt; <a href=3D"tel:%2B1.859.757.1449" value=3D"+18597571449">+1.859.757.14=
49</a><br>
&gt; skype: mca.amundsen<br>
&gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http://amundse=
n.com/blog/</a><br>
&gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter=
.com/mamund</a><br>
&gt; <a href=3D"https://github.com/mamund" target=3D"_blank">https://github=
.com/mamund</a><br>
&gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D"_blank">=
http://www.linkedin.com/in/mikeamundsen</a><br>
&gt;<br>
</div><div><div class=3D"h5">&gt; On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dz=
manashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmana=
shvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com=
">ioseb.dzmanashvili@gmail.com</a>)&gt; wrote:<br>


&gt; &gt; Hi Mike,<br>
&gt; &gt;<br>
&gt; &gt; Thanks for the question!<br>
&gt; &gt;<br>
&gt; &gt; On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:<br>
&gt; &gt;<br>
&gt; &gt; &gt; Ioseb:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; it is not clear to me why: &lt;link rel=3D&quot;action;actio=
n-type=3D&#39;edit&#39;&quot; href=3D&quot;...&quot; /&gt;<br>
&gt; &gt; &gt; is preferable to: &lt;link rel=3D&quot;edit&quot; href=3D&qu=
ot;...&quot; /&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; talk me down ;)<br>
&gt; &gt; let me try ;)<br>
&gt; &gt;<br>
&gt; &gt; Question is not about why: Link: &lt;=85&gt;; rel=3D&quot;action&=
quot;; action-type=3D&quot;edit&quot; is preferable to: Link: &lt;=85&gt;; =
rel=3D&quot;edit&quot;.<br>
&gt; &gt;<br>
&gt; &gt; Of course i&#39;d choose rel=3D&quot;run-forest-run&quot; if ther=
e is a registered link relation type, but:<br>
&gt; &gt;<br>
&gt; &gt; 1. The &quot;action&quot; link relation is generic enough, has we=
ll understood meaning and is useful on its own especially for human oriente=
d agents.<br>
&gt; &gt; 2. The &quot;action-type&quot; optional attribute may be used for=
 specifying exact meaning of actions and this makes action links more usefu=
l for m2m scenarios.<br>
&gt; &gt;<br>
&gt; &gt; Now consider this link:<br>
&gt; &gt;<br>
&gt; &gt; Link: &lt;/suspend-action&gt;; rel=3D&quot;action&quot;; action-t=
ype=3D&quot;suspend&quot;; title=3D&quot;Suspend&quot;<br>
&gt; &gt;<br>
&gt; &gt; What it says?<br>
&gt; &gt;<br>
&gt; &gt; 1. it is an action<br>
&gt; &gt; 2. target resource represents description of the action which con=
tains: request method, submit URI, definition of action, other details etc<=
br>
&gt; &gt; 3. agent can look inside &quot;action-type&quot; to determine whe=
ther it needs this action type or not<br>
&gt; &gt; 4. agent can dereference it, construct request and send it to ser=
ver<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; now if we add more actions:<br>
&gt; &gt;<br>
&gt; &gt; Link: &lt;/suspend-action&gt;; rel=3D&quot;action&quot;; action-t=
ype=3D&quot;suspend&quot;; title=3D&quot;Suspend&quot;<br>
&gt; &gt; Link: &lt;/restart-action&gt;; rel=3D&quot;action&quot;; action-t=
ype=3D&quot;restart&quot;; title=3D&quot;Restart&quot;<br>
&gt; &gt;<br>
&gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&quot;action&quot;; action-type=
=3D&quot;stop&quot;; title=3D&quot;Stop&quot;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; #1, #2, #3 and #4 will be true for all of them without exceptions=
.<br>
&gt; &gt;<br>
&gt; &gt; Now consider that representation containing these links is used b=
y GUI agent, in this case even &quot;action-type&quot; is not necessary at =
all and agent can rely on user&#39;s choice. Agent only needs to know that:=
<br>


&gt; &gt;<br>
&gt; &gt; 1. link is an action(and this question is explicitly answered)<br=
>
&gt; &gt; 2. if user choose one agent needs just to dereference indicated U=
RI<br>
&gt; &gt; 3. construct request<br>
&gt; &gt; 4. send request to server<br>
&gt; &gt; 5. show results to user<br>
&gt; &gt;<br>
&gt; &gt; All of these will remain true for any action type.<br>
&gt; &gt;<br>
&gt; &gt; I&#39;m not sure if i talked you down, but i believe &quot;action=
&quot; relation type is useful and not because it is better(or simpler) com=
pared to rel=3D&quot;edit&quot; for example.<br>
&gt; &gt;<br>
&gt; &gt; 1. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili=
-action-link-relation-00" target=3D"_blank">http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-00</a><br>
&gt; &gt; 2. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dzmanashvili=
-action-link-relation-01" target=3D"_blank">http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-01</a><br>
&gt; &gt;<br>
&gt; &gt; P.S.<br>
&gt; &gt; I was talking about 01 version of spec. 00 is a different story.<=
br>
&gt; &gt;<br>
&gt; &gt; Cheers,<br>
&gt; &gt; ioseb<br>
&gt; &gt; &gt; mamund<br>
</div></div>&gt; &gt; &gt; <a href=3D"tel:%2B1.859.757.1449" value=3D"+1859=
7571449">+1.859.757.1449</a> (tel:%2B1.859.757.1449)<br>
<div class=3D"im">&gt; &gt; &gt; skype: mca.amundsen<br>
&gt; &gt; &gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http=
://amundsen.com/blog/</a><br>
&gt; &gt; &gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http=
://twitter.com/mamund</a><br>
&gt; &gt; &gt; <a href=3D"https://github.com/mamund" target=3D"_blank">http=
s://github.com/mamund</a><br>
&gt; &gt; &gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=
=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a><br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
</div><div><div class=3D"h5">&gt; &gt; &gt; On Tue, Aug 27, 2013 at 3:40 PM=
, Ioseb Dzmanashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">io=
seb.dzmanashvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili=
@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ios=
eb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a hre=
f=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>)=
&gt; wrote:<br>


&gt; &gt; &gt; &gt; Hi Julian,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thanks for response!<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke =
wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; Hi All,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I&#39;ve updated the &quot;action&quot; link =
relation type spec[1] based on initial feedback.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; As far as initial reactions were very controv=
ersial and raised a lot of issues i tried to address all of them and entire=
ly changed the spec.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>
&gt; &gt; &gt; &gt; &gt; &gt; When included in a response, the &quot;action=
&quot; link relation indicates a<br>
&gt; &gt; &gt; &gt; &gt; &gt; target resource that is responsible for perfo=
rming action which MAY:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; - Affect state of the context resource; or<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; - Initiate process.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The &quot;action&quot; link relation type can=
 be used to indicate the<br>
&gt; &gt; &gt; &gt; &gt; &gt; availability of actions supported by the targ=
et resource. Examples<br>
&gt; &gt; &gt; &gt; &gt; &gt; of such actions include:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; - Enable/Disable<br>
&gt; &gt; &gt; &gt; &gt; &gt; - Publish/Unpublish<br>
&gt; &gt; &gt; &gt; &gt; &gt; - Start/Stop<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; The &quot;action&quot; link relation type doe=
sn&#39;t convey any semantics other<br>
&gt; &gt; &gt; &gt; &gt; &gt; than that an indicated resources represent ma=
chine readable<br>
&gt; &gt; &gt; &gt; &gt; &gt; description of a particular action and repres=
entation SHOULD contain<br>
&gt; &gt; &gt; &gt; &gt; &gt; all necessary details such as: request method=
, action URI and other<br>
&gt; &gt; &gt; &gt; &gt; &gt; related details to enable agents to be able t=
o construct requests<br>
&gt; &gt; &gt; &gt; &gt; &gt; without relying on out-of-band information.<b=
r>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Exact type of action SHOULD be indicated thro=
ugh the &quot;action-type&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; link-extension value as per [RFC5988] and for=
 maintaining shared<br>
&gt; &gt; &gt; &gt; &gt; &gt; understanding of action types current specifi=
cation introduces the<br>
&gt; &gt; &gt; &gt; &gt; &gt; registry of actions with initial values of wi=
dely accepted and well<br>
&gt; &gt; &gt; &gt; &gt; &gt; understood action types.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; For example, if a resource represents a servi=
ce, that same<br>
&gt; &gt; &gt; &gt; &gt; &gt; representation may include links to resources=
 that represent actions<br>
&gt; &gt; &gt; &gt; &gt; &gt; supported by the service:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/restart-action&gt;; rel=3D&quot;ac=
tion&quot;; action-type=3D&quot;restart&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&quot;actio=
n&quot;; action-type=3D&quot;stop&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; It seems that you are just adding an indirection m=
echanism. Why is that<br>
&gt; &gt; &gt; &gt; &gt; necessary?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; With indirection mechanism i&#39;m trying to solve issu=
es raised around initial version of the spec[1]. There were several issues:=
<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 1. The &quot;action&quot; link relation type doesn&#39;=
t have enough semantics and automated agents can not follow such links if t=
here are several actions included in a representation. With the &quot;actio=
n-type&quot; link extension + registry of predefined action types agents ca=
n distinguish actions from each other.<br>


&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 2. Initial spec stated that if the &quot;action&quot; l=
ink exists in representation, only thing agents should do is to send empty =
POST request to the target in order to perform action. This approach was co=
nsidered as an anti pattern(RPCish and non RESTful). With having the &quot;=
action-type&quot; agents can:<br>


&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; a) distinguish action links from each other;<br>
&gt; &gt; &gt; &gt; b) if necessary dereference the target to obtain instru=
ctions for constructing non empty POST/PUT requests;<br>
&gt; &gt; &gt; &gt; c) send properly constructed request back to the target=
; and<br>
&gt; &gt; &gt; &gt; d) it makes possible for servers to dictate structure o=
f the request according to there own needs.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Main purpose of the &quot;action&quot; link relation ty=
pe is to define semantics of particular class of links - actions. This elim=
inates the need to redefine notion of &quot;action&quot; for each link rela=
tion type which may be qualified as action link. The &quot;action-type&quot=
; is just for naming actions and is particularly useful for automated agent=
s not necessarily for human interaction oriented agents.<br>


&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Having action type registry is important for maintainin=
g shared understanding of particular action types. For example &quot;reset&=
quot; or &quot;publish&quot; verbs do not need to be redefined from applica=
tion to application. I also believe that it is not efficient(or feasible) t=
o register all possible actions as link relations.<br>


&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 1. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-00" target=3D"_blank">http://tools.ietf.org=
/html/draft-ioseb-dzmanashvili-action-link-relation-00</a><br>
&gt; &gt; &gt; &gt; 2. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-01" target=3D"_blank">http://tools.ietf.org=
/html/draft-ioseb-dzmanashvili-action-link-relation-01</a><br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Best regards, Julian<br>
&gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; ioseb<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; _______________________________________________<br>
&gt; &gt; &gt; &gt; link-relations mailing list<br>
</div></div>&gt; &gt; &gt; &gt; <a href=3D"mailto:link-relations@ietf.org">=
link-relations@ietf.org</a> (mailto:<a href=3D"mailto:link-relations@ietf.o=
rg">link-relations@ietf.org</a>) (mailto:<a href=3D"mailto:link-relations@i=
etf.org">link-relations@ietf.org</a>) (mailto:<a href=3D"mailto:link-relati=
ons@ietf.org">link-relations@ietf.org</a>)<br>


&gt; &gt; &gt; &gt; <a href=3D"https://www.ietf.org/mailman/listinfo/link-r=
elations" target=3D"_blank">https://www.ietf.org/mailman/listinfo/link-rela=
tions</a><br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
<br>
<br>
<br>
</blockquote></div><br></div>

--089e012292e64696e204e502e1a4--

From jasnell@gmail.com  Wed Aug 28 08:32:23 2013
Return-Path: <jasnell@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3BD1A11E8197; Wed, 28 Aug 2013 08:32:23 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.6
X-Spam-Level: 
X-Spam-Status: No, score=-2.6 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, NO_RELAYS=-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 Dw8N8B2bk2YC; Wed, 28 Aug 2013 08:32:22 -0700 (PDT)
Received: from mail-oa0-x236.google.com (mail-oa0-x236.google.com [IPv6:2607:f8b0:4003:c02::236]) by ietfa.amsl.com (Postfix) with ESMTP id 9641211E8191; Wed, 28 Aug 2013 08:32:22 -0700 (PDT)
Received: by mail-oa0-f54.google.com with SMTP id n10so2272881oag.27 for <multiple recipients>; Wed, 28 Aug 2013 08:32:19 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type:content-transfer-encoding; bh=4iihFU9wYdtOITvtlEPy46xSnpRXBIN/axCHrsGJWbc=; b=SljaCUz/AVfJd9EAxhmi2PQgVIuxbZedcw4DbWfoA1k6GC2Uv9rqJGm8tFLVCLpijm wwNa+qDgpRdZs9H3V2CHNPOR31mvdiT+NydlClMsNQeAD/qSZlOboDpWMQJD+epTdnZ8 ryirzqkNrajQfE4vNFG7U6zT8fqqTQ0jIBPEoJFX/3QH28gupgD6S3fMEEvxRSP1Ukxj g/g6iARyu5i3i0UVGCAoKLvqDCHi+NsWjhSjU7fT5IsT3SPi5+mp6PKX/I7LSzxf1Oq2 YwQwEdz5UqPK47fshUA/J+keNaFyL2N7+o8wgm9HlO3L8TymUAs+xrFVKCIIDhcm/TYf gxXQ==
X-Received: by 10.60.60.5 with SMTP id d5mr24025443oer.0.1377703939203; Wed, 28 Aug 2013 08:32:19 -0700 (PDT)
MIME-Version: 1.0
Received: by 10.60.124.137 with HTTP; Wed, 28 Aug 2013 08:31:59 -0700 (PDT)
In-Reply-To: <2815EAE84FC243169D0D4802A0169C21@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com> <2815EAE84FC243169D0D4802A0169C21@gmail.com>
From: James M Snell <jasnell@gmail.com>
Date: Wed, 28 Aug 2013 08:31:59 -0700
Message-ID: <CABP7Rbdd78zm3qPAM0stNMhLjHmvqxmk7B4PpRyjtqq-QUzuHg@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 15:32:23 -0000

I'm still struggling to see the value of a generic "action" link
relation here. If I have a set of link relations that I happen to want
to mark as "action", I would prefer to eliminate the indirection and
simply "flag" the links, for instance:

Link: <restart-action>; rel=3D"restart"; action

or in HTML

<link rel=3D"restart" href=3D"restart-action" class=3D"action" /> or...
<link rel=3D"restart" href=3D"restart-action" action />

This approach would skip the additional registration mechanism for
action-type and would allow any link relation to potentially be marked
as an action... which seems appropriate.

- James




On Wed, Aug 28, 2013 at 1:04 AM, Ioseb Dzmanashvili
<ioseb.dzmanashvili@gmail.com> wrote:
> Hi Mike,
>
> On Wednesday, August 28, 2013 at 11:45 AM, Mike Kelly wrote:
>
>>
>> On 28 Aug 2013 00:51, "Ioseb Dzmanashvili" <ioseb.dzmanashvili@gmail.com=
 (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
>> >
>> > Hi Mike,
>> >
>> > Thanks for the question!
>> >
>> > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
>> >
>> > > Ioseb:
>> > >
>> > > it is not clear to me why: <link rel=3D"action;action-type=3D'edit'"=
 href=3D"..." />
>> > > is preferable to: <link rel=3D"edit" href=3D"..." />
>> > >
>> > > talk me down ;)
>> > let me try ;)
>> >
>> > Question is not about why: Link: <=E2=80=A6>; rel=3D"action"; action-t=
ype=3D"edit" is preferable to: Link: <=E2=80=A6>; rel=3D"edit".
>> >
>> > Of course i'd choose rel=3D"run-forest-run" if there is a registered l=
ink relation type, but:
>> >
>> > 1. The "action" link relation is generic enough, has well understood m=
eaning and is useful on its own especially for human oriented agents.
>> > 2. The "action-type" optional attribute may be used for specifying exa=
ct meaning of actions and this makes action links more useful for m2m scena=
rios.
>>
>> Hey Ioseb, isn't this what extension relations are for?
>
>
>
> @mamund perfectly summarised major goals of the spec so i'm copying it he=
re:
>
> 1) you want to support a *pattern* where machine-readable state transitio=
n instructions appear at the end of some URL.
> 2) you want to indicate those instructions are available by marking the U=
RL w/ the string literal "action" (via rel in your illustrations)
> 3) you want to indicate the reason for using these instructions w/ an "ac=
tion-type" string (via a link-rel param in your illustrations)
>
>
>
> Additionally semantics of extension relations may vary from application t=
o application. With the "action-type" optional attribute + registry of mach=
ine readable action type names i'm trying to address the issue of shared se=
mantics and at the same time the "action" relation itself still remains use=
ful for GUI scenarios without the "action-type" attribute.
>
> Cheers,
> ioseb
>
>> Cheers,
>> M
>
>
>
> _______________________________________________
> apps-discuss mailing list
> apps-discuss@ietf.org
> https://www.ietf.org/mailman/listinfo/apps-discuss

From ioseb.dzmanashvili@gmail.com  Wed Aug 28 09:41:18 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 5B09821F9CBD; Wed, 28 Aug 2013 09:41:18 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.445
X-Spam-Level: 
X-Spam-Status: No, score=0.445 tagged_above=-999 required=5 tests=[AWL=-1.445,  BAYES_05=-1.11, J_CHICKENPOX_32=0.6, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_92=0.6]
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 Zt2WnsIoUAAg; Wed, 28 Aug 2013 09:41:16 -0700 (PDT)
Received: from mail-ea0-x236.google.com (mail-ea0-x236.google.com [IPv6:2a00:1450:4013:c01::236]) by ietfa.amsl.com (Postfix) with ESMTP id 3370E21F9C7B; Wed, 28 Aug 2013 09:41:14 -0700 (PDT)
Received: by mail-ea0-f182.google.com with SMTP id o10so3128622eaj.27 for <multiple recipients>; Wed, 28 Aug 2013 09:41:14 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=BaXTeeH5pCEfzkUbn9uUhuSS5kNdRy/++Kh3pqriKeo=; b=cV6tWie8AVokhyQghH3cTI7y6JkqOrsws/Sc6qW2f2yrEBpuxebJwdTcK+OYPf9qiM LYAk4Fh5iQzaiT4X1eGvVw7fpNrb0Gv3g5MwYKHVoynWfJKrFdPV+EP0modXmUqqv1qn WZEgQyhheUH2zMt1n+Bpm91Po61PsfI+4s02h1swv9Ts2/7DWW7Nidn06Ljmzfi2banr xPD37dBz9IriYkXCEbRG8Y736xUbBuSloGi++97VHVqJvJUXQxPK8F7RMIJ6ja7SsLu5 qYgX6HPffPygbbuFCTblPxj6Xx9U8LS3hjRQzDx2RF7piisjuAjvTwn/AR0S/jVTXDGz LJyQ==
X-Received: by 10.14.214.136 with SMTP id c8mr43604140eep.6.1377708074278; Wed, 28 Aug 2013 09:41:14 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id x47sm38833450eea.16.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 09:41:13 -0700 (PDT)
Date: Wed, 28 Aug 2013 20:41:10 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: mike amundsen <mamund@yahoo.com>
Message-ID: <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com>
In-Reply-To: <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 16:41:18 -0000

Mike,

On Wednesday, August 28, 2013 at 6:33 PM, mike amundsen wrote:
> Ioseb:
> =20
> now that i understand your aim...
> =20
> it seems the first item (support a pattern...) is the important one and=
 the other two are just means to that end.
Actually as i see it =231 and =232 are of same importance.


> so why is this a good approach=3F
=231 and =232 still hold. As i already said =233 makes sense only for m2m=
 scenarios and for GUI clients just knowing that a link is an action and =
how to treat such action links is enough.

What i'm trying to achieve with my proposal is to generalise meaning of a=
ction and make it consistent across different applications. Unfortunately=
 i do not see(or know, or was not able to find) better approach yet but i=
t is generic enough to solve whole class of problems at least on GUI leve=
l + partially for m2m cases with =22action-type=22 attribute even if we t=
hrow action type registry idea away. If we simplify definition of the =22=
action=22 relation type and say:

1. here is the =22action=22 link
2. it points to a resource which describes the action
3. to perform an action fetch it construct request and send it back to se=
rver.
4. if you want to know what this particular action means:
4.1. look inside the =22action-type=22 attribute if it presents; or
4.2. fetch the document and look inside it.

Is not it sufficient enough to cover whole class of problems in a consist=
ent way which are clearly actions and not just related resources=3F

So here is my question: why is it bad=3F

> 1) why use the =22action=22 rel PLUS a param (=22start=22)=3F why not j=
ust use the param (=22start=22) as the rel=3F
=46or several reasons:

1. there is no =22start=22 relation yet.
2. it doesn't have explicit sign that it is an action.
3. there are much more actions which are not registered and also there is=
 no guarantee that each newly registered relation(which can be qualified =
as action) will state that it is an action in a consistent way.
4. the pattern as you noticed is still important(IMHO)

> 2) why not use two values for the rel as in <LINK rel=3D=22action start=
=22 />=3F

It was suggested in the initial proposal though approach has drawbacks. i=
f i use more rels=3F <LINK rel=3D=22action foo bar baz=22 /> how to disti=
nguish =22foo=22, =22bar=22 and =22baz=22 from each other=3F does it mean=
 that my action now has triple meaning=3F
 =20
> 3) why not use (as mike kelly suggests) an extension URI for the rel as=
 in <LINK rel=3D=22http://actions.io/start=22 ... /> =20
> =20
> 4) why not use a unique element attribute/property such as <LINK rel=3D=
=22action=22 reason=3D=22start=22 .../>=3F
> =20
> =20

is it different from =22action-type=22 attribute=3F or maybe problem is i=
n a registry of action types=3F   =20

> 5) why not use a unique document element/property such as <action rel=3D=
=22start=22 href=3D=22...=22/> or =7B=22action=22: =7B=22rel=22:=22start=22=
, =22href=22:=22...=22=7D=7D=3F =20
Well, in custom media types i can do anything, though it doesn't make sen=
se outside of particular format or domain. Otherwise it is ok and i use s=
imilar approach in practice.

Cheers,
ioseb

> =20
> mamund
> +1.859.757.1449
> skype: mca.amundsen
> http://amundsen.com/blog/
> http://twitter.com/mamund
> https://github.com/mamund
> http://www.linkedin.com/in/mikeamundsen =20
> =20
> On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanashvili <ioseb.dzmanashvili=
=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dzmana=
shvili=40gmail.com)> wrote:
> > Mike,
> > =20
> > On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:
> > =20
> > > OK, from your response i get the following:
> > > =20
> > > 1) you want to support a pattern where machine-readable state trans=
ition instructions appear at the end of some URL.
> > > 2) you want to indicate those instructions are available by marking=
 the URL w/ the string literal =22action=22 (via rel in your illustration=
s)
> > > 3) you want to indicate the reason for using these instructions w/ =
an =22action-type=22 string (via a link-rel param in your illustrations)
> > > =20
> > > that's it. nothing else.
> > > =20
> > > do i have this correct=3F
> > =20
> > Exactly=21 That's it and nothing else.
> > =20
> > Cheers,
> > ioseb
> > =20
> > > =20
> > > =20
> > > mamund
> > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> > > skype: mca.amundsen
> > > http://amundsen.com/blog/
> > > http://twitter.com/mamund
> > > https://github.com/mamund
> > > http://www.linkedin.com/in/mikeamundsen
> > > =20
> > > On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <ioseb.dzmanash=
vili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dz=
manashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > > > Hi Mike,
> > > > =20
> > > > Thanks for the question=21
> > > > =20
> > > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > > > =20
> > > > > Ioseb:
> > > > > =20
> > > > > it is not clear to me why: <link rel=3D=22action;action-type=3D=
'edit'=22 href=3D=22...=22 />
> > > > > is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 />
> > > > > =20
> > > > > talk me down ;)
> > > > let me try ;)
> > > > =20
> > > > Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=22;=
 action-type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=22e=
dit=22.
> > > > =20
> > > > Of course i'd choose rel=3D=22run-forest-run=22 if there is a reg=
istered link relation type, but:
> > > > =20
> > > > 1. The =22action=22 link relation is generic enough, has well und=
erstood meaning and is useful on its own especially for human oriented ag=
ents.
> > > > 2. The =22action-type=22 optional attribute may be used for speci=
fying exact meaning of actions and this makes action links more useful fo=
r m2m scenarios.
> > > > =20
> > > > Now consider this link:
> > > > =20
> > > > Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22sus=
pend=22; title=3D=22Suspend=22
> > > > =20
> > > > What it says=3F
> > > > =20
> > > > 1. it is an action
> > > > 2. target resource represents description of the action which con=
tains: request method, submit URI, definition of action, other details et=
c
> > > > 3. agent can look inside =22action-type=22 to determine whether i=
t needs this action type or not
> > > > 4. agent can dereference it, construct request and send it to ser=
ver
> > > > =20
> > > > =20
> > > > now if we add more actions:
> > > > =20
> > > > Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22sus=
pend=22; title=3D=22Suspend=22
> > > > Link: </restart-action>; rel=3D=22action=22; action-type=3D=22res=
tart=22; title=3D=22Restart=22
> > > > =20
> > > > Link: </stop-action>; rel=3D=22action=22; action-type=3D=22stop=22=
; title=3D=22Stop=22
> > > > =20
> > > > =20
> > > > =231, =232, =233 and =234 will be true for all of them without ex=
ceptions.
> > > > =20
> > > > Now consider that representation containing these links is used b=
y GUI agent, in this case even =22action-type=22 is not necessary at all =
and agent can rely on user's choice. Agent only needs to know that:
> > > > =20
> > > > 1. link is an action(and this question is explicitly answered)
> > > > 2. if user choose one agent needs just to dereference indicated U=
RI
> > > > 3. construct request
> > > > 4. send request to server
> > > > 5. show results to user
> > > > =20
> > > > All of these will remain true for any action type.
> > > > =20
> > > > I'm not sure if i talked you down, but i believe =22action=22 rel=
ation type is useful and not because it is better(or simpler) compared to=
 rel=3D=22edit=22 for example.
> > > > =20
> > > > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-lin=
k-relation-00
> > > > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-lin=
k-relation-01
> > > > =20
> > > > P.S.
> > > > I was talking about 01 version of spec. 00 is a different story.
> > > > =20
> > > > Cheers,
> > > > ioseb
> > > > > mamund
> > > > > +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449)=

> > > > > skype: mca.amundsen
> > > > > http://amundsen.com/blog/
> > > > > http://twitter.com/mamund
> > > > > https://github.com/mamund
> > > > > http://www.linkedin.com/in/mikeamundsen
> > > > > =20
> > > > > =20
> > > > > =20
> > > > > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <ioseb.dzma=
nashvili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:iose=
b.dzmanashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com) (mail=
to:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com=
)> wrote:
> > > > > > Hi Julian,
> > > > > > =20
> > > > > > Thanks for response=21
> > > > > > =20
> > > > > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:=

> > > > > > =20
> > > > > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > > > > Hi All,
> > > > > > > > =20
> > > > > > > > I've updated the =22action=22 link relation type spec=5B1=
=5D based on initial feedback.
> > > > > > > > =20
> > > > > > > > As far as initial reactions were very controversial and r=
aised a lot of issues i tried to address all of them and entirely changed=
 the spec.
> > > > > > > > =20
> > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
> > > > > > > > When included in a response, the =22action=22 link relati=
on indicates a
> > > > > > > > target resource that is responsible for performing action=
 which MAY:
> > > > > > > > =20
> > > > > > > > - Affect state of the context resource; or
> > > > > > > > - Initiate process.
> > > > > > > > =20
> > > > > > > > The =22action=22 link relation type can be used to indica=
te the
> > > > > > > > availability of actions supported by the target resource.=
 Examples
> > > > > > > > of such actions include:
> > > > > > > > =20
> > > > > > > > - Enable/Disable
> > > > > > > > - Publish/Unpublish
> > > > > > > > - Start/Stop
> > > > > > > > =20
> > > > > > > > The =22action=22 link relation type doesn't convey any se=
mantics other
> > > > > > > > than that an indicated resources represent machine readab=
le
> > > > > > > > description of a particular action and representation SHO=
ULD contain
> > > > > > > > all necessary details such as: request method, action URI=
 and other
> > > > > > > > related details to enable agents to be able to construct =
requests
> > > > > > > > without relying on out-of-band information.
> > > > > > > > =20
> > > > > > > > Exact type of action SHOULD be indicated through the =22a=
ction-type=22
> > > > > > > > link-extension value as per =5BR=46C5988=5D and for maint=
aining shared
> > > > > > > > understanding of action types current specification intro=
duces the
> > > > > > > > registry of actions with initial values of widely accepte=
d and well
> > > > > > > > understood action types.
> > > > > > > > =20
> > > > > > > > =46or example, if a resource represents a service, that s=
ame
> > > > > > > > representation may include links to resources that repres=
ent actions
> > > > > > > > supported by the service:
> > > > > > > > =20
> > > > > > > > Link: </restart-action>; rel=3D=22action=22; action-type=3D=
=22restart=22
> > > > > > > > Link: </stop-action>; rel=3D=22action=22; action-type=3D=22=
stop=22
> > > > > > > > ...
> > > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > > It seems that you are just adding an indirection mechanism.=
 Why is that
> > > > > > > necessary=3F
> > > > > > > =20
> > > > > > =20
> > > > > > =20
> > > > > > =20
> > > > > > =20
> > > > > > With indirection mechanism i'm trying to solve issues raised =
around initial version of the spec=5B1=5D. There were several issues:
> > > > > > =20
> > > > > > 1. The =22action=22 link relation type doesn't have enough se=
mantics and automated agents can not follow such links if there are sever=
al actions included in a representation. With the =22action-type=22 link =
extension + registry of predefined action types agents can distinguish ac=
tions from each other.
> > > > > > =20
> > > > > > 2. Initial spec stated that if the =22action=22 link exists i=
n representation, only thing agents should do is to send empty POST reque=
st to the target in order to perform action. This approach was considered=
 as an anti pattern(RPCish and non RESTful). With having the =22action-ty=
pe=22 agents can:
> > > > > > =20
> > > > > > a) distinguish action links from each other;
> > > > > > b) if necessary dereference the target to obtain instructions=
 for constructing non empty POST/PUT requests;
> > > > > > c) send properly constructed request back to the target; and
> > > > > > d) it makes possible for servers to dictate structure of the =
request according to there own needs.
> > > > > > =20
> > > > > > Main purpose of the =22action=22 link relation type is to def=
ine semantics of particular class of links - actions. This eliminates the=
 need to redefine notion of =22action=22 for each link relation type whic=
h may be qualified as action link. The =22action-type=22 is just for nami=
ng actions and is particularly useful for automated agents not necessaril=
y for human interaction oriented agents.
> > > > > > =20
> > > > > > Having action type registry is important for maintaining shar=
ed understanding of particular action types. =46or example =22reset=22 or=
 =22publish=22 verbs do not need to be redefined from application to appl=
ication. I also believe that it is not efficient(or feasible) to register=
 all possible actions as link relations.
> > > > > > =20
> > > > > > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action=
-link-relation-00
> > > > > > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action=
-link-relation-01
> > > > > > > =20
> > > > > > > Best regards, Julian
> > > > > > Cheers,
> > > > > > ioseb
> > > > > > =20
> > > > > > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F
> > > > > > link-relations mailing list
> > > > > > link-relations=40ietf.org (mailto:link-relations=40ietf.org) =
(mailto:link-relations=40ietf.org) (mailto:link-relations=40ietf.org) (ma=
ilto:link-relations=40ietf.org) (mailto:link-relations=40ietf.org)
> > > > > > https://www.ietf.org/mailman/listinfo/link-relations
> > > > > > =20
> > > > > =20
> > > > > =20
> > > > =20
> > > > =20
> > > =20
> > > =20
> > =20
> > =20
> =20
> =20




From ioseb.dzmanashvili@gmail.com  Wed Aug 28 09:53:41 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 6418B21E8082; Wed, 28 Aug 2013 09:53:41 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.558
X-Spam-Level: 
X-Spam-Status: No, score=-1.558 tagged_above=-999 required=5 tests=[AWL=1.041,  BAYES_00=-2.599]
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 tI4HZ0ARsBKO; Wed, 28 Aug 2013 09:53:40 -0700 (PDT)
Received: from mail-ee0-x236.google.com (mail-ee0-x236.google.com [IPv6:2a00:1450:4013:c00::236]) by ietfa.amsl.com (Postfix) with ESMTP id 1AEFD21E8064; Wed, 28 Aug 2013 09:53:39 -0700 (PDT)
Received: by mail-ee0-f54.google.com with SMTP id e53so3101402eek.13 for <multiple recipients>; Wed, 28 Aug 2013 09:53:39 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=KtjN7/HaLnCD90c5Au1S2MOEgJ6SiEqkmaUZW6Ylfuc=; b=NgZu89n6NFOKs/+LnsfD0vW/Lbyyr0aZlxbDGqNNWL9jZkGZTyMCEJuzs4QqIVSL+n H4LOnz1KrXpfThaxsCguZYHos0ZsWFLsfIwHAN6rR/r9uKeOZlZMmc0noJfAkVpIJZGu /5pRFHUxv45QnOxsMGBS3qYDn1b+IPp8zzOEz/XStJcFSO8wgtJ0AyPn5jZ1sJs7MuxR 9iXUE+2FJifzjdsNnXH+5iX50LjaSGNtSdFNnTVTA+4Ptdy+ccTmvf7GvaOu6VwqZa4G RNOgag2FtJwTDNX3zbQOQ+vsXBTqZ+mstnH8LYMoTNDCXlR/T0OdzFZgnw86l4jG3Qfl rbYA==
X-Received: by 10.14.225.199 with SMTP id z47mr44637534eep.24.1377708819192; Wed, 28 Aug 2013 09:53:39 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id a1sm38913696eem.1.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 09:53:38 -0700 (PDT)
Date: Wed, 28 Aug 2013 20:53:34 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: Peter Williams <pezra@barelyenough.org>
Message-ID: <DD7FF004D6D44662BD3EF3BF1B5E16ED@gmail.com>
In-Reply-To: <CAK5VdzySC++-VqN7HKaLhjLR-JX=4fZKeZbsXarJ9UaDNvb4JA@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com> <2815EAE84FC243169D0D4802A0169C21@gmail.com> <CAK5VdzySC++-VqN7HKaLhjLR-JX=4fZKeZbsXarJ9UaDNvb4JA@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: apps-discuss@ietf.org, link-relations@ietf.org
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 16:53:41 -0000

Hi Peter,

Thanks for feedback=21 =20

On Wednesday, August 28, 2013 at 6:14 PM, Peter Williams wrote:

> I have a question about how this might affect future relationship regis=
trations. Consider the following scenario:
> This proposal is adopted. As many apps begin exposing =60start=60 links=
 it becomes obvious that start is a really common relationship. A proposa=
l is made to register a top level relationship =60start=60. (I am using =60=
start=60 purely for example purposes, this scenario works for any registe=
red action type.)
> In this case would you expect the new relationship registration to be a=
) rejected on the grounds that you can already accomplish it via the acti=
on+action-type approach, b) accepted and the action relation updated to d=
eclare the start action type archaic, c) accepted and action relation to =
left as is, leaving it up to implementers to decide which approach to use=
 for themselves=3F (Or perhaps there is a option I have over looked.) Wha=
t are the implications for existing representations and consumers under t=
hat outcome=3F What about new representations and consumers=3F

With my proposal i'm trying to solve the problem of particular class - ac=
tions. I want to have generalised approach which works from application t=
o application without redefining a) notion of action; b) basic interactio=
n model; and c) at least minimal shared understanding of particular kinds=
 of actions. =20

=46or the moment i'm not sure whether action type registry will be adopte=
d at all and of course i do not see future implications clearly if the pr=
oposal will be accepted. What i can say for sure these cases can covered =
in the proposal, but it is not 100% clear for me yet. I believe further d=
iscussions will show how to eliminate such cases.

Cheers,
ioseb
> Cheers,
> Peter =20
> Hi Mike,
> =20
> On Wednesday, August 28, 2013 at 11:45 AM, Mike Kelly wrote:
> =20
> > =20
> > On 28 Aug 2013 00:51, =22Ioseb Dzmanashvili=22 <ioseb.dzmanashvili=40=
gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dzmanashv=
ili=40gmail.com)> wrote:
> > > =20
> > > Hi Mike,
> > > =20
> > > Thanks for the question=21
> > > =20
> > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > > =20
> > > > Ioseb:
> > > > =20
> > > > it is not clear to me why: <link rel=3D=22action;action-type=3D'e=
dit'=22 href=3D=22...=22 />
> > > > is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 />
> > > > =20
> > > > talk me down ;)
> > > let me try ;)
> > > =20
> > > Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=22; a=
ction-type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=22edi=
t=22.
> > > =20
> > > Of course i'd choose rel=3D=22run-forest-run=22 if there is a regis=
tered link relation type, but:
> > > =20
> > > 1. The =22action=22 link relation is generic enough, has well under=
stood meaning and is useful on its own especially for human oriented agen=
ts.
> > > 2. The =22action-type=22 optional attribute may be used for specify=
ing exact meaning of actions and this makes action links more useful for =
m2m scenarios.
> > =20
> > =20
> > Hey Ioseb, isn't this what extension relations are for=3F
> =20
> =20
> =20
> =40mamund perfectly summarised major goals of the spec so i'm copying i=
t here:
> =20
> 1) you want to support a *pattern* where machine-readable state transit=
ion instructions appear at the end of some URL.
> 2) you want to indicate those instructions are available by marking the=
 URL w/ the string literal =22action=22 (via rel in your illustrations)
> 3) you want to indicate the reason for using these instructions w/ an =22=
action-type=22 string (via a link-rel param in your illustrations)
> =20
> =20
> =20
> Additionally semantics of extension relations may vary from application=
 to application. With the =22action-type=22 optional attribute + registry=
 of machine readable action type names i'm trying to address the issue of=
 shared semantics and at the same time the =22action=22 relation itself s=
till remains useful for GUI scenarios without the =22action-type=22 attri=
bute.
> =20
> Cheers,
> ioseb
> =20
> > Cheers,
> > M
> =20
> =20
> =20
> =20
> =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
> link-relations mailing list
> link-relations=40ietf.org (mailto:link-relations=40ietf.org)
> https://www.ietf.org/mailman/listinfo/link-relations




From ioseb.dzmanashvili@gmail.com  Wed Aug 28 10:00:39 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 28A4511E8283; Wed, 28 Aug 2013 10:00:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.707
X-Spam-Level: 
X-Spam-Status: No, score=-1.707 tagged_above=-999 required=5 tests=[AWL=0.892,  BAYES_00=-2.599]
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 e1gqG3LrTuLy; Wed, 28 Aug 2013 10:00:38 -0700 (PDT)
Received: from mail-ea0-x22a.google.com (mail-ea0-x22a.google.com [IPv6:2a00:1450:4013:c01::22a]) by ietfa.amsl.com (Postfix) with ESMTP id D66B421F9D87; Wed, 28 Aug 2013 10:00:25 -0700 (PDT)
Received: by mail-ea0-f170.google.com with SMTP id h14so3099015eak.15 for <multiple recipients>; Wed, 28 Aug 2013 10:00:24 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=USFQR0BtipAakFu5wImbSxKemAe3f7Q7IXoPVMHx8sk=; b=yet18C+rRwoN66dE9VRkf/NsBC1TjhrNCL5J03/uvahIMsD2I/XcXIzd9/xAzwbk2x WcP/yA5bjm3wLzVT2/fh2VzMLmjTu9IuNyL5mRTmx8MiI7rji86ey0Lq0MjdYqqlF+5q QQOCzIXHyTu337SLXUVoCPNbHZWPaMjjjZ0k1DQv4beux0O8GTR15rCmXs0wLGJkMR+K e5d+Oez9HaHoGSoO9Y261y2illylEpCGKEUUiNNB1v0kU+BC7DINuXJQEAHTFH3MZj0T /W/qy+Z9NuPyIC4UkH0bR2RRxxXcFPGRMoFi78AX0XHzXkvsoDDCvSeaHAMunk2PEB55 9UfA==
X-Received: by 10.15.45.8 with SMTP id a8mr44453858eew.1.1377709224549; Wed, 28 Aug 2013 10:00:24 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id k7sm38948020eeg.13.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 10:00:23 -0700 (PDT)
Date: Wed, 28 Aug 2013 21:00:20 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: James M Snell <jasnell@gmail.com>
Message-ID: <2C7A2CE62064416F9EF0DBB3E17E5829@gmail.com>
In-Reply-To: <CABP7Rbdd78zm3qPAM0stNMhLjHmvqxmk7B4PpRyjtqq-QUzuHg@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CANqiZJZssef_Ke27CDXm2PkrKcCRihodCehgDErCqx9_SY3Mkg@mail.gmail.com> <2815EAE84FC243169D0D4802A0169C21@gmail.com> <CABP7Rbdd78zm3qPAM0stNMhLjHmvqxmk7B4PpRyjtqq-QUzuHg@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 17:00:39 -0000

Hi James,

On Wednesday, August 28, 2013 at 7:31 PM, James M Snell wrote:

> I'm still struggling to see the value of a generic =22action=22 link
> relation here. If I have a set of link relations that I happen to want
> to mark as =22action=22, I would prefer to eliminate the indirection an=
d
> simply =22flag=22 the links, for instance:
> =20
> Link: <restart-action>; rel=3D=22restart=22; action
> =20
> or in HTML
> =20
> <link rel=3D=22restart=22 href=3D=22restart-action=22 class=3D=22action=
=22 /> or...
> <link rel=3D=22restart=22 href=3D=22restart-action=22 action />
> =20

> This approach would skip the additional registration mechanism for
> action-type and would allow any link relation to potentially be marked
> as an action... which seems appropriate.
> =20


How do i advertise this action =22flag=22=3F I can do it in media profile=
, i can do somewhere else. But how to do it outside of my domain=3F As I =
already said: =20
I want to have generalised approach which works from application to appli=
cation without redefining a) notion of action; b) basic interaction model=
; and c) at least minimal shared understanding of particular kinds of act=
ions.
 =20

P.S.
Here are more details in response to Mike: http://www.ietf.org/mail-archi=
ve/web/link-relations/current/msg00554.html

Cheers,
ioseb

> =20
> - James
> =20
> =20
> =20
> =20
> On Wed, Aug 28, 2013 at 1:04 AM, Ioseb Dzmanashvili
> <ioseb.dzmanashvili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com)=
> wrote:
> > Hi Mike,
> > =20
> > On Wednesday, August 28, 2013 at 11:45 AM, Mike Kelly wrote:
> > =20
> > > =20
> > > On 28 Aug 2013 00:51, =22Ioseb Dzmanashvili=22 <ioseb.dzmanashvili=40=
gmail.com (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > > > =20
> > > > Hi Mike,
> > > > =20
> > > > Thanks for the question=21
> > > > =20
> > > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > > > =20
> > > > > Ioseb:
> > > > > =20
> > > > > it is not clear to me why: <link rel=3D=22action;action-type=3D=
'edit'=22 href=3D=22...=22 />
> > > > > is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 />
> > > > > =20
> > > > > talk me down ;)
> > > > let me try ;)
> > > > =20
> > > > Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=22;=
 action-type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=22e=
dit=22.
> > > > =20
> > > > Of course i'd choose rel=3D=22run-forest-run=22 if there is a reg=
istered link relation type, but:
> > > > =20
> > > > 1. The =22action=22 link relation is generic enough, has well und=
erstood meaning and is useful on its own especially for human oriented ag=
ents.
> > > > 2. The =22action-type=22 optional attribute may be used for speci=
fying exact meaning of actions and this makes action links more useful fo=
r m2m scenarios.
> > > > =20
> > > =20
> > > =20
> > > =20
> > > Hey Ioseb, isn't this what extension relations are for=3F
> > =20
> > =20
> > =20
> > =40mamund perfectly summarised major goals of the spec so i'm copying=
 it here:
> > =20
> > 1) you want to support a *pattern* where machine-readable state trans=
ition instructions appear at the end of some URL.
> > 2) you want to indicate those instructions are available by marking t=
he URL w/ the string literal =22action=22 (via rel in your illustrations)=

> > 3) you want to indicate the reason for using these instructions w/ an=
 =22action-type=22 string (via a link-rel param in your illustrations)
> > =20
> > =20
> > =20
> > Additionally semantics of extension relations may vary from applicati=
on to application. With the =22action-type=22 optional attribute + regist=
ry of machine readable action type names i'm trying to address the issue =
of shared semantics and at the same time the =22action=22 relation itself=
 still remains useful for GUI scenarios without the =22action-type=22 att=
ribute.
> > =20
> > Cheers,
> > ioseb
> > =20
> > > Cheers,
> > > M
> > > =20
> > =20
> > =20
> > =20
> > =20
> > =20
> > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F
> > apps-discuss mailing list
> > apps-discuss=40ietf.org (mailto:apps-discuss=40ietf.org)
> > https://www.ietf.org/mailman/listinfo/apps-discuss
> > =20
> =20
> =20




From mca@amundsen.com  Wed Aug 28 10:39:46 2013
Return-Path: <mca@amundsen.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9FE3511E81AF for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 10:39:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 3.713
X-Spam-Level: ***
X-Spam-Status: No, score=3.713 tagged_above=-999 required=5 tests=[AWL=-1.338,  BAYES_50=0.001, FM_FORGED_GMAIL=0.622, FORGED_YAHOO_RCVD=2.297,  HTML_MESSAGE=0.001, J_CHICKENPOX_32=0.6, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_92=0.6, RCVD_IN_DNSWL_LOW=-1, SARE_RMML_Stock10=0.13]
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 M-tnA3D6naaG for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 10:39:41 -0700 (PDT)
Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by ietfa.amsl.com (Postfix) with ESMTP id D968921F9DF3 for <link-relations@ietf.org>; Wed, 28 Aug 2013 10:39:37 -0700 (PDT)
Received: by mail-wg0-f42.google.com with SMTP id l18so1277030wgh.5 for <link-relations@ietf.org>; Wed, 28 Aug 2013 10:39:37 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=HZbkUTSoLmsbYa1yxV1bqXZBMLLrMLo+N1L9ScCyn0M=; b=frnd/5L+uinN0fLbniV4F/FaZ2ax4twgGpnrawlPNOr6VDls1jiX2rY2p7QShOYhnO i9GLdyZDYiTdwQDrOSXGq7UnY/4htxJIuXwUkREE3dlUfjF3UK3m+H43vL9RkwLiGYaE xoRoFcQhf5Ox2YpwZ4E7HBi4QbPlkSBftTnO6RHO8k4xAk8HgHmLbRAX256EfhSiA2Wu jtzxTJm+CbN6lvn2JJ/pPA7dE/otJ4ljYphSgwZXYqMUztAW9ym6UrLBEZM6LPDyRuGT YJ5Rc1bSxbDZYa5rDhtjHtqnguTcZp9i5TUeuLZauGQV3D9MiiyOAXu1mQtC0rGtpa0W QH4A==
X-Gm-Message-State: ALoCoQkdh/DpHmddqOOMmcHxn8sEN4QqCEbQmOv8eOwAUMz/NWpt5H5YSdRXznWwr/nRkXyJfdwC
X-Received: by 10.194.205.164 with SMTP id lh4mr4704792wjc.46.1377711576189; Wed, 28 Aug 2013 10:39:36 -0700 (PDT)
MIME-Version: 1.0
Sender: mca@amundsen.com
Received: by 10.194.151.7 with HTTP; Wed, 28 Aug 2013 10:39:16 -0700 (PDT)
In-Reply-To: <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com>
From: mike amundsen <mamund@yahoo.com>
Date: Wed, 28 Aug 2013 13:39:16 -0400
X-Google-Sender-Auth: EdwC2KAOL39ebBX_0RgrkfKQJN4
Message-ID: <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=047d7bae47381a1f2704e5057926
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 17:39:46 -0000

--047d7bae47381a1f2704e5057926
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<snip>
So here is my question: why is it bad?
</snip>
1) creates a new registry for action-type instead of using existing
registry for rel (you point this out in the "there is not start relation
yet" reasoning)
2) ignores the use of link relation extension values already established in
RFC5988 (see Mike Kelly's question)
3) introduces confusion on whether @rel or "action-type" should be used
(see Peter Williams' question)
4) uses two values ("action" and "{reason}") where only one is needed
(srsly, a constant string AND a variable?)

IOW, you have two possible solutions already for the same outcome and are
not using them. you've been offered at least one issue
on conflicting implementation and at least one on overly-complex
implementation.

if you are so sure that this implementation detail is important to the
_results_ you want to achieve, then start today by doing it via link
extensions:
<LINK rel=3D"http://actions.io/action;action-type=3D"start" ... />

you can document and implement this today w/o any need to get an RFC
approved or get even buy-in from others. You can create your own registry
and open it up to others for adds/edits (similar to the way microformats
operates). You can build working implementations, write papers on it,
advocate for use in various forums, etc.

Over time you can monitor and record adoption, judge the up-take you get
and determine whether it proves to be a useful pattern. If it works well
and shows adoption, you'll see much less push-back from me (and, i suspect
others) and will be able to replace: <LINK rel=3D"
http://actions.io/action;action-type=3D"start" ... /> with <LINK
rel=3D"action;action-type=3D"start" ... /> and even allow existing
implementations to support both.

IOW, nothing is stopping you from implementing a compliant version of this
approach today and doing it in a way that would be compatible w/ adopting
your proposed approach once your approach is proven to be worthy of
recording as a standard.

finally, i'll say this:
<snip>
Actually as i see it #1 and #2 are of same importance.
</snip>
If the _method_ of achieving your results is non-negotiable, I have little
else to offer here.

Cheers.


mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mikeamundsen


On Wed, Aug 28, 2013 at 12:41 PM, Ioseb Dzmanashvili <
ioseb.dzmanashvili@gmail.com> wrote:

> Mike,
>
> On Wednesday, August 28, 2013 at 6:33 PM, mike amundsen wrote:
> > Ioseb:
> >
> > now that i understand your aim...
> >
> > it seems the first item (support a pattern...) is the important one and
> the other two are just means to that end.
> Actually as i see it #1 and #2 are of same importance.
>
>
> > so why is this a good approach?
> #1 and #2 still hold. As i already said #3 makes sense only for m2m
> scenarios and for GUI clients just knowing that a link is an action and h=
ow
> to treat such action links is enough.
>
> What i'm trying to achieve with my proposal is to generalise meaning of
> action and make it consistent across different applications. Unfortunatel=
y
> i do not see(or know, or was not able to find) better approach yet but it
> is generic enough to solve whole class of problems at least on GUI level =
+
> partially for m2m cases with "action-type" attribute even if we throw
> action type registry idea away. If we simplify definition of the "action"
> relation type and say:
>
> 1. here is the "action" link
> 2. it points to a resource which describes the action
> 3. to perform an action fetch it construct request and send it back to
> server.
> 4. if you want to know what this particular action means:
> 4.1. look inside the "action-type" attribute if it presents; or
> 4.2. fetch the document and look inside it.
>
> Is not it sufficient enough to cover whole class of problems in a
> consistent way which are clearly actions and not just related resources?
>
> So here is my question: why is it bad?
>
> > 1) why use the "action" rel PLUS a param ("start")? why not just use th=
e
> param ("start") as the rel?
> For several reasons:
>
> 1. there is no "start" relation yet.
> 2. it doesn't have explicit sign that it is an action.
> 3. there are much more actions which are not registered and also there is
> no guarantee that each newly registered relation(which can be qualified a=
s
> action) will state that it is an action in a consistent way.
> 4. the pattern as you noticed is still important(IMHO)
>
> > 2) why not use two values for the rel as in <LINK rel=3D"action start" =
/>?
>
> It was suggested in the initial proposal though approach has drawbacks. i=
f
> i use more rels? <LINK rel=3D"action foo bar baz" /> how to distinguish
> "foo", "bar" and "baz" from each other? does it mean that my action now h=
as
> triple meaning?
>
> > 3) why not use (as mike kelly suggests) an extension URI for the rel as
> in <LINK rel=3D"http://actions.io/start" ... />
> >
> > 4) why not use a unique element attribute/property such as <LINK
> rel=3D"action" reason=3D"start" .../>?
> >
> >
>
> is it different from "action-type" attribute? or maybe problem is in a
> registry of action types?
>
> > 5) why not use a unique document element/property such as <action
> rel=3D"start" href=3D"..."/> or {"action": {"rel":"start", "href":"..."}}=
?
> Well, in custom media types i can do anything, though it doesn't make
> sense outside of particular format or domain. Otherwise it is ok and i us=
e
> similar approach in practice.
>
> Cheers,
> ioseb
>
> >
> > mamund
> > +1.859.757.1449
> > skype: mca.amundsen
> > http://amundsen.com/blog/
> > http://twitter.com/mamund
> > https://github.com/mamund
> > http://www.linkedin.com/in/mikeamundsen
> >
> > On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
> > > Mike,
> > >
> > > On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:
> > >
> > > > OK, from your response i get the following:
> > > >
> > > > 1) you want to support a pattern where machine-readable state
> transition instructions appear at the end of some URL.
> > > > 2) you want to indicate those instructions are available by marking
> the URL w/ the string literal "action" (via rel in your illustrations)
> > > > 3) you want to indicate the reason for using these instructions w/
> an "action-type" string (via a link-rel param in your illustrations)
> > > >
> > > > that's it. nothing else.
> > > >
> > > > do i have this correct?
> > >
> > > Exactly! That's it and nothing else.
> > >
> > > Cheers,
> > > ioseb
> > >
> > > >
> > > >
> > > > mamund
> > > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> > > > skype: mca.amundsen
> > > > http://amundsen.com/blog/
> > > > http://twitter.com/mamund
> > > > https://github.com/mamund
> > > > http://www.linkedin.com/in/mikeamundsen
> > > >
> > > > On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)>
> wrote:
> > > > > Hi Mike,
> > > > >
> > > > > Thanks for the question!
> > > > >
> > > > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > > > >
> > > > > > Ioseb:
> > > > > >
> > > > > > it is not clear to me why: <link rel=3D"action;action-type=3D'e=
dit'"
> href=3D"..." />
> > > > > > is preferable to: <link rel=3D"edit" href=3D"..." />
> > > > > >
> > > > > > talk me down ;)
> > > > > let me try ;)
> > > > >
> > > > > Question is not about why: Link: <=85>; rel=3D"action";
> action-type=3D"edit" is preferable to: Link: <=85>; rel=3D"edit".
> > > > >
> > > > > Of course i'd choose rel=3D"run-forest-run" if there is a registe=
red
> link relation type, but:
> > > > >
> > > > > 1. The "action" link relation is generic enough, has well
> understood meaning and is useful on its own especially for human oriented
> agents.
> > > > > 2. The "action-type" optional attribute may be used for specifyin=
g
> exact meaning of actions and this makes action links more useful for m2m
> scenarios.
> > > > >
> > > > > Now consider this link:
> > > > >
> > > > > Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend";
> title=3D"Suspend"
> > > > >
> > > > > What it says?
> > > > >
> > > > > 1. it is an action
> > > > > 2. target resource represents description of the action which
> contains: request method, submit URI, definition of action, other details
> etc
> > > > > 3. agent can look inside "action-type" to determine whether it
> needs this action type or not
> > > > > 4. agent can dereference it, construct request and send it to
> server
> > > > >
> > > > >
> > > > > now if we add more actions:
> > > > >
> > > > > Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend";
> title=3D"Suspend"
> > > > > Link: </restart-action>; rel=3D"action"; action-type=3D"restart";
> title=3D"Restart"
> > > > >
> > > > > Link: </stop-action>; rel=3D"action"; action-type=3D"stop";
> title=3D"Stop"
> > > > >
> > > > >
> > > > > #1, #2, #3 and #4 will be true for all of them without exceptions=
.
> > > > >
> > > > > Now consider that representation containing these links is used b=
y
> GUI agent, in this case even "action-type" is not necessary at all and
> agent can rely on user's choice. Agent only needs to know that:
> > > > >
> > > > > 1. link is an action(and this question is explicitly answered)
> > > > > 2. if user choose one agent needs just to dereference indicated U=
RI
> > > > > 3. construct request
> > > > > 4. send request to server
> > > > > 5. show results to user
> > > > >
> > > > > All of these will remain true for any action type.
> > > > >
> > > > > I'm not sure if i talked you down, but i believe "action" relatio=
n
> type is useful and not because it is better(or simpler) compared to
> rel=3D"edit" for example.
> > > > >
> > > > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > > > >
> > > > > P.S.
> > > > > I was talking about 01 version of spec. 00 is a different story.
> > > > >
> > > > > Cheers,
> > > > > ioseb
> > > > > > mamund
> > > > > > +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449)
> > > > > > skype: mca.amundsen
> > > > > > http://amundsen.com/blog/
> > > > > > http://twitter.com/mamund
> > > > > > https://github.com/mamund
> > > > > > http://www.linkedin.com/in/mikeamundsen
> > > > > >
> > > > > >
> > > > > >
> > > > > > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)>
> wrote:
> > > > > > > Hi Julian,
> > > > > > >
> > > > > > > Thanks for response!
> > > > > > >
> > > > > > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
> > > > > > >
> > > > > > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > > > > > Hi All,
> > > > > > > > >
> > > > > > > > > I've updated the "action" link relation type spec[1] base=
d
> on initial feedback.
> > > > > > > > >
> > > > > > > > > As far as initial reactions were very controversial and
> raised a lot of issues i tried to address all of them and entirely change=
d
> the spec.
> > > > > > > > >
> > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D
> > > > > > > > > When included in a response, the "action" link relation
> indicates a
> > > > > > > > > target resource that is responsible for performing action
> which MAY:
> > > > > > > > >
> > > > > > > > > - Affect state of the context resource; or
> > > > > > > > > - Initiate process.
> > > > > > > > >
> > > > > > > > > The "action" link relation type can be used to indicate t=
he
> > > > > > > > > availability of actions supported by the target resource.
> Examples
> > > > > > > > > of such actions include:
> > > > > > > > >
> > > > > > > > > - Enable/Disable
> > > > > > > > > - Publish/Unpublish
> > > > > > > > > - Start/Stop
> > > > > > > > >
> > > > > > > > > The "action" link relation type doesn't convey any
> semantics other
> > > > > > > > > than that an indicated resources represent machine readab=
le
> > > > > > > > > description of a particular action and representation
> SHOULD contain
> > > > > > > > > all necessary details such as: request method, action URI
> and other
> > > > > > > > > related details to enable agents to be able to construct
> requests
> > > > > > > > > without relying on out-of-band information.
> > > > > > > > >
> > > > > > > > > Exact type of action SHOULD be indicated through the
> "action-type"
> > > > > > > > > link-extension value as per [RFC5988] and for maintaining
> shared
> > > > > > > > > understanding of action types current specification
> introduces the
> > > > > > > > > registry of actions with initial values of widely accepte=
d
> and well
> > > > > > > > > understood action types.
> > > > > > > > >
> > > > > > > > > For example, if a resource represents a service, that sam=
e
> > > > > > > > > representation may include links to resources that
> represent actions
> > > > > > > > > supported by the service:
> > > > > > > > >
> > > > > > > > > Link: </restart-action>; rel=3D"action";
> action-type=3D"restart"
> > > > > > > > > Link: </stop-action>; rel=3D"action"; action-type=3D"stop=
"
> > > > > > > > > ...
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > It seems that you are just adding an indirection mechanism.
> Why is that
> > > > > > > > necessary?
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > >
> > > > > > > With indirection mechanism i'm trying to solve issues raised
> around initial version of the spec[1]. There were several issues:
> > > > > > >
> > > > > > > 1. The "action" link relation type doesn't have enough
> semantics and automated agents can not follow such links if there are
> several actions included in a representation. With the "action-type" link
> extension + registry of predefined action types agents can distinguish
> actions from each other.
> > > > > > >
> > > > > > > 2. Initial spec stated that if the "action" link exists in
> representation, only thing agents should do is to send empty POST request
> to the target in order to perform action. This approach was considered as
> an anti pattern(RPCish and non RESTful). With having the "action-type"
> agents can:
> > > > > > >
> > > > > > > a) distinguish action links from each other;
> > > > > > > b) if necessary dereference the target to obtain instructions
> for constructing non empty POST/PUT requests;
> > > > > > > c) send properly constructed request back to the target; and
> > > > > > > d) it makes possible for servers to dictate structure of the
> request according to there own needs.
> > > > > > >
> > > > > > > Main purpose of the "action" link relation type is to define
> semantics of particular class of links - actions. This eliminates the nee=
d
> to redefine notion of "action" for each link relation type which may be
> qualified as action link. The "action-type" is just for naming actions an=
d
> is particularly useful for automated agents not necessarily for human
> interaction oriented agents.
> > > > > > >
> > > > > > > Having action type registry is important for maintaining
> shared understanding of particular action types. For example "reset" or
> "publish" verbs do not need to be redefined from application to
> application. I also believe that it is not efficient(or feasible) to
> register all possible actions as link relations.
> > > > > > >
> > > > > > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > > > > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > > > > > > >
> > > > > > > > Best regards, Julian
> > > > > > > Cheers,
> > > > > > > ioseb
> > > > > > >
> > > > > > > _______________________________________________
> > > > > > > link-relations mailing list
> > > > > > > link-relations@ietf.org (mailto:link-relations@ietf.org)
> (mailto:link-relations@ietf.org) (mailto:link-relations@ietf.org) (mailto=
:
> link-relations@ietf.org) (mailto:link-relations@ietf.org)
> > > > > > > https://www.ietf.org/mailman/listinfo/link-relations
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
>
>

--047d7bae47381a1f2704e5057926
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div style><font face=3D"arial, sans-serif">&lt;snip&gt;</=
font></div><div style><span style=3D"font-family:arial,sans-serif;font-size=
:13px">So here is my question: why is it bad?</span><font face=3D"arial, sa=
ns-serif"><br>

</font></div><div style><span style=3D"font-family:arial,sans-serif;font-si=
ze:13px">&lt;/snip&gt;</span></div><div style><span style=3D"font-family:ar=
ial,sans-serif;font-size:13px">1) creates a new registry for action-type in=
stead of using existing registry for rel (you point this out in the &quot;t=
here is not start relation yet&quot; reasoning)</span></div>

<div><span style=3D"font-family:arial,sans-serif;font-size:13px">2) ignores=
 the use of link relation extension values already established in RFC5988 (=
see Mike Kelly&#39;s question)</span></div><div style><span style=3D"font-f=
amily:arial,sans-serif;font-size:13px">3) introduces confusion on whether @=
rel or &quot;action-type&quot; should be used (see Peter Williams&#39; ques=
tion)</span><br>

</div><div style><div><span style=3D"font-family:arial,sans-serif;font-size=
:13px">4) uses two values (&quot;action&quot; and &quot;{reason}&quot;) whe=
re only one is needed (srsly, a constant string AND a variable?)</span></di=
v>

<div><span style=3D"font-family:arial,sans-serif;font-size:13px"><br></span=
></div><div style><font face=3D"arial, sans-serif">IOW, you have two possib=
le solutions already for the same outcome and are not using them. you&#39;v=
e been offered at least one issue on=A0conflicting=A0implementation and at =
least one on overly-complex implementation.</font></div>

<div style><font face=3D"arial, sans-serif"><br></font></div><div style><fo=
nt face=3D"arial, sans-serif">if you are so sure that this implementation d=
etail is important to the _results_ you want to achieve, then start today b=
y doing it via link extensions:</font></div>

<div style><font face=3D"arial, sans-serif">&lt;LINK rel=3D&quot;<a href=3D=
"http://actions.io/action;action-type=3D">http://actions.io/action;action-t=
ype=3D</a>&quot;start&quot; ... /&gt;</font></div><div style><font face=3D"=
arial, sans-serif"><br>

</font></div><div style><font face=3D"arial, sans-serif">you can document a=
nd implement this today w/o any need to get an RFC approved or get even buy=
-in from others. You can create your own registry and open it up to others =
for adds/edits (similar=A0to the way microformats operates). You can build =
working implementations, write papers on it, advocate for use in various fo=
rums, etc. =A0</font></div>

<div style><font face=3D"arial, sans-serif"><br></font></div><div style><fo=
nt face=3D"arial, sans-serif">Over time you can monitor and record adoption=
, judge the=A0</font><span style=3D"font-family:arial,sans-serif">up-take y=
ou get and determine whether it proves to be a useful pattern. If it works =
well and shows adoption, you&#39;ll see much less push-back from me (and, i=
 suspect others) and will be able to replace:=A0</span><span style=3D"font-=
family:arial,sans-serif">&lt;LINK rel=3D&quot;<a href=3D"http://actions.io/=
action;action-type=3D">http://actions.io/action;action-type=3D</a>&quot;sta=
rt&quot; ... /&gt;=A0</span><span style=3D"font-family:arial,sans-serif">wi=
th=A0</span><span style=3D"font-family:arial,sans-serif">&lt;LINK rel=3D&qu=
ot;action;action-type=3D&quot;start&quot; ... /&gt;=A0</span><span style=3D=
"font-family:arial,sans-serif">and even allow existing implementations to s=
upport both.</span></div>

<div style><div style><div style><font face=3D"arial, sans-serif"><br></fon=
t></div><div style><font face=3D"arial, sans-serif">IOW, nothing is stoppin=
g you from implementing a compliant version of this approach today and doin=
g it in a way that would be compatible w/ adopting your proposed approach o=
nce your approach is proven to be worthy of recording as a standard.=A0</fo=
nt></div>

<div style><br></div><div style><font face=3D"arial, sans-serif">finally, i=
&#39;ll say this:</font></div><div>&lt;snip&gt;<div><span style=3D"font-fam=
ily:arial,sans-serif;font-size:13px">Actually as i see it #1 and #2 are of =
same importance.</span><br style=3D"font-family:arial,sans-serif;font-size:=
13px">

</div><div><span style=3D"font-family:arial,sans-serif;font-size:13px">&lt;=
/snip&gt;</span></div><div><font face=3D"arial, sans-serif">If the _method_=
 of achieving your results is non-negotiable, I have little else to offer h=
ere.=A0</font></div>

<div><font face=3D"arial, sans-serif"><br></font></div></div><div style><fo=
nt face=3D"arial, sans-serif">Cheers.</font></div></div></div><div><span st=
yle=3D"font-family:arial,sans-serif;font-size:13px"><br></span></div></div>=
</div>

<div class=3D"gmail_extra"><br clear=3D"all"><div>mamund<div>+1.859.757.144=
9<br>skype: mca.amundsen<br><a href=3D"http://amundsen.com/blog/" target=3D=
"_blank">http://amundsen.com/blog/</a><br><a href=3D"http://twitter.com/mam=
und" target=3D"_blank">http://twitter.com/mamund</a><br>

<a href=3D"https://github.com/mamund" target=3D"_blank">https://github.com/=
mamund</a><br><a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D=
"_blank">http://www.linkedin.com/in/mikeamundsen</a></div></div>
<br><br><div class=3D"gmail_quote">On Wed, Aug 28, 2013 at 12:41 PM, Ioseb =
Dzmanashvili <span dir=3D"ltr">&lt;<a href=3D"mailto:ioseb.dzmanashvili@gma=
il.com" target=3D"_blank">ioseb.dzmanashvili@gmail.com</a>&gt;</span> wrote=
:<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Mike,<br>
<div class=3D"im"><br>
On Wednesday, August 28, 2013 at 6:33 PM, mike amundsen wrote:<br>
&gt; Ioseb:<br>
&gt;<br>
</div><div class=3D"im">&gt; now that i understand your aim...<br>
&gt;<br>
&gt; it seems the first item (support a pattern...) is the important one an=
d the other two are just means to that end.<br>
</div>Actually as i see it #1 and #2 are of same importance.<br>
<div class=3D"im"><br>
<br>
&gt; so why is this a good approach?<br>
</div>#1 and #2 still hold. As i already said #3 makes sense only for m2m s=
cenarios and for GUI clients just knowing that a link is an action and how =
to treat such action links is enough.<br>
<br>
What i&#39;m trying to achieve with my proposal is to generalise meaning of=
 action and make it consistent across different applications. Unfortunately=
 i do not see(or know, or was not able to find) better approach yet but it =
is generic enough to solve whole class of problems at least on GUI level + =
partially for m2m cases with &quot;action-type&quot; attribute even if we t=
hrow action type registry idea away. If we simplify definition of the &quot=
;action&quot; relation type and say:<br>


<br>
1. here is the &quot;action&quot; link<br>
2. it points to a resource which describes the action<br>
3. to perform an action fetch it construct request and send it back to serv=
er.<br>
4. if you want to know what this particular action means:<br>
4.1. look inside the &quot;action-type&quot; attribute if it presents; or<b=
r>
4.2. fetch the document and look inside it.<br>
<br>
Is not it sufficient enough to cover whole class of problems in a consisten=
t way which are clearly actions and not just related resources?<br>
<br>
So here is my question: why is it bad?<br>
<div class=3D"im"><br>
&gt; 1) why use the &quot;action&quot; rel PLUS a param (&quot;start&quot;)=
? why not just use the param (&quot;start&quot;) as the rel?<br>
</div>For several reasons:<br>
<br>
1. there is no &quot;start&quot; relation yet.<br>
2. it doesn&#39;t have explicit sign that it is an action.<br>
3. there are much more actions which are not registered and also there is n=
o guarantee that each newly registered relation(which can be qualified as a=
ction) will state that it is an action in a consistent way.<br>
4. the pattern as you noticed is still important(IMHO)<br>
<div class=3D"im"><br>
&gt; 2) why not use two values for the rel as in &lt;LINK rel=3D&quot;actio=
n start&quot; /&gt;?<br>
<br>
</div>It was suggested in the initial proposal though approach has drawback=
s. if i use more rels? &lt;LINK rel=3D&quot;action foo bar baz&quot; /&gt; =
how to distinguish &quot;foo&quot;, &quot;bar&quot; and &quot;baz&quot; fro=
m each other? does it mean that my action now has triple meaning?<br>


<div class=3D"im"><br>
&gt; 3) why not use (as mike kelly suggests) an extension URI for the rel a=
s in &lt;LINK rel=3D&quot;<a href=3D"http://actions.io/start" target=3D"_bl=
ank">http://actions.io/start</a>&quot; ... /&gt;<br>
&gt;<br>
&gt; 4) why not use a unique element attribute/property such as &lt;LINK re=
l=3D&quot;action&quot; reason=3D&quot;start&quot; .../&gt;?<br>
&gt;<br>
&gt;<br>
<br>
</div>is it different from &quot;action-type&quot; attribute? or maybe prob=
lem is in a registry of action types?<br>
<div class=3D"im"><br>
&gt; 5) why not use a unique document element/property such as &lt;action r=
el=3D&quot;start&quot; href=3D&quot;...&quot;/&gt; or {&quot;action&quot;: =
{&quot;rel&quot;:&quot;start&quot;, &quot;href&quot;:&quot;...&quot;}}?<br>


</div>Well, in custom media types i can do anything, though it doesn&#39;t =
make sense outside of particular format or domain. Otherwise it is ok and i=
 use similar approach in practice.<br>
<div class=3D"im"><br>
Cheers,<br>
ioseb<br>
<br>
&gt;<br>
&gt; mamund<br>
&gt; <a href=3D"tel:%2B1.859.757.1449" value=3D"+18597571449">+1.859.757.14=
49</a><br>
&gt; skype: mca.amundsen<br>
&gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http://amundse=
n.com/blog/</a><br>
&gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter=
.com/mamund</a><br>
&gt; <a href=3D"https://github.com/mamund" target=3D"_blank">https://github=
.com/mamund</a><br>
&gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D"_blank">=
http://www.linkedin.com/in/mikeamundsen</a><br>
&gt;<br>
</div><div class=3D"im">&gt; On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanas=
hvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvil=
i@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ios=
eb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanashvili=
@gmail.com">ioseb.dzmanashvili@gmail.com</a>)&gt; wrote:<br>


&gt; &gt; Mike,<br>
&gt; &gt;<br>
&gt; &gt; On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:<br=
>
&gt; &gt;<br>
&gt; &gt; &gt; OK, from your response i get the following:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 1) you want to support a pattern where machine-readable stat=
e transition instructions appear at the end of some URL.<br>
&gt; &gt; &gt; 2) you want to indicate those instructions are available by =
marking the URL w/ the string literal &quot;action&quot; (via rel in your i=
llustrations)<br>
&gt; &gt; &gt; 3) you want to indicate the reason for using these instructi=
ons w/ an &quot;action-type&quot; string (via a link-rel param in your illu=
strations)<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; that&#39;s it. nothing else.<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; do i have this correct?<br>
&gt; &gt;<br>
&gt; &gt; Exactly! That&#39;s it and nothing else.<br>
&gt; &gt;<br>
&gt; &gt; Cheers,<br>
&gt; &gt; ioseb<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; mamund<br>
</div><div class=3D"im">&gt; &gt; &gt; <a href=3D"tel:%2B1.859.757.1449" va=
lue=3D"+18597571449">+1.859.757.1449</a> (tel:%2B1.859.757.1449)<br>
&gt; &gt; &gt; skype: mca.amundsen<br>
&gt; &gt; &gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http=
://amundsen.com/blog/</a><br>
&gt; &gt; &gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http=
://twitter.com/mamund</a><br>
&gt; &gt; &gt; <a href=3D"https://github.com/mamund" target=3D"_blank">http=
s://github.com/mamund</a><br>
&gt; &gt; &gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=
=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a><br>
&gt; &gt; &gt;<br>
</div><div><div class=3D"h5">&gt; &gt; &gt; On Tue, Aug 27, 2013 at 7:51 PM=
, Ioseb Dzmanashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">io=
seb.dzmanashvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili=
@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ios=
eb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a hre=
f=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>)=
&gt; wrote:<br>


&gt; &gt; &gt; &gt; Hi Mike,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Thanks for the question!<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen =
wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; Ioseb:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; it is not clear to me why: &lt;link rel=3D&quot;ac=
tion;action-type=3D&#39;edit&#39;&quot; href=3D&quot;...&quot; /&gt;<br>
&gt; &gt; &gt; &gt; &gt; is preferable to: &lt;link rel=3D&quot;edit&quot; =
href=3D&quot;...&quot; /&gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; talk me down ;)<br>
&gt; &gt; &gt; &gt; let me try ;)<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Question is not about why: Link: &lt;=85&gt;; rel=3D&qu=
ot;action&quot;; action-type=3D&quot;edit&quot; is preferable to: Link: &lt=
;=85&gt;; rel=3D&quot;edit&quot;.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Of course i&#39;d choose rel=3D&quot;run-forest-run&quo=
t; if there is a registered link relation type, but:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 1. The &quot;action&quot; link relation is generic enou=
gh, has well understood meaning and is useful on its own especially for hum=
an oriented agents.<br>
&gt; &gt; &gt; &gt; 2. The &quot;action-type&quot; optional attribute may b=
e used for specifying exact meaning of actions and this makes action links =
more useful for m2m scenarios.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Now consider this link:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Link: &lt;/suspend-action&gt;; rel=3D&quot;action&quot;=
; action-type=3D&quot;suspend&quot;; title=3D&quot;Suspend&quot;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; What it says?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 1. it is an action<br>
&gt; &gt; &gt; &gt; 2. target resource represents description of the action=
 which contains: request method, submit URI, definition of action, other de=
tails etc<br>
&gt; &gt; &gt; &gt; 3. agent can look inside &quot;action-type&quot; to det=
ermine whether it needs this action type or not<br>
&gt; &gt; &gt; &gt; 4. agent can dereference it, construct request and send=
 it to server<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; now if we add more actions:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Link: &lt;/suspend-action&gt;; rel=3D&quot;action&quot;=
; action-type=3D&quot;suspend&quot;; title=3D&quot;Suspend&quot;<br>
&gt; &gt; &gt; &gt; Link: &lt;/restart-action&gt;; rel=3D&quot;action&quot;=
; action-type=3D&quot;restart&quot;; title=3D&quot;Restart&quot;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&quot;action&quot;; a=
ction-type=3D&quot;stop&quot;; title=3D&quot;Stop&quot;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; #1, #2, #3 and #4 will be true for all of them without =
exceptions.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Now consider that representation containing these links=
 is used by GUI agent, in this case even &quot;action-type&quot; is not nec=
essary at all and agent can rely on user&#39;s choice. Agent only needs to =
know that:<br>


&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 1. link is an action(and this question is explicitly an=
swered)<br>
&gt; &gt; &gt; &gt; 2. if user choose one agent needs just to dereference i=
ndicated URI<br>
&gt; &gt; &gt; &gt; 3. construct request<br>
&gt; &gt; &gt; &gt; 4. send request to server<br>
&gt; &gt; &gt; &gt; 5. show results to user<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; All of these will remain true for any action type.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; I&#39;m not sure if i talked you down, but i believe &q=
uot;action&quot; relation type is useful and not because it is better(or si=
mpler) compared to rel=3D&quot;edit&quot; for example.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; 1. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-00" target=3D"_blank">http://tools.ietf.org=
/html/draft-ioseb-dzmanashvili-action-link-relation-00</a><br>
&gt; &gt; &gt; &gt; 2. <a href=3D"http://tools.ietf.org/html/draft-ioseb-dz=
manashvili-action-link-relation-01" target=3D"_blank">http://tools.ietf.org=
/html/draft-ioseb-dzmanashvili-action-link-relation-01</a><br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; P.S.<br>
&gt; &gt; &gt; &gt; I was talking about 01 version of spec. 00 is a differe=
nt story.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; ioseb<br>
&gt; &gt; &gt; &gt; &gt; mamund<br>
</div></div>&gt; &gt; &gt; &gt; &gt; <a href=3D"tel:%2B1.859.757.1449" valu=
e=3D"+18597571449">+1.859.757.1449</a> (tel:%2B1.859.757.1449) (tel:%2B1.85=
9.757.1449)<br>
<div class=3D"im">&gt; &gt; &gt; &gt; &gt; skype: mca.amundsen<br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"http://amundsen.com/blog/" target=3D"_b=
lank">http://amundsen.com/blog/</a><br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"http://twitter.com/mamund" target=3D"_b=
lank">http://twitter.com/mamund</a><br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"https://github.com/mamund" target=3D"_b=
lank">https://github.com/mamund</a><br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen=
" target=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a><br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
</div><div><div class=3D"h5">&gt; &gt; &gt; &gt; &gt; On Tue, Aug 27, 2013 =
at 3:40 PM, Ioseb Dzmanashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gma=
il.com">ioseb.dzmanashvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dz=
manashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"=
mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mai=
lto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmai=
l.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dz=
manashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmai=
l.com">ioseb.dzmanashvili@gmail.com</a>)&gt; wrote:<br>


&gt; &gt; &gt; &gt; &gt; &gt; Hi Julian,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks for response!<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Tuesday, August 27, 2013 at 2:15 PM, Julia=
n Reschke wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; On 2013-08-27 11:03, Ioseb Dzmanashvili =
wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi All,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I&#39;ve updated the &quot;action&q=
uot; link relation type spec[1] based on initial feedback.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; As far as initial reactions were ve=
ry controversial and raised a lot of issues i tried to address all of them =
and entirely changed the spec.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; When included in a response, the &q=
uot;action&quot; link relation indicates a<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; target resource that is responsible=
 for performing action which MAY:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Affect state of the context resou=
rce; or<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Initiate process.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The &quot;action&quot; link relatio=
n type can be used to indicate the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; availability of actions supported b=
y the target resource. Examples<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; of such actions include:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Enable/Disable<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Publish/Unpublish<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Start/Stop<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The &quot;action&quot; link relatio=
n type doesn&#39;t convey any semantics other<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; than that an indicated resources re=
present machine readable<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; description of a particular action =
and representation SHOULD contain<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; all necessary details such as: requ=
est method, action URI and other<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; related details to enable agents to=
 be able to construct requests<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; without relying on out-of-band info=
rmation.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Exact type of action SHOULD be indi=
cated through the &quot;action-type&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; link-extension value as per [RFC598=
8] and for maintaining shared<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; understanding of action types curre=
nt specification introduces the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; registry of actions with initial va=
lues of widely accepted and well<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; understood action types.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; For example, if a resource represen=
ts a service, that same<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; representation may include links to=
 resources that represent actions<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; supported by the service:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/restart-action&gt;; rel=
=3D&quot;action&quot;; action-type=3D&quot;restart&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&=
quot;action&quot;; action-type=3D&quot;stop&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; It seems that you are just adding an ind=
irection mechanism. Why is that<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; necessary?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; With indirection mechanism i&#39;m trying to =
solve issues raised around initial version of the spec[1]. There were sever=
al issues:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 1. The &quot;action&quot; link relation type =
doesn&#39;t have enough semantics and automated agents can not follow such =
links if there are several actions included in a representation. With the &=
quot;action-type&quot; link extension + registry of predefined action types=
 agents can distinguish actions from each other.<br>


&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 2. Initial spec stated that if the &quot;acti=
on&quot; link exists in representation, only thing agents should do is to s=
end empty POST request to the target in order to perform action. This appro=
ach was considered as an anti pattern(RPCish and non RESTful). With having =
the &quot;action-type&quot; agents can:<br>


&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; a) distinguish action links from each other;<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; b) if necessary dereference the target to obt=
ain instructions for constructing non empty POST/PUT requests;<br>
&gt; &gt; &gt; &gt; &gt; &gt; c) send properly constructed request back to =
the target; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; d) it makes possible for servers to dictate s=
tructure of the request according to there own needs.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Main purpose of the &quot;action&quot; link r=
elation type is to define semantics of particular class of links - actions.=
 This eliminates the need to redefine notion of &quot;action&quot; for each=
 link relation type which may be qualified as action link. The &quot;action=
-type&quot; is just for naming actions and is particularly useful for autom=
ated agents not necessarily for human interaction oriented agents.<br>


&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Having action type registry is important for =
maintaining shared understanding of particular action types. For example &q=
uot;reset&quot; or &quot;publish&quot; verbs do not need to be redefined fr=
om application to application. I also believe that it is not efficient(or f=
easible) to register all possible actions as link relations.<br>


&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 1. <a href=3D"http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-00" target=3D"_blank">http://tool=
s.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-00</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; 2. <a href=3D"http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-01" target=3D"_blank">http://tool=
s.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-01</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Best regards, Julian<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; &gt; &gt; ioseb<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; _____________________________________________=
__<br>
&gt; &gt; &gt; &gt; &gt; &gt; link-relations mailing list<br>
</div></div>&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:link-relations@=
ietf.org">link-relations@ietf.org</a> (mailto:<a href=3D"mailto:link-relati=
ons@ietf.org">link-relations@ietf.org</a>) (mailto:<a href=3D"mailto:link-r=
elations@ietf.org">link-relations@ietf.org</a>) (mailto:<a href=3D"mailto:l=
ink-relations@ietf.org">link-relations@ietf.org</a>) (mailto:<a href=3D"mai=
lto:link-relations@ietf.org">link-relations@ietf.org</a>) (mailto:<a href=
=3D"mailto:link-relations@ietf.org">link-relations@ietf.org</a>)<br>


&gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.ietf.org/mailman/listi=
nfo/link-relations" target=3D"_blank">https://www.ietf.org/mailman/listinfo=
/link-relations</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</blockquote></div><br></div>

--047d7bae47381a1f2704e5057926--

From ioseb.dzmanashvili@gmail.com  Wed Aug 28 12:38:11 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 246EE11E81AF; Wed, 28 Aug 2013 12:38:11 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.347
X-Spam-Level: *
X-Spam-Status: No, score=1.347 tagged_above=-999 required=5 tests=[AWL=-2.384,  BAYES_50=0.001, J_CHICKENPOX_32=0.6, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_83=0.6, J_CHICKENPOX_92=0.6, SARE_RMML_Stock10=0.13]
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 7oFVMzh3JyP0; Wed, 28 Aug 2013 12:38:09 -0700 (PDT)
Received: from mail-ee0-x230.google.com (mail-ee0-x230.google.com [IPv6:2a00:1450:4013:c00::230]) by ietfa.amsl.com (Postfix) with ESMTP id DA4D211E8178; Wed, 28 Aug 2013 12:38:08 -0700 (PDT)
Received: by mail-ee0-f48.google.com with SMTP id l10so3174802eei.35 for <multiple recipients>; Wed, 28 Aug 2013 12:38:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=T9DBwMree7sMDDKWoo7Q7JaZnMQVjJbVR6uQjyGKYFc=; b=sEn8mVonIsTxi/9XKD+pQsWZEf2/ZR35vtR04X9uWP4T1ZVmnvdEv03mHyrJJ4Rhon ziP7eKBAb6RClNlW8Elpr/mTM9JgIk/R6JUQx1Y2O48Q23KPSrxJz69znmbbEi0nXl1A ewuars9nIwEQQME2yN6+wkzHispHiqSPrO7NYubhX4HfNFlAMH+RZSi7bxDYzEgaBBq7 RyTr4sNrzm0GxDqfSneu4ykZSzlyN0B+22s7WIPbcLj/kTswpj6J7e6u6nUz4+6AE08D NMhpazAg+FXP7mAkE+Am8lsLVppc70Q/mI83pfFxCYpBWqHGV4iwzpnLlecgLE1cJjya 1x8Q==
X-Received: by 10.14.241.74 with SMTP id f50mr45291462eer.29.1377718686934; Wed, 28 Aug 2013 12:38:06 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id j7sm40050776eeo.15.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 12:38:06 -0700 (PDT)
Date: Wed, 28 Aug 2013 23:38:01 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: mike amundsen <mamund@yahoo.com>
Message-ID: <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com>
In-Reply-To: <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 19:38:11 -0000

Mike,

On Wednesday, August 28, 2013 at 9:39 PM, mike amundsen wrote:

> <snip>
> So here is my question: why is it bad=3F
> </snip>
> 1) creates a new registry for action-type instead of using existing reg=
istry for rel (you point this out in the =22there is not start relation y=
et=22 reasoning)
> 2) ignores the use of link relation extension values already establishe=
d in R=46C5988 (see Mike Kelly's question)
> 3) introduces confusion on whether =40rel or =22action-type=22 should b=
e used (see Peter Williams' question)
> 4) uses two values (=22action=22 and =22=7Breason=7D=22) where only one=
 is needed (srsly, a constant string AND a variable=3F) =20
> =20
> IOW, you have two possible solutions already for the same outcome and a=
re not using them. you've been offered at least one issue on conflicting =
implementation and at least one on overly-complex implementation. =20
> =20
> if you are so sure that this implementation detail is important to the =
=5Fresults=5F you want to achieve, then start today by doing it via link =
extensions: =20
> <LINK rel=3D=22http://actions.io/action;action-type=3D=22start=22 ... /=
>
> =20
> you can document and implement this today w/o any need to get an R=46C =
approved or get even buy-in from others. You can create your own registry=
 and open it up to others for adds/edits (similar to the way microformats=
 operates). You can build working implementations, write papers on it, ad=
vocate for use in various forums, etc. =20
> =20
I'd prefer to avoid this, i do not have enough resources to publicly main=
tain such registry ;-)
 =20
> Over time you can monitor and record adoption, judge the up-take you ge=
t and determine whether it proves to be a useful pattern. If it works wel=
l and shows adoption, you'll see much less push-back from me (and, i susp=
ect others) and will be able to replace: <LINK rel=3D=22http://actions.io=
/action;action-type=3D=22start=22 ... /> with <LINK rel=3D=22action;actio=
n-type=3D=22start=22 ... /> and even allow existing implementations to su=
pport both. =20
> =20
> IOW, nothing is stopping you from implementing a compliant version of t=
his approach today and doing it in a way that would be compatible w/ adop=
ting your proposed approach once your approach is proven to be worthy of =
recording as a standard. =20
> =20
> finally, i'll say this:
> <snip>
> Actually as i see it =231 and =232 are of same importance.
> </snip>
> If the =5Fmethod=5F of achieving your results is non-negotiable, I have=
 little else to offer here
> =20

All clear.

As a conclusion:

1. Having the generic =22action=22 relation is worthless, at list as of 0=
0 and 01 proposals. At least i need to find better way to make it accepta=
ble.
2. Action type registry complicates things(and i agree).
3. One possible way is to maintain separate registry(out of IET=46) which=
 is not feasible for me.
4. Most realistic is to register top level action link rels and i've seve=
ral such relations:

- start: start service or process
- stop: stop service or process
- restart: restart service or process
- suspend: suspend service or process
- reset: reset service or process to its initial state

- publish: change state of the resource to published
- unpublish: change state of the resource to unpublished
- archive: change state of the resource to archived
- unarchive: change state of the resource to unarchived

- enable: change state of the resource to enabled
- disable: change state of the resource to disabled

These are actions i used frequently in various applications. Do you think=
 it is reasonable to register all of these as link relations=3F

=46olks=3F What do you think=3F

Cheers,
ioseb
 =20
> . =20
> =20
> Cheers.
> =20
> =20
> mamund
> +1.859.757.1449
> skype: mca.amundsen
> http://amundsen.com/blog/
> http://twitter.com/mamund
> https://github.com/mamund
> http://www.linkedin.com/in/mikeamundsen =20
> =20
> On Wed, Aug 28, 2013 at 12:41 PM, Ioseb Dzmanashvili <ioseb.dzmanashvil=
i=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > Mike,
> > =20
> > On Wednesday, August 28, 2013 at 6:33 PM, mike amundsen wrote:
> > > Ioseb:
> > > =20
> > > now that i understand your aim...
> > > =20
> > > it seems the first item (support a pattern...) is the important one=
 and the other two are just means to that end.
> > Actually as i see it =231 and =232 are of same importance.
> > =20
> > =20
> > > so why is this a good approach=3F
> > =231 and =232 still hold. As i already said =233 makes sense only for=
 m2m scenarios and for GUI clients just knowing that a link is an action =
and how to treat such action links is enough.
> > =20
> > What i'm trying to achieve with my proposal is to generalise meaning =
of action and make it consistent across different applications. Unfortuna=
tely i do not see(or know, or was not able to find) better approach yet b=
ut it is generic enough to solve whole class of problems at least on GUI =
level + partially for m2m cases with =22action-type=22 attribute even if =
we throw action type registry idea away. If we simplify definition of the=
 =22action=22 relation type and say:
> > =20
> > 1. here is the =22action=22 link
> > 2. it points to a resource which describes the action
> > 3. to perform an action fetch it construct request and send it back t=
o server.
> > 4. if you want to know what this particular action means:
> > 4.1. look inside the =22action-type=22 attribute if it presents; or
> > 4.2. fetch the document and look inside it.
> > =20
> > Is not it sufficient enough to cover whole class of problems in a con=
sistent way which are clearly actions and not just related resources=3F
> > =20
> > So here is my question: why is it bad=3F
> > =20
> > > 1) why use the =22action=22 rel PLUS a param (=22start=22)=3F why n=
ot just use the param (=22start=22) as the rel=3F
> > =46or several reasons:
> > =20
> > 1. there is no =22start=22 relation yet.
> > 2. it doesn't have explicit sign that it is an action.
> > 3. there are much more actions which are not registered and also ther=
e is no guarantee that each newly registered relation(which can be qualif=
ied as action) will state that it is an action in a consistent way.
> > 4. the pattern as you noticed is still important(IMHO)
> > =20
> > > 2) why not use two values for the rel as in <LINK rel=3D=22action s=
tart=22 />=3F
> > =20
> > It was suggested in the initial proposal though approach has drawback=
s. if i use more rels=3F <LINK rel=3D=22action foo bar baz=22 /> how to d=
istinguish =22foo=22, =22bar=22 and =22baz=22 from each other=3F does it =
mean that my action now has triple meaning=3F
> > =20
> > > 3) why not use (as mike kelly suggests) an extension URI for the re=
l as in <LINK rel=3D=22http://actions.io/start=22 ... />
> > > =20
> > > 4) why not use a unique element attribute/property such as <LINK re=
l=3D=22action=22 reason=3D=22start=22 .../>=3F
> > =20
> > is it different from =22action-type=22 attribute=3F or maybe problem =
is in a registry of action types=3F
> > =20
> > > 5) why not use a unique document element/property such as <action r=
el=3D=22start=22 href=3D=22...=22/> or =7B=22action=22: =7B=22rel=22:=22s=
tart=22, =22href=22:=22...=22=7D=7D=3F
> > Well, in custom media types i can do anything, though it doesn't make=
 sense outside of particular format or domain. Otherwise it is ok and i u=
se similar approach in practice.
> > =20
> > Cheers,
> > ioseb
> > =20
> > > =20
> > > mamund
> > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> > > skype: mca.amundsen
> > > http://amundsen.com/blog/
> > > http://twitter.com/mamund
> > > https://github.com/mamund
> > > http://www.linkedin.com/in/mikeamundsen
> > > =20
> > > On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanashvili <ioseb.dzmanash=
vili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dz=
manashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > > > Mike,
> > > > =20
> > > > On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:
> > > > =20
> > > > > OK, from your response i get the following:
> > > > > =20
> > > > > 1) you want to support a pattern where machine-readable state t=
ransition instructions appear at the end of some URL.
> > > > > 2) you want to indicate those instructions are available by mar=
king the URL w/ the string literal =22action=22 (via rel in your illustra=
tions)
> > > > > 3) you want to indicate the reason for using these instructions=
 w/ an =22action-type=22 string (via a link-rel param in your illustratio=
ns)
> > > > > =20
> > > > > that's it. nothing else.
> > > > > =20
> > > > > do i have this correct=3F
> > > > =20
> > > > Exactly=21 That's it and nothing else.
> > > > =20
> > > > Cheers,
> > > > ioseb
> > > > =20
> > > > > =20
> > > > > =20
> > > > > mamund
> > > > > +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449)=

> > > > > skype: mca.amundsen
> > > > > http://amundsen.com/blog/
> > > > > http://twitter.com/mamund
> > > > > https://github.com/mamund
> > > > > http://www.linkedin.com/in/mikeamundsen
> > > > > =20
> > > > > On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <ioseb.dzma=
nashvili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:iose=
b.dzmanashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com) (mail=
to:ioseb.dzmanashvili=40gmail.com)> wrote:
> > > > > > Hi Mike,
> > > > > > =20
> > > > > > Thanks for the question=21
> > > > > > =20
> > > > > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:=

> > > > > > =20
> > > > > > > Ioseb:
> > > > > > > =20
> > > > > > > it is not clear to me why: <link rel=3D=22action;action-typ=
e=3D'edit'=22 href=3D=22...=22 />
> > > > > > > is preferable to: <link rel=3D=22edit=22 href=3D=22...=22 /=
>
> > > > > > > =20
> > > > > > > talk me down ;)
> > > > > > let me try ;)
> > > > > > =20
> > > > > > Question is not about why: Link: <=E2=80=A6>; rel=3D=22action=
=22; action-type=3D=22edit=22 is preferable to: Link: <=E2=80=A6>; rel=3D=
=22edit=22.
> > > > > > =20
> > > > > > Of course i'd choose rel=3D=22run-forest-run=22 if there is a=
 registered link relation type, but:
> > > > > > =20
> > > > > > 1. The =22action=22 link relation is generic enough, has well=
 understood meaning and is useful on its own especially for human oriente=
d agents.
> > > > > > 2. The =22action-type=22 optional attribute may be used for s=
pecifying exact meaning of actions and this makes action links more usefu=
l for m2m scenarios.
> > > > > > =20
> > > > > > Now consider this link:
> > > > > > =20
> > > > > > Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22=
suspend=22; title=3D=22Suspend=22
> > > > > > =20
> > > > > > What it says=3F
> > > > > > =20
> > > > > > 1. it is an action
> > > > > > 2. target resource represents description of the action which=
 contains: request method, submit URI, definition of action, other detail=
s etc
> > > > > > 3. agent can look inside =22action-type=22 to determine wheth=
er it needs this action type or not
> > > > > > 4. agent can dereference it, construct request and send it to=
 server
> > > > > > =20
> > > > > > =20
> > > > > > now if we add more actions:
> > > > > > =20
> > > > > > Link: </suspend-action>; rel=3D=22action=22; action-type=3D=22=
suspend=22; title=3D=22Suspend=22
> > > > > > Link: </restart-action>; rel=3D=22action=22; action-type=3D=22=
restart=22; title=3D=22Restart=22
> > > > > > =20
> > > > > > Link: </stop-action>; rel=3D=22action=22; action-type=3D=22st=
op=22; title=3D=22Stop=22
> > > > > > =20
> > > > > > =20
> > > > > > =231, =232, =233 and =234 will be true for all of them withou=
t exceptions.
> > > > > > =20
> > > > > > Now consider that representation containing these links is us=
ed by GUI agent, in this case even =22action-type=22 is not necessary at =
all and agent can rely on user's choice. Agent only needs to know that:
> > > > > > =20
> > > > > > 1. link is an action(and this question is explicitly answered=
)
> > > > > > 2. if user choose one agent needs just to dereference indicat=
ed URI
> > > > > > 3. construct request
> > > > > > 4. send request to server
> > > > > > 5. show results to user
> > > > > > =20
> > > > > > All of these will remain true for any action type.
> > > > > > =20
> > > > > > I'm not sure if i talked you down, but i believe =22action=22=
 relation type is useful and not because it is better(or simpler) compare=
d to rel=3D=22edit=22 for example.
> > > > > > =20
> > > > > > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action=
-link-relation-00
> > > > > > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action=
-link-relation-01
> > > > > > =20
> > > > > > P.S.
> > > > > > I was talking about 01 version of spec. 00 is a different sto=
ry.
> > > > > > =20
> > > > > > Cheers,
> > > > > > ioseb
> > > > > > > mamund
> > > > > > > +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1=
449) (tel:%2B1.859.757.1449)
> > > > > > > skype: mca.amundsen
> > > > > > > http://amundsen.com/blog/
> > > > > > > http://twitter.com/mamund
> > > > > > > https://github.com/mamund
> > > > > > > http://www.linkedin.com/in/mikeamundsen
> > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <ioseb.=
dzmanashvili=40gmail.com (mailto:ioseb.dzmanashvili=40gmail.com) (mailto:=
ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail.com) (=
mailto:ioseb.dzmanashvili=40gmail.com) (mailto:ioseb.dzmanashvili=40gmail=
.com) (mailto:ioseb.dzmanashvili=40gmail.com)> wrote:
> > > > > > > > Hi Julian,
> > > > > > > > =20
> > > > > > > > Thanks for response=21
> > > > > > > > =20
> > > > > > > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wr=
ote:
> > > > > > > > =20
> > > > > > > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > > > > > > Hi All,
> > > > > > > > > > =20
> > > > > > > > > > I've updated the =22action=22 link relation type spec=
=5B1=5D based on initial feedback.
> > > > > > > > > > =20
> > > > > > > > > > As far as initial reactions were very controversial a=
nd raised a lot of issues i tried to address all of them and entirely cha=
nged the spec.
> > > > > > > > > > =20
> > > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D
> > > > > > > > > > When included in a response, the =22action=22 link re=
lation indicates a
> > > > > > > > > > target resource that is responsible for performing ac=
tion which MAY:
> > > > > > > > > > =20
> > > > > > > > > > - Affect state of the context resource; or
> > > > > > > > > > - Initiate process.
> > > > > > > > > > =20
> > > > > > > > > > The =22action=22 link relation type can be used to in=
dicate the
> > > > > > > > > > availability of actions supported by the target resou=
rce. Examples
> > > > > > > > > > of such actions include:
> > > > > > > > > > =20
> > > > > > > > > > - Enable/Disable
> > > > > > > > > > - Publish/Unpublish
> > > > > > > > > > - Start/Stop
> > > > > > > > > > =20
> > > > > > > > > > The =22action=22 link relation type doesn't convey an=
y semantics other
> > > > > > > > > > than that an indicated resources represent machine re=
adable
> > > > > > > > > > description of a particular action and representation=
 SHOULD contain
> > > > > > > > > > all necessary details such as: request method, action=
 URI and other
> > > > > > > > > > related details to enable agents to be able to constr=
uct requests
> > > > > > > > > > without relying on out-of-band information.
> > > > > > > > > > =20
> > > > > > > > > > Exact type of action SHOULD be indicated through the =
=22action-type=22
> > > > > > > > > > link-extension value as per =5BR=46C5988=5D and for m=
aintaining shared
> > > > > > > > > > understanding of action types current specification i=
ntroduces the
> > > > > > > > > > registry of actions with initial values of widely acc=
epted and well
> > > > > > > > > > understood action types.
> > > > > > > > > > =20
> > > > > > > > > > =46or example, if a resource represents a service, th=
at same
> > > > > > > > > > representation may include links to resources that re=
present actions
> > > > > > > > > > supported by the service:
> > > > > > > > > > =20
> > > > > > > > > > Link: </restart-action>; rel=3D=22action=22; action-t=
ype=3D=22restart=22
> > > > > > > > > > Link: </stop-action>; rel=3D=22action=22; action-type=
=3D=22stop=22
> > > > > > > > > > ...
> > > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > =20
> > > > > > > > > It seems that you are just adding an indirection mechan=
ism. Why is that
> > > > > > > > > necessary=3F
> > > > > > > > > =20
> > > > > > > > =20
> > > > > > > > =20
> > > > > > > > =20
> > > > > > > > =20
> > > > > > > > =20
> > > > > > > > With indirection mechanism i'm trying to solve issues rai=
sed around initial version of the spec=5B1=5D. There were several issues:=

> > > > > > > > =20
> > > > > > > > 1. The =22action=22 link relation type doesn't have enoug=
h semantics and automated agents can not follow such links if there are s=
everal actions included in a representation. With the =22action-type=22 l=
ink extension + registry of predefined action types agents can distinguis=
h actions from each other.
> > > > > > > > =20
> > > > > > > > 2. Initial spec stated that if the =22action=22 link exis=
ts in representation, only thing agents should do is to send empty POST r=
equest to the target in order to perform action. This approach was consid=
ered as an anti pattern(RPCish and non RESTful). With having the =22actio=
n-type=22 agents can:
> > > > > > > > =20
> > > > > > > > a) distinguish action links from each other;
> > > > > > > > b) if necessary dereference the target to obtain instruct=
ions for constructing non empty POST/PUT requests;
> > > > > > > > c) send properly constructed request back to the target; =
and
> > > > > > > > d) it makes possible for servers to dictate structure of =
the request according to there own needs.
> > > > > > > > =20
> > > > > > > > Main purpose of the =22action=22 link relation type is to=
 define semantics of particular class of links - actions. This eliminates=
 the need to redefine notion of =22action=22 for each link relation type =
which may be qualified as action link. The =22action-type=22 is just for =
naming actions and is particularly useful for automated agents not necess=
arily for human interaction oriented agents.
> > > > > > > > =20
> > > > > > > > Having action type registry is important for maintaining =
shared understanding of particular action types. =46or example =22reset=22=
 or =22publish=22 verbs do not need to be redefined from application to a=
pplication. I also believe that it is not efficient(or feasible) to regis=
ter all possible actions as link relations.
> > > > > > > > =20
> > > > > > > > 1. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-ac=
tion-link-relation-00
> > > > > > > > 2. http://tools.ietf.org/html/draft-ioseb-dzmanashvili-ac=
tion-link-relation-01
> > > > > > > > > =20
> > > > > > > > > Best regards, Julian
> > > > > > > > Cheers,
> > > > > > > > ioseb
> > > > > > > > =20
> > > > > > > > =5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=5F=
=5F=5F=5F
> > > > > > > > link-relations mailing list
> > > > > > > > link-relations=40ietf.org (mailto:link-relations=40ietf.o=
rg) (mailto:link-relations=40ietf.org) (mailto:link-relations=40ietf.org)=
 (mailto:link-relations=40ietf.org) (mailto:link-relations=40ietf.org) (m=
ailto:link-relations=40ietf.org)
> > > > > > > > https://www.ietf.org/mailman/listinfo/link-relations
> > > > > > > > =20
> > > > > > > =20
> > > > > > > =20
> > > > > > =20
> > > > > > =20
> > > > > =20
> > > > > =20
> > > > =20
> > > > =20
> > > =20
> > > =20
> > =20
> > =20
> =20
> =20




From mca@amundsen.com  Wed Aug 28 13:02:48 2013
Return-Path: <mca@amundsen.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id DC26921F9D53 for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 13:02:48 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 4.28
X-Spam-Level: ****
X-Spam-Status: No, score=4.28 tagged_above=-999 required=5 tests=[AWL=-1.371,  BAYES_50=0.001, FM_FORGED_GMAIL=0.622, FORGED_YAHOO_RCVD=2.297,  HTML_MESSAGE=0.001, J_CHICKENPOX_32=0.6, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_83=0.6, J_CHICKENPOX_92=0.6, RCVD_IN_DNSWL_LOW=-1, SARE_RMML_Stock10=0.13]
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 ae725-nc6eSN for <link-relations@ietfa.amsl.com>; Wed, 28 Aug 2013 13:02:45 -0700 (PDT)
Received: from mail-we0-f178.google.com (mail-we0-f178.google.com [74.125.82.178]) by ietfa.amsl.com (Postfix) with ESMTP id 95BAE11E8175 for <link-relations@ietf.org>; Wed, 28 Aug 2013 13:02:44 -0700 (PDT)
Received: by mail-we0-f178.google.com with SMTP id u54so5507487wes.23 for <link-relations@ietf.org>; Wed, 28 Aug 2013 13:02:39 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=Co0gVadWXsrHgP3exQ3gXN0cwr3wjU72GEVBmVRIsbs=; b=bIcjBMXJryHruN+5Q/3U4Q/nRSGK7106SrLjIxLO+1/a8aBFjOSnWuB7nijFN3nj37 i4JItfYsbZC0jglm4eFqxoI9/oD2ZfjKz+Ha/hkzYPgJWXQy2Ygqb8f//2Xp++dYaS3U pQVmRdLxj9UyH7OyXm8C0gi42VsFyh0LVUjq6b/5mv55Cq4l7+EyXjeSCOLtklDhuooO v1I08H61ka1nDQQ/xCweYcC1RHoXfmiDmFhIUJ1lfhTXjrrjYZfS1MMHKZFRF+A6DwEY GlTPr5UQL+H46jlrciByMzf0me9cayC3Tg5zAddOWJcQotEj8kH7glDs4yEMGggljnXN b05w==
X-Gm-Message-State: ALoCoQmIxguQ3J7tViL7HRgGdTpSOqJa+hc2RJQkBDQmArZb0iAr1ezfiopn6wZhg72IC17GHFpA
X-Received: by 10.194.93.135 with SMTP id cu7mr5101136wjb.73.1377720159661; Wed, 28 Aug 2013 13:02:39 -0700 (PDT)
MIME-Version: 1.0
Sender: mca@amundsen.com
Received: by 10.194.151.7 with HTTP; Wed, 28 Aug 2013 13:02:19 -0700 (PDT)
In-Reply-To: <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com>
From: mike amundsen <mamund@yahoo.com>
Date: Wed, 28 Aug 2013 16:02:19 -0400
X-Google-Sender-Auth: fYDpH5XD66dpILJzv8ltAX4BVOM
Message-ID: <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
Content-Type: multipart/alternative; boundary=047d7bb03eb6b782fe04e50778ce
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 20:02:49 -0000

--047d7bb03eb6b782fe04e50778ce
Content-Type: text/plain; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

If you want to author and register new link relation values i have a couple
recommendations:

1) check out the microformats existing rel values page[1] along with the
usual IANA Link Relations page[2]. And the Dublin Core page has some good
stuff, too[3]. these will give you an idea of what's already out there and
some sense of what is in use. Peeking at Schema.org[4] and Activity
Streams[5] may help, but i've not done that much lately.

2) when crafting link rel values, i got good advice (I think it was from
JulianR?) to cast the definitions as "relations" not just "verbs" or
"nouns." for example:
"The link relation {value} identifies a target resource that represents {a
concept}." There are variations, but you'll get the idea.

3) once you have solid defs/values and documentation, i'd post that
publicly as a set and ask for feedback (here is a great place to start)

4) once you feel that the defs and values are solid, i suggest posting them
to the microformats wiki first. they are open to edits and also very quick
to provide feedback. i've had a good experience there.

5) once you have entries in the microformats list, you're more likely to be
able (IMO) to translate late that same set of des/values into something
that passes muster as an Informational RFC.

Of course, you can start using the values now (and getting others to do the
same) by relying on the Link Extension rules from 5988[6]. Watching that
unfold will give you and idea on the usefulness/popularity of your proposed
values.

Finally, i had some (old) random notes on my early work learning about
Link-Rel-Values[7] that might still contain some value. Feel free to poke
around there.

Hope this helps.




[1] http://microformats.org/wiki/existing-rel-values
[2] http://www.iana.org/assignments/link-relations/link-relations.xml
[3] http://dublincore.org/documents/dc-html/
[4] http://schema.org/
[5] http://activitystrea.ms/
[6] http://tools.ietf.org/html/rfc5988#section-4.2
[7] http://amundsen.com/media-types/linkrelations/


mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mikeamundsen


On Wed, Aug 28, 2013 at 3:38 PM, Ioseb Dzmanashvili <
ioseb.dzmanashvili@gmail.com> wrote:

> Mike,
>
> On Wednesday, August 28, 2013 at 9:39 PM, mike amundsen wrote:
>
> > <snip>
> > So here is my question: why is it bad?
> > </snip>
> > 1) creates a new registry for action-type instead of using existing
> registry for rel (you point this out in the "there is not start relation
> yet" reasoning)
> > 2) ignores the use of link relation extension values already establishe=
d
> in RFC5988 (see Mike Kelly's question)
> > 3) introduces confusion on whether @rel or "action-type" should be used
> (see Peter Williams' question)
> > 4) uses two values ("action" and "{reason}") where only one is needed
> (srsly, a constant string AND a variable?)
> >
> > IOW, you have two possible solutions already for the same outcome and
> are not using them. you've been offered at least one issue on conflicting
> implementation and at least one on overly-complex implementation.
> >
> > if you are so sure that this implementation detail is important to the
> _results_ you want to achieve, then start today by doing it via link
> extensions:
> > <LINK rel=3D"http://actions.io/action;action-type=3D"start" ... />
> >
> > you can document and implement this today w/o any need to get an RFC
> approved or get even buy-in from others. You can create your own registry
> and open it up to others for adds/edits (similar to the way microformats
> operates). You can build working implementations, write papers on it,
> advocate for use in various forums, etc.
> >
> I'd prefer to avoid this, i do not have enough resources to publicly
> maintain such registry ;-)
>
> > Over time you can monitor and record adoption, judge the up-take you ge=
t
> and determine whether it proves to be a useful pattern. If it works well
> and shows adoption, you'll see much less push-back from me (and, i suspec=
t
> others) and will be able to replace: <LINK rel=3D"
> http://actions.io/action;action-type=3D"start" ... /> with <LINK
> rel=3D"action;action-type=3D"start" ... /> and even allow existing
> implementations to support both.
> >
> > IOW, nothing is stopping you from implementing a compliant version of
> this approach today and doing it in a way that would be compatible w/
> adopting your proposed approach once your approach is proven to be worthy
> of recording as a standard.
> >
> > finally, i'll say this:
> > <snip>
> > Actually as i see it #1 and #2 are of same importance.
> > </snip>
> > If the _method_ of achieving your results is non-negotiable, I have
> little else to offer here
> >
>
> All clear.
>
> As a conclusion:
>
> 1. Having the generic "action" relation is worthless, at list as of 00 an=
d
> 01 proposals. At least i need to find better way to make it acceptable.
> 2. Action type registry complicates things(and i agree).
> 3. One possible way is to maintain separate registry(out of IETF) which i=
s
> not feasible for me.
> 4. Most realistic is to register top level action link rels and i've
> several such relations:
>
> - start: start service or process
> - stop: stop service or process
> - restart: restart service or process
> - suspend: suspend service or process
> - reset: reset service or process to its initial state
>
> - publish: change state of the resource to published
> - unpublish: change state of the resource to unpublished
> - archive: change state of the resource to archived
> - unarchive: change state of the resource to unarchived
>
> - enable: change state of the resource to enabled
> - disable: change state of the resource to disabled
>
> These are actions i used frequently in various applications. Do you think
> it is reasonable to register all of these as link relations?
>
> Folks? What do you think?
>
> Cheers,
> ioseb
>
> > .
> >
> > Cheers.
> >
> >
> > mamund
> > +1.859.757.1449
> > skype: mca.amundsen
> > http://amundsen.com/blog/
> > http://twitter.com/mamund
> > https://github.com/mamund
> > http://www.linkedin.com/in/mikeamundsen
> >
> > On Wed, Aug 28, 2013 at 12:41 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)> wrote=
:
> > > Mike,
> > >
> > > On Wednesday, August 28, 2013 at 6:33 PM, mike amundsen wrote:
> > > > Ioseb:
> > > >
> > > > now that i understand your aim...
> > > >
> > > > it seems the first item (support a pattern...) is the important one
> and the other two are just means to that end.
> > > Actually as i see it #1 and #2 are of same importance.
> > >
> > >
> > > > so why is this a good approach?
> > > #1 and #2 still hold. As i already said #3 makes sense only for m2m
> scenarios and for GUI clients just knowing that a link is an action and h=
ow
> to treat such action links is enough.
> > >
> > > What i'm trying to achieve with my proposal is to generalise meaning
> of action and make it consistent across different applications.
> Unfortunately i do not see(or know, or was not able to find) better
> approach yet but it is generic enough to solve whole class of problems at
> least on GUI level + partially for m2m cases with "action-type" attribute
> even if we throw action type registry idea away. If we simplify definitio=
n
> of the "action" relation type and say:
> > >
> > > 1. here is the "action" link
> > > 2. it points to a resource which describes the action
> > > 3. to perform an action fetch it construct request and send it back t=
o
> server.
> > > 4. if you want to know what this particular action means:
> > > 4.1. look inside the "action-type" attribute if it presents; or
> > > 4.2. fetch the document and look inside it.
> > >
> > > Is not it sufficient enough to cover whole class of problems in a
> consistent way which are clearly actions and not just related resources?
> > >
> > > So here is my question: why is it bad?
> > >
> > > > 1) why use the "action" rel PLUS a param ("start")? why not just us=
e
> the param ("start") as the rel?
> > > For several reasons:
> > >
> > > 1. there is no "start" relation yet.
> > > 2. it doesn't have explicit sign that it is an action.
> > > 3. there are much more actions which are not registered and also ther=
e
> is no guarantee that each newly registered relation(which can be qualifie=
d
> as action) will state that it is an action in a consistent way.
> > > 4. the pattern as you noticed is still important(IMHO)
> > >
> > > > 2) why not use two values for the rel as in <LINK rel=3D"action sta=
rt"
> />?
> > >
> > > It was suggested in the initial proposal though approach has
> drawbacks. if i use more rels? <LINK rel=3D"action foo bar baz" /> how to
> distinguish "foo", "bar" and "baz" from each other? does it mean that my
> action now has triple meaning?
> > >
> > > > 3) why not use (as mike kelly suggests) an extension URI for the re=
l
> as in <LINK rel=3D"http://actions.io/start" ... />
> > > >
> > > > 4) why not use a unique element attribute/property such as <LINK
> rel=3D"action" reason=3D"start" .../>?
> > >
> > > is it different from "action-type" attribute? or maybe problem is in =
a
> registry of action types?
> > >
> > > > 5) why not use a unique document element/property such as <action
> rel=3D"start" href=3D"..."/> or {"action": {"rel":"start", "href":"..."}}=
?
> > > Well, in custom media types i can do anything, though it doesn't make
> sense outside of particular format or domain. Otherwise it is ok and i us=
e
> similar approach in practice.
> > >
> > > Cheers,
> > > ioseb
> > >
> > > >
> > > > mamund
> > > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> > > > skype: mca.amundsen
> > > > http://amundsen.com/blog/
> > > > http://twitter.com/mamund
> > > > https://github.com/mamund
> > > > http://www.linkedin.com/in/mikeamundsen
> > > >
> > > > On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)>
> wrote:
> > > > > Mike,
> > > > >
> > > > > On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:
> > > > >
> > > > > > OK, from your response i get the following:
> > > > > >
> > > > > > 1) you want to support a pattern where machine-readable state
> transition instructions appear at the end of some URL.
> > > > > > 2) you want to indicate those instructions are available by
> marking the URL w/ the string literal "action" (via rel in your
> illustrations)
> > > > > > 3) you want to indicate the reason for using these instructions
> w/ an "action-type" string (via a link-rel param in your illustrations)
> > > > > >
> > > > > > that's it. nothing else.
> > > > > >
> > > > > > do i have this correct?
> > > > >
> > > > > Exactly! That's it and nothing else.
> > > > >
> > > > > Cheers,
> > > > > ioseb
> > > > >
> > > > > >
> > > > > >
> > > > > > mamund
> > > > > > +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449)
> > > > > > skype: mca.amundsen
> > > > > > http://amundsen.com/blog/
> > > > > > http://twitter.com/mamund
> > > > > > https://github.com/mamund
> > > > > > http://www.linkedin.com/in/mikeamundsen
> > > > > >
> > > > > > On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)
> (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
> > > > > > > Hi Mike,
> > > > > > >
> > > > > > > Thanks for the question!
> > > > > > >
> > > > > > > On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
> > > > > > >
> > > > > > > > Ioseb:
> > > > > > > >
> > > > > > > > it is not clear to me why: <link
> rel=3D"action;action-type=3D'edit'" href=3D"..." />
> > > > > > > > is preferable to: <link rel=3D"edit" href=3D"..." />
> > > > > > > >
> > > > > > > > talk me down ;)
> > > > > > > let me try ;)
> > > > > > >
> > > > > > > Question is not about why: Link: <=85>; rel=3D"action";
> action-type=3D"edit" is preferable to: Link: <=85>; rel=3D"edit".
> > > > > > >
> > > > > > > Of course i'd choose rel=3D"run-forest-run" if there is a
> registered link relation type, but:
> > > > > > >
> > > > > > > 1. The "action" link relation is generic enough, has well
> understood meaning and is useful on its own especially for human oriented
> agents.
> > > > > > > 2. The "action-type" optional attribute may be used for
> specifying exact meaning of actions and this makes action links more usef=
ul
> for m2m scenarios.
> > > > > > >
> > > > > > > Now consider this link:
> > > > > > >
> > > > > > > Link: </suspend-action>; rel=3D"action"; action-type=3D"suspe=
nd";
> title=3D"Suspend"
> > > > > > >
> > > > > > > What it says?
> > > > > > >
> > > > > > > 1. it is an action
> > > > > > > 2. target resource represents description of the action which
> contains: request method, submit URI, definition of action, other details
> etc
> > > > > > > 3. agent can look inside "action-type" to determine whether i=
t
> needs this action type or not
> > > > > > > 4. agent can dereference it, construct request and send it to
> server
> > > > > > >
> > > > > > >
> > > > > > > now if we add more actions:
> > > > > > >
> > > > > > > Link: </suspend-action>; rel=3D"action"; action-type=3D"suspe=
nd";
> title=3D"Suspend"
> > > > > > > Link: </restart-action>; rel=3D"action"; action-type=3D"resta=
rt";
> title=3D"Restart"
> > > > > > >
> > > > > > > Link: </stop-action>; rel=3D"action"; action-type=3D"stop";
> title=3D"Stop"
> > > > > > >
> > > > > > >
> > > > > > > #1, #2, #3 and #4 will be true for all of them without
> exceptions.
> > > > > > >
> > > > > > > Now consider that representation containing these links is
> used by GUI agent, in this case even "action-type" is not necessary at al=
l
> and agent can rely on user's choice. Agent only needs to know that:
> > > > > > >
> > > > > > > 1. link is an action(and this question is explicitly answered=
)
> > > > > > > 2. if user choose one agent needs just to dereference
> indicated URI
> > > > > > > 3. construct request
> > > > > > > 4. send request to server
> > > > > > > 5. show results to user
> > > > > > >
> > > > > > > All of these will remain true for any action type.
> > > > > > >
> > > > > > > I'm not sure if i talked you down, but i believe "action"
> relation type is useful and not because it is better(or simpler) compared
> to rel=3D"edit" for example.
> > > > > > >
> > > > > > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > > > > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > > > > > >
> > > > > > > P.S.
> > > > > > > I was talking about 01 version of spec. 00 is a different
> story.
> > > > > > >
> > > > > > > Cheers,
> > > > > > > ioseb
> > > > > > > > mamund
> > > > > > > > +1.859.757.1449 (tel:%2B1.859.757.1449)
> (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449)
> > > > > > > > skype: mca.amundsen
> > > > > > > > http://amundsen.com/blog/
> > > > > > > > http://twitter.com/mamund
> > > > > > > > https://github.com/mamund
> > > > > > > > http://www.linkedin.com/in/mikeamundsen
> > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > > > On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili <
> ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)
> (mailto:ioseb.dzmanashvili@gmail.com) (mailto:ioseb.dzmanashvili@gmail.co=
m)
> (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
> > > > > > > > > Hi Julian,
> > > > > > > > >
> > > > > > > > > Thanks for response!
> > > > > > > > >
> > > > > > > > > On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke
> wrote:
> > > > > > > > >
> > > > > > > > > > On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
> > > > > > > > > > > Hi All,
> > > > > > > > > > >
> > > > > > > > > > > I've updated the "action" link relation type spec[1]
> based on initial feedback.
> > > > > > > > > > >
> > > > > > > > > > > As far as initial reactions were very controversial
> and raised a lot of issues i tried to address all of them and entirely
> changed the spec.
> > > > > > > > > > >
> > > > > > > > > > > =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D
> > > > > > > > > > > When included in a response, the "action" link
> relation indicates a
> > > > > > > > > > > target resource that is responsible for performing
> action which MAY:
> > > > > > > > > > >
> > > > > > > > > > > - Affect state of the context resource; or
> > > > > > > > > > > - Initiate process.
> > > > > > > > > > >
> > > > > > > > > > > The "action" link relation type can be used to
> indicate the
> > > > > > > > > > > availability of actions supported by the target
> resource. Examples
> > > > > > > > > > > of such actions include:
> > > > > > > > > > >
> > > > > > > > > > > - Enable/Disable
> > > > > > > > > > > - Publish/Unpublish
> > > > > > > > > > > - Start/Stop
> > > > > > > > > > >
> > > > > > > > > > > The "action" link relation type doesn't convey any
> semantics other
> > > > > > > > > > > than that an indicated resources represent machine
> readable
> > > > > > > > > > > description of a particular action and representation
> SHOULD contain
> > > > > > > > > > > all necessary details such as: request method, action
> URI and other
> > > > > > > > > > > related details to enable agents to be able to
> construct requests
> > > > > > > > > > > without relying on out-of-band information.
> > > > > > > > > > >
> > > > > > > > > > > Exact type of action SHOULD be indicated through the
> "action-type"
> > > > > > > > > > > link-extension value as per [RFC5988] and for
> maintaining shared
> > > > > > > > > > > understanding of action types current specification
> introduces the
> > > > > > > > > > > registry of actions with initial values of widely
> accepted and well
> > > > > > > > > > > understood action types.
> > > > > > > > > > >
> > > > > > > > > > > For example, if a resource represents a service, that
> same
> > > > > > > > > > > representation may include links to resources that
> represent actions
> > > > > > > > > > > supported by the service:
> > > > > > > > > > >
> > > > > > > > > > > Link: </restart-action>; rel=3D"action";
> action-type=3D"restart"
> > > > > > > > > > > Link: </stop-action>; rel=3D"action"; action-type=3D"=
stop"
> > > > > > > > > > > ...
> > > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > >
> > > > > > > > > > It seems that you are just adding an indirection
> mechanism. Why is that
> > > > > > > > > > necessary?
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > With indirection mechanism i'm trying to solve issues
> raised around initial version of the spec[1]. There were several issues:
> > > > > > > > >
> > > > > > > > > 1. The "action" link relation type doesn't have enough
> semantics and automated agents can not follow such links if there are
> several actions included in a representation. With the "action-type" link
> extension + registry of predefined action types agents can distinguish
> actions from each other.
> > > > > > > > >
> > > > > > > > > 2. Initial spec stated that if the "action" link exists i=
n
> representation, only thing agents should do is to send empty POST request
> to the target in order to perform action. This approach was considered as
> an anti pattern(RPCish and non RESTful). With having the "action-type"
> agents can:
> > > > > > > > >
> > > > > > > > > a) distinguish action links from each other;
> > > > > > > > > b) if necessary dereference the target to obtain
> instructions for constructing non empty POST/PUT requests;
> > > > > > > > > c) send properly constructed request back to the target;
> and
> > > > > > > > > d) it makes possible for servers to dictate structure of
> the request according to there own needs.
> > > > > > > > >
> > > > > > > > > Main purpose of the "action" link relation type is to
> define semantics of particular class of links - actions. This eliminates
> the need to redefine notion of "action" for each link relation type which
> may be qualified as action link. The "action-type" is just for naming
> actions and is particularly useful for automated agents not necessarily f=
or
> human interaction oriented agents.
> > > > > > > > >
> > > > > > > > > Having action type registry is important for maintaining
> shared understanding of particular action types. For example "reset" or
> "publish" verbs do not need to be redefined from application to
> application. I also believe that it is not efficient(or feasible) to
> register all possible actions as link relations.
> > > > > > > > >
> > > > > > > > > 1.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
00
> > > > > > > > > 2.
> http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-=
01
> > > > > > > > > >
> > > > > > > > > > Best regards, Julian
> > > > > > > > > Cheers,
> > > > > > > > > ioseb
> > > > > > > > >
> > > > > > > > > _______________________________________________
> > > > > > > > > link-relations mailing list
> > > > > > > > > link-relations@ietf.org (mailto:link-relations@ietf.org)
> (mailto:link-relations@ietf.org) (mailto:link-relations@ietf.org) (mailto=
:
> link-relations@ietf.org) (mailto:link-relations@ietf.org) (mailto:
> link-relations@ietf.org)
> > > > > > > > > https://www.ietf.org/mailman/listinfo/link-relations
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > >
> > > >
> > >
> > >
> >
> >
>
>
>
>

--047d7bb03eb6b782fe04e50778ce
Content-Type: text/html; charset=windows-1252
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr">If you want to author and register new link relation value=
s i have a couple recommendations:<div><br></div><div>1) check out the micr=
oformats existing rel values page[1] along with the usual IANA Link Relatio=
ns page[2]. And the Dublin Core page has some good stuff, too[3]. these wil=
l give you an idea of what&#39;s already out there and some sense of what i=
s in use. Peeking at Schema.org[4] and Activity Streams[5] may help, but i&=
#39;ve not done that much lately.</div>


<div><br></div><div>2) when crafting link rel values, i got good advice (I =
think it was from JulianR?) to cast the definitions as &quot;relations&quot=
; not just &quot;verbs&quot; or &quot;nouns.&quot; for example:</div>
<div>&quot;The <span style=3D"font-size:1em">link relation {value} identifi=
es a target resource that represents {a concept}.&quot; There are variation=
s, but you&#39;ll get the idea.</span></div><div>
<span style=3D"font-size:1em"><br></span></div><div><span style=3D"font-siz=
e:1em">3) once you have solid defs/values and documentation, i&#39;d post t=
hat publicly as a set and ask for feedback (here is a great place to start)=
</span></div>


<div><span style=3D"font-size:1em"><br></span></div><div><span style=3D"fon=
t-size:1em">4) once you feel that the defs and values are solid, i suggest =
posting them to the microformats wiki first. they are open to edits and als=
o very quick to provide feedback. i&#39;ve had a good experience there.</sp=
an></div>


<div><span style=3D"font-size:1em"><br></span></div><div><span style=3D"fon=
t-size:1em">5) once you have entries in the microformats list, you&#39;re m=
ore likely to be able (IMO) to translate late that same set of des/values i=
nto something that passes muster as an Informational RFC.</span></div>


<div><span style=3D"font-size:1em"><br></span></div><div><span style=3D"fon=
t-size:1em">Of course, you can start using the values now (and getting othe=
rs to do the same) by relying on the Link Extension rules from 5988[6]. Wat=
ching that unfold will give you and idea on the usefulness/popularity of yo=
ur proposed values.</span></div>


<div><span style=3D"font-size:1em"><br></span></div><div style><span style=
=3D"font-size:1em">Finally, i had some (old) random notes on my early work =
learning about Link-Rel-Values[7] that might still contain some value. Feel=
 free to poke around there.</span></div>

<div style><span style=3D"font-size:1em"><br></span></div><div><span style=
=3D"font-size:1em">Hope this helps.</span></div><div><br></div><div><br></d=
iv><div><br></div>
<div><br></div><div>[1]=A0<a href=3D"http://microformats.org/wiki/existing-=
rel-values" target=3D"_blank">http://microformats.org/wiki/existing-rel-val=
ues</a></div><div>[2]=A0<a href=3D"http://www.iana.org/assignments/link-rel=
ations/link-relations.xml" target=3D"_blank">http://www.iana.org/assignment=
s/link-relations/link-relations.xml</a></div>


<div>[3]=A0<a href=3D"http://dublincore.org/documents/dc-html/" target=3D"_=
blank">http://dublincore.org/documents/dc-html/</a></div><div>[4]=A0<a href=
=3D"http://schema.org/">http://schema.org/</a></div><div>[5]=A0<a href=3D"h=
ttp://activitystrea.ms/">http://activitystrea.ms/</a></div>

<div>[6]=A0<a href=3D"http://tools.ietf.org/html/rfc5988#section-4.2">http:=
//tools.ietf.org/html/rfc5988#section-4.2</a></div><div>[7]=A0<a href=3D"ht=
tp://amundsen.com/media-types/linkrelations/">http://amundsen.com/media-typ=
es/linkrelations/</a></div>

<div><br></div></div><div class=3D"gmail_extra"><br clear=3D"all"><div>mamu=
nd<div>+1.859.757.1449<br>skype: mca.amundsen<br><a href=3D"http://amundsen=
.com/blog/" target=3D"_blank">http://amundsen.com/blog/</a><br><a href=3D"h=
ttp://twitter.com/mamund" target=3D"_blank">http://twitter.com/mamund</a><b=
r>

<a href=3D"https://github.com/mamund" target=3D"_blank">https://github.com/=
mamund</a><br><a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D=
"_blank">http://www.linkedin.com/in/mikeamundsen</a></div></div>
<br><br><div class=3D"gmail_quote">On Wed, Aug 28, 2013 at 3:38 PM, Ioseb D=
zmanashvili <span dir=3D"ltr">&lt;<a href=3D"mailto:ioseb.dzmanashvili@gmai=
l.com" target=3D"_blank">ioseb.dzmanashvili@gmail.com</a>&gt;</span> wrote:=
<br>

<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">Mike,<br>
<div class=3D"im"><br>
On Wednesday, August 28, 2013 at 9:39 PM, mike amundsen wrote:<br>
<br>
&gt; &lt;snip&gt;<br>
&gt; So here is my question: why is it bad?<br>
&gt; &lt;/snip&gt;<br>
&gt; 1) creates a new registry for action-type instead of using existing re=
gistry for rel (you point this out in the &quot;there is not start relation=
 yet&quot; reasoning)<br>
&gt; 2) ignores the use of link relation extension values already establish=
ed in RFC5988 (see Mike Kelly&#39;s question)<br>
&gt; 3) introduces confusion on whether @rel or &quot;action-type&quot; sho=
uld be used (see Peter Williams&#39; question)<br>
&gt; 4) uses two values (&quot;action&quot; and &quot;{reason}&quot;) where=
 only one is needed (srsly, a constant string AND a variable?)<br>
&gt;<br>
&gt; IOW, you have two possible solutions already for the same outcome and =
are not using them. you&#39;ve been offered at least one issue on conflicti=
ng implementation and at least one on overly-complex implementation.<br>


&gt;<br>
&gt; if you are so sure that this implementation detail is important to the=
 _results_ you want to achieve, then start today by doing it via link exten=
sions:<br>
&gt; &lt;LINK rel=3D&quot;<a href=3D"http://actions.io/action;action-type=
=3D" target=3D"_blank">http://actions.io/action;action-type=3D</a>&quot;sta=
rt&quot; ... /&gt;<br>
&gt;<br>
&gt; you can document and implement this today w/o any need to get an RFC a=
pproved or get even buy-in from others. You can create your own registry an=
d open it up to others for adds/edits (similar to the way microformats oper=
ates). You can build working implementations, write papers on it, advocate =
for use in various forums, etc.<br>


&gt;<br>
</div>I&#39;d prefer to avoid this, i do not have enough resources to publi=
cly maintain such registry ;-)<br>
<div class=3D"im"><br>
&gt; Over time you can monitor and record adoption, judge the up-take you g=
et and determine whether it proves to be a useful pattern. If it works well=
 and shows adoption, you&#39;ll see much less push-back from me (and, i sus=
pect others) and will be able to replace: &lt;LINK rel=3D&quot;<a href=3D"h=
ttp://actions.io/action;action-type=3D" target=3D"_blank">http://actions.io=
/action;action-type=3D</a>&quot;start&quot; ... /&gt; with &lt;LINK rel=3D&=
quot;action;action-type=3D&quot;start&quot; ... /&gt; and even allow existi=
ng implementations to support both.<br>


&gt;<br>
&gt; IOW, nothing is stopping you from implementing a compliant version of =
this approach today and doing it in a way that would be compatible w/ adopt=
ing your proposed approach once your approach is proven to be worthy of rec=
ording as a standard.<br>


&gt;<br>
&gt; finally, i&#39;ll say this:<br>
&gt; &lt;snip&gt;<br>
&gt; Actually as i see it #1 and #2 are of same importance.<br>
&gt; &lt;/snip&gt;<br>
&gt; If the _method_ of achieving your results is non-negotiable, I have li=
ttle else to offer here<br>
&gt;<br>
<br>
</div>All clear.<br>
<br>
As a conclusion:<br>
<br>
1. Having the generic &quot;action&quot; relation is worthless, at list as =
of 00 and 01 proposals. At least i need to find better way to make it accep=
table.<br>
2. Action type registry complicates things(and i agree).<br>
3. One possible way is to maintain separate registry(out of IETF) which is =
not feasible for me.<br>
4. Most realistic is to register top level action link rels and i&#39;ve se=
veral such relations:<br>
<br>
- start: start service or process<br>
- stop: stop service or process<br>
- restart: restart service or process<br>
- suspend: suspend service or process<br>
- reset: reset service or process to its initial state<br>
<br>
- publish: change state of the resource to published<br>
- unpublish: change state of the resource to unpublished<br>
- archive: change state of the resource to archived<br>
- unarchive: change state of the resource to unarchived<br>
<br>
- enable: change state of the resource to enabled<br>
- disable: change state of the resource to disabled<br>
<br>
These are actions i used frequently in various applications. Do you think i=
t is reasonable to register all of these as link relations?<br>
<br>
Folks? What do you think?<br>
<br>
Cheers,<br>
ioseb<br>
<br>
&gt; .<br>
<div class=3D"im">&gt;<br>
&gt; Cheers.<br>
&gt;<br>
&gt;<br>
&gt; mamund<br>
&gt; <a href=3D"tel:%2B1.859.757.1449" value=3D"+18597571449">+1.859.757.14=
49</a><br>
&gt; skype: mca.amundsen<br>
&gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http://amundse=
n.com/blog/</a><br>
&gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter=
.com/mamund</a><br>
&gt; <a href=3D"https://github.com/mamund" target=3D"_blank">https://github=
.com/mamund</a><br>
&gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D"_blank">=
http://www.linkedin.com/in/mikeamundsen</a><br>
&gt;<br>
</div><div class=3D"im">&gt; On Wed, Aug 28, 2013 at 12:41 PM, Ioseb Dzmana=
shvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvi=
li@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">io=
seb.dzmanashvili@gmail.com</a>)&gt; wrote:<br>


&gt; &gt; Mike,<br>
&gt; &gt;<br>
</div><div><div class=3D"h5">&gt; &gt; On Wednesday, August 28, 2013 at 6:3=
3 PM, mike amundsen wrote:<br>
&gt; &gt; &gt; Ioseb:<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; now that i understand your aim...<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; it seems the first item (support a pattern...) is the import=
ant one and the other two are just means to that end.<br>
&gt; &gt; Actually as i see it #1 and #2 are of same importance.<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt; &gt; so why is this a good approach?<br>
&gt; &gt; #1 and #2 still hold. As i already said #3 makes sense only for m=
2m scenarios and for GUI clients just knowing that a link is an action and =
how to treat such action links is enough.<br>
&gt; &gt;<br>
&gt; &gt; What i&#39;m trying to achieve with my proposal is to generalise =
meaning of action and make it consistent across different applications. Unf=
ortunately i do not see(or know, or was not able to find) better approach y=
et but it is generic enough to solve whole class of problems at least on GU=
I level + partially for m2m cases with &quot;action-type&quot; attribute ev=
en if we throw action type registry idea away. If we simplify definition of=
 the &quot;action&quot; relation type and say:<br>


&gt; &gt;<br>
&gt; &gt; 1. here is the &quot;action&quot; link<br>
&gt; &gt; 2. it points to a resource which describes the action<br>
&gt; &gt; 3. to perform an action fetch it construct request and send it ba=
ck to server.<br>
&gt; &gt; 4. if you want to know what this particular action means:<br>
&gt; &gt; 4.1. look inside the &quot;action-type&quot; attribute if it pres=
ents; or<br>
&gt; &gt; 4.2. fetch the document and look inside it.<br>
&gt; &gt;<br>
&gt; &gt; Is not it sufficient enough to cover whole class of problems in a=
 consistent way which are clearly actions and not just related resources?<b=
r>
&gt; &gt;<br>
&gt; &gt; So here is my question: why is it bad?<br>
&gt; &gt;<br>
&gt; &gt; &gt; 1) why use the &quot;action&quot; rel PLUS a param (&quot;st=
art&quot;)? why not just use the param (&quot;start&quot;) as the rel?<br>
&gt; &gt; For several reasons:<br>
&gt; &gt;<br>
&gt; &gt; 1. there is no &quot;start&quot; relation yet.<br>
&gt; &gt; 2. it doesn&#39;t have explicit sign that it is an action.<br>
&gt; &gt; 3. there are much more actions which are not registered and also =
there is no guarantee that each newly registered relation(which can be qual=
ified as action) will state that it is an action in a consistent way.<br>


&gt; &gt; 4. the pattern as you noticed is still important(IMHO)<br>
&gt; &gt;<br>
&gt; &gt; &gt; 2) why not use two values for the rel as in &lt;LINK rel=3D&=
quot;action start&quot; /&gt;?<br>
&gt; &gt;<br>
&gt; &gt; It was suggested in the initial proposal though approach has draw=
backs. if i use more rels? &lt;LINK rel=3D&quot;action foo bar baz&quot; /&=
gt; how to distinguish &quot;foo&quot;, &quot;bar&quot; and &quot;baz&quot;=
 from each other? does it mean that my action now has triple meaning?<br>


&gt; &gt;<br>
&gt; &gt; &gt; 3) why not use (as mike kelly suggests) an extension URI for=
 the rel as in &lt;LINK rel=3D&quot;<a href=3D"http://actions.io/start" tar=
get=3D"_blank">http://actions.io/start</a>&quot; ... /&gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; 4) why not use a unique element attribute/property such as &=
lt;LINK rel=3D&quot;action&quot; reason=3D&quot;start&quot; .../&gt;?<br>
&gt; &gt;<br>
&gt; &gt; is it different from &quot;action-type&quot; attribute? or maybe =
problem is in a registry of action types?<br>
&gt; &gt;<br>
&gt; &gt; &gt; 5) why not use a unique document element/property such as &l=
t;action rel=3D&quot;start&quot; href=3D&quot;...&quot;/&gt; or {&quot;acti=
on&quot;: {&quot;rel&quot;:&quot;start&quot;, &quot;href&quot;:&quot;...&qu=
ot;}}?<br>


&gt; &gt; Well, in custom media types i can do anything, though it doesn&#3=
9;t make sense outside of particular format or domain. Otherwise it is ok a=
nd i use similar approach in practice.<br>
&gt; &gt;<br>
&gt; &gt; Cheers,<br>
&gt; &gt; ioseb<br>
&gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt; mamund<br>
</div></div><div class=3D"im">&gt; &gt; &gt; <a href=3D"tel:%2B1.859.757.14=
49" value=3D"+18597571449">+1.859.757.1449</a> (tel:%2B1.859.757.1449)<br>
&gt; &gt; &gt; skype: mca.amundsen<br>
&gt; &gt; &gt; <a href=3D"http://amundsen.com/blog/" target=3D"_blank">http=
://amundsen.com/blog/</a><br>
&gt; &gt; &gt; <a href=3D"http://twitter.com/mamund" target=3D"_blank">http=
://twitter.com/mamund</a><br>
&gt; &gt; &gt; <a href=3D"https://github.com/mamund" target=3D"_blank">http=
s://github.com/mamund</a><br>
&gt; &gt; &gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen" target=
=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a><br>
&gt; &gt; &gt;<br>
</div><div class=3D"im">&gt; &gt; &gt; On Wed, Aug 28, 2013 at 3:35 AM, Ios=
eb Dzmanashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.d=
zmanashvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmai=
l.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ioseb.dz=
manashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"=
mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>)&gt; =
wrote:<br>


&gt; &gt; &gt; &gt; Mike,<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen=
 wrote:<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; OK, from your response i get the following:<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; 1) you want to support a pattern where machine-rea=
dable state transition instructions appear at the end of some URL.<br>
&gt; &gt; &gt; &gt; &gt; 2) you want to indicate those instructions are ava=
ilable by marking the URL w/ the string literal &quot;action&quot; (via rel=
 in your illustrations)<br>
&gt; &gt; &gt; &gt; &gt; 3) you want to indicate the reason for using these=
 instructions w/ an &quot;action-type&quot; string (via a link-rel param in=
 your illustrations)<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; that&#39;s it. nothing else.<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; do i have this correct?<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Exactly! That&#39;s it and nothing else.<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; ioseb<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; mamund<br>
</div>&gt; &gt; &gt; &gt; &gt; <a href=3D"tel:%2B1.859.757.1449" value=3D"+=
18597571449">+1.859.757.1449</a> (tel:%2B1.859.757.1449) (tel:%2B1.859.757.=
1449)<br>
<div class=3D"im">&gt; &gt; &gt; &gt; &gt; skype: mca.amundsen<br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"http://amundsen.com/blog/" target=3D"_b=
lank">http://amundsen.com/blog/</a><br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"http://twitter.com/mamund" target=3D"_b=
lank">http://twitter.com/mamund</a><br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"https://github.com/mamund" target=3D"_b=
lank">https://github.com/mamund</a><br>
&gt; &gt; &gt; &gt; &gt; <a href=3D"http://www.linkedin.com/in/mikeamundsen=
" target=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a><br>
&gt; &gt; &gt; &gt; &gt;<br>
</div><div><div class=3D"h5">&gt; &gt; &gt; &gt; &gt; On Tue, Aug 27, 2013 =
at 7:51 PM, Ioseb Dzmanashvili &lt;<a href=3D"mailto:ioseb.dzmanashvili@gma=
il.com">ioseb.dzmanashvili@gmail.com</a> (mailto:<a href=3D"mailto:ioseb.dz=
manashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"=
mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mai=
lto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmai=
l.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dz=
manashvili@gmail.com</a>)&gt; wrote:<br>


&gt; &gt; &gt; &gt; &gt; &gt; Hi Mike,<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Thanks for the question!<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; On Tuesday, August 27, 2013 at 11:57 PM, mike=
 amundsen wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; Ioseb:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; it is not clear to me why: &lt;link rel=
=3D&quot;action;action-type=3D&#39;edit&#39;&quot; href=3D&quot;...&quot; /=
&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; is preferable to: &lt;link rel=3D&quot;e=
dit&quot; href=3D&quot;...&quot; /&gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; talk me down ;)<br>
&gt; &gt; &gt; &gt; &gt; &gt; let me try ;)<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Question is not about why: Link: &lt;=85&gt;;=
 rel=3D&quot;action&quot;; action-type=3D&quot;edit&quot; is preferable to:=
 Link: &lt;=85&gt;; rel=3D&quot;edit&quot;.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Of course i&#39;d choose rel=3D&quot;run-fore=
st-run&quot; if there is a registered link relation type, but:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 1. The &quot;action&quot; link relation is ge=
neric enough, has well understood meaning and is useful on its own especial=
ly for human oriented agents.<br>
&gt; &gt; &gt; &gt; &gt; &gt; 2. The &quot;action-type&quot; optional attri=
bute may be used for specifying exact meaning of actions and this makes act=
ion links more useful for m2m scenarios.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Now consider this link:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/suspend-action&gt;; rel=3D&quot;ac=
tion&quot;; action-type=3D&quot;suspend&quot;; title=3D&quot;Suspend&quot;<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; What it says?<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 1. it is an action<br>
&gt; &gt; &gt; &gt; &gt; &gt; 2. target resource represents description of =
the action which contains: request method, submit URI, definition of action=
, other details etc<br>
&gt; &gt; &gt; &gt; &gt; &gt; 3. agent can look inside &quot;action-type&qu=
ot; to determine whether it needs this action type or not<br>
&gt; &gt; &gt; &gt; &gt; &gt; 4. agent can dereference it, construct reques=
t and send it to server<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; now if we add more actions:<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/suspend-action&gt;; rel=3D&quot;ac=
tion&quot;; action-type=3D&quot;suspend&quot;; title=3D&quot;Suspend&quot;<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/restart-action&gt;; rel=3D&quot;ac=
tion&quot;; action-type=3D&quot;restart&quot;; title=3D&quot;Restart&quot;<=
br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/stop-action&gt;; rel=3D&quot;actio=
n&quot;; action-type=3D&quot;stop&quot;; title=3D&quot;Stop&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; #1, #2, #3 and #4 will be true for all of the=
m without exceptions.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Now consider that representation containing t=
hese links is used by GUI agent, in this case even &quot;action-type&quot; =
is not necessary at all and agent can rely on user&#39;s choice. Agent only=
 needs to know that:<br>


&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 1. link is an action(and this question is exp=
licitly answered)<br>
&gt; &gt; &gt; &gt; &gt; &gt; 2. if user choose one agent needs just to der=
eference indicated URI<br>
&gt; &gt; &gt; &gt; &gt; &gt; 3. construct request<br>
&gt; &gt; &gt; &gt; &gt; &gt; 4. send request to server<br>
&gt; &gt; &gt; &gt; &gt; &gt; 5. show results to user<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; All of these will remain true for any action =
type.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; I&#39;m not sure if i talked you down, but i =
believe &quot;action&quot; relation type is useful and not because it is be=
tter(or simpler) compared to rel=3D&quot;edit&quot; for example.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; 1. <a href=3D"http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-00" target=3D"_blank">http://tool=
s.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-00</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; 2. <a href=3D"http://tools.ietf.org/html/draf=
t-ioseb-dzmanashvili-action-link-relation-01" target=3D"_blank">http://tool=
s.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-01</a><br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; P.S.<br>
&gt; &gt; &gt; &gt; &gt; &gt; I was talking about 01 version of spec. 00 is=
 a different story.<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; &gt; &gt; ioseb<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; mamund<br>
</div></div>&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"tel:%2B1.859.757.=
1449" value=3D"+18597571449">+1.859.757.1449</a> (tel:%2B1.859.757.1449) (t=
el:%2B1.859.757.1449) (tel:%2B1.859.757.1449)<br>
<div class=3D"im">&gt; &gt; &gt; &gt; &gt; &gt; &gt; skype: mca.amundsen<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"http://amundsen.com/blog/" ta=
rget=3D"_blank">http://amundsen.com/blog/</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"http://twitter.com/mamund" ta=
rget=3D"_blank">http://twitter.com/mamund</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://github.com/mamund" ta=
rget=3D"_blank">https://github.com/mamund</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"http://www.linkedin.com/in/mi=
keamundsen" target=3D"_blank">http://www.linkedin.com/in/mikeamundsen</a><b=
r>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
</div><div><div class=3D"h5">&gt; &gt; &gt; &gt; &gt; &gt; &gt; On Tue, Aug=
 27, 2013 at 3:40 PM, Ioseb Dzmanashvili &lt;<a href=3D"mailto:ioseb.dzmana=
shvili@gmail.com">ioseb.dzmanashvili@gmail.com</a> (mailto:<a href=3D"mailt=
o:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<=
a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com=
</a>) (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com">ioseb.dzmanas=
hvili@gmail.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanashvili@gmail.com=
">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailto:ioseb.dzmanas=
hvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>) (mailto:<a href=3D"mailt=
o:ioseb.dzmanashvili@gmail.com">ioseb.dzmanashvili@gmail.com</a>)&gt; wrote=
:<br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi Julian,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Thanks for response!<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On Tuesday, August 27, 2013 at 2:15=
 PM, Julian Reschke wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; On 2013-08-27 11:03, Ioseb Dzm=
anashvili wrote:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Hi All,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; I&#39;ve updated the &quo=
t;action&quot; link relation type spec[1] based on initial feedback.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; As far as initial reactio=
ns were very controversial and raised a lot of issues i tried to address al=
l of them and entirely changed the spec.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; =3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; When included in a respon=
se, the &quot;action&quot; link relation indicates a<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; target resource that is r=
esponsible for performing action which MAY:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Affect state of the con=
text resource; or<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Initiate process.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The &quot;action&quot; li=
nk relation type can be used to indicate the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; availability of actions s=
upported by the target resource. Examples<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; of such actions include:<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Enable/Disable<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Publish/Unpublish<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; - Start/Stop<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; The &quot;action&quot; li=
nk relation type doesn&#39;t convey any semantics other<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; than that an indicated re=
sources represent machine readable<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; description of a particul=
ar action and representation SHOULD contain<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; all necessary details suc=
h as: request method, action URI and other<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; related details to enable=
 agents to be able to construct requests<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; without relying on out-of=
-band information.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Exact type of action SHOU=
LD be indicated through the &quot;action-type&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; link-extension value as p=
er [RFC5988] and for maintaining shared<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; understanding of action t=
ypes current specification introduces the<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; registry of actions with =
initial values of widely accepted and well<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; understood action types.<=
br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; For example, if a resourc=
e represents a service, that same<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; representation may includ=
e links to resources that represent actions<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; supported by the service:=
<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/restart-action=
&gt;; rel=3D&quot;action&quot;; action-type=3D&quot;restart&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Link: &lt;/stop-action&gt=
;; rel=3D&quot;action&quot;; action-type=3D&quot;stop&quot;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ...<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; It seems that you are just add=
ing an indirection mechanism. Why is that<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; necessary?<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; With indirection mechanism i&#39;m =
trying to solve issues raised around initial version of the spec[1]. There =
were several issues:<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 1. The &quot;action&quot; link rela=
tion type doesn&#39;t have enough semantics and automated agents can not fo=
llow such links if there are several actions included in a representation. =
With the &quot;action-type&quot; link extension + registry of predefined ac=
tion types agents can distinguish actions from each other.<br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 2. Initial spec stated that if the =
&quot;action&quot; link exists in representation, only thing agents should =
do is to send empty POST request to the target in order to perform action. =
This approach was considered as an anti pattern(RPCish and non RESTful). Wi=
th having the &quot;action-type&quot; agents can:<br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; a) distinguish action links from ea=
ch other;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; b) if necessary dereference the tar=
get to obtain instructions for constructing non empty POST/PUT requests;<br=
>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; c) send properly constructed reques=
t back to the target; and<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; d) it makes possible for servers to=
 dictate structure of the request according to there own needs.<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Main purpose of the &quot;action&qu=
ot; link relation type is to define semantics of particular class of links =
- actions. This eliminates the need to redefine notion of &quot;action&quot=
; for each link relation type which may be qualified as action link. The &q=
uot;action-type&quot; is just for naming actions and is particularly useful=
 for automated agents not necessarily for human interaction oriented agents=
.<br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Having action type registry is impo=
rtant for maintaining shared understanding of particular action types. For =
example &quot;reset&quot; or &quot;publish&quot; verbs do not need to be re=
defined from application to application. I also believe that it is not effi=
cient(or feasible) to register all possible actions as link relations.<br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 1. <a href=3D"http://tools.ietf.org=
/html/draft-ioseb-dzmanashvili-action-link-relation-00" target=3D"_blank">h=
ttp://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-00<=
/a><br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; 2. <a href=3D"http://tools.ietf.org=
/html/draft-ioseb-dzmanashvili-action-link-relation-01" target=3D"_blank">h=
ttp://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-01<=
/a><br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Best regards, Julian<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; Cheers,<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ioseb<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; ___________________________________=
____________<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; link-relations mailing list<br>
</div></div>&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"mailto:link-=
relations@ietf.org">link-relations@ietf.org</a> (mailto:<a href=3D"mailto:l=
ink-relations@ietf.org">link-relations@ietf.org</a>) (mailto:<a href=3D"mai=
lto:link-relations@ietf.org">link-relations@ietf.org</a>) (mailto:<a href=
=3D"mailto:link-relations@ietf.org">link-relations@ietf.org</a>) (mailto:<a=
 href=3D"mailto:link-relations@ietf.org">link-relations@ietf.org</a>) (mail=
to:<a href=3D"mailto:link-relations@ietf.org">link-relations@ietf.org</a>) =
(mailto:<a href=3D"mailto:link-relations@ietf.org">link-relations@ietf.org<=
/a>)<br>


&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt; <a href=3D"https://www.ietf.org/mai=
lman/listinfo/link-relations" target=3D"_blank">https://www.ietf.org/mailma=
n/listinfo/link-relations</a><br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt; &gt;<br>
&gt; &gt;<br>
&gt; &gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
</blockquote></div><br></div>

--047d7bb03eb6b782fe04e50778ce--

From jan.algermissen@nordsc.com  Wed Aug 28 13:27:33 2013
Return-Path: <jan.algermissen@nordsc.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AAA4511E819B; Wed, 28 Aug 2013 13:27:33 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.76
X-Spam-Level: 
X-Spam-Status: No, score=-0.76 tagged_above=-999 required=5 tests=[BAYES_05=-1.11, HELO_EQ_DE=0.35]
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 1IkFKlI5YQAq; Wed, 28 Aug 2013 13:27:28 -0700 (PDT)
Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.126.187]) by ietfa.amsl.com (Postfix) with ESMTP id 9F61B11E8159; Wed, 28 Aug 2013 13:27:27 -0700 (PDT)
Received: from [192.168.2.107] (p548FAC9C.dip0.t-ipconnect.de [84.143.172.156]) by mrelayeu.kundenserver.de (node=mreu4) with ESMTP (Nemesis) id 0MW4Sq-1VYW8Y3uFE-00X6NA; Wed, 28 Aug 2013 22:27:23 +0200
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
From: Jan Algermissen <jan.algermissen@nordsc.com>
In-Reply-To: <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com>
Date: Wed, 28 Aug 2013 22:27:24 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <05573AE3-70B4-4A03-AABA-AC51E8EBC60B@nordsc.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com> <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com>
To: mike amundsen <mamund@yahoo.com>
X-Mailer: Apple Mail (2.1508)
X-Provags-ID: V02:K0:r/68N8fT8kTJjVskNq3WucdMpKE3fuFCLij+Lbb5AqN ypjFwy7M/JPGhl4favwCK4dR09OFEfolsQV4PxrPWX8OkfG/tk ErZ4Fw0QI47SfV3zbta9ij6s1RHvczRXh4BZVjNCJVVEjOH9Vy 60W5URk/MLyPJj5HUVJ4SA0zyXYmKBPbZ+D/iTh3VF69NXVM9m BUJqsF+q5Ib6FSrKMtn3YNW2CRICE+Cd/doyhaljzldXPBimRf wtn868Bef9UoBGRxFQdpt9ZW2bOjn9RLU3ySFuNJV8uEdTJmI8 OcIC2nVgXO5kgh1Ot4V6aNzlbAJk14KH3XarthlSAhS+WjuvaJ yRG0mEDN/j6exAY7uIGv1oqSV5CBOP0hA4O/cQWxYPqn/pjJdU 84/qI7gWRO0HQ==
Cc: Julian Reschke <julian.reschke@gmx.de>, link-relations <link-relations@ietf.org>, IETF Apps Discuss <apps-discuss@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 20:27:33 -0000

On 28.08.2013, at 22:02, mike amundsen <mamund@yahoo.com> wrote:

> 2) when crafting link rel values, i got good advice (I think it was =
from JulianR?) to cast the definitions as "relations" not just "verbs" =
or "nouns." for example:
> "The link relation {value} identifies a target resource that =
represents {a concept}." There are variations, but you'll get the idea.

Yes. And do not let AtomPub's 'edit' fool you - it is just a bad choice. =
'Edit' should have been sth like 'source' because what edit identifies =
is the one entry you need to direct requests to that intend to change =
the entry - (as opposed to the member-entries that represent that =
'edit'-entry in individual collections.

IOW, you do not need a 'delete' and an 'edit' entry, just a 'source' =
entry and then you go there to PUT or DELETE.


Jan



From jan.algermissen@nordsc.com  Wed Aug 28 13:49:45 2013
Return-Path: <jan.algermissen@nordsc.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 19F1121F91BF; Wed, 28 Aug 2013 13:49:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.595
X-Spam-Level: *
X-Spam-Status: No, score=1.595 tagged_above=-999 required=5 tests=[AWL=-2.356,  BAYES_50=0.001, HELO_EQ_DE=0.35, J_CHICKENPOX_32=0.6, J_CHICKENPOX_38=0.6, J_CHICKENPOX_62=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_83=0.6, J_CHICKENPOX_92=0.6]
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 QQbFk40XyT0l; Wed, 28 Aug 2013 13:49:41 -0700 (PDT)
Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.9]) by ietfa.amsl.com (Postfix) with ESMTP id D5EF821F8FF5; Wed, 28 Aug 2013 13:49:40 -0700 (PDT)
Received: from [192.168.2.107] (p548FAC9C.dip0.t-ipconnect.de [84.143.172.156]) by mrelayeu.kundenserver.de (node=mrbap4) with ESMTP (Nemesis) id 0MfIF8-1VPBis2POs-00Oot3; Wed, 28 Aug 2013 22:49:12 +0200
Content-Type: text/plain; charset=windows-1252
Mime-Version: 1.0 (Mac OS X Mail 6.5 \(1508\))
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
From: Jan Algermissen <jan.algermissen@nordsc.com>
In-Reply-To: <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com>
Date: Wed, 28 Aug 2013 22:49:13 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <ED77C91C-A346-47A9-BBB1-1CCB85C5C70C@nordsc.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com>
To: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
X-Mailer: Apple Mail (2.1508)
X-Provags-ID: V02:K0:LK6tnblBS3p32RXIiWmrDXi5u13bK34mUKwJt4npbG+ 7unHaPN6ZeahlqD9wS7zWWq7Hr3gBc5ghS1amx4GUXyGdDoZM3 bkBzVVUmhD7yH7fTP8ZVbXzIoTiJ40BFeGc0sEVp31MnLyRbd6 qIK89kQt/00jmqws5Lh/WlXrnNmTWopMGKbf9YTh+/JNqgJ0gs Obi2dLPCUYphdIhp0+oKulgCloYpEgW/pv6EwCxo/H0D7RhIXp 0DgmjF48un+vvUQo5cmmRSQbYCiLsJRaxTtlK/QG/EREojG/RS JbwYYPXvYmFw03V/PVf0U/AnyUK60cRgV4bpJ3y0W+gR77QH3W b5vBP4GDTdhu7WlYLttq6TZstZfYHRtJN5D5DrH8w0yGL81YGo 0VgbAzWbLo0yA==
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 20:49:45 -0000

On 28.08.2013, at 21:38, Ioseb Dzmanashvili =
<ioseb.dzmanashvili@gmail.com> wrote:

>=20
> As a conclusion:
>=20
> 1. Having the generic "action" relation is worthless, at list as of 00 =
and 01 proposals. At least i need to find better way to make it =
acceptable.

Hmm, I recall trying to tell you that in 00 ?

> 2. Action type registry complicates things(and i agree).
> 3. One possible way is to maintain separate registry(out of IETF) =
which is not feasible for me.
> 4. Most realistic is to register top level action link rels and i've =
several such relations:
>=20
> - start: start service or process
> - stop: stop service or process
> - restart: restart service or process
> - suspend: suspend service or process
> - reset: reset service or process to its initial state

I'd say this is a domain (sending controll messages to control some =
'thing') where REST isn't a particulary good fit. These operations =
expose a lot of implementation details - something that REST aims to =
hide. Or, IOW, using REST to design a control interface will not make =
you and the RESTafarians happy at the same time :-)

Suggestions:

- Build an unRESTful HTTP interface to avoid now uncool RPC solutions =
:-)  You know the story .... POST /jobs/start
 (Quite some things out there have such APIs, e.g. App servers, app =
engines,..)

- Hide the implementation details and think more in terms of what the =
client wants (I mean, who cares whether there is a job and that that can =
be suspended? Why would a service let a client start/stop/suspend =
anything it controls itself? IOW, talk about your domain, not the =
implementation

- Use a sort-of-restful solution by changing state of a status resource =
:

PUT /jobs/67/mode

<stoped/>

- or create a resource that the service provides for clients to change =
it's own internals vi an indirection. Much like you can edit a crontab, =
but not send a command to cron to suspend a job

POST /suspension-schedules

<suspensionSchedule>
  <workflow id=3D"process-images"/>
 <time>some datetime afetr which to suspend</time>
</suspension>

.... nice candidate to re-use iCalender, BTW.

>=20
> - publish: change state of the resource to published
> - unpublish: change state of the resource to unpublished
> - archive: change state of the resource to archived
> - unarchive: change state of the resource to unarchived
>=20



> - enable: change state of the resource to enabled
> - disable: change state of the resource to disabled
>=20

Which are all resource-state changes, too as you write yourself :-) =
Also, maybe these are not states but memberships in collection (e.g. =
move from draft to published queue/collection).


> These are actions i used frequently in various applications.

If it is an action, it is an implementation detail :-)

> Do you think it is reasonable to register all of these as link =
relations?
>=20

Erm, no .... but you know that already ;-)

> Folks? What do you think?
>=20

YAGNI...

Jan


> Cheers,
> ioseb
>=20
>> . =20
>>=20
>> Cheers.
>>=20
>>=20
>> mamund
>> +1.859.757.1449
>> skype: mca.amundsen
>> http://amundsen.com/blog/
>> http://twitter.com/mamund
>> https://github.com/mamund
>> http://www.linkedin.com/in/mikeamundsen =20
>>=20
>> On Wed, Aug 28, 2013 at 12:41 PM, Ioseb Dzmanashvili =
<ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)> =
wrote:
>>> Mike,
>>>=20
>>> On Wednesday, August 28, 2013 at 6:33 PM, mike amundsen wrote:
>>>> Ioseb:
>>>>=20
>>>> now that i understand your aim...
>>>>=20
>>>> it seems the first item (support a pattern...) is the important one =
and the other two are just means to that end.
>>> Actually as i see it #1 and #2 are of same importance.
>>>=20
>>>=20
>>>> so why is this a good approach?
>>> #1 and #2 still hold. As i already said #3 makes sense only for m2m =
scenarios and for GUI clients just knowing that a link is an action and =
how to treat such action links is enough.
>>>=20
>>> What i'm trying to achieve with my proposal is to generalise meaning =
of action and make it consistent across different applications. =
Unfortunately i do not see(or know, or was not able to find) better =
approach yet but it is generic enough to solve whole class of problems =
at least on GUI level + partially for m2m cases with "action-type" =
attribute even if we throw action type registry idea away. If we =
simplify definition of the "action" relation type and say:
>>>=20
>>> 1. here is the "action" link
>>> 2. it points to a resource which describes the action
>>> 3. to perform an action fetch it construct request and send it back =
to server.
>>> 4. if you want to know what this particular action means:
>>> 4.1. look inside the "action-type" attribute if it presents; or
>>> 4.2. fetch the document and look inside it.
>>>=20
>>> Is not it sufficient enough to cover whole class of problems in a =
consistent way which are clearly actions and not just related resources?
>>>=20
>>> So here is my question: why is it bad?
>>>=20
>>>> 1) why use the "action" rel PLUS a param ("start")? why not just =
use the param ("start") as the rel?
>>> For several reasons:
>>>=20
>>> 1. there is no "start" relation yet.
>>> 2. it doesn't have explicit sign that it is an action.
>>> 3. there are much more actions which are not registered and also =
there is no guarantee that each newly registered relation(which can be =
qualified as action) will state that it is an action in a consistent =
way.
>>> 4. the pattern as you noticed is still important(IMHO)
>>>=20
>>>> 2) why not use two values for the rel as in <LINK rel=3D"action =
start" />?
>>>=20
>>> It was suggested in the initial proposal though approach has =
drawbacks. if i use more rels? <LINK rel=3D"action foo bar baz" /> how =
to distinguish "foo", "bar" and "baz" from each other? does it mean that =
my action now has triple meaning?
>>>=20
>>>> 3) why not use (as mike kelly suggests) an extension URI for the =
rel as in <LINK rel=3D"http://actions.io/start" ... />
>>>>=20
>>>> 4) why not use a unique element attribute/property such as <LINK =
rel=3D"action" reason=3D"start" .../>?
>>>=20
>>> is it different from "action-type" attribute? or maybe problem is in =
a registry of action types?
>>>=20
>>>> 5) why not use a unique document element/property such as <action =
rel=3D"start" href=3D"..."/> or {"action": {"rel":"start", =
"href":"..."}}?
>>> Well, in custom media types i can do anything, though it doesn't =
make sense outside of particular format or domain. Otherwise it is ok =
and i use similar approach in practice.
>>>=20
>>> Cheers,
>>> ioseb
>>>=20
>>>>=20
>>>> mamund
>>>> +1.859.757.1449 (tel:%2B1.859.757.1449)
>>>> skype: mca.amundsen
>>>> http://amundsen.com/blog/
>>>> http://twitter.com/mamund
>>>> https://github.com/mamund
>>>> http://www.linkedin.com/in/mikeamundsen
>>>>=20
>>>> On Wed, Aug 28, 2013 at 3:35 AM, Ioseb Dzmanashvili =
<ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com)> wrote:
>>>>> Mike,
>>>>>=20
>>>>> On Wednesday, August 28, 2013 at 5:26 AM, mike amundsen wrote:
>>>>>=20
>>>>>> OK, from your response i get the following:
>>>>>>=20
>>>>>> 1) you want to support a pattern where machine-readable state =
transition instructions appear at the end of some URL.
>>>>>> 2) you want to indicate those instructions are available by =
marking the URL w/ the string literal "action" (via rel in your =
illustrations)
>>>>>> 3) you want to indicate the reason for using these instructions =
w/ an "action-type" string (via a link-rel param in your illustrations)
>>>>>>=20
>>>>>> that's it. nothing else.
>>>>>>=20
>>>>>> do i have this correct?
>>>>>=20
>>>>> Exactly! That's it and nothing else.
>>>>>=20
>>>>> Cheers,
>>>>> ioseb
>>>>>=20
>>>>>>=20
>>>>>>=20
>>>>>> mamund
>>>>>> +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449)
>>>>>> skype: mca.amundsen
>>>>>> http://amundsen.com/blog/
>>>>>> http://twitter.com/mamund
>>>>>> https://github.com/mamund
>>>>>> http://www.linkedin.com/in/mikeamundsen
>>>>>>=20
>>>>>> On Tue, Aug 27, 2013 at 7:51 PM, Ioseb Dzmanashvili =
<ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com)> wrote:
>>>>>>> Hi Mike,
>>>>>>>=20
>>>>>>> Thanks for the question!
>>>>>>>=20
>>>>>>> On Tuesday, August 27, 2013 at 11:57 PM, mike amundsen wrote:
>>>>>>>=20
>>>>>>>> Ioseb:
>>>>>>>>=20
>>>>>>>> it is not clear to me why: <link =
rel=3D"action;action-type=3D'edit'" href=3D"..." />
>>>>>>>> is preferable to: <link rel=3D"edit" href=3D"..." />
>>>>>>>>=20
>>>>>>>> talk me down ;)
>>>>>>> let me try ;)
>>>>>>>=20
>>>>>>> Question is not about why: Link: <=85>; rel=3D"action"; =
action-type=3D"edit" is preferable to: Link: <=85>; rel=3D"edit".
>>>>>>>=20
>>>>>>> Of course i'd choose rel=3D"run-forest-run" if there is a =
registered link relation type, but:
>>>>>>>=20
>>>>>>> 1. The "action" link relation is generic enough, has well =
understood meaning and is useful on its own especially for human =
oriented agents.
>>>>>>> 2. The "action-type" optional attribute may be used for =
specifying exact meaning of actions and this makes action links more =
useful for m2m scenarios.
>>>>>>>=20
>>>>>>> Now consider this link:
>>>>>>>=20
>>>>>>> Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend"; =
title=3D"Suspend"
>>>>>>>=20
>>>>>>> What it says?
>>>>>>>=20
>>>>>>> 1. it is an action
>>>>>>> 2. target resource represents description of the action which =
contains: request method, submit URI, definition of action, other =
details etc
>>>>>>> 3. agent can look inside "action-type" to determine whether it =
needs this action type or not
>>>>>>> 4. agent can dereference it, construct request and send it to =
server
>>>>>>>=20
>>>>>>>=20
>>>>>>> now if we add more actions:
>>>>>>>=20
>>>>>>> Link: </suspend-action>; rel=3D"action"; action-type=3D"suspend"; =
title=3D"Suspend"
>>>>>>> Link: </restart-action>; rel=3D"action"; action-type=3D"restart"; =
title=3D"Restart"
>>>>>>>=20
>>>>>>> Link: </stop-action>; rel=3D"action"; action-type=3D"stop"; =
title=3D"Stop"
>>>>>>>=20
>>>>>>>=20
>>>>>>> #1, #2, #3 and #4 will be true for all of them without =
exceptions.
>>>>>>>=20
>>>>>>> Now consider that representation containing these links is used =
by GUI agent, in this case even "action-type" is not necessary at all =
and agent can rely on user's choice. Agent only needs to know that:
>>>>>>>=20
>>>>>>> 1. link is an action(and this question is explicitly answered)
>>>>>>> 2. if user choose one agent needs just to dereference indicated =
URI
>>>>>>> 3. construct request
>>>>>>> 4. send request to server
>>>>>>> 5. show results to user
>>>>>>>=20
>>>>>>> All of these will remain true for any action type.
>>>>>>>=20
>>>>>>> I'm not sure if i talked you down, but i believe "action" =
relation type is useful and not because it is better(or simpler) =
compared to rel=3D"edit" for example.
>>>>>>>=20
>>>>>>> 1. =
http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-0=
0
>>>>>>> 2. =
http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-0=
1
>>>>>>>=20
>>>>>>> P.S.
>>>>>>> I was talking about 01 version of spec. 00 is a different story.
>>>>>>>=20
>>>>>>> Cheers,
>>>>>>> ioseb
>>>>>>>> mamund
>>>>>>>> +1.859.757.1449 (tel:%2B1.859.757.1449) (tel:%2B1.859.757.1449) =
(tel:%2B1.859.757.1449)
>>>>>>>> skype: mca.amundsen
>>>>>>>> http://amundsen.com/blog/
>>>>>>>> http://twitter.com/mamund
>>>>>>>> https://github.com/mamund
>>>>>>>> http://www.linkedin.com/in/mikeamundsen
>>>>>>>>=20
>>>>>>>>=20
>>>>>>>>=20
>>>>>>>> On Tue, Aug 27, 2013 at 3:40 PM, Ioseb Dzmanashvili =
<ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com) =
(mailto:ioseb.dzmanashvili@gmail.com)> wrote:
>>>>>>>>> Hi Julian,
>>>>>>>>>=20
>>>>>>>>> Thanks for response!
>>>>>>>>>=20
>>>>>>>>> On Tuesday, August 27, 2013 at 2:15 PM, Julian Reschke wrote:
>>>>>>>>>=20
>>>>>>>>>> On 2013-08-27 11:03, Ioseb Dzmanashvili wrote:
>>>>>>>>>>> Hi All,
>>>>>>>>>>>=20
>>>>>>>>>>> I've updated the "action" link relation type spec[1] based =
on initial feedback.
>>>>>>>>>>>=20
>>>>>>>>>>> As far as initial reactions were very controversial and =
raised a lot of issues i tried to address all of them and entirely =
changed the spec.
>>>>>>>>>>>=20
>>>>>>>>>>> =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D
>>>>>>>>>>> When included in a response, the "action" link relation =
indicates a
>>>>>>>>>>> target resource that is responsible for performing action =
which MAY:
>>>>>>>>>>>=20
>>>>>>>>>>> - Affect state of the context resource; or
>>>>>>>>>>> - Initiate process.
>>>>>>>>>>>=20
>>>>>>>>>>> The "action" link relation type can be used to indicate the
>>>>>>>>>>> availability of actions supported by the target resource. =
Examples
>>>>>>>>>>> of such actions include:
>>>>>>>>>>>=20
>>>>>>>>>>> - Enable/Disable
>>>>>>>>>>> - Publish/Unpublish
>>>>>>>>>>> - Start/Stop
>>>>>>>>>>>=20
>>>>>>>>>>> The "action" link relation type doesn't convey any semantics =
other
>>>>>>>>>>> than that an indicated resources represent machine readable
>>>>>>>>>>> description of a particular action and representation SHOULD =
contain
>>>>>>>>>>> all necessary details such as: request method, action URI =
and other
>>>>>>>>>>> related details to enable agents to be able to construct =
requests
>>>>>>>>>>> without relying on out-of-band information.
>>>>>>>>>>>=20
>>>>>>>>>>> Exact type of action SHOULD be indicated through the =
"action-type"
>>>>>>>>>>> link-extension value as per [RFC5988] and for maintaining =
shared
>>>>>>>>>>> understanding of action types current specification =
introduces the
>>>>>>>>>>> registry of actions with initial values of widely accepted =
and well
>>>>>>>>>>> understood action types.
>>>>>>>>>>>=20
>>>>>>>>>>> For example, if a resource represents a service, that same
>>>>>>>>>>> representation may include links to resources that represent =
actions
>>>>>>>>>>> supported by the service:
>>>>>>>>>>>=20
>>>>>>>>>>> Link: </restart-action>; rel=3D"action"; =
action-type=3D"restart"
>>>>>>>>>>> Link: </stop-action>; rel=3D"action"; action-type=3D"stop"
>>>>>>>>>>> ...
>>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>>=20
>>>>>>>>>> It seems that you are just adding an indirection mechanism. =
Why is that
>>>>>>>>>> necessary?
>>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>>=20
>>>>>>>>> With indirection mechanism i'm trying to solve issues raised =
around initial version of the spec[1]. There were several issues:
>>>>>>>>>=20
>>>>>>>>> 1. The "action" link relation type doesn't have enough =
semantics and automated agents can not follow such links if there are =
several actions included in a representation. With the "action-type" =
link extension + registry of predefined action types agents can =
distinguish actions from each other.
>>>>>>>>>=20
>>>>>>>>> 2. Initial spec stated that if the "action" link exists in =
representation, only thing agents should do is to send empty POST =
request to the target in order to perform action. This approach was =
considered as an anti pattern(RPCish and non RESTful). With having the =
"action-type" agents can:
>>>>>>>>>=20
>>>>>>>>> a) distinguish action links from each other;
>>>>>>>>> b) if necessary dereference the target to obtain instructions =
for constructing non empty POST/PUT requests;
>>>>>>>>> c) send properly constructed request back to the target; and
>>>>>>>>> d) it makes possible for servers to dictate structure of the =
request according to there own needs.
>>>>>>>>>=20
>>>>>>>>> Main purpose of the "action" link relation type is to define =
semantics of particular class of links - actions. This eliminates the =
need to redefine notion of "action" for each link relation type which =
may be qualified as action link. The "action-type" is just for naming =
actions and is particularly useful for automated agents not necessarily =
for human interaction oriented agents.
>>>>>>>>>=20
>>>>>>>>> Having action type registry is important for maintaining =
shared understanding of particular action types. For example "reset" or =
"publish" verbs do not need to be redefined from application to =
application. I also believe that it is not efficient(or feasible) to =
register all possible actions as link relations.
>>>>>>>>>=20
>>>>>>>>> 1. =
http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-0=
0
>>>>>>>>> 2. =
http://tools.ietf.org/html/draft-ioseb-dzmanashvili-action-link-relation-0=
1
>>>>>>>>>>=20
>>>>>>>>>> Best regards, Julian
>>>>>>>>> Cheers,
>>>>>>>>> ioseb
>>>>>>>>>=20
>>>>>>>>> _______________________________________________
>>>>>>>>> link-relations mailing list
>>>>>>>>> link-relations@ietf.org (mailto:link-relations@ietf.org) =
(mailto:link-relations@ietf.org) (mailto:link-relations@ietf.org) =
(mailto:link-relations@ietf.org) (mailto:link-relations@ietf.org) =
(mailto:link-relations@ietf.org)
>>>>>>>>> https://www.ietf.org/mailman/listinfo/link-relations
>>>>>>>>>=20
>>>>>>>>=20
>>>>>>>>=20
>>>>>>>=20
>>>>>>>=20
>>>>>>=20
>>>>>>=20
>>>>>=20
>>>>>=20
>>>>=20
>>>>=20
>>>=20
>>>=20
>>=20
>>=20
>=20
>=20
>=20
> _______________________________________________
> apps-discuss mailing list
> apps-discuss@ietf.org
> https://www.ietf.org/mailman/listinfo/apps-discuss


From ioseb.dzmanashvili@gmail.com  Wed Aug 28 14:04:29 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 69FCE21F99D0; Wed, 28 Aug 2013 14:04:29 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.554
X-Spam-Level: 
X-Spam-Status: No, score=-1.554 tagged_above=-999 required=5 tests=[AWL=1.046,  BAYES_00=-2.599]
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 H6hM4YKGYr48; Wed, 28 Aug 2013 14:04:29 -0700 (PDT)
Received: from mail-ee0-x233.google.com (mail-ee0-x233.google.com [IPv6:2a00:1450:4013:c00::233]) by ietfa.amsl.com (Postfix) with ESMTP id 8EAA521F99A2; Wed, 28 Aug 2013 14:04:28 -0700 (PDT)
Received: by mail-ee0-f51.google.com with SMTP id c1so3189245eek.38 for <multiple recipients>; Wed, 28 Aug 2013 14:04:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=VRGU9nYPL/7NMlKsjpMG0/nYEt+FX9N6E8iwlcQ2f/k=; b=OD3MNe+BXM1MFb1QyNFPuQW9943SJjAyM9moQZR2/STd92QQYhO6yzyuE/RyrraJZH zX8POHxwz8DavBgxcdTuhVaSVVqxfqvXiSymQQTlLlnyfvH8WFlpQvLrdCglLKvzrE8b 5odBdkUrcrpjfssHk7Y2ykpI6AuKs2ZHFYXOIV4wRFGAQ9w85CiOIAdueELRlVO/UgXZ RGHg/9omidsm+dlA7OoQdogU1fDN7xNqMLUzP9Lk+0U8rXq+Iu5z9eSWnQxpJLQWGc5j HtD1Aa7Y2hGM9UpGQaIJy0gskLZ4KHHAJApt6mnlhZIJJJ9TicnPpjtwwJMWJVxqKIX3 PD1w==
X-Received: by 10.14.205.9 with SMTP id i9mr5007403eeo.72.1377723867725; Wed, 28 Aug 2013 14:04:27 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id r48sm40590001eev.14.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 14:04:27 -0700 (PDT)
Date: Thu, 29 Aug 2013 01:04:23 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: mike amundsen <mamund@yahoo.com>
Message-ID: <5CAC7F65268B47BFB1CF37E4C1393382@gmail.com>
In-Reply-To: <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com> <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 21:04:29 -0000

Thank you Mike!

On Thursday, August 29, 2013 at 12:02 AM, mike amundsen wrote:

> 2) when crafting link rel values, i got good advice (I think it was from JulianR?) to cast the definitions as "relations" not just "verbs" or "nouns." for example:
> "The link relation {value} identifies a target resource that represents {a concept}." There are variations, but you'll get the idea.
> 

That is why i didn't start from particular actions and tried to create concept of "action". If i understand whole thing correctly "action" is a concept, though in this particular case it is too generic and has minimal value as far as it doesn't say anything about particular action and if representation includes several action links it is impossible to distinguish one from another.

Cheers,
ioseb



  

From ioseb.dzmanashvili@gmail.com  Wed Aug 28 14:55:06 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9C27321F9F2D; Wed, 28 Aug 2013 14:55:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0.842
X-Spam-Level: 
X-Spam-Status: No, score=0.842 tagged_above=-999 required=5 tests=[AWL=-1.559,  BAYES_50=0.001, J_CHICKENPOX_31=0.6, J_CHICKENPOX_54=0.6, J_CHICKENPOX_63=0.6, J_CHICKENPOX_83=0.6]
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 G+J3F1G7DZc3; Wed, 28 Aug 2013 14:54:40 -0700 (PDT)
Received: from mail-ee0-x234.google.com (mail-ee0-x234.google.com [IPv6:2a00:1450:4013:c00::234]) by ietfa.amsl.com (Postfix) with ESMTP id F393B21F9223; Wed, 28 Aug 2013 14:54:34 -0700 (PDT)
Received: by mail-ee0-f52.google.com with SMTP id c41so3211809eek.39 for <multiple recipients>; Wed, 28 Aug 2013 14:54:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=a7a1vNpDFbbKKm7RWM0GHIr7TE31S6RuZA87DcF0yJE=; b=UYWmhJBKpg6I+voZ7CaH/Cg7AsRdveqmt2fsHjlLwB+3LbaJ54Q1hc5WLO6FQ3kiO7 5yK6FaQhrR/fa0uJiXdhVGNPa890mdMNxCmtokwL0GCv0rZHLPL5CW9upEQkzHifv/Ka DWvGG0pDAX0KQjOxek4Qz4z8TbX4VzM8Omx+NBpWe2Disn5QmZvdVbfFvNO/IzaDIgZE Ifgl4iNbJhPstEjQj/xl/2Wk5+alLcXqa+k3l6Fga4xhM7aOXCb0NdVcwXnvryCpB2NC lx1XI8OSwI9ezz0bQHRhekN4a5yUEXRyhGwfNDArfQP2DjBjw9AtF8R+qs6184nWpDOR 7wjg==
X-Received: by 10.14.176.8 with SMTP id a8mr80143eem.12.1377726874099; Wed, 28 Aug 2013 14:54:34 -0700 (PDT)
Received: from [192.168.1.6] ([176.73.174.236]) by mx.google.com with ESMTPSA id f49sm40875868eec.7.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 28 Aug 2013 14:54:33 -0700 (PDT)
Date: Thu, 29 Aug 2013 01:54:28 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: Jan Algermissen <jan.algermissen@nordsc.com>
Message-ID: <7F642727A2D74D2A9FB328907D88EC79@gmail.com>
In-Reply-To: <ED77C91C-A346-47A9-BBB1-1CCB85C5C70C@nordsc.com>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com> <ED77C91C-A346-47A9-BBB1-1CCB85C5C70C@nordsc.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 28 Aug 2013 21:55:06 -0000

Hi Jan,

Thanks for feedback! 

On Thursday, August 29, 2013 at 12:49 AM, Jan Algermissen wrote:

> 
> On 28.08.2013, at 21:38, Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
> 
> > 
> > As a conclusion:
> > 
> > 1. Having the generic "action" relation is worthless, at list as of 00 and 01 proposals. At least i need to find better way to make it acceptable.
> 
> Hmm, I recall trying to tell you that in 00 ?
> 
> > 2. Action type registry complicates things(and i agree).
> > 3. One possible way is to maintain separate registry(out of IETF) which is not feasible for me.
> > 4. Most realistic is to register top level action link rels and i've several such relations:
> > 
> > - start: start service or process
> > - stop: stop service or process
> > - restart: restart service or process
> > - suspend: suspend service or process
> > - reset: reset service or process to its initial state
> > 
> 
> I'd say this is a domain (sending controll messages to control some 'thing') where REST isn't a particulary good fit. These operations expose a lot of implementation details - something that REST aims to hide. Or, IOW, using REST to design a control interface will not make you and the RESTafarians happy at the same time :-)
> 
> Suggestions:
> 
> - Build an unRESTful HTTP interface to avoid now uncool RPC solutions :-) You know the story .... POST /jobs/start
> (Quite some things out there have such APIs, e.g. App servers, app engines,..)
> 
> - Hide the implementation details and think more in terms of what the client wants (I mean, who cares whether there is a job and that that can be suspended? Why would a service let a client start/stop/suspend anything it controls itself? IOW, talk about your domain, not the implementation
> 
> - Use a sort-of-restful solution by changing state of a status resource :
> 
> PUT /jobs/67/mode
> 
> <stoped/>
Suppose i've application for managing services and i expose supported actions in following way(i use HTML for this example):

- <html> 
- ...
- <div class="actions">
- <form action="/suspend-action" method="post" class="suspend">
- <input type="hidden" name="suspend" value="true">
- <button type="submit">Suspend</button>
- </form>
- <form action="/restart-action" method="post" class="restart">
- <input type="hidden" name="restart" value="true">
- <button type="submit">Restart</button>
- </form>
- </div>
- ...
- </html>



Now lets say that i want to move these forms out of the service representation and make them separate resources. Now we need to advertise these resources to let agents know that a) such resources exist; and b) tell them why do they need to follow these links. One example could be:

- <html> 
- <head> 
- <link href="/suspend-action" rel="suspend-action">
- <link href="/suspend-action" rel="restart-action">
- </head>
- ...
- </html>


After activating one of the links:

- agent can fetch(HTTP GET) action description
- construct HTTP POST request based on action description(form in this case or whatever was used for describing action)
- send that request back to the server


If we define used link relations as:

- The link relation "restart-action" identifies a target resource that represents an *action* that can be used to restart running service or process.
- The link relation "suspend-action" identifies a target resource that represents an *action* that can be used to suspend running service or process.


Would it be RESTful or not? Where implementation details are leaked?

How in this case "restart" and "suspend" are different from for example "update" and "delete"? or how "suspend-action" and "restart-action" are different from for example "edit-form" and "create-form"? What is the difference?

Cheers,
ioseb
 
> 
> - or create a resource that the service provides for clients to change it's own internals vi an indirection. Much like you can edit a crontab, but not send a command to cron to suspend a job
> 
> POST /suspension-schedules
> 
> <suspensionSchedule>
> <workflow id="process-images"/>
> <time>some datetime afetr which to suspend</time>
> </suspension>
> 
> .... nice candidate to re-use iCalender, BTW.
> 
> > 
> > - publish: change state of the resource to published
> > - unpublish: change state of the resource to unpublished
> > - archive: change state of the resource to archived
> > - unarchive: change state of the resource to unarchived
> > 
> 
> 
> > - enable: change state of the resource to enabled
> > - disable: change state of the resource to disabled
> > 
> 
> 
> 
> Which are all resource-state changes, too as you write yourself :-) Also, maybe these are not states but memberships in collection (e.g. move from draft to published queue/collection).
> 
> 
> > These are actions i used frequently in various applications.
> 
> If it is an action, it is an implementation detail :-)
> 
> > Do you think it is reasonable to register all of these as link relations?
> 
> Erm, no .... but you know that already ;-)
> 
> > Folks? What do you think?
> 
> YAGNI...
> 
> Jan



From ioseb.dzmanashvili@gmail.com  Fri Aug 30 00:12:13 2013
Return-Path: <ioseb.dzmanashvili@gmail.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A5DB721E809F; Fri, 30 Aug 2013 00:12:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.599
X-Spam-Level: 
X-Spam-Status: No, score=-2.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599]
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 ifSBNXgjtefK; Fri, 30 Aug 2013 00:12:13 -0700 (PDT)
Received: from mail-ee0-x22e.google.com (mail-ee0-x22e.google.com [IPv6:2a00:1450:4013:c00::22e]) by ietfa.amsl.com (Postfix) with ESMTP id 8A0C621E805A; Fri, 30 Aug 2013 00:12:12 -0700 (PDT)
Received: by mail-ee0-f46.google.com with SMTP id c13so701382eek.19 for <multiple recipients>; Fri, 30 Aug 2013 00:12:11 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:message-id:in-reply-to:references:subject :mime-version:content-type:content-transfer-encoding :content-disposition; bh=mPy2n5oCl16F8HTLQDiCsFkvOe9M6XNp+z25p6y2bcA=; b=l3j3C7Xx2MQLJyNLkfXxNi5vX2fQvpCBliHRpwEnhl+NyuLS5o8ummWHqvOSmIM9ow 9Ni7Nu3P5jcs38lpkOIB6BzFDJTqGXlVJiu2YPKT1LQZFYSIPGt1lC0Ayqo+BX+AGoSS iImeHIdJNXVOVr2rx9gchk7bMtxKEd70RIyg0k7tR0N7jizW24iRXxLFVu97hiVBdxWA oGQdYACZGjUf5mxr5D38NMxj0UY4Ri9QrxLK5EhY6Z61vvY6QhGrhpt0Y9u3NW+Sq0G8 1WsOIsn0JGHcFTEAj9RSRuN2mCfjFgBBBZUHu7aGfITn+ubjFGDLqRX9O7GBza3WZHEz n9tA==
X-Received: by 10.14.115.133 with SMTP id e5mr10432577eeh.27.1377846731619; Fri, 30 Aug 2013 00:12:11 -0700 (PDT)
Received: from [10.131.33.142] ([213.131.60.234]) by mx.google.com with ESMTPSA id bn13sm52182377eeb.11.1969.12.31.16.00.00 (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 30 Aug 2013 00:12:10 -0700 (PDT)
Date: Fri, 30 Aug 2013 11:12:08 +0400
From: Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com>
To: Mark Nottingham <mnot@mnot.net>
Message-ID: <578924E59872456BA66743C8101F9743@gmail.com>
In-Reply-To: <3CC7487C-1157-4F16-ADA3-A246C9EB4B35@mnot.net>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <3CC7487C-1157-4F16-ADA3-A246C9EB4B35@mnot.net>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
X-Mailer: sparrow 1.6.4 (build 1178)
MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 30 Aug 2013 07:12:13 -0000

Hi Mark,

Thanks for response! 

On Thursday, August 29, 2013 at 7:36 AM, Mark Nottingham wrote:

> 
> On 28/08/2013, at 9:51 AM, Ioseb Dzmanashvili <ioseb.dzmanashvili@gmail.com (mailto:ioseb.dzmanashvili@gmail.com)> wrote:
> 
> > Now consider this link:
> > 
> > Link: </suspend-action>; rel="action"; action-type="suspend"; title="Suspend"
> > 
> > What it says?
> > 
> > 1. it is an action
> > 2. target resource represents description of the action which contains: request method, submit URI, definition of action, other details etc
> > 3. agent can look inside "action-type" to determine whether it needs this action type or not
> > 4. agent can dereference it, construct request and send it to server
> 
> 
> 
> Huh. Why not just use a link hint? E.g., 
> 
> Link: </suspend-action>; rel="suspend"; link-kind="action"; title="Suspend"
> 
> or somesuch?
I was trying to achieve different thing, but i'm now convinced that it approach is not good enough. At least i can try hints like you suggested. Thanks!

Cheers,
ioseb
 
> 
> See:
> http://tools.ietf.org/html/draft-nottingham-link-hint
> 
> 
> --
> Mark Nottingham http://www.mnot.net/




From dret@berkeley.edu  Sat Aug 31 09:40:55 2013
Return-Path: <dret@berkeley.edu>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3E36E21F8DDD; Sat, 31 Aug 2013 09:40:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.599
X-Spam-Level: 
X-Spam-Status: No, score=-6.599 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, RCVD_IN_DNSWL_MED=-4]
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 ogdFdQw8f-Dn; Sat, 31 Aug 2013 09:40:50 -0700 (PDT)
Received: from cm03fe.IST.Berkeley.EDU (cm03fe.IST.Berkeley.EDU [169.229.218.144]) by ietfa.amsl.com (Postfix) with ESMTP id 993A121F842B; Sat, 31 Aug 2013 09:40:50 -0700 (PDT)
Received: from c-24-6-239-29.hsd1.ca.comcast.net ([24.6.239.29] helo=dretpro.local) by cm03fe.ist.berkeley.edu with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.76) (auth plain:dret@berkeley.edu) (envelope-from <dret@berkeley.edu>) id 1VFoE6-000087-AA; Sat, 31 Aug 2013 09:40:43 -0700
Message-ID: <52221C87.8030800@berkeley.edu>
Date: Sat, 31 Aug 2013 09:40:39 -0700
From: Erik Wilde <dret@berkeley.edu>
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.8; rv:17.0) Gecko/20130509 Thunderbird/17.0.6
MIME-Version: 1.0
To: Jan Algermissen <jan.algermissen@nordsc.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com> <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com> <05573AE3-70B4-4A03-AABA-AC51E8EBC60B@nordsc.com>
In-Reply-To: <05573AE3-70B4-4A03-AABA-AC51E8EBC60B@nordsc.com>
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 31 Aug 2013 16:40:55 -0000

hello.

On 2013-08-28 13:27 , Jan Algermissen wrote:
> On 28.08.2013, at 22:02, mike amundsen <mamund@yahoo.com> wrote:
>> 2) when crafting link rel values, i got good advice (I think it was from JulianR?) to cast the definitions as "relations" not just "verbs" or "nouns." for example:
>> "The link relation {value} identifies a target resource that represents {a concept}." There are variations, but you'll get the idea.
> Yes. And do not let AtomPub's 'edit' fool you - it is just a bad choice. 'Edit' should have been sth like 'source' because what edit identifies is the one entry you need to direct requests to that intend to change the entry - (as opposed to the member-entries that represent that 'edit'-entry in individual collections.
> IOW, you do not need a 'delete' and an 'edit' entry, just a 'source' entry and then you go there to PUT or DELETE.

i agree, the link only tells you why you might want to follow it: 
because you want to engage in edit interactions with the source of the 
entry.

the allowed interactions are defined by the media type of the link 
target: if the link target is an AtomPub entry, then AtomPub tells you 
that you can attempt to PUT or DELETE and expect them to work as defined 
by AtomPub.

if a server serving such a link wanted to hint at the fact that a 
particular link target only supported PUT or DELETE (so that for example 
a UI could gray out the "delete" button), then it could use link hints 
to communicate this constraint in the link. this way, it would be 
possible for a client to avoid requests that are likely to fail.

cheers,

dret.

-- 
erik wilde | mailto:dret@berkeley.edu  -  tel:+1-510-2061079 |
            | UC Berkeley  -  School of Information (ISchool) |
            | http://dret.net/netdret http://twitter.com/dret |

From mca@amundsen.com  Sat Aug 31 10:00:50 2013
Return-Path: <mca@amundsen.com>
X-Original-To: link-relations@ietfa.amsl.com
Delivered-To: link-relations@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D317021E80CA for <link-relations@ietfa.amsl.com>; Sat, 31 Aug 2013 10:00:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 1.807
X-Spam-Level: *
X-Spam-Status: No, score=1.807 tagged_above=-999 required=5 tests=[AWL=1.886,  BAYES_00=-2.599, FM_FORGED_GMAIL=0.622, FORGED_YAHOO_RCVD=2.297, HTML_MESSAGE=0.001, J_CHICKENPOX_38=0.6, 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 xj6lFKTDr2ql for <link-relations@ietfa.amsl.com>; Sat, 31 Aug 2013 10:00:46 -0700 (PDT)
Received: from mail-we0-f176.google.com (mail-we0-f176.google.com [74.125.82.176]) by ietfa.amsl.com (Postfix) with ESMTP id D803A21E80C7 for <link-relations@ietf.org>; Sat, 31 Aug 2013 10:00:45 -0700 (PDT)
Received: by mail-we0-f176.google.com with SMTP id q56so2509230wes.21 for <link-relations@ietf.org>; Sat, 31 Aug 2013 10:00:44 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:sender:in-reply-to:references:from :date:message-id:subject:to:cc:content-type; bh=5Y0xiPmpLhm9+gDesWF1A/Jo6qEZtJ9kcpxQxotoN08=; b=aClA5RcS7lt+h3AVzF+loyQa8qKs6f1sg8oQ+jETyZgnFTDuiWjj4uVzvWDMqZIObh WDWsWKDPb90ZZYadldSU+WQk7L4zexlfJ8uhe1mQHlq9mg+aNw68uf9faFjHgQxV6DsD Hwq0MFTpoBoCmWyJBk3sZRlTmhuDFKJpGgcmAdYJUR6HCCzfA6JxrzeTQdWToK37WXCc abrYTa1KrfqOG+IFWOV23AR2oqVJjkLnzsgradVKpIVm/f9GlBMdTC35kVd5M2RWNhlr 4VAUNJESETLoAjVkWbnAkJ0XvVT1eClhev2oCC5wJcbmkKdbuBhlQVM9BwQ7rznFDNIf n6GA==
X-Gm-Message-State: ALoCoQlzXNcsmc3AvrUpfKMTedCnHMBxqvVjAq0NiDB14dmmsGI4abNyDR0iWUS5g2rBYVXuWkmi
X-Received: by 10.180.77.49 with SMTP id p17mr6930534wiw.36.1377968444005; Sat, 31 Aug 2013 10:00:44 -0700 (PDT)
MIME-Version: 1.0
Sender: mca@amundsen.com
Received: by 10.194.151.7 with HTTP; Sat, 31 Aug 2013 10:00:23 -0700 (PDT)
In-Reply-To: <52221C87.8030800@berkeley.edu>
References: <6F6F01CDC9614FBDA50B270B9840A538@gmail.com> <521C7C36.9000505@gmx.de> <7F2E562DC01C452390F9AB2476D66F8C@gmail.com> <CAPW_8m4gjwvYG3uhdeFUJCsMiFKMZv+ctM3jwVvgkaKqwbbpzA@mail.gmail.com> <70B4B39BB3F44DC99274739DEB4B4717@gmail.com> <CAPW_8m42XcFJRUpWMSjr3+1OuNvW6Q02tp+z1akb88UbgNtV8Q@mail.gmail.com> <8410EE3EC8FB4ADA93F4209376AF8183@gmail.com> <CAPW_8m5ESLuG0hqrF-fMSwt=ZGJ+fznEqNcHbGM-rrZkYN4smQ@mail.gmail.com> <B5A513EF8BC84935A59F09B1F3B9C37F@gmail.com> <CAPW_8m5uo4XPSCthUMouJXONs_aYnr1LwHQ39SC47M3yerJ-Ng@mail.gmail.com> <30BCEBA7E91E4DDF8D20B3311D362B27@gmail.com> <CAPW_8m6N0bWc9nDhWszMROmf16Zd7Z62F562Vazh5F5Nza7qiA@mail.gmail.com> <05573AE3-70B4-4A03-AABA-AC51E8EBC60B@nordsc.com> <52221C87.8030800@berkeley.edu>
From: mike amundsen <mamund@yahoo.com>
Date: Sat, 31 Aug 2013 13:00:23 -0400
X-Google-Sender-Auth: Ulg8SkVDRuMINLOOTB4_xU45hk0
Message-ID: <CAPW_8m4k22XK-0v3jUPvGmtrym445WVSRnUYCvGZ6syYKvAcmg@mail.gmail.com>
Subject: Re: [apps-discuss] NEW RELATION: 'action' version update
To: Erik Wilde <dret@berkeley.edu>
Content-Type: multipart/alternative; boundary=f46d043892139dfbd304e5414730
Cc: Julian Reschke <julian.reschke@gmx.de>, IETF Apps Discuss <apps-discuss@ietf.org>, link-relations <link-relations@ietf.org>
X-BeenThere: link-relations@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: <link-relations.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/link-relations>, <mailto:link-relations-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/link-relations>
List-Post: <mailto:link-relations@ietf.org>
List-Help: <mailto:link-relations-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/link-relations>, <mailto:link-relations-request@ietf.org?subject=subscribe>
X-List-Received-Date: Sat, 31 Aug 2013 17:00:50 -0000

--f46d043892139dfbd304e5414730
Content-Type: text/plain; charset=ISO-8859-1

<tangent>
At this point, what we're discussing is affordance design.

I will confess that the desire to pack up all the information on how to
activate a transition into "hints" on a LINK element creates not just an
ugly affordance, but also one needlessly difficult to use/animate. This is
esp. true when machines are required to "so-somewhere-else" in order to
resolve the details of the affordance (e.g. using OPTIONS, packing all the
instructions in a document at the end of a rel-link, etc.).

why are we so unwilling to model FORMS? what is it about the FORM-style
affordance that is so unappealing to designers/developers?
</tangent>


mamund
+1.859.757.1449
skype: mca.amundsen
http://amundsen.com/blog/
http://twitter.com/mamund
https://github.com/mamund
http://www.linkedin.com/in/mikeamundsen


On Sat, Aug 31, 2013 at 12:40 PM, Erik Wilde <dret@berkeley.edu> wrote:

> hello.
>
>
> On 2013-08-28 13:27 , Jan Algermissen wrote:
>
>> On 28.08.2013, at 22:02, mike amundsen <mamund@yahoo.com> wrote:
>>
>>> 2) when crafting link rel values, i got good advice (I think it was from
>>> JulianR?) to cast the definitions as "relations" not just "verbs" or
>>> "nouns." for example:
>>> "The link relation {value} identifies a target resource that represents
>>> {a concept}." There are variations, but you'll get the idea.
>>>
>> Yes. And do not let AtomPub's 'edit' fool you - it is just a bad choice.
>> 'Edit' should have been sth like 'source' because what edit identifies is
>> the one entry you need to direct requests to that intend to change the
>> entry - (as opposed to the member-entries that represent that 'edit'-entry
>> in individual collections.
>> IOW, you do not need a 'delete' and an 'edit' entry, just a 'source'
>> entry and then you go there to PUT or DELETE.
>>
>
> i agree, the link only tells you why you might want to follow it: because
> you want to engage in edit interactions with the source of the entry.
>
> the allowed interactions are defined by the media type of the link target:
> if the link target is an AtomPub entry, then AtomPub tells you that you can
> attempt to PUT or DELETE and expect them to work as defined by AtomPub.
>
> if a server serving such a link wanted to hint at the fact that a
> particular link target only supported PUT or DELETE (so that for example a
> UI could gray out the "delete" button), then it could use link hints to
> communicate this constraint in the link. this way, it would be possible for
> a client to avoid requests that are likely to fail.
>
> cheers,
>
> dret.
>
> --
> erik wilde | mailto:dret@berkeley.edu  -  tel:+1-510-2061079 |
>            | UC Berkeley  -  School of Information (ISchool) |
>            | http://dret.net/netdret http://twitter.com/dret |
>

--f46d043892139dfbd304e5414730
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>&lt;tangent&gt;</div>At this point, what we&#39;re di=
scussing is affordance design.<div><br></div><div>I will confess that the d=
esire to pack up all the information on how to activate a transition into &=
quot;hints&quot; on a LINK element creates not just an ugly affordance, but=
 also one needlessly difficult to use/animate. This is esp. true when machi=
nes are required to &quot;so-somewhere-else&quot; in order to resolve the d=
etails of the affordance (e.g. using OPTIONS, packing all the instructions =
in a document at the end of a rel-link, etc.).</div>


<div><br></div><div>why are we so unwilling to model FORMS? what is it abou=
t the FORM-style affordance that is so unappealing to designers/developers?=
=A0</div><div>&lt;/tangent&gt;</div><div><br></div>
<div class=3D"gmail_extra"><br clear=3D"all"><div>mamund<div><a href=3D"tel=
:%2B1.859.757.1449" value=3D"+18597571449" target=3D"_blank">+1.859.757.144=
9</a><br>skype: mca.amundsen<br><a href=3D"http://amundsen.com/blog/" targe=
t=3D"_blank">http://amundsen.com/blog/</a><br>

<a href=3D"http://twitter.com/mamund" target=3D"_blank">http://twitter.com/=
mamund</a><br>
<a href=3D"https://github.com/mamund" target=3D"_blank">https://github.com/=
mamund</a><br><a href=3D"http://www.linkedin.com/in/mikeamundsen" target=3D=
"_blank">http://www.linkedin.com/in/mikeamundsen</a></div></div>
<br><br><div class=3D"gmail_quote">On Sat, Aug 31, 2013 at 12:40 PM, Erik W=
ilde <span dir=3D"ltr">&lt;<a href=3D"mailto:dret@berkeley.edu" target=3D"_=
blank">dret@berkeley.edu</a>&gt;</span> wrote:<br><blockquote class=3D"gmai=
l_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left=
:1ex">


hello.<div><div><br>
<br>
On 2013-08-28 13:27 , Jan Algermissen wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
On 28.08.2013, at 22:02, mike amundsen &lt;<a href=3D"mailto:mamund@yahoo.c=
om" target=3D"_blank">mamund@yahoo.com</a>&gt; wrote:<br>
<blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p=
x #ccc solid;padding-left:1ex">
2) when crafting link rel values, i got good advice (I think it was from Ju=
lianR?) to cast the definitions as &quot;relations&quot; not just &quot;ver=
bs&quot; or &quot;nouns.&quot; for example:<br>
&quot;The link relation {value} identifies a target resource that represent=
s {a concept}.&quot; There are variations, but you&#39;ll get the idea.<br>
</blockquote>
Yes. And do not let AtomPub&#39;s &#39;edit&#39; fool you - it is just a ba=
d choice. &#39;Edit&#39; should have been sth like &#39;source&#39; because=
 what edit identifies is the one entry you need to direct requests to that =
intend to change the entry - (as opposed to the member-entries that represe=
nt that &#39;edit&#39;-entry in individual collections.<br>



IOW, you do not need a &#39;delete&#39; and an &#39;edit&#39; entry, just a=
 &#39;source&#39; entry and then you go there to PUT or DELETE.<br>
</blockquote>
<br></div></div>
i agree, the link only tells you why you might want to follow it: because y=
ou want to engage in edit interactions with the source of the entry.<br>
<br>
the allowed interactions are defined by the media type of the link target: =
if the link target is an AtomPub entry, then AtomPub tells you that you can=
 attempt to PUT or DELETE and expect them to work as defined by AtomPub.<br=
>



<br>
if a server serving such a link wanted to hint at the fact that a particula=
r link target only supported PUT or DELETE (so that for example a UI could =
gray out the &quot;delete&quot; button), then it could use link hints to co=
mmunicate this constraint in the link. this way, it would be possible for a=
 client to avoid requests that are likely to fail.<br>



<br>
cheers,<br>
<br>
dret.<span><font color=3D"#888888"><br>
<br>
-- <br>
erik wilde | mailto:<a href=3D"mailto:dret@berkeley.edu" target=3D"_blank">=
dret@berkeley.edu</a> =A0- =A0tel:<a href=3D"tel:%2B1-510-2061079" value=3D=
"+15102061079" target=3D"_blank">+1-510-2061079</a> |<br>
=A0 =A0 =A0 =A0 =A0 =A0| UC Berkeley =A0- =A0School of Information (ISchool=
) |<br>
=A0 =A0 =A0 =A0 =A0 =A0| <a href=3D"http://dret.net/netdret" target=3D"_bla=
nk">http://dret.net/netdret</a> <a href=3D"http://twitter.com/dret" target=
=3D"_blank">http://twitter.com/dret</a> |<br>
</font></span></blockquote></div><br></div></div>

--f46d043892139dfbd304e5414730--
