- From: James M Snell <jasnell@gmail.com>
- Date: Tue, 22 Jul 2014 11:20:57 -0700
- To: Owen Shepherd <owen.shepherd@e43.eu>
- Cc: public-socialweb@w3.org
Here's how I'd do the same examples: On Tue, Jul 22, 2014 at 11:01 AM, Owen Shepherd <owen.shepherd@e43.eu> wrote: > Example 1: An image > > { > "objectType": "image", > "id": "http://api.blog.example.com/object/39250E30-A0A6-46D5-A9AE-3CCE5BB481ED", > "url": "http://blog.example.com/2015/01/01/daww", > "displayName": "D'Aww", > "content": "<p>Kitteh!</p>", > "src": "http://api.blog.example.com/object/39250E30-A0A6-46D5-A9AE-3CCE5BB481ED/kitteh.jpg" > } { "objectType": "image", "id": "http://api.blog.example.com/object/39250E30-A0A6-46D5-A9AE-3CCE5BB481ED", "displayName": "D'Aww", "content": "<p>Kitteh!</p>", "self": "http://api.blog.example.com/object/39250E30-A0A6-46D5-A9AE-3CCE5BB481ED/kitteh.jpg", "alternate": "http://blog.example.com/2015/01/01/daww" } > > Example 2: A person > { > "objectType": "person", > "id": "acct:johnsmith@example.com", > "self": "http://api.example.com/user/johnsmith", > "url": "http://example.com/~johnsmith", > "displayName": "John Smith", > "image": { > "id": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0", > "url": "http://example.com/~johnsmith/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0", > "src": [{ > "type": "image/jpeg", > "width": 128, "height": 128, > "href": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0/img?sz=128x128" > }, { > "type": "image/jpeg", > "width": 1024, "height": 1024, > "href": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0/img" > }] > } > } { "objectType": "person", "id": "acct:johnsmith@example.com", "self": "http://api.example.com/user/johnsmith", "alternate": "http://example.com/~johnsmith", "displayName": "John Smith", "image": [ { "mediaType": "image/jpeg", "width": 128, "height": 128, "self": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0/img?sz=128x128" }, { "mediaType": "image/jpeg", "width": 1024, "height": 1024, "self": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0/img" }, { "mediaType": "text/html", "self": "http://example.com/~johnsmith/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0" } ] } Or... { "objectType": "person", "id": "acct:johnsmith@example.com", "self": "http://api.example.com/user/johnsmith", "alternate": "http://example.com/~johnsmith", "displayName": "John Smith", "image": { "objectType": "image", "id": "http://api.blog.example.com/object/39250E30-A0A6-46D5-A9AE-3CCE5BB481ED", "self": [ { "mediaType": "image/jpeg", "width": 128, "height": 128, "self": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0/img?sz=128x128" }, { "mediaType": "image/jpeg", "width": 1024, "height": 1024, "self": "http://api.example.com/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0/img" } ], "alternate": "http://example.com/~johnsmith/object/130BE593-B7CD-4B8F-8AD1-C1DDA349FCB0" } } It ends up working either way. The former, however, is cleaner and more closely aligns with how people will likely actually implement things. - James > > Basically: > * id - as now > * url - as defined for objects in AS1 - a link to which you can direct /humans/ > * src/href/source/whatever - somewhere I can dig out the embeddable bits. > >> -----Original Message----- >> From: James M Snell [mailto:jasnell@gmail.com] >> Sent: 22 July 2014 18:49 >> To: Owen Shepherd >> Cc: public-socialweb@w3.org >> Subject: Re: AS2 links >> >> I may be misunderstanding what you're saying then, and since I think best >> when I see specific examples, can you give me one or two json examples that >> illustrate what you'd prefer to see? >> >> On Tue, Jul 22, 2014 at 10:46 AM, Owen Shepherd <owen.shepherd@e43.eu> >> wrote: >> > >> > >> >> -----Original Message----- >> >> From: James M Snell [mailto:jasnell@gmail.com] >> >> Sent: 22 July 2014 18:16 >> >> To: Owen Shepherd >> >> Cc: public-socialweb@w3.org >> >> Subject: Re: AS2 links >> >> >> >> There's a balance here. See below. >> >> >> >> On Tue, Jul 22, 2014 at 9:50 AM, Owen Shepherd <owen.shepherd@e43.eu> >> >> wrote: >> >> > Why do we even have a rel property? I don't see any use of it which >> >> > couldn't be more succinctly expressed by using the property name. >> >> > It also breaks JSON-LD processing, by conflating a property of the >> >> > link (the relation) with the object. >> >> > >> >> >> >> Imagine the following case. I have a objectType that represents an >> >> application. As is typical in many "app stores", the application may >> >> have multiple preview images with a single default or preferred >> >> preview. We can accomplish this concisely using something like: >> >> >> >> { >> >> "objectType": "application", >> >> "displayName": "My Application", >> >> "preview": [ >> >> { >> >> "mediaType": "image/jpeg", >> >> "url": "http://example.org/screens/app1.jpg" >> >> }, >> >> { >> >> "mediaType": "image/jpeg", >> >> "url": "http://example.org/screens/app2.jpg" >> >> }, >> >> { >> >> "mediaType": "image/jpeg", >> >> "url": "http://example.org/screens/app3.jpg", >> >> "rel": "image" >> >> } >> >> ] >> >> } >> >> >> >> Here, the third image is set up as both a preview image and the >> >> default display image for the object. >> > >> > It seems like a relatively niche use case for what is a considerable >> increase in the difficulty in processing the content (i.e. it's no longer >> sufficient for the processor to just walk the attributes to find objects). >> > >> > I don't think the use cases justify the complexity (and, as said, it >> > doesn't mesh well at all with JSON-LD processing) >> > >> > >> >> > I'm with you in being against a generalized url property; this is >> >> > why I want to see its' purpose defined. I very much want an easy to >> >> > extract property to which I can link a user so that they can view >> >> > the >> >> object on its' >> >> > "home site". This is very much an important feature of the format, no? >> >> > >> >> >> >> If I had my choice, the generic "url" property would be deprecated in >> >> favor of a specific Link Relation, such as "self" or "canonical". >> >> >> >> { >> >> "objectType": "image", >> >> "self": "http://example.org/foo.jpg" >> >> } >> >> >> >> Is semantically clear and tell's me exactly what I need to know >> >> without the need to overload "url". >> > >> > *Neither* of us is proposing to overload "url". >> > >> > All I'm looking for is >> > * An unambiguous "source" attribute, which can be used by processors >> > to find the content `to be embedded` (for example, in the case of an >> > image object, this would contain the URI to be used as the value of an >> > <img src=> property when rendering the object as HTML) >> > * An unambiguous "link" attribute, which can be used by processors to >> link to the object on its' "home site". >> > * An unambiguous "this document" attribute, which can be used to >> > refresh the ActivityStreams object >> > >> > AS1 kind of makes a mess of the former, did an OK job of the former, and >> canonicalized the latter in the Activity Base Schema. >> > >> > What is wrong with defining such properties in AS2? I'm not especially >> attached to the name of the "url" property, but I don't see compelling >> reason to change it. >> > >> > As someone who has written two relatively in-depth applications dealing >> with ActivityStreams now, these are all pieces of data which I need to pull >> out *all the time*. Surely these things should be minimum friction? >> > >> >> >> >> > AS1 defines the url property to have this purpose. Why change it? >> >> > What was wrong with it as is, except for the "misuse" of it by the >> >> > Media Link and Collection types? >> >> > >> >> > Also, I wholeheartedly disagree with your use of the "self" >> >> > relation to point to the image file. To quote RFC 4287: >> >> > >> >> > 3. The value "self" signifies that the IRI in the value of the >> href >> >> > attribute identifies a resource equivalent to the containing >> >> > element. >> >> > >> >> > There is also already precedence for using the self relation to >> >> > point to the ActivityStreams version of an object in AS1. >> >> > >> >> > Is there any compelling argument *against* defining a property to >> >> > contain a link to the (image|video|audio files) which define a >> >> > resource? Consider the property's values as analogous to the HTML5 >> >> > <source> element >> >> > >> >> >> >> The main argument that I can see is that we just end up duplicating >> >> the existing function of Link Relations. Why do so when we can reuse >> >> an already paved path? >> > >> > I don't see any defined link relations which do pave said path. >> > >
Received on Tuesday, 22 July 2014 18:21:45 UTC