Skip to toolbar

Community & Business Groups

Open Athletics for a global sport

800 mark on a track

Back in 2017, we launched the OpenTrack Community Group, motivated by Andy Robinson, who had already begun to play with open data in the field of Athletics —his proposal was awarded the third prize in the European Finodex Open Data Accelerator. Andy’s idea was evolving the concept of Open Data towards sports, a world full of interesting data and similar rules in all places. Nicolas Launois, Technical Manager at European Athletics (EAA), quickly showed interest and started to draw a vision on the future Athletics data management in Europe: having a common (distributed or centralized) database with data of all competitions, athletes, federations, clubs, etc. Something far from the current reality. The OpenTrack Community Group aimed at achieving a common vocabulary to model and describe athletics competitions all around the world, from elite World Championships to charity fun runs.

The group started developing a conceptual data model for track and field data. It includes high-level entities such as athletes, clubs, venues, and competitions, but also others to describe competitions in depth (i.e., field trials, results, lists of starters, etc.). This model was discussed and refined during a meeting organized in Portugal (Athletics Data Conference or AthTech’17). The conclusion was that the model was complete, but too complex to be implemented in short term, so we decided to focus on something of interest for most of the people: calendars of competitions, competitors and organizations.

In October 2018, we organized the latest edition of AthTech, where we presented a proposal for a common vocabulary to describe the information that most of the athletics federations already exposed on their websites —so we believe that is non-sensitive information and can be published as open data. After some iterations, we are pleased to present the first draft of the Sports Competition Data Model and Vocabulary.

The Sports Competition Data Model and Vocabulary specify a lightweight schema, based on Schema.org, to represent the main concepts and relations about sports competitions, venues, athletes, and other stakeholders as a common representation of information in this realm. This document includes examples of implementation that may clarify doubts about the usage of Semantic Web technologies such as RDF and JSON-LD. We also have created a large JSON-LD context with aliases for classes and instances in order to simplify its notation and subsequent adoption. The flexibility of schema.org gives the vocabulary more chances to be adopted by all the prospective stakeholders.

Some quick examples

In http://purl.org/athletics/code you can find some implementation examples, including both human and machine-readable formats.

Competition Calendar

Competition calendar is perhaps the most interesting information in terms of audience. It is relevant for athletes, clubs, federations, event organizers, media agencies, public bodies, and many other stakeholders. We have created some examples derived from the EEA’s 2018 calendar, imported and delivered in a lite JSON version of the vocabulary (see the JSON file). This list of competitions was enriched semantically using the Sports Competition Data Model and Vocabulary.

  {  
     "@type":"ath:SportsCompetitionEvent",
     "@id":"http://…/competitions/be4yxqFPEs2eTQhpR",
     "schema:identifier":"2019013",
     "schema:name":"8th Adana Half Marathon",
     "schema:description":"International Road Races Meetings with National Permit …",
     "schema:startDate":"2018-01-07T10:00:00.000Z",
     "schema:location":{  
        "@type":"schema:Place",
        "schema:name":"TUR",
        "address":{  
           "@type":"schema:PostalAddress",
           "schema:addressCountry":{  
              "@type":"schema:Country",
              "@id":"http://…/countries/TUR",
              "schema:name":"Turkey",
              "schema:image":"http://…/Flag_of_Turkey.svg",
              "schema:identifier":"TUR",
              "schema:alternateName":"TUR"
           }
        }
     },
     "ath:sportsDiscipline":{  
        "@id":"http://…/disciplines/HMar",
     },
     "ath:resultDecision":{  
        "@id":"http://…/be4yxqFPEs2eTQhpR/results"
     },
     "schema:competitor":[ ],
     "ath:competitionAction":[ ]
  }

Categories

Competition Categories are key in the interoperability of multilingual systems. Although IAAF defines a common set of rules for age and gender categories, there are thousands of variants in every country. So organizers may have specific and unique criteria to create categories, but most of them will use the same but named differently. The semantic approach of this model tries to solve this, offering also multilingual capabilities.

Example of the definition of the Female Under 23 category:

  {  
     "@type":"ath:CompetitiveAudience",
     "@id":"http://…/categories/U23F",
     "schema:name":"Female Under 23",
     "schema:identifier":"U23F",
     "schema:description":"Female athletes of age in between 20 and 22 (included), on 31th December in the year of the competition",
     "schema:requiredGender":"Female",
     "schema:requiredMinAge":20,
     "schema:requiredMaxAge":22,
     "ath:referenceDate":"--1231",
     "schema:recognizingAuthority":{  
        "@id":"http://…/federations/IAAF"
     }
  }

Using this approach, we can reuse categories or indicate that categories defined by different federations are the same.

Disciplines

Another feature to highlight is the type of discipline or athletics event (i.e., marathon, sprints, jumps, throws, etc.). There was no common taxonomy for that, so we made a proposal that will be compatible with all the possible disciplines —even with the Cooper’s Hill Cheese-Rolling and Wake. Common disciplines are important to characterize records or personal bests (e.g., outdoor and indoor races over the same distance are not considered equivalent).
For instance, a description of the Half Marathon discipline:

 {  
    "@type":"ath:DistanceDiscipline",
    "@id":"http://.../disciplines/HMar",
    "schema:name":"Half Marathon",
    "schema:identifier":"HMar",
    "schema:alternateName":"HMar",
    "ath:venueType":"ath:AthleticsVenueRoad",
    "ath:raceCompetitionType":"ath:IndividualCompetition",
    "schema:distance":{  
       "@type":"schema:QuantitativeValue",
       "schema:value":21097,
       "schema:unitCode":"MTR"
    }
 }

Check some other examples, read the main specification and give us feedback. You are also welcome if you join the Community Group!

Leave a Reply

Your email address will not be published. Required fields are marked *

Before you comment here, note that this forum is moderated and your IP address is sent to Akismet, the plugin we use to mitigate spam comments.

*