- From: Sam Goto <goto@google.com>
- Date: Wed, 1 Oct 2014 09:18:49 -0700
- To: ☮ elf Pavlik ☮ <perpetual-tripper@wwelves.org>
- Cc: "public-vocabs@w3.org" <public-vocabs@w3.org>
- Message-ID: <CAMtUnc5s8TAN6c0z8G5vCTWL4=5GG820haHDWWzkAjkdAQBBNw@mail.gmail.com>
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