Re: Action subtypes, their properties & sub-properties plus relationships with Place & Event

Hi elf!

On Wed, Oct 1, 2014 at 8:51 AM, ☮ elf Pavlik ☮ <
perpetual-tripper@wwelves.org> wrote:

> Hi,
>
> Continuing explorations of schema:Action subtree, I notice some possible
> flows in properties and sup-properties they use.
>

Neat! Great analysis, let me try to respond inline!


>
> 1. Specific sub-properties for specific Action sub-types
>
> * ExerciseAction --{sportsEvent}--> SportsEvent
>

Yeap, ExerciseAction is a terrible sub-tree ... I'm pretty unhappy with it
:( IIRC, we faced a couple of challenges:

(a) modelling competitive versus non competive exercising, e.g. what's the
relationship between ExerciseAction and PlayAction?
(b) the fact that a lot of "exercises" don't have a corresponding verb
associated with it. so, while SwinAction or WalkAction made same, something
like PlayTennisAction or PlaySoccerAction didn't.

Neither (a) or (b) have been addressed yet :(  I was hoping we would
converge to something like the following long term:

https://developers.facebook.com/docs/opengraph/guides/fitness


> * CookAction --{foodEvent}--> FoodEvent
> IMO both could use directly parent property *event* similar as currently
> InformAction, InviteAction, JoinAction, LeaveAction, PlayAction
>

One way to deal with this is sub-properties. So, we could add an
Action.event property and make foodEvent a sub-property-of.


>
> *#BUG* http://schema.org/foodEvent states "Super-properties: location",
> while http://schema.org/FoodEvent subtype of Event
>
>
Yeah, that's an option too ... I'm wondering if "location" and "event" are
different things though ... where one refers to geographical location of
the action versus the other to a potentially temporal event.

For example, in that scenario, what's the relationship between
CookAction.foodEvent.location and CookAction.location?


> * ExerciseAction --{portsActivityLocation} --> SportsActivityLocation
> * CookAction --{foodEstablishment}--> FoodEstablishment
> IMO both could simply use parent property *location* instead
>
> PROBLEM: I worry about creating many not needed sub-properties for
> various sub-types of Place and Event.
>
> PROPOSAL:
> * using schema:location directly instead of creating sub-properties
> * extending domainIncludes of event with parent class 'Action' itself *
> * remove 5 Action sub-types currently included
>  * InformAction + subtypes could use about instead of event
>  * JoinAction could consistently use object as most of its examples does
>
> 2. Possible ambiguity in use of Action: object, about, recipient,
> location, event
>
> InviteAction --{event}--> Event
>
> Let's say John invites Steve for ISWC2014 while they meet during
> ESWC2014. It would make sense to me that consider ISWC2014 and object or
> about in this invitation, Alice a recipient and ESC2014 an event during
> which this invitation happened.
>
> {
>   "@context": "http://schema.org",
>   "@type": "InviteAction",
>   "agent": {
>     "@type": "Person",
>     "name": "John"
>   },
>   "recipient": {
>     "@type": "Person",
>     "name": "Steve"
>   },
>   "object": { // or "about"
>     "@type": "Event",
>     "name": "ISWC2014",
>     "startDate": "in 6 months"
>   },
>   "event": {
>     "@type": "Event",
>     "name": "ESC2014",
>     "startDate": "yesterday"
>   }
> }
>
> or looking at it differently
>
>
> {
>   "@context": "http://schema.org",
>   "@type": "InviteAction",
>   "agent": {
>     "@type": "Person",
>     "name": "John"
>   },
>   "object": {
>     "@type": "Person",
>     "name": "Steve"
>   },
>   "recipient": { // or "about"
>     "@type": "Event",
>     "name": "ISWC2014",
>     "startDate": "in 6 months"
>   },
>   "event": {
>     "@type": "Event",
>     "name": "ESC2014",
>     "startDate": "yesterday"
>   }
> }
>

I would have expected something like the following for "Let's say John
invites Steve for ISWC2014 while they meet during ESWC2014":

{
  "@context": "http://schema.org",
  "@type": "InviteAction",
  "agent": {
    "@type": "Person",
    "name": "John"
  },
  "recipient": { // or "about"
    "@type": "Person",
    "name": "Steve"
  },
  "event": {
    "@type": "Event",
    "name": "ESC2014",
    "startDate": "in 6 months"
  }
  "location": {
    "@type": "Place",
    "name": "ESC2014",
  }
  "startDate": "yesterday"
}


>
> I would also see InviteAction useful not only for Event invitations.
> People invite each other to Organization (Group/Community), Place (with
> no particular time given) etc. We could clarify how to do it in
> consistent way with object & recipient.
>

Yeah, agreed. I think those are valid usages of InviteAction.


>
> http://schema.org/CheckInAction
>
> In examples also seems to use object and location in inconsistent way. I
> would see it more consistent to use object instead of location in "John
> checked in at Yandex" scenario.
>

Yeah, agreed. Send a patch?

https://github.com/danbri/schemaorg


>
> http://schema.org/JoinAction
>
> Most of examples there use object, but event example uses event instead.
> I would find it more clear to just use object in consistent way.
>
> 3. Best practices for using Action, Place and Event together.
>
> If Action happens in context of some event, this event will already have
> location specified. We could recommend either to copy location data from
> Event to action or assume that action.location = action.event.location
>

I think we would need to understand both. AFAICT, they are both
semantically equivalent, just different ways of saying the same thing
(which occurs in many forms in schema.org).


>
>
> In general I think that clear examples of various common cases can come
> of more use then trying to nail down descriptions of all those properties!
>

+1, I totally agree. Send a patch?


>
> Cheers
>
>

Received on Wednesday, 1 October 2014 16:19:17 UTC