- From: Sam Goto <goto@google.com>
- Date: Thu, 6 Mar 2014 07:37:58 -0800
- To: Markus Lanthaler <markus.lanthaler@gmx.net>
- Cc: Jason Johnson <jasjoh@microsoft.com>, W3C Web Schemas Task Force <public-vocabs@w3.org>, "public-hydra@w3.org" <public-hydra@w3.org>
- Message-ID: <CAMtUnc5OBdbeRTasCT9T+oLcKnMF=nsXx+jF_pksv=FEH9v7GQ@mail.gmail.com>
On Wed, Mar 5, 2014 at 11:48 AM, Markus Lanthaler <markus.lanthaler@gmx.net>wrote: > On Tuesday, March 04, 2014 10:27 PM, Sam Goto wrote: > > > > A co-worker and I went over some of these points yesterday. > > > > Here is a *preliminary* build with the ideas we went over here written > > down: > > > > - In this *test* build, we remove the concept of ActionHandler. > > And, how do you find that? > > So far so good. A bit concerned about how this will scale long term, but I like the direction (e.g. it won't corner ourselves, it is useful by itself). > > - As a replacement, we instead allow Thing.url to point us to > > platform-specific Deeplink (e.g. AndroidDeeplink, ApiDeeplink and > > WindowsDeeplink) > > OK, so, e.g., you have a Movie (the abstract thing) which points via the > "url" property to a representation thereof in an Android app. Right? > > Right. We are considering using AppUrl instead of Deeplink. Does that sound more descriptive? > > > - Without ActionHandlers, it felt awkward to have things like > > expects/returns in the Action types, so we've created a specific > > type to carry these service-y information, called ResourceOperation > > where expects/returns live. > > Great. So you basically came to same conclusion we came in Hydra. There it > also lives on Operation. I don't care too much but why do you call that > thing ResourceOperation instead of just Operation? I mean, isn't everything > a resource? > > I wanted to emphasize that it needs to be attached to a resource rather than meant to be used in isolation. > > > - The semantics of the operation are still dictated by the Action > > types, via performsAction attached to ResourceOperation. > > Any specific reason why you don't simply type an operation with the > corresponding action? > > Can you give an example? Might be more constructive to look at something concrete. > > > - That also allows us to remove ActionStatus, leaving the Action > > subtypes to carry past-actions-like semantics > > Oh I see. Was that the reason? Couldn't you simply say that > Operation-Actions are "possible actions" instead. That would save you some > nesting. > > > > and ResourceOperation > > to take advantage of the Action sub-type's semantics on proposed > > actions. > > > > WDYT? > > Looks quite good to me. The only thing I don't like that much is the > *deeplink terminology but I could live with that. A couple more questions: > > ResourceOperation has a property "destinationResource". I'm not entirely > sure I understand what it is for or why it would be needed. > It was originally meant for things like "Adding movies to a netflix queue", where there is a relationship between two resources: a movie and a queue. We've removed from this version because it simplifies things. We'll cross that bridge when we get there. > The same applies to "supportedPlatform". Isn't that already described by > AndroidDeeplink etc.? > Same here. We'll cross this bridge when we get to it. > > SupportedProperty has a property "supportedClass". What's the use case for > that? I.e., why do you need to link back from a SupportedProperty to its > class? > I think this is one of the parts that we aren't entirely comfortable yet. SupportedClass/SupportedProperties are powerful, but seem overly complicated/nested. I'm exploring a few more options and I'll share them with you momentarily. > > Shouldn't "SupportedClass" be a subclass of "Class" instead of "Intangible" > > > > > On Tue, Mar 4, 2014 at 7:30 AM, Markus Lanthaler < > markus.lanthaler@gmx.net> wrote: > > On Monday, March 03, 2014 11:40 PM, Sam Goto wrote: > > > On Mon, Mar 3, 2014 at 10:34 AM, Markus Lanthaler wrote: > > > > On Monday, March 03, 2014 7:11 PM, Sam Goto wrote: > > > > > On Mon, Mar 3, 2014 at 9:36 AM, Markus Lanthaler wrote: > > > > > > 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" > > > > > } > > > > > ] > > > > > } > > > > > > > > > > Hum ... this doesn't seem right to me ... I wasn't expecting > actions to > > > > > be attached to these "Links", since there is a difference between > > > > > "watching" a movie and "watching" a link. > > > > > > > > Right, I just reused your terminology to show the pattern. I wouldn't > > > > call those things *Link as a link is an arc between two resources and > > > > not a single resource as these things here are. Would it look better > > > > to you if you would replace, e.g. AndroidAppLink with > > > > AndroidAppResource? > > > > > > That's still a bit awkward. You'd want to have a WatchAction attached > > > to a Movie, rather than a generic AndroidAppResource (which may refer > > > to any type). > > Can't it be both at the same time? I hope we are not heading down the > httpRange-14 path now :-) > > > > > > > > Cheers, > > Markus > > > -- > Markus Lanthaler > @markuslanthaler > > >
Received on Thursday, 6 March 2014 15:38:25 UTC