Re: [AS2] Deprecate "url" in favor of "id" and "self" link relations

On 21 August 2014 17:16, James M Snell <jasnell@gmail.com> wrote:

> In an activity streams document, the "url" property is typically used
> to point to a displayable (typically HTML) representation of an
> object. The "id" property is typically used to provide just an
> identifier. With AS2's direct incorporation of IANA Link Relations, it
> makes more sense to deprecate the use of "url" in favor of link
> relations such as "self" or "alternate". Doing so simplifies things a
> bit more and gives us better alignment with things like JSON-LD.
>
> The change is fairly simple:
>
>   {
>     "objectType": "note",
>     "url": "http://example.org/foo"
>   }
>
> Becomes
>
>   {
>     "objectType": "note",
>     "self": "http://example.org/foo"
>   }
>
> In the AS2 document, the "url" property would be listed as deprecated
> and treated as an alias for "self".
>
> Thoughts?
>
> - James
>

Precedent from some AS1 deployments is that link rel "self" is used in
cases where the "id" property is a non-dereferencable URL to point to *the
activity streams document for this resource. *As an example, see
https://gist.github.com/oshepherd/8c879449b3a55316cd73 (which is taken from
the real world example of Pump.io)

Three things I'd like to see:

   1. What is the algorithm for finding the *dereferencable to an
   ActivityStreams document URI?*
   2. What is the algorithm for finding the *dereferencable to a human
   readable document URI?*
   3. What is the algorithm for finding the *embedded content URI?* (For
   image, video, etc objects)

For AS1, these are:

   1. obj["links"]["self"]["href"] || obj["id"]
   2. obj["url"] *(unless it's a collection, in which case you're screwed -
   SPECBUG!)*
   3. obj[*type*]["url"]

As much as I appreciate simplifying the spec, *we should make sure that use
of the spec remains simple*. I am not convinced that this is the case for
some of the changes in AS2

---

As a side note: I'm not a fan of the way that AS2 seems to be causing
unnamed Objects to proliferate where in AS1 Media Links would have been
used. We should remember the distinction between *objects* - things which
form the vertices of a graph (or, which on a website would have distinct
web pages)  and *the embedded content thereof * - what AS1 called media
links.

This is very important to the many applications and clients which place the
objects as distinct entries in a database, because this proliferation of
objects makes their lives so much harder.


Owen Shepherd
http://owenshepherd.net | owen.shepherd@e43.eu

Received on Thursday, 21 August 2014 19:10:31 UTC