RE: ActionHandlers vs "App resources" (was: An updated draft of the schema.org/Action proposal)

On Friday, February 21, 2014 9:22 PM, Sam Goto wrote:
> On Mon, Feb 17, 2014 at 12:44 PM, Markus Lanthaler wrote:
> > On Friday, February 14, 2014 7:11 PM, Sam Goto wrote:
> > > On Fri, Feb 14, 2014 at 9:33 AM, Markus Lanthaler wrote:
> > >>> 2) How would you be able to express that you CANNOT BuyAction on
> > >>> the AndroidAppLink resource (e.g. your mobile app resource isn't
> > >>> as fancy as your website)?
> > >>
> > >> That's something we would need to decide. I think in most cases
> > >> these resources are not really exactly the same. Thus, I'm not
> > >> sure whether it makes that much sense to "inherit" the operations
> > >> from the Web resource. I think it would be sensible to require
> > >> them to be declared separately. I don't think "expects" etc. are
> > >> needed for apps, are they? If not, it's really just a short list
> > >> of supported operations similar to the one in your example above,
> > >> likely with min. version constraints etc.
> > >
> > > Not quite on both points.
> > >
> > > 1) Most often than not, these are the same resources. That's the
> > > basic premise of the android-app://foobar.com/resource/1234 with
> > > rel=alternative links.
> > 
> > Fair enough. How do you thought of dealing different sets of
> > operations then? You moved the list out from the action handler,
> > didn't you?
> 
> You'd have specific action handlers attached to the action. Example
> (of a Movie that can be "watched" on android and "bought" via a
> webpage):
> 
> {
> @type: Movie
> action: [{
>   @type: WatchAction
>   handler: {
>     @type: AndroidHandler
>   }
> }, {
>   @type: BuyAction
>    handler: {
>      @type: WebPageHandler
>   }
> }
> ]
> }
> 
> How would we go about this using sameAs/alternate?

You would use a very similar pattern (adapting your previous example):

{
  "@context": "http://schema.org",
  "@id": "http://example.com/web/resource",
  "alternate": [ {
      "@type": "AndroidAppLink",
      "operation": {
        "@type": "WatchAction"
    }, {
      "@type": "ApiLink",
      "operation": {
        "@type": "BuyAction"
    }
  ]
}


Cheers,
Markus


--
Markus Lanthaler
@markuslanthaler

Received on Monday, 3 March 2014 17:36:51 UTC