- From: Markus Lanthaler <markus.lanthaler@gmx.net>
- Date: Fri, 7 Mar 2014 18:10:51 +0100
- To: "'Sam Goto'" <goto@google.com>
- Cc: "'Jason Johnson'" <jasjoh@microsoft.com>, "'W3C Web Schemas Task Force'" <public-vocabs@w3.org>, <public-hydra@w3.org>
On Thursday, March 06, 2014 4:38 PM, Sam Goto wrote:
> On Wed, Mar 5, 2014 at 11:48 AM, Markus Lanthaler wrote:
> > On Tuesday, March 04, 2014 10:27 PM, Sam Goto wrote:
> > > - 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.
So a thing might have multiple urls? Right?
Generally, I have to say that I find the "url" property confusing. It is defined as "URL of the item" (http://schema.org/url). Typically, in JSON-LD you would just use @id for that. Do you have an explanation of when to use what and what it means if both are there?
> We are considering using AppUrl instead of Deeplink. Does that sound
> more descriptive?
Yes, it does. It still feels a bit odd though as you type the thing, not just the string "android-app://com.netflix/movies/12345". The thing isn't a "resource locator" but a "resource".
> > > - 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.
OK...
> > > - 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.
I though I did so already.. anyway. Instead of having
{
"@context": "http://schema.org",
"@id": "http://example.com/restaurant",
"@type": "Restaurant",
"ordersBook": {
"@id": "http://example.com/restaurant/orders",
"operation": {
"performs": "CreateAction",
"expects": "Order",
...
}
}
}
you would have
{
"@context": "http://schema.org",
"@id": "http://example.com/restaurant",
"@type": "Restaurant",
"ordersBook": {
"@id": "http://example.com/restaurant/orders",
"operation": {
"@type": "CreateAction", <--- you type the operation itself as action
"expects": "Order",
...
}
}
So the operation is at the same time also an action. Which I think makes sense. IMO there's no need to add another layer of abstraction (you invoke an operation which in turn performs an action). You simply perform an operation/action. Operations are thus simply invocable actions.. so a specialization therof.
--
Markus Lanthaler
@markuslanthaler
Received on Friday, 7 March 2014 17:11:23 UTC