Sports Roles

33 views
Skip to first unread message

Jason Johnson

unread,
Dec 10, 2013, 8:49:41 PM12/10/13
to sports-sch...@googlegroups.com
So here are my thoughts on roles, building off of the needs I've seen coming out of the events, organization, and athlete work.  I see two options available to us.

1. Leverage the existing schema.org model where roles are defined as contextual properties of the entities they are associated with.  For example, a 'CreativeWork' has an 'author' property, which defines the role of author for the creative work.  Similarly, you would also have a property for a 'Person' called 'authorOf' (or something similar) which would allow you to define the role in reverse.  There are a variety of these defined in Schema.Org and I've provided a list at the end of this thread of what I could find. *1*

We would define the following new properties:


Event.host // would also serve to identify the 'home' team

Event.officiate


SportsTeam.player **

SportsTeam.coach **

 

Person.playsFor

Person.coachesFor


** the trick w/ this model is that we don't have the ability to define properties of the role, like 'position' of the player, the start date of that player in that position, and the end date


2. Define a new 'Role' class that would define a relationship between an agent (person or organization) and something they are involved with (another person, organization, event, or creative work).  It would borrow from the model established via the ‘participation’ schema maintained in vocab.org / purl.org.

A Role would be composed of:
- a name for the role
- the start and end date of the role
- the thing that holds the role
- the thing at which the role is held
 
class: Role
  property: name
  property: startDate
  property: endDate
  property: holder [expectedType: Person or Organization]
  property: heldAt [expectedType: Person, Organization, Event, or CreativeWork]
 
Roles would be sub-classed to establish the context of the role, for example:  Role -> SportsRole -> PlayerRole, Role -> SportsRole -> CoachRole (a full list at the bottom of this thread *2*)
 
Person, Organization, Event, and CreativeWork would have a new property called ‘role’ which would define one or more roles associated with that thing.

Here are some examples of how we would leverage this new 'Role' class.

<script type="application/ld+json">

{

  "@context" : "http://schema.org",

  "@type" : "SportsTeam",

  "name" : "Seattle Seahawks",

  "role" :

  [

    {

      "@type" : "CoachRole",

      "name" : "Head Coach",      

      "holder" : {

        "@type" : "Person",

        "name" : "Pete Carroll"

      },

      "startDate" : "2011",

     

    },

    {

      "@type" : "PlayerRole",

      "name" : "Quarterback",

      "holder" : {

        "@type" : "Person",

        "name" : "Russell Wilson"

      }

    }

  ]

}

</script>

 

<script type="application/ld+json">

{

  "@context" : "http://schema.org",

  "@type" : "Person",

  "name" : "Pete Carroll",

  "role" : {

    "@type" : "CoachRole",

    "name" : "Head Coach",

    "heldAt" : {

      "@type" : "SportsTeam",

      "name" : "Seattle Seahawks"

    }

  }

}

</script>

 

<script type="application/ld+json">

{

  "@context" : "http://schema.org",

  "@type" : "SportsEvent",

  "name" : "Seahawks vs. 49ers",

  "role" : [

    {

      "@type" : "HostRole",

      "holder" : {

        "@type" : "SportsTeam",

        "name" : "Seattle Seahawks"

        "role" : {

          "@type" : "PlayerRole",

          "name" : "Quarterback",

          "holder" : {

            "@type" : "Person",

            "name" : "Russell Wilson"

          }

        }

      }

    },

    {

      "@type" : "PerformerRole",

      "holder" : {

        "@type" : "SportsTeam",

        "name" : "San Francisco 49ers"

        "role" : {

          "@type" : "PlayerRole",

          "name" : "Quarterback",

          "holder" : {

            "@type" : "Person",

            "name" : "Colin Kaepernick"

          }

        }

      }

    }

  ]

}

</script>




*2* - proposed initial set of role subclasses

EventRole

AttendeeRole

HostRole // defines the 'home' team

PerformerRole

OfficiateRole

OrganizationRole // can also be used in context of an event

SportsRole

PlayerRole

PlayerRole.preferredHand

CoachRole

CorporateRole

OwnerRole

EmployeeRole

BoardRole

EducationRole

StudentRole

TeacherRole

AdminRole

CreativeRole

AuthorRole

DesignerRole

DirectorRole

EditorRole

PerformerRole  // actor, singer, contributor

ProducerRole // person or organization

PublisherRole // person or organization

CopyrightRole




*1* - existing contextual properties

Organization Properties

  • employee
  • founder
  • member
  • subOrganization
  • EducationOrganization.alumni

 

Person Properties

  • affiliation
  • alumniOf
  • brand
  • jobTitle
  • memberOf
  • owns
  • performerIn
  • worksFor

 

Event Properties

  • attendee
  • performer
  • superEvent
  • subEvent

 

CreativeWork

  • accountablePerson
  • author
  • contributor
  • copyrightHolder
  • creator
  • editor
  • provider
  • publisher
  • sourceOrganization
  • Movie.actor
  • Movie.director
  • Movie.producer
  • Movie.productionCompany
  • Series.musicBy

Jason Johnson

unread,
Dec 30, 2013, 3:20:50 PM12/30/13
to sports-sch...@googlegroups.com
I have posted a google document with a revised / updated version of this proposal for comments.  Please use that for any comments and as a reference for the most recent version.  Feel free to continue discussion in this thread as well.  Note that I have also shared this proposal with the broader schema.org group, so you may see comments / updates from that group as well.
Reply all
Reply to author
Forward
0 new messages