- From: Richard Wallis <richard.wallis@dataliberate.com>
- Date: Wed, 25 Nov 2015 19:41:45 +0000
- To: Eleni Mikroyannidi <Eleni.Mikroyannidi@bbc.co.uk>
- Cc: Daniel Stieglitz <dstieglitz@stainlesscode.com>, Jonathan Balls <Jonathan.Balls@bbc.co.uk>, Paul Kelly <paul@xmlteam.com>, Tom Grahame <tom.grahame@bbc.co.uk>, Vicki Tardif Holland <vtardif@google.com>, "public-sport-schema@w3.org" <public-sport-schema@w3.org>
- Message-ID: <CAD47Kz4+meX-Q5-+_T_6B-7mCLQJnsvZU9uUTrWSAB4XG8UdSA@mail.gmail.com>
Eleni, I agree with you about modelling and inference, which is up to the consumer. Taking a look at what Jonathan proposed I decided to test it a little with an extreme case - cricket. Being English and having a couple of hours to fill at an airport gate. If what is proposed can handle cricket scores, it can handle most anything! The examples previously handle the Schedules/Cancelled/Postponed/Rescheduled cases well. See from below, I think there is justification for EventInProgress, EventDelayed, and in addition EventPaused. ~Richard. Example 1. Football at half-time: <script type="application/ld+json"> { "@context":"http://schema.org", "@type":"SportsEvent", “name": "Barclays Premier League Liverpool v Crystal Palace", “eventStatus”:{ “@type”: “EventPaused”, “description”: “Halftime break” }, "competitor": [ { "@type": "SportsTeam", "name": "Liverpool", "alignment": "home", "measurement": { "@type": "Measurement", "measurementUnits": "Goals", “measuredValue": "0" } }, { "@type": "SportsTeam", "name": "Crystal Palace", "alignment": "away", "measurement": { "@type": "Measurement", "measurementUnits": "Goals", “measuredValue": "0" } }, ] } </script> Example 2. Cricket - in progress (day2) <script type="application/ld+json"> { "@context":"http://schema.org", "@type":"SportsEvent", “name”: “England Australia Ashes Test“, “eventStatus”:{ “@type”: “EventInProgress”, “description”: “Day 2 - Morning” }, "competitor": [ { "@type": "SportsTeam", “name": "England", "alignment": "home", “measurement": [ { “@type": "Measurement", “name”: “First innings”, “measurementUnits": "Runs", “measuredValue”: "152" }, { "@type": "Measurement", “name”: “First innings”, “measurementUnits”: "Wickets", “measuredValue”: “3" }, "@type": "Measurement", “name”: “First innings”, “measurementUnits”: “Innings", “measuredValue”: “1” } ] }, { "@type": "SportsTeam", “name": "Australia", "alignment": "away", “measurement": { “@type": "Measurement", “name”: “First innings total”, “measurementUnits": "Runs", “measuredValue”: “210" } } ] } </script> Example 3. Cricket - paused (day 4) <script type="application/ld+json"> { "@context":"http://schema.org", "@type":"SportsEvent", “name”: “England Australia Ashes Test“, “eventStatus”:{ “@type”: “EventPaused”, “description”: “Day 4 - Rain stopped play” }, "competitor": [ { "@type": "SportsTeam", “name": "England", "alignment": "home", “measurement": [ { "@type": "Measurement", “name”: “First innings total”, “measurementUnits": "Runs", “measuredValue”: “457" }, { "@type": "Measurement", “name”: “Second innings”, “measurementUnits": "Runs", “measuredValue”: “87” }, { "@type": "Measurement", “name”: “Second innings”, “measurementUnits”: "Wickets", “measuredValue”: “5” }, "@type": "Measurement", “measurementUnits”: “Innings", “measuredValue”: “2” } ] }, { "@type": "SportsTeam", “name": "Australia", "alignment": "away", “measurement": [ { “@type": "Measurement", “name”: “First innings total”, “measurementUnits": "Runs", “measuredValue”: “210" }, { “@type": "Measurement", “name”: “Second innings total”, “measurementUnits": "Runs", “measuredValue”: “602” }, ] } ] } </script> Richard Wallis Founder, Data Liberate http://dataliberate.com Linkedin: http://www.linkedin.com/in/richardwallis Twitter: @rjw On 25 November 2015 at 17:41, Eleni Mikroyannidi < Eleni.Mikroyannidi@bbc.co.uk> wrote: > I like the modelling around measurements; it is quite general so it can > fit for multiple purposes. > > The status of an event can also be inferred from the start and endDate of > the event; e.g. If a competition has a startDate and no endDate then it's > probably in progress or it hasn't happened yet…. > > I think stating these things explicitly rather than inferring them its > more to the general approach of modelling in schema.org. This can be > modelled by extending the EventStatusType: At the moment it has the > following enumeration: > > - EventCancelled > - EventPostponed > - EventRescheduled > - EventScheduled > > So it's missing EventInProgress status and EventDelayed. > > On 25/11/2015 17:35, "Daniel Stieglitz" <dstieglitz@stainlesscode.com> > wrote: > > Paul is absolutely correct in saying that event status is key and we > should work on defining an appropriate life cycle for events. > > There are a number of nuances when it comes to event status, much like > with defining results. For example, games can be finished ("Completed,") > but official results are tabulated sometimes hours later, which often > require a separate state ("Closed, e.g.). At the most basic level we'd > probably need Scheduled--->In Progress--->Delayed--->Postponed, > Cancelled--->Completed. Plus sport-specific options where applicable. > EventStatusType has additionalType semantics which could be used to achieve > this narrowing. > > Richard, do you have any insight on the inference question? If it's an > accepted practice to leave inference to consumers of the data I think it > would solve a number of problems and keep the data payloads lighter. > > > > On Wed, Nov 25, 2015 at 9:17 AM, Jonathan Balls <Jonathan.Balls@bbc.co.uk> > wrote: > >> The EventStatus enumeration is interesting. It doesn't have things like >> EventInProgress and EventCompleted. Maybe this is another area we want to >> consider? >> >> I was looking at the previous group's effort in this area. They seem to >> have come up with the idea of measurements. I like the idea. It feels like >> it could cover a much broader range of concepts than "score". I've tried >> working up another example based on that >> >> <script type="application/ld+json"> >> { >> "@context":"http://schema.org", >> "@type":"SportsEvent", >> "name": "Barclays Premier League Liverpool v Crystal Palace", >> "competitor": [ >> { >> "@type": "SportsTeam", >> "name": "Liverpool", >> "alignment": "home", >> "measurement": { >> "@type": "Measurement", >> "measurementUnits": "Goals", >> "measuredValue": "2", >> } >> }, >> { >> "@type": "SportsTeam", >> "name": "Crystal Palace", >> "alignment": "away", >> "measurement": { >> "@type": "Measurement", >> "measurementUnits": "Goals", >> "measuredValue": "1", >> } >> }, >> ] >> } >> </script> >> >> Dan's question about inference is really key to this approach. With a >> eventStatus=InProgress the above would mean something very different to an >> eventStatus=Completed >> >> >> From: Daniel Stieglitz <dstieglitz@stainlesscode.com> >> Date: Wednesday, 25 November 2015 15:27 >> To: Paul Kelly <paul@xmlteam.com> >> Cc: Eleni Mikroyannidi <Eleni.Mikroyannidi@bbc.co.uk>, Richard Wallis < >> richard.wallis@dataliberate.com>, Tom Grahame <tom.grahame@bbc.co.uk>, >> Vicki Tardif Holland <vtardif@google.com>, BBC <Jonathan.Balls@bbc.co.uk>, >> "public-sport-schema@w3.org" <public-sport-schema@w3.org> >> >> Subject: Re: Scores for head to head events >> >> Ok I think I understand where you're coming from now Paul. SportsEvent >> does have an eventStatus predicate of type EventStatusType which is an >> enumeration. If we add an EventInProgress enum and introduce the concept of >> EventSegment I think it would be a good start to handling many of the >> aggregate cases for reporting live results. >> >> Is it sufficient to omit those results items for anything in the >> scheduled phase? >> >> I have a more general question also: what is the policy for leaving >> inference to a consumer of the data? For example, it can be inferred that >> an event with eventStatus==EventInProgress does not have a final result. Do >> we need different terms for results prior to the outcome being known? >> >> On Wed, Nov 25, 2015 at 7:12 AM, Paul Kelly <paul@xmlteam.com> wrote: >> >>> Yes, you are right Dan. >>> >>> What I’m questioning is whether a sports-event result should have a >>> different structure, using different terms, than the same event prior to >>> the outcome being known. Anything we come up with has to work for schedule >>> and live requirements. >>> >>> >>> > On Nov 25, 2015, at 9:56 AM, Daniel Stieglitz < >>> dstieglitz@stainlesscode.com> wrote: >>> > >>> > Please correct me if I'm wrong but my understanding was, at least for >>> this first pass on the model, that we *would* fixate on results? >>> > >>> > In general I agree we should consider all aspects of the model, but I >>> thought results was made a priority in order to narrow the scope on our >>> work for the time being. >>> > >>> > Paul does bring up some interesting points with regard to how the >>> state of the event is modeled while it is in progress, which is something >>> we deal with exhaustively on a daily basis. The notion of the "last known" >>> results of an event, as well as recalling the results at arbitrary times is >>> worth at least a quick think at this stage IMHO. What I like about the >>> *Result model, e.g.: >>> > >>> > Event--->competitor(Person|Team)--->CompetitorResult >>> > >>> > we can "double down" on the Result at both the Competitor and Event >>> level for last known state, as well as on a (future) "segment" based model: >>> > >>> > Event--->EventResult--->competitor (e.g. Win, final score) >>> > Event--->competitor--->CompetitorResult (e.g., score) >>> > (future) Event--->Event Segment (e.g., inning, period, >>> over)--->SegmentResult--->competitor... >>> > >>> > Maybe that's a bit too normalized? >>> > >>> > Dan >>> > >>> > On Wed, Nov 25, 2015 at 6:25 AM, Paul Kelly <paul@xmlteam.com> wrote: >>> > We shouldn’t fixate on results. A sports event is represented before >>> it starts (as a "fixture" or in a schedule), while it is in progress (live >>> updates) and after the results are in. Not to mention other states (some of >>> them specific to sport) such as postponed, suspended, forfeited, delayed >>> (due to weather), etc. >>> > >>> > Would we recommend using different terms for different stages in the >>> life cycle of an event? >>> > >>> > >>> > > On Nov 25, 2015, at 5:00 AM, Eleni Mikroyannidi < >>> Eleni.Mikroyannidi@bbc.co.uk> wrote: >>> > > >>> > > Hello, >>> > > >>> > > Some comments inline: >>> > > >>> > > On 25/11/2015 08:55, "Richard Wallis" < >>> richard.wallis@dataliberate.com> wrote: >>> > > >>> > >> From <http://schema.org/Action> >>> > >> >>> > >> “An action performed”…”The execution of the action may produce a >>> result” >>> > >> >>> > >> I would suggest that winning the Booker prize was an action that >>> occurred, or was completed, though it might not have been previously >>> defined [by the eventual winner] as a potential action. >>> > > >>> > > Yes I agree. It's the outcome of the action not a potential outcome. >>> In the same way, the score can be the outcome of a sports competition. >>> > > >>> > > Nevertheless, I think the definition of a SportsResult concept is >>> needed either if it's used in the Actions or directly in the competition. I >>> was looking into the Actions modelling, because it already provides a >>> general result predicate and it also has some modelling in actions around >>> Win and Loss so it can be reused in a head to head competition. >>> > > >>> > > >>> > > On 24 November 2015 at 14:47, Paul Kelly <paul@xmlteam.com> wrote: >>> > >> Also, I see below that this means distinguishing between the agent >>> and the participant? >>> > > >>> > > Yes, in actions, the agent is distinguished from the participant. I >>> think the agent it is the subject of the action. >>> > > >>> > > Many thanks, >>> > > Eleni >>> > > >>> > > >>> > >> >>> > >> On 24 November 2015 at 14:47, Paul Kelly <paul@xmlteam.com> wrote: >>> > >>> Are those outcomes really actions, though? A team sets out to win >>> and acts accordingly but there’s no intention to lose. Somebody writes a >>> book (to use schema.org’s "*John* wrote a book" example) but the action >>> wasn’t directly to win the Booker prize. Also, I see below that this means >>> distinguishing between the agent and the participant? >>> > >>> >>> > >>> >>> > >>> > On Nov 23, 2015, at 12:43 PM, Eleni Mikroyannidi < >>> Eleni.Mikroyannidi@bbc.co.uk> wrote: >>> > >>> > >>> > >>> > I was wondering if we could make use of the Action concept for >>> representing head to head actions/results. Schema.org already has the >>> concept of WinAction, TieAction and LoseAction. In this case, a football >>> WinAction could be modelled as: >>> > >>> > >>> > >>> > <!-- Liverpool won a football competition against Crystal >>> Palace. --> >>> > >>> > <script type="application/ld+json"> >>> > >>> > { >>> > >>> > "@context": "http://schema.org", >>> > >>> > "@type": "WinAction", >>> > >>> > "agent": { >>> > >>> > "@type": "SportsTeam", >>> > >>> > "name": "Liverpool", >>> > >>> > "@id": "https://dbpedia.org/resource/Liverpool_F.C." >>> > >>> > }, >>> > >>> > "object": { >>> > >>> > "@type": "SportsEvent", >>> > >>> > "name": "Barclays Premier League Liverpool v Crystal Palace" >>> > >>> > }, >>> > >>> > "result": "2-0", >>> > >>> > "agentScore": 2, >>> > >>> > "participantScore": 0, >>> > >>> > "participant": { >>> > >>> > "@type": "SportsTeam", >>> > >>> > "name": "Crystal Palace", >>> > >>> > "@id": "https://dbpedia.org/resource/Crystal_Palace_F.C." >>> > >>> > } >>> > >>> > } >>> > >>> > </script> >>> > >>> > >>> > >>> > The Action concept has the general https://schema.org/result >>> predicate, which can be used within any Action. A SportsResult could be >>> defined within that context. >>> > >>> > >>> > >>> > Cheers, >>> > >>> > Eleni >>> > >>> > >>> > >>> > On 23/11/2015 10:14, "Tom Grahame" <tom.grahame@bbc.co.uk> >>> wrote: >>> > >>> > >>> > >>> >> >>> > >>> >> For info and not intended to sway the conversation in any >>> particular direction: >>> > >>> >> >>> > >>> >> home/awayCompetitor lifts from the Sport ontology: >>> > >>> >> http://www.bbc.co.uk/ontologies/sport#terms_homeCompetitor >>> > >>> >> http://www.bbc.co.uk/ontologies/sport#terms_awayCompetitor >>> > >>> >> >>> > >>> >> There’s a gist I did a while ago here: >>> > >>> >> https://gist.github.com/tfgrahame/8974800 >>> > >>> >> >>> > >>> >> Scoring gets hard when scores can be applied variously to >>> events and/or competitors, we got stuck on this last time. >>> > >>> >> >>> > >>> >> Tom >>> > >>> >> >>> > >>> >> From: Daniel Stieglitz <dstieglitz@stainlesscode.com> >>> > >>> >> Date: Friday, 20 November 2015 16:25 >>> > >>> >> To: Vicki Tardif Holland <vtardif@google.com> >>> > >>> >> Cc: Paul Kelly <paul@xmlteam.com>, Jonathan Balls < >>> Jonathan.Balls@bbc.co.uk>, "public-sport-schema@w3.org" < >>> public-sport-schema@w3.org> >>> > >>> >> Subject: Re: Scores for head to head events >>> > >>> >> Resent-From: <public-sport-schema@w3.org> >>> > >>> >> Resent-Date: Friday, 20 November 2015 16:26 >>> > >>> >> >>> > >>> >>> Hi folks: >>> > >>> >>> >>> > >>> >>> SportsEvent also supports the SportsEvent-->competitor >>> relationship, where competitor can be SportsTeam or Person. Oddly enough >>> this seems to be the way homeTeam and awayTeam are also mapped which seems >>> confusing (they can be Persons?) >>> > >>> >>> >>> > >>> >>> Perhaps homeTeam and awayTeam should be refactored out and >>> replaced by the competitor relationship, where cardinality is enforced by >>> subtypes (e.g., if SportsEvent is a FootballGame, competitor max >>> cardinality is 2 and competitor types are restricted to Team). >>> > >>> >>> >>> > >>> >>> For results I think a CompetitorResult object may be required >>> (or CompetitorScore [subclass?]) that is then applied to the Event object. >>> > >>> >>> >>> > >>> >>> Of course the issue of tracking how the CompetitorScore might >>> change over time is also a consideration. >>> > >>> >>> >>> > >>> >>> Dan >>> > >>> >>> >>> > >>> >>> On Fri, Nov 20, 2015 at 8:15 AM, Vicki Tardif Holland < >>> vtardif@google.com> wrote: >>> > >>> >>>> >>> > >>> >>>> On Thu, Nov 19, 2015 at 5:20 PM, Paul Kelly <paul@xmlteam.com> >>> wrote: >>> > >>> >>>>> Also, how general do we need to be? Are we going to draw a >>> distinction between team events, head-to-head sports (boxing, fencing) and >>> race-type events (F1, athletics, swimming)? Or do we want a general >>> formation for all three of those types of competition (to use the north >>> american sense of that word :) >>> > >>> >>>> >>> > >>> >>>> This is the crux of the issue. To support events with more >>> than two competitors, we will need more than a simple homeScore/awayScore >>> model. With the Olympics coming up again, I think we should consider >>> supporting these events sooner rather than later. >>> > >>> >>>> >>> > >>> >>>> - Vicki >>> > >>> >>>> >>> > >>> >>>> Vicki Tardif Holland | Ontologist | vtardif@google.com >>> > >>> >>>> >>> > >>> >>> >>> > >>> >> >>> > >>> >> >>> > >>> >> ---------------------------- >>> > >>> >> >>> > >>> >> http://www.bbc.co.uk >>> > >>> >> This e-mail (and any attachments) is confidential and may >>> contain personal views which are not the views of the BBC unless >>> specifically stated. >>> > >>> >> If you have received it in error, please delete it from your >>> system. >>> > >>> >> Do not use, copy or disclose the information in any way nor act >>> in reliance on it and notify the sender immediately. >>> > >>> >> Please note that the BBC monitors e-mails sent or received. >>> > >>> >> Further communication will signify your consent to this. >>> > >>> >> --------------------- >>> > >>> >>> > >>> >>> > >> >>> > >>> > >>> >>> >> >
Received on Wednesday, 25 November 2015 19:42:36 UTC