├── .travis.yml ├── CONTRIBUTING.md ├── LICENSE.md ├── README.md ├── athtech ├── 2017 │ ├── img │ │ └── vrsa_iaaf.jpeg │ └── index.html └── 2018 │ ├── img │ └── gijon_cerro.jpg │ └── index.html ├── charter.html ├── contexts └── opentrack.jsonld ├── examples ├── athlete │ ├── 001Farah.jsonld │ ├── 002Athlete2.jsonld │ └── 003Athlete3.jsonld ├── category │ ├── SEN.jsonld │ ├── SENF.jsonld │ └── SENM.jsonld ├── club │ ├── NEB.jsonld │ └── NOP.jsonld ├── competition │ ├── 2015LisbonHM.jsonld │ ├── Euro2016.jsonld │ └── EuropeanChampionships.jsonld ├── discipline │ ├── 100m.jsonld │ ├── 1500m.jsonld │ ├── 3000m.jsonld │ └── HMarathon.jsonld ├── federation │ ├── EAA.jsonld │ ├── GB-ENG.jsonld │ ├── GB-NIR.jsonld │ ├── GB-SCT.jsonld │ ├── GB-WLS.jsonld │ ├── GBR.jsonld │ └── USATF.jsonld ├── field-trials │ ├── U15PoleVault.jsonld │ └── U17DiscusThrow.jsonld ├── images │ └── club │ │ ├── logo1.svg │ │ ├── logo2.svg │ │ ├── logo3.svg │ │ ├── logo4.svg │ │ ├── logo5.svg │ │ ├── logo6.svg │ │ ├── logo7.svg │ │ └── logo8.svg ├── performance │ └── 001Farah.jsonld ├── schemaorg │ ├── competition-boston-marathon.jsonld │ └── images │ │ ├── boston_marathon.jpg │ │ └── track.png ├── team │ ├── GBR2012.jsonld │ └── GBR2016.jsonld └── timekeeping │ └── FAT.jsonld ├── external ├── IAAF TERMS AND ABBREVIATIONS.PDF └── countries.jsonld ├── incubation └── wa-competition-model │ ├── images │ └── wa-proposal.svg │ ├── index.html │ ├── use-cases │ ├── 100-final-DQ.json │ ├── hj-qualification.json │ └── tj-final.json │ └── wa-send-results-api.html ├── spec ├── competition-types │ └── README.md ├── competition │ ├── images │ │ ├── competitor_model.svg │ │ ├── disciplines_model.svg │ │ └── high-level-competition_model.svg │ └── index.html ├── disciplines │ ├── README.md │ └── complete.md ├── model │ ├── images │ │ ├── competition_model.graphml │ │ ├── competitor_model.graphml │ │ ├── competitor_model.svg │ │ ├── disciplines.graphml │ │ ├── disciplines.png │ │ ├── disciplines.svg │ │ ├── events.graphml │ │ ├── example_distance_card_concepts.png │ │ ├── example_height_card_concepts.png │ │ ├── example_results.png │ │ ├── example_start_list.png │ │ ├── high-level-competition_model.svg │ │ ├── instances_club_team.graphml │ │ ├── instances_club_team.png │ │ ├── instances_competition_european_champs_100.graphml │ │ ├── instances_competition_european_champs_100.png │ │ ├── instances_competition_european_champs_100.svg │ │ ├── instances_competition_european_champs_heptathlon.graphml │ │ ├── instances_competition_european_champs_heptathlon.png │ │ ├── instances_competition_european_champs_heptathlon.svg │ │ ├── instances_disciplines_pentathlon.graphml │ │ ├── instances_disciplines_pentathlon.png │ │ ├── instances_national_team.graphml │ │ ├── instances_national_team.png │ │ ├── instances_relays_ekiden.graphml │ │ ├── instances_relays_ekiden.png │ │ ├── instances_relays_ekiden.svg │ │ ├── low_level_competition_model.svg │ │ ├── results_discus.png │ │ └── results_final_teams.png │ ├── index.html │ └── officials.md ├── references │ └── rec20_Rev9e_2014.xls └── vocab │ ├── best.html │ ├── category.html │ ├── contents.html │ ├── css │ ├── default.css │ ├── jquery.toast.min.css │ └── style.css │ ├── feature.html │ ├── federation.html │ ├── img │ └── clipboard.svg │ ├── js │ ├── clipboard.min.js │ ├── core.js │ ├── jquery-3.2.1.min.js │ ├── jquery.toast.min.js │ └── tree.js │ ├── opentrack_0.1.ttl │ ├── protest.html │ ├── race.html │ ├── results.html │ └── trial.html ├── tools └── normalise-json.js └── w3c.json /.travis.yml: -------------------------------------------------------------------------------- 1 | language: node_js 2 | node_js: 3 | - "8" 4 | script: tools/normalise-json.js 5 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # W3C OpenTrack Community Group 2 | 3 | This repository is being used for work in the W3C OpenTrack Community Group, governed by the [W3C Community License Agreement (CLA)](http://www.w3.org/community/about/agreements/cla/). To make substantive contributions, you must join the CG. 4 | 5 | If you are not the sole contributor to a contribution (pull request), please identify all 6 | contributors in the pull request comment. 7 | 8 | To add a contributor (other than yourself, that's automatic), mark them one per line as follows: 9 | 10 | ``` 11 | +@github_username 12 | ``` 13 | 14 | If you added a contributor by mistake, you can remove them in a comment with: 15 | 16 | ``` 17 | -@github_username 18 | ``` 19 | 20 | If you are making a pull request on behalf of someone else but you had no part in designing the 21 | feature, you can remove yourself with the above syntax. 22 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | All Reports in this Repository are licensed by Contributors 2 | under the 3 | [W3C Software and Document License](http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document). 4 | 5 | Contributions to Specifications are made under the 6 | [W3C CLA](https://www.w3.org/community/about/agreements/cla/). 7 | 8 | Contributions to Test Suites are made under the 9 | [W3C 3-clause BSD License](https://www.w3.org/Consortium/Legal/2008/03-bsd-license.html) 10 | 11 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/w3c/opentrack-cg.svg?branch=master)](https://travis-ci.org/w3c/opentrack-cg) 2 | 3 | # Open Athletics Community Group 4 | 5 | This is the home repository of Open Athletics CG (officially named OpenTrack CG). 6 | 7 | The Open Athletics CG is composed by __a group of sports data enthusiasts__ motivated by the opportunities the open data promised during the rising data revolution in the public sector. This CG is a forum to discuss technology for athletics. We focus on data interoperability, including __data exchange across multi-level federations, clubs, timekeepers, race organizers, and the community in general__. The group aims to define the best approach to __make the most of the sports (open) data__ through __open standards and collaboration__. 8 | 9 | The CG organizes monthly teleconferences, and its members usually meet in physical meetings, like the series of AthTech Conferences promoted by European Athletics and with the participation of dozens of experts. 10 | 11 | This CG aimed to motivate the interchange of Athletics data across federations, clubs and businesses. Interoperability was and still is a challenge due to the heterogeneity of governing bodies and systems (i.e., lack of a central or a federated system to collect results automatically at the international level). Competitions are similar worldwide (i.e., changing distances and units, throwing different objects, and using different surfaces), and most of the information, like the results or the competitors, is public, so global interoperability seems feasible. 12 | 13 | 14 | ## Quick links 15 | 16 | Info and logistics for the group activities: 17 | 18 | * [Blog](https://www.w3.org/community/opentrack/) 19 | * [Forum & instant messaging](https://forum.openathletics.net/) 20 | * [Contact and feedback](https://github.com/w3c/opentrack-cg/issues) 21 | * [Meetings calendar](https://www.w3.org/groups/cg/opentrack/calendar/). 22 | 23 | 24 | Documents produced so far: 25 | 26 | * [Athletics Conceptual Model](https://w3c.github.io/opentrack-cg/spec/model/) 27 | * [Competition Data Model and Vocabulary](https://w3c.github.io/opentrack-cg/spec/competition/) based on Schema.org 28 | 29 | 30 | ## About Open Athletics (_OpenTrack_) 31 | 32 | This is the repository for the [W3C OpenTrack Community Group](https://www.w3.org/community/opentrack/) to develop and document specifications and code related to what we call **Open Athletics** —formerly *OpenTrack*, but changed to make the scope broader—, a set of tools to increase interoperability among systems managing information on athletics and sports in general. Open Athletics includes schemes and vocabularies to describe sports, as well as open source software that helps managing that kind of information. 33 | 34 | Through OpenTrack and Open Athletics, entities around the world (sport clubs, federations, private event organizers, etc.) will be able to open the data contributing towards open data in sports. This will bring new business opportunities to third parties (developers, public bodies, private companies, citizens, academia). 35 | 36 | In order to maximize the impact and adoption of the final proposal, this initiative is supported by [European Athletics](http://www.european-athletics.org) and other [relevant institutions](https://www.w3.org/community/opentrack/participants) of the world of *Data Management* and *Athletics*. 37 | 38 | Read the [Charter](https://w3c.github.io/opentrack-cg/charter.html) for more information about this group. 39 | 40 | ## What tools? 41 | 42 | The main component of OpenTrack is a set of vocabularies and taxonomies that will help publishers to model and expose information regarding athletics (events, athletes, facilities, results, rankings, and others). 43 | 44 | Participants in this group will contribute with code recipes, libraries, and examples about the use of athletics information. 45 | 46 | Currently, we are working on what we call it, **Open Athletics** models, vocabularies, and tools: 47 | 48 | * A **[Conceptual Data Model for Athletics](https://w3c.github.io/opentrack-cg/spec/model/)** to define Athletics competitions, events, management and participation in an abstract way; and 49 | * a **[Sports Competition Data Model and Vocabulary](https://w3c.github.io/opentrack-cg/spec/competition/)** based on Schema.org. It contains examples of implementation for competitions, participation, athletes, organizations, etc. 50 | * some **[code examples](http://purl.org/athletics/codes)** to illustrate how to use the former vocabulary to describe entities (i.e., athletes, clubs, and federations), and competitions (i.e., disciplines, categories, events) and some useful codes and taxonomies for countries, in-competition features, etc. 51 | 52 | ## Formats and standards 53 | 54 | All documents will be written in English and encoded in UTF-8. 55 | 56 | Schemas and vocabularies will be aligned with the existing W3C standards, in concrete with the Data on the Web specifications. Although they will be described as abstract vocabularies, they will be also modeled in RDF. 57 | 58 | 59 | ## Can I use it? 60 | 61 | Of course you can! Unless the piece of software or document listed in this repository has specified an explicit license, everything is under the [W3C Software and Document License](https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document). This means that, by default, you have permission to copy, modify, and distribute OpenTrack works, with or without modification, for any purpose and without fee or royalty. 62 | 63 | ## How can I participate? 64 | 65 | Everyone —either W3C Member or not— is invited to [join the W3C OpenTrack CG](https://www.w3.org/community/opentrack/). Just click on the 'join' button, and register with your W3C account (in case you don't have, please [request one](https://www.w3.org/accounts/request). Once you are a group member, you will be subscribed to the [main mailing list](https://lists.w3.org/Archives/Public/public-opentrack/) and the [calendar](https://www.w3.org/groups/cg/opentrack/calendar/). 66 | 67 | 68 | ### How to join? 69 | 70 | First, join our [forum](https://forum.openathletics.net/) so you can ask for help :) 71 | 72 | 73 | 1. If you don't have an account, [apply for one](https://www.w3.org/account/request/). 74 | 2. [Login on the W3C system](https://auth.w3.org/login). 75 | 3. And [apply for joining the group](https://www.w3.org/community/opentrack/join). 76 | 77 | 78 | If you have never used Github, please have a look at [this guide on how to use Github at W3C](https://www.w3.org/2006/tools/wiki/Github). 79 | 80 | 81 | ## References 82 | 83 | This work is based on previous works on sports data modeling, such as: 84 | 85 | * IOC [ODF](http://odf.olympictech.org/2016-Rio/rio_2016_OG.htm) 86 | * IPTC [SportsML](https://iptc.org/standards/sportsml-g2/). Vocabularies for sharing content (e.g., news) about sports in general. There are some specific vocabularies for concrete sports. Athletics is missing. 87 | * BBC [Sport Ontology](http://www.bbc.co.uk/ontologies/sport#). Lightweight ontology for publishing data about competitive sports events. 88 | -------------------------------------------------------------------------------- /athtech/2017/img/vrsa_iaaf.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/athtech/2017/img/vrsa_iaaf.jpeg -------------------------------------------------------------------------------- /athtech/2017/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 2nd Annual Athletics Data Conference 8 | 9 | 10 | 11 | 24 | 25 | 26 |
27 |
28 |

2nd Annual Athletics Data Conference

29 |

Vila Real de Santo Antonio, Algarve (Portugal)

30 |

5-6 October 2017

31 |

Conference Report

32 |
33 | 42 |

Download pictures, agenda, slides and other resources, or read more about the conference.

43 |
44 | 45 |
46 |
47 |
48 |
49 |
50 |

About the conference

51 |

AthTech is a two-day conference that aims at standardising Athletics competition technical management, with a strong focus on data management. European Athletics is putting efforts on the homogenization of competition data structures, building a common infrastructure that guarantees data interoperability between all stakeholders: regional/national federations, sports clubs, associations, event organisers, media agencies, and the public in general.

52 |
53 |
54 |
55 |
56 |
57 |
58 |

Standards for Athletics

59 |

A standard infrastructure for Athletics data management will enable a common mechanism to gain effectiveness and efficiency in the process of collecting and sharing data on a global scale. We will be able to: federate resources in an automatic way; establish universal identifiers for athletes, clubs, and other entities; access better reports; track competition issues, and records; have centralised up-to-date rankings; create and publish live results; create new services and products on top of the data.

60 |
61 |
62 |
63 |
64 |
65 |
66 |

Shape the future of Athletics

67 |

We will discuss about the European and global requirements of Athletics management systems to implement a standard to collect, process, publish and share Athletics information (athletes, teams, governing bodies, participation in competitions, results, issues and results, etc.). This event will serve as a forum to search for a common solution built on top of the existing local platforms to share Athletics information in a common way.

68 |
69 |
70 |
71 |
72 | 73 |
74 |
75 |
76 |
77 |

Open Data

78 |

The common Athletics infrastructure follows the open data paradigm, encouraging the publication of data in standard formats and under permissive re-use licences. This will bring us successful services and innovative products —made by federations or by third parties— that will affect the sport in a positive way.

79 |
80 |
81 |
82 |
83 |
84 |
85 |

Audience

86 |

AthTech is open to anyone. Athletics federations, clubs and event organisers are invited to present their experiences on competition management (how information is collected during a competition, how entries are registered, how/where results are published, etc.).

87 |
88 |
89 |
90 |
91 |
92 |
93 |

About the organisers

94 |

AthTech is organized by European Athletics and the members of the W3C OpenTrack Community Group: CTIC/W3C Spain Office, and ReportLab. Vila Real de Santo António Sports Complex, in Algarve (Portugal), graciously host the event.

95 |
96 |
97 |
98 |
99 |
100 | 101 |
102 |

Contact us for more information.

103 |
104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /athtech/2018/img/gijon_cerro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/athtech/2018/img/gijon_cerro.jpg -------------------------------------------------------------------------------- /athtech/2018/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 3rd Annual Athletics Data Conference 8 | 9 | 10 | 11 | 24 | 25 | 26 | 27 |
28 |
29 |

3rd Annual Athletics Data Conference

30 |

Gijón (Spain)

31 |

9-11 October 2018

32 |
33 | 44 | 45 |
46 |
47 |
48 |
49 |

About the conference

50 |

This is the third edition of AthTech, a two-day conference that aims at standardising Athletics competition technical management, with a strong focus on data management. European Athletics is putting efforts on the homogenization of competition data structures, building a common infrastructure that guarantees data interoperability between all stakeholders: regional/national federations, sports clubs, associations, event organisers, media agencies, and the public in general.

51 |
52 |
53 |
54 |
55 |
56 |
57 |

Standards for Athletics

58 |

A standard infrastructure for Athletics data management will enable a common mechanism to gain effectiveness and efficiency in the process of collecting and sharing data on a global scale. We will be able to: federate resources in an automatic way; establish universal identifiers for athletes, clubs, and other entities; access better reports; track competition issues, and records; have centralised up-to-date rankings; create and publish live results; create new services and products on top of the data.

59 |
60 |
61 |
62 |
63 |
64 |
65 |

Shape the future of Athletics

66 |

We will discuss about the European and global requirements of Athletics management systems to implement a standard to collect, process, publish and share Athletics information (athletes, teams, governing bodies, participation in competitions, results, issues and results, etc.). This event will serve as a forum to search for a common solution built on top of the existing local platforms to share Athletics information in a common way.

67 |
68 |
69 |
70 |
71 | 72 |
73 |
74 |
75 |
76 |

Open Data

77 |

The common Athletics infrastructure follows the open data paradigm, encouraging the publication of data in standard formats and under permissive re-use licences. This will bring us successful services and innovative products —made by federations or by third parties— that will affect the sport in a positive way.

78 |
79 |
80 |
81 |
82 |
83 |
84 |

Audience

85 |

AthTech is open to anyone. Athletics federations, clubs and event organisers are invited to present their experiences on competition management (how information is collected during a competition, how entries are registered, how/where results are published, etc.).

86 |
87 |
88 |
89 |
90 |
91 |
92 |

About the organisers

93 |

AthTech is organized by European Athletics and the members of the W3C OpenTrack Community Group: CTIC/W3C Spain Office, and ReportLab.

94 |
95 |
96 |
97 |
98 | 99 |

Contact us for more information.

100 | 101 |
102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | -------------------------------------------------------------------------------- /charter.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | OpenTrack Community Group Charter 7 | 8 | 9 | 10 | 11 | 43 | 44 | 45 | 46 |

47 | OpenTrack Community Group Charter 48 |

49 | 55 |

56 | Goals 57 |

58 |

59 | This group aims to develop an open schema for data in Athletics. Such a common vocabulary will enable interoperability and the development of better software to manage the sport, resulting in major savings of time for volunteers; more efficient management of events and federations; and more services for participants and fans. 60 |

61 |

62 | The resulting schema will be open and offered as a basis to construct a future standard to manage data in Athletics universally supporting the principles of Linked Data. In order to facilitate and foster adoption, the resulting model will be aligned with schema.org, easy to implement by all sectors —publishers, consumers, competition management, etc. 63 |

64 |

65 | Model and vocabulary will include basic classes and properties to describe the ecosystem of Athletics competitions. This vocabulary will be extensible beyond this charter, according to detected needs or use cases detected. 66 |

67 |

68 | Scope of Work 69 |

70 |

71 | This CG will develop technical documents to model and describe data in Athletics, including the following disciplines: Track and Field; Road Running; Race Walking; Cross-Country Running; Mountain Running; and trail Running. 72 |

73 |

74 | This model will be focus on Athletics competitions, having into account: events; athletes and teams; results; performances; management of start lists; results; and facilities. 75 |

76 |

77 | The aim of this work is not developing an exhaustive and complete Athletics ontology but having a common and flexible vocabulary to model this information in an easy and intuitive way. 78 |

79 |

80 | Out of Scope 81 |

82 |

83 | Development of applications, libraries, or any software is excluded from the scope of this charter. OpenTrack vocabularies will exclude aspects apart from the Athletics events such as: federations management; personnel, apart from competitors; event attendees; specific rules for events, such as dimensions of throwing items or tracks; doping management. 84 |

85 |

86 | This work will not include paralympic athletics specifically, but additional disciplines and categories may be added beyond the first version of this vocabulary. 87 |

88 |

89 | Deliverables 90 |

91 |

92 | Specifications 93 |

94 |

The proposed OpenTrack model will include two main Specifications:

95 |
96 |
OpenTrack Abstract Model
97 |
A light and easy-to-understand document explaining the conceptual model of Athletics competitions, including classes and properties described at high level.
98 |
Expected in May 2017
99 |
OpenTrack Schema
100 |
101 | RDF vocabulary to describe semantically Athletics competitions specified in the abstract model. This RDF vocabulary will be based on existing vocabularies, specially on schema.org. This vocabulary will also include taxonomies and other classification schemas involved in Athletics (e.g., type of Athletics events, codes for federations, and others). 102 |
103 |
104 | This schema will follow the schema.org approach, describing classes and properties under a flexible, intuitive and easy-to-implement model. Specification will include examples of code in at least one serialization format (e.g., JSON-LD). 105 |
106 |
Expected in October 2017
107 |
108 |

109 | Non-Normative Reports 110 |

111 |

112 | The group MAY produce other Community Group Reports within the scope of this charter but that are not Specifications, for instance use cases, requirements, list of tools and implementations, etc. 113 |

114 |

115 | Test Suites and Other Software 116 |

117 |

118 | This is out the scope of this charter, but the group MAY produce test suites to support the Specifications. Please see the GitHub LICENSE file for test suite contribution licensing information. 119 |

120 |

121 | Dependencies or Liaisons 122 |

123 |

124 | Work will be developed starting from existing implementations, schemas and working examples by Reportlab. Models will be created from the rules set by official entities like IAAF, WMA, European Athletics and other Athletics federations. 125 |

126 |

127 | OpenTrack CG will follow others W3C groups such as OpenActive CG and schema.org CG. 128 |

129 |

130 | Community and Business Group Process 131 |

132 |

133 | OpenTrack Community Group operates under the Community and Business 134 | Group Process. Terms in this Charter that conflict with those of the Community and Business Group Process are void. 135 |

136 |

137 | As with other Community Groups, W3C seeks organizational licensing commitments under the W3C Community 138 | Contributor License Agreement (CLA). When people request to participate without representing their organization's legal interests, W3C will in general approve those requests for this group with the following understanding: W3C will seek and expect an organizational commitment under the CLA starting with the individual's first request to make a contribution to a group Deliverable. The section on Contribution Mechanics describes how W3C expects to monitor these contribution requests. 139 |

140 |

141 | Work Limited to Charter Scope 142 |

143 |

144 | The group will not publish Specifications on topics other than those listed under Specifications above. See below for how to modify the charter. 145 |

146 |

147 | Contribution Mechanics 148 |

149 |

150 | Substantive Contributions to Specifications can only be made by Community Group Participants who have agreed to the W3C Community 151 | Contributor License Agreement (CLA). 152 |

153 |

154 | Specifications created in the Community Group must use the 155 | W3C Software and Document License. All other documents produced by the group should use that License where possible. 156 |

157 |

158 | Community Group participants agree to make all contributions in the 159 | GitHub repo the group is using for the particular document. This may be in the form of a pull request (preferred), by raising an issue, or by adding a comment to an existing issue. 160 |

161 |

162 | All Github repositories attached to the Community Group must contain a copy of the CONTRIBUTING and LICENSE files. 163 |

164 |

165 | Transparency 166 |

167 |

168 | The group will conduct all of its technical work in public. If the group uses GitHub, all technical work will occur in its GitHub repositories (and not in mailing list discussions). This is to ensure contributions can be tracked through a software tool. 169 |

170 |

171 | Meetings may be restricted to Community Group participants, but a public summary or minutes must be posted to the group's public mailing list, or to a GitHub issue. 172 |

173 |

174 | Decision Process 175 |

176 |

177 | This group will seek to make decisions where there is consensus. Groups are free to decide how to make decisions (e.g. Participants who have earned Committer status for a history of useful contributions assess consensus, or the Chair assesses consensus, or where consensus isn't clear there is a Call for Consensus [CfC] to allow multi-day online feedback for a proposed course of action). It is expected that participants can earn Committer status through a history of valuable contributions as is common in open source projects. After discussion and due consideration of different opinions, a decision should be publicly recorded (where GitHub is used as the resolution of an Issue). 178 |

179 |

180 | If substantial disagreement remains (e.g. the group is divided) and the group needs to decide an Issue in order to continue to make progress, the Committers will choose an alternative that had substantial support (with a vote of Committers if necessary). Individuals who disagree with the choice are strongly encouraged to take ownership of their objection by taking ownership of an alternative fork. This is explicitly allowed (and preferred to blocking progress) with a goal of letting implementation experience inform which spec is ultimately chosen by the group to move ahead with. 181 |

182 |

183 | Any decisions reached at any meeting are tentative and should be recorded in a GitHub Issue for groups that use GitHub and otherwise on the group's public mail list. Any group participant may object to a decision reached at an online or in-person meeting within 7 days of publication of the decision provided that they include clear technical reasons for their objection. The Chairs will facilitate discussion to try to resolve the objection according to the decision process. 184 |

185 |

186 | It is the Chairs' responsibility to ensure that the decision process is fair, respects the consensus of the CG, and does not unreasonably favour or discriminate against any group participant or their employer. 187 |

188 |

189 | Chair Selection 190 |

191 |

192 | Participants in this group choose their Chair(s) and can replace their Chair(s) at any time using whatever means they prefer. However, if 5 participants, no two from the same organisation, call for an election, the group must use the following process to replace any current Chair(s) with a new Chair, consulting the Community Development Lead on election operations (e.g., voting infrastructure and using RFC 2777). 193 |

194 |
    195 |
  1. Participants announce their candidacies. Participants have 14 days to announce their candidacies, but this period ends as soon as all participants have announced their intentions. If there is only one candidate, that person becomes the Chair. If there are two or more candidates, there is a vote. Otherwise, nothing changes. 196 |
  2. 197 |
  3. Participants vote. Participants have 21 days to vote for a single candidate, but this period ends as soon as all participants have voted. The individual who receives the most votes, no two from the same organisation, is elected chair. In case of a tie, RFC2777 is used to break the tie. An elected Chair may appoint co-Chairs. 198 |
  4. 199 |
200 |

201 | Participants dissatisfied with the outcome of an election may ask the Community Development Lead to intervene. The Community Development Lead, after evaluating the election, may take any action including no action. 202 |

203 |

204 | Amendments to this Charter 205 |

206 |

207 | The group can decide to work on a proposed amended charter, editing the text using the Decision Process described above. The decision on whether to adopt the amended charter is made by conducting a 30-day vote on the proposed new charter. The new charter, if approved, takes effect on either the proposed date in the charter itself, or 7 days after the result of the election is announced, whichever is later. A new charter must receive 2/3 of the votes cast in the approval vote to pass. The group may make simple corrections to the charter such as deliverable dates by the simpler group decision process rather than this charter amendment process. The group will use the amendment process for any substantive changes to the goals, scope, deliverables, decision process or rules for amending the charter. 208 |

209 | 210 | 211 | 212 | -------------------------------------------------------------------------------- /contexts/opentrack.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": { 3 | "@language": "en", 4 | "foaf": "http://xmlns.com/foaf/0.1/", 5 | "xsd": "http://www.w3.org/2001/XMLSchema#", 6 | "owl": "http://www.w3.org/2002/07/owl#", 7 | "dcterms": "http://purl.org/dc/terms/", 8 | "schema": "http://schema.org/", 9 | "pending": "http://tocheckifincluded.schema.org/", 10 | "ath": "http://purl.org/athletics#", 11 | "feature": "http://purl.org/athletics/feature#", 12 | "fed": "http://purl.org/athletics/federation#", 13 | "best": "http://purl.org/athletics/best#", 14 | "trial": "http://purl.org/athletics/trial#", 15 | "track": "http://purl.org/athletics/track#", 16 | "qudt": "http://qudt.org/schema/qudt/", 17 | "unit": "http://qudt.org/vocab/unit/", 18 | "countrycode": "http://publications.europa.eu/resource/authority/country/", 19 | "continent": "http://publications.europa.eu/resource/authority/continent/", 20 | "Organization": "schema:Organization", 21 | "Person": "schema:Person", 22 | "Place": "schema:Place", 23 | "SportsActivityLocation": "schema:SportsActivityLocation", 24 | "PostalAddress": "schema:PostalAddress", 25 | "Club": "schema:SportsClub", 26 | "Team": "schema:SportsTeam", 27 | "QuantitativeValue": "schema:QuantitativeValue", 28 | "Athlete": "ath:Athlete", 29 | "Federation": "ath:SportsGoverningBody", 30 | "Category": "ath:CompetitiveAudience", 31 | "Competitor": "ath:CompetitionAction", 32 | "Competition": "ath:SportsCompetitionEvent", 33 | "CompetitionSeries": "schema:EventSeries", 34 | "SportsDiscipline": "ath:SportsDiscipline", 35 | "QualificationCriteria": "ath:CompetitionQualificationCriteria", 36 | "UnitCompetition": "ath:UnitCompetition", 37 | "UnitRace": "ath:UnitRace", 38 | "Result": "ath:CompetitionResult", 39 | "Performance": "ath:SportsPerformance", 40 | "RecordOrBest": "ath:RecordOrBest", 41 | "DistancePerformance": "ath:DistancePerformance", 42 | "PointsPerformance": "ath:PointsPerformance", 43 | "TimePerformance": "ath:TimePerformance", 44 | "Timekeeping": "ath:TimekeepingAction", 45 | "TransponderSystemTimekeeping": "ath:TransponderSystemTimekeepingAction", 46 | "FullyAutomaticTimekeeping": "ath:FullyAutomaticTimekeepingAction", 47 | "HandTimekeeping": "ath:HandTimekeepingAction", 48 | "UnitFieldCompetition": "ath:UnitFieldCompetition", 49 | "UnitHeightCompetition": "ath:UnitHeightCompetition", 50 | "UnitDistanceCompetition": "ath:UnitDistanceCompetition", 51 | "Trial": "ath:FieldTrial", 52 | "DistanceTrial": "ath:DistanceTrial", 53 | "HeightTrial": "ath:HeightTrial", 54 | "AthleticsDiscipline": "ath:AthleticsDiscipline", 55 | "RaceDiscipline": "ath:RaceDiscipline", 56 | "DistanceDiscipline": "ath:DistanceDiscipline", 57 | "SteeplechaseDiscipline": "ath:SteeplechaseDiscipline", 58 | "HurdlesDiscipline": "ath:HurdlesDiscipline", 59 | "SprintDiscipline": "ath:SprintDiscipline", 60 | "RaceWalkingDiscipline": "ath:RaceWalkingDiscipline", 61 | "RoadRunningDiscipline": "ath:RoadRunningDiscipline", 62 | "CrossCountryDiscipline": "ath:CrossCountryDiscipline", 63 | "MountainRunningDiscipline": "ath:MountainRunningDiscipline", 64 | "TrackRelaysDiscipline": "ath:TrackRelaysDiscipline", 65 | "UltraRunningDiscipline": "ath:UltraRunningDiscipline", 66 | "ThrowsDiscipline": "ath:ThrowsDiscipline", 67 | "ShotPutDiscipline": "ath:ShotPutDiscipline", 68 | "DiscusThrowDiscipline": "ath:DiscusThrowDiscipline", 69 | "HammerThrowDiscipline": "ath:HammerThrowDiscipline", 70 | "JavelinThrowDiscipline": "ath:JavelinThrowDiscipline", 71 | "WeightThrowDiscipline": "ath:WeightThrowDiscipline", 72 | "HorizontalJumpsDiscipline": "ath:HorizontalJumpsDiscipline", 73 | "LongJumpDiscipline": "ath:LongJumpDiscipline", 74 | "TripleJumpDiscipline": "ath:TripleJumpDiscipline", 75 | "VerticalJumpsDiscipline": "ath:VerticalJumpsDiscipline", 76 | "HighJumpDiscipline": "ath:HighJumpDiscipline", 77 | "PoleVaultDiscipline": "ath:PoleVaultDiscipline", 78 | "CombinedDiscipline": "ath:CombinedDiscipline", 79 | "CompetitionRegistration": "schema:RegisterAction", 80 | "Scheduled": "schema:EventScheduled", 81 | "Postponed": "schema:EventPostponed", 82 | "Rescheduled": "schema:EventRescheduled", 83 | "Cancelled": "schema:EventCancelled", 84 | "identifier": "schema:identifier", 85 | "name": "schema:name", 86 | "alternateName": "schema:alternateName", 87 | "address": { 88 | "@id": "schema:address", 89 | "@type": "schema:PostalAddress" 90 | }, 91 | "streetAddress": "schema:streetAddress", 92 | "addressLocality": "schema:addressLocality", 93 | "longitude": "schema:longitude", 94 | "latitude": "schema:latitude", 95 | "elevation": "schema:elevation", 96 | "image": { 97 | "@id": "schema:image", 98 | "@type": "@id" 99 | }, 100 | "logo": { 101 | "@id": "schema:logo", 102 | "@type": "@id" 103 | }, 104 | "email": "schema:email", 105 | "telephone": "schema:telephone", 106 | "faxNumber": "schema:faxNumber", 107 | "url": { 108 | "@id": "schema:url", 109 | "@type": "@id" 110 | }, 111 | "familyName": "schema:familyName", 112 | "givenName": "schema:givenName", 113 | "prevFamilyName": "ath:previousFamilyName", 114 | "prevGivenName": "ath:previousFamilyName", 115 | "award": "schema:award", 116 | "agent": "schema:agent", 117 | "gender": { 118 | "@id": "schema:gender", 119 | "@type": "@vocab" 120 | }, 121 | "height": "schema:height", 122 | "weight": "schema:weight", 123 | "nationality": { 124 | "@id": "schema:nationality", 125 | "@type": "@vocab" 126 | }, 127 | "birthDate": { 128 | "@id": "schema:birthDate", 129 | "@type": "xsd:date" 130 | }, 131 | "referenceDate": { 132 | "@id": "ath:referenceDate", 133 | "@type": "xsd:date" 134 | }, 135 | "deathDate": { 136 | "@id": "schema:deathDate", 137 | "@type": "xsd:date" 138 | }, 139 | "datePublished": { 140 | "@id": "schema:datePublished", 141 | "@type": "xsd:date" 142 | }, 143 | "birthPlace": "schema:birthPlace", 144 | "memberOf": "schema:memberOf", 145 | "team": "schema:member", 146 | "coach": "schema:coach", 147 | "sponsor": "schema:sponsor", 148 | "affiliation": "schema:affiliation", 149 | "bestPerformance": "ath:bestPerformance", 150 | "sportsPerformance": "ath:sportsPerformance", 151 | "captainOf": "ath:captainOf", 152 | "dissolutionDate": { 153 | "@id": "schema:dissolutionDate", 154 | "@type": "xsd:date" 155 | }, 156 | "foundingDate": { 157 | "@id": "schema:foundingDate", 158 | "@type": "xsd:date" 159 | }, 160 | "athlete": "schema:athlete", 161 | "captain": "ath:captain", 162 | "location": "schema:location", 163 | "areaServed": { 164 | "@id": "schema:areaServed", 165 | "@type": "@vocab" 166 | }, 167 | "member": "schema:member", 168 | "requiredMinAge": { 169 | "@id": "schema:requiredMinAge", 170 | "@type": "xsd:integer" 171 | }, 172 | "requiredMaxAge": { 173 | "@id": "schema:requiredMaxAge", 174 | "@type": "xsd:integer" 175 | }, 176 | "requiredGender": { 177 | "@id": "schema:requiredGender", 178 | "@type": "@vocab" 179 | }, 180 | "recognizingAuthority": "schema:recognizingAuthority", 181 | "geographicArea": "schema:geographicArea", 182 | "healthCondition": "schema:healthCondition", 183 | "startDate": { 184 | "@id": "schema:startDate", 185 | "@type": "xsd:date" 186 | }, 187 | "endDate": { 188 | "@id": "schema:endDate", 189 | "@type": "xsd:date" 190 | }, 191 | "startTime": { 192 | "@id": "schema:startTime", 193 | "@type": "xsd:datetime" 194 | }, 195 | "endTime": { 196 | "@id": "schema:endTime", 197 | "@type": "xsd:datetime" 198 | }, 199 | "eventStatus": { 200 | "@id": "schema:eventStatus", 201 | "@type": "@vocab" 202 | }, 203 | "resultStatus": { 204 | "@id": "ath:resultStatus", 205 | "@type": "@vocab" 206 | }, 207 | "organizer": "schema:organizer", 208 | "contributor": "schema:contributor", 209 | "participation": "ath:competitionAction", 210 | "attendee": "schema:attendee", 211 | "sportsDiscipline": "ath:sportsDiscipline", 212 | "category": "ath:competitionCategory", 213 | "entryRequirements": "ath:entryRequirements", 214 | "results": { 215 | "@id": "pending:resultDecision", 216 | "@container": "@list" 217 | }, 218 | "unitCompetition": "ath:UnitCompetitionEvent", 219 | "competitionStage": { 220 | "@id": "ath:competitionStage", 221 | "@container": "@list" 222 | }, 223 | "round": { 224 | "@id": "ath:round", 225 | "@container": "@list" 226 | }, 227 | "qualificationCriteria": "ath:qualificationCriteria", 228 | "byPlaceOrStandard": { 229 | "@id": "ath:qualifiedByPlaceOrStandard", 230 | "@type": "xsd:integer" 231 | }, 232 | "byPerformance": { 233 | "@id": "ath:qualifiedByPerformance", 234 | "@type": "xsd:integer" 235 | }, 236 | "increasingHeight": "ath:increasingHeight", 237 | "startingHeight": "ath:startingHeight", 238 | "targetHeight": "schema:height", 239 | "target": "schema:target", 240 | "attemptNumber": "ath:attemptNumber", 241 | "trialFeature": "ath:trialFeature", 242 | "subEvent": "schema:subEvent", 243 | "superEvent": "schema:superEvent", 244 | "toLocation": "schema:toLocation", 245 | "fromLocation": "schema:fromLocation", 246 | "course": "schema:exerciseCourse", 247 | "timekeeping": "ath:timekeeping", 248 | "starter": "schema:competitor", 249 | "competitionFeature": { 250 | "@id": "ath:competitionFeature", 251 | "@type": "@vocab" 252 | }, 253 | "bibIdentifier": "ath:bibIdentifier", 254 | "transponderIdentifier": "ath:transponderIdentifier", 255 | "inCompetition": "schema:sportsEvent", 256 | "startingOrder": { 257 | "@id": "ath:startingOrder", 258 | "@type": "xsd:integer" 259 | }, 260 | "trackLane": { 261 | "@id": "ath:trackLane", 262 | "@type": "xsd:integer" 263 | }, 264 | "rank": { 265 | "@id": "ath:rank", 266 | "@type": "xsd:integer" 267 | }, 268 | "recordOrBest": { 269 | "@id": "schema:award", 270 | "@type": "@vocab" 271 | }, 272 | "spatialCoverage": { 273 | "@id": "schema:spatialCoverage", 274 | "@type": "@vocab" 275 | }, 276 | "temporalCoverage": { 277 | "@id": "schema:temporalCoverage", 278 | "@type": "@vocab" 279 | }, 280 | "created": { 281 | "@id": "dcterms:created", 282 | "@type": "xsd:datetime" 283 | }, 284 | "modified": { 285 | "@id": "dcterms:modified", 286 | "@type": "xsd:datetime" 287 | }, 288 | "performance": "schema:result", 289 | "windAssistance": "ath:windAssistance", 290 | "time": { 291 | "@id": "pending:performTime", 292 | "@type": "xsd:time" 293 | }, 294 | "reactionTime": { 295 | "@id": "ath:reactionTime", 296 | "@type": "xsd:time" 297 | }, 298 | "scorePoints": { 299 | "@id": "ath:scorePoints", 300 | "@type": "xsd:decimal" 301 | }, 302 | "distance": "schema:distance", 303 | "geo": "schema:geo", 304 | "map": "schema:hasMap", 305 | "fax": "schema:faxNumber", 306 | "locality": "schema:addressLocality", 307 | "postOfficeBoxNumber": "schema:postOfficeBoxNumber", 308 | "postalCode": "schema:postalCode", 309 | "country": { 310 | "@id": "schema:addressCountry", 311 | "@type": "@vocab" 312 | }, 313 | "addressCountry": { 314 | "@id": "schema:addressCountry", 315 | "@type": "@vocab" 316 | }, 317 | "instrument": "schema:instrument", 318 | "maxDuration": { 319 | "@id": "ath:maxDuration" 320 | }, 321 | "spacing": { 322 | "@id": "ath:spacing" 323 | }, 324 | "discusDiameter": { 325 | "@id": "ath:discusDiameter" 326 | }, 327 | "hammerLength": { 328 | "@id": "ath:hammerLength" 329 | }, 330 | "scorePointsReference": { 331 | "@id": "ath:scorePointsReference" 332 | }, 333 | "disqualificationReason": "ath:disqualificationReason", 334 | "value": { 335 | "@id": "schema:value", 336 | "@type": "xsd:decimal" 337 | }, 338 | "unitCode": "schema:unitCode", 339 | "raceCompetitionType": { 340 | "@id": "ath:raceCompetitionType", 341 | "@type": "@vocab" 342 | }, 343 | "venueType": { 344 | "@id": "ath:venueType", 345 | "@type": "@vocab" 346 | }, 347 | "trackType": { 348 | "@id": "ath:runningTrackType", 349 | "@type": "@vocab" 350 | }, 351 | "Individual": "ath:individualRace", 352 | "Relays": "ath:relayRace", 353 | "TimeTrial": "ath:timeTrialRace", 354 | "Indoor": "ath:AthleticsVenueIndoor", 355 | "Outdoor": "ath:AthleticsVenueOutdoor", 356 | "CrossCountry": "ath:AthleticsVenueCrossCountry", 357 | "Mountain": "ath:AthleticsVenueMountain", 358 | "Road": "ath:AthleticsVenueRoad", 359 | "Male": "schema:Male", 360 | "Female": "schema:Female" 361 | } 362 | } 363 | -------------------------------------------------------------------------------- /examples/athlete/001Farah.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld", 4 | "@type": "Athlete", 5 | "name": "Mohamed Muktar Jama Farah", 6 | "familyName": "Farah", 7 | "givenName": "Mohamed Muktar Jama", 8 | "alternateName": "Mo Farah", 9 | "url": "http://www.mofarah.com", 10 | "gender": "Male", 11 | "image": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/71/MoPodiumRio2016.png/800px-MoPodiumRio2016.png", 12 | "nationality": "countrycode:GBR", 13 | "email": "fakeemail@example.com", 14 | "height": { 15 | "@type": "QuantitativeValue", 16 | "value": "1.75", 17 | "unitCode": "MTR" 18 | }, 19 | "weight": { 20 | "@type": "QuantitativeValue", 21 | "value": "65.0", 22 | "unitCode": "KGM" 23 | }, 24 | "birthPlace": "Mogadishu, Somalia", 25 | "birthDate": "1983-04-23", 26 | "coach": { 27 | "name": "Alberto Salazar" 28 | }, 29 | "sponsor": { 30 | "@type": "Organization", 31 | "name": "Nike Oregon Project", 32 | "url": "https://nikeoregonproject.com" 33 | }, 34 | "affiliation": [ 35 | { 36 | "@id": "http://w3c.github.io/opentrack-cg/examples/club/NEB.jsonld" 37 | }, 38 | { 39 | "@id": "http://w3c.github.io/opentrack-cg/examples/club/NOP.jsonld" 40 | }, 41 | { 42 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 43 | }, 44 | { 45 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/USATF.jsonld" 46 | } 47 | ], 48 | "memberOf": [ 49 | { 50 | "@id": "http://w3c.github.io/opentrack-cg/examples/team/GBR2012.jsonld" 51 | }, 52 | { 53 | "@id": "http://w3c.github.io/opentrack-cg/examples/team/GBR2016.jsonld" 54 | } 55 | ], 56 | "bestPerformance": [ 57 | { 58 | "@id": "http://w3c.github.io/opentrack-cg/examples/performance/001Farah.jsonld#HMarathon" 59 | }, 60 | { 61 | "@id": "http://w3c.github.io/opentrack-cg/examples/performance/001Farah.jsonld#1500m" 62 | }, 63 | { 64 | "@id": "http://w3c.github.io/opentrack-cg/examples/performance/001Farah.jsonld#3000m" 65 | } 66 | ], 67 | "owl:sameAs": { 68 | "@id": "http://dbpedia.org/resource/Mo_Farah" 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /examples/athlete/002Athlete2.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/002Athlete2.jsonld", 4 | "@type": "Athlete", 5 | "name": "Sample athlete" 6 | } 7 | -------------------------------------------------------------------------------- /examples/athlete/003Athlete3.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/003Athlete3.jsonld", 4 | "@type": "Athlete", 5 | "name": "Sample athlete" 6 | } 7 | -------------------------------------------------------------------------------- /examples/category/SEN.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/category/SEN.jsonld", 4 | "@type": "Category", 5 | "name": "Senior (both Female and Male)", 6 | "description": "Open class with no upper age limit but some limitations on younger people competing in endurance events. Female and/or Male gender.", 7 | "requiredMinAge": 16, 8 | "recognizingAuthority": { 9 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/IAAF.jsonld" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/category/SENF.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/category/SENF.jsonld", 4 | "@type": "Category", 5 | "name": "Senior (Female)", 6 | "description": "Open class with no upper age limit but some limitations on younger people competing in endurance events. Female gender.", 7 | "requiredMinAge": 16, 8 | "requiredGender": "Female", 9 | "recognizingAuthority": { 10 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/IAAF.jsonld" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/category/SENM.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/category/SENM.jsonld", 4 | "@type": "Category", 5 | "name": "Senior (Male)", 6 | "description": "Open class with no upper age limit but some limitations on younger people competing in endurance events. Male gender.", 7 | "requiredMinAge": 16, 8 | "requiredGender": "Male", 9 | "recognizingAuthority": { 10 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/IAAF.jsonld" 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /examples/club/NEB.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/club/NEB.jsonld", 4 | "@type": "Club", 5 | "name": "Newham & Essex Beagles", 6 | "alternateName": "BeaglesAC", 7 | "url": "http://www.newhamandessexbeagles.co.uk/", 8 | "image": "http://example.org/image.png", 9 | "logo": "https://w3c.github.io/opentrack-cg/examples/images/club/logo3.svg", 10 | "telephone": "(+44) 020 7511 6463", 11 | "faxNumber": "(+44) 020 7511 4477", 12 | "email": "fakeemail@example.org", 13 | "address": { 14 | "name": "Terence McMillan Stadium - Newham Leisure Centre", 15 | "streetAddress": "281 Prince Regent Lane", 16 | "addressLocality": "London", 17 | "postalCode": "E13 8SD", 18 | "addressCountry": "countrycode:GBR" 19 | }, 20 | "sponsor": "Asics", 21 | "athlete": [ 22 | { 23 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 24 | }, 25 | { 26 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/002Athlete2.jsonld" 27 | }, 28 | { 29 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/003Athlete3.jsonld" 30 | } 31 | ], 32 | "federation": { 33 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /examples/club/NOP.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/club/NOP.jsonld", 4 | "@type": "Club", 5 | "name": "Nike Oregon Project", 6 | "logo": "https://w3c.github.io/opentrack-cg/examples/images/club/logo7.svg", 7 | "url": "https://nikeoregonproject.com/", 8 | "athlete": { 9 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 10 | }, 11 | "federation": { 12 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/USATF.jsonld" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /examples/competition/2015LisbonHM.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/competition/2015LisbonHM.jsonld", 4 | "@type": "DivisionalCompetition", 5 | "name": [ 6 | { 7 | "@value": "2015 EDP Lisbon Half Marathon", 8 | "@language": "en" 9 | }, 10 | { 11 | "@value": "EDP Meia Maratona Lisboa 2015", 12 | "@language": "pt" 13 | } 14 | ], 15 | "url": "http://www.maratonaclubedeportugal.com/corrida/edp-lisbon-half-marathon/", 16 | "image": "http://www.maratonaclubedeportugal.com/generated_files/corridas/logotipo/EDP%20Meia%20Maratona%20de%20Lisboa%202017.jpg", 17 | "location": { 18 | "@id": "http://w3c.github.io/opentrack-cg/examples/competition/2015LisbonHM.jsonld#venue", 19 | "@type": "Place", 20 | "name": "Parque das Nações, Meo Arena, Sala Tejo", 21 | "map": "http://www.maratonaclubedeportugal.com/generated_files/images/percursos/Percurso-MML-2017.jpg", 22 | "address": { 23 | "streetAddress": "Rossio dos Olivais, Lote 2.13.01A", 24 | "addressLocality": "Lisbon", 25 | "postalCode": "1990-231", 26 | "addressCountry": "countrycode:PRT" 27 | } 28 | }, 29 | "startDate": "2017-04-17", 30 | "endDate": "2017-04-17", 31 | "status": "event:Finished" 32 | } 33 | -------------------------------------------------------------------------------- /examples/competition/EuropeanChampionships.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/competition/EuropeanChampionships.jsonld", 4 | "@type": "CompetitionSeries", 5 | "name": "European Athletics Championships", 6 | "description": "The European Athletics Championships is a recurring event organized by European Athletics, that is held every two years. This championship gathers together the best athletes and national teams in Europe.", 7 | "organizer": { 8 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/EAA.jsonld" 9 | }, 10 | "subEvent": [ 11 | { 12 | "@id": "http://w3c.github.io/opentrack-cg/examples/competition/Euro2016.jsonld" 13 | }, 14 | { 15 | "@id": "http://w3c.github.io/opentrack-cg/examples/competition/Euro2018.jsonld" 16 | } 17 | ] 18 | } 19 | -------------------------------------------------------------------------------- /examples/discipline/100m.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/100m.jsonld", 4 | "@type": "Sprint", 5 | "name": "100 metres", 6 | "alternateName": "100-metre dash", 7 | "raceCompetitionType": "race:RaceIndividual", 8 | "venueType": "venue:VenueOutdoor", 9 | "distance": { 10 | "@type": "QuantitativeValue", 11 | "value": "100", 12 | "unitCode": "MTR" 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /examples/discipline/1500m.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/1500m.jsonld", 4 | "@type": "DistanceDiscipline", 5 | "name": "1500 metres", 6 | "descriptition": "Track race of 1500 m distance", 7 | "raceCompetitionType": "race:RaceIndividual", 8 | "distance": { 9 | "@type": "QuantitativeValue", 10 | "value": "1500", 11 | "unitCode": "MTR" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/discipline/3000m.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/3000m.jsonld", 4 | "@type": "DistanceDiscipline", 5 | "name": "3000 metres", 6 | "descriptition": "Track race of 3000 m distance", 7 | "raceCompetitionType": "race:RaceIndividual", 8 | "distance": { 9 | "@type": "QuantitativeValue", 10 | "value": "3000", 11 | "unitCode": "MTR" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/discipline/HMarathon.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/HMarathon.jsonld", 4 | "@type": "DistanceDiscipline", 5 | "name": "Half Marathon", 6 | "descriptition": "Road running race of 21.0975 kilometres (13.1094 mi) – half the distance of a marathon", 7 | "raceCompetitionType": "race:RaceIndividual", 8 | "distance": { 9 | "@type": "QuantitativeValue", 10 | "value": "21,0975", 11 | "unitCode": "MTR" 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /examples/federation/EAA.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/EAA.jsonld", 4 | "@type": "Federation", 5 | "name": "European Athletics", 6 | "alternateName": "European Athletic Association", 7 | "email": "office@european-athletics.org", 8 | "url": "http://www.european-athletics.org", 9 | "faxNumber": "(41 21) 313 43 51", 10 | "telephone": "(41 21) 313 43 50", 11 | "address": { 12 | "name": "European Athletic Association", 13 | "streetAddress": "Avenue Louis-Ruchonnet 16", 14 | "addressLocality": "Lausanne", 15 | "postalCode": "CH-1003", 16 | "addressCountry": "countrycode:CHE" 17 | }, 18 | "areaServed": "continent:EUROPE", 19 | "memberOf": { 20 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/IAAF.jsonld" 21 | }, 22 | "member": [ 23 | { 24 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/ALB.jsonld" 25 | }, 26 | { 27 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/AND.jsonld" 28 | }, 29 | { 30 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/ARM.jsonld" 31 | }, 32 | { 33 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/AUT.jsonld" 34 | }, 35 | { 36 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/AZE.jsonld" 37 | }, 38 | { 39 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BLR.jsonld" 40 | }, 41 | { 42 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BEL.jsonld" 43 | }, 44 | { 45 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BIH.jsonld" 46 | }, 47 | { 48 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BUL.jsonld" 49 | }, 50 | { 51 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/CRO.jsonld" 52 | }, 53 | { 54 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/CYP.jsonld" 55 | }, 56 | { 57 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/ALB.jsonld" 58 | }, 59 | { 60 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/AND.jsonld" 61 | }, 62 | { 63 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/ARM.jsonld" 64 | }, 65 | { 66 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/AUT.jsonld" 67 | }, 68 | { 69 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/AZE.jsonld" 70 | }, 71 | { 72 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BLR.jsonld" 73 | }, 74 | { 75 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BEL.jsonld" 76 | }, 77 | { 78 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BIH.jsonld" 79 | }, 80 | { 81 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/BUL.jsonld" 82 | }, 83 | { 84 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/CRO.jsonld" 85 | }, 86 | { 87 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/CYP.jsonld" 88 | } 89 | ] 90 | } 91 | -------------------------------------------------------------------------------- /examples/federation/GB-ENG.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-ENG.jsonld", 4 | "@type": "Federation", 5 | "name": "England Athletics", 6 | "email": "ea@example.com", 7 | "faxNumber": "(+44) 0121 347 65439", 8 | "telephone": "(+44) 0121 347 65439", 9 | "address": { 10 | "name": "Athletics House, Alexander Stadium", 11 | "streetAddress": "Walsall Road", 12 | "addressLocality": "Birmingham", 13 | "postalCode": "B42 2BE", 14 | "addressCountry": "countrycode:GBR" 15 | }, 16 | "areaServed": "England", 17 | "memberOf": { 18 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 19 | }, 20 | "member": [ 21 | { 22 | "@id": "http://w3c.github.io/opentrack-cg/examples/club/NEB.jsonld" 23 | }, 24 | { 25 | "@id": "http://w3c.github.io/opentrack-cg/examples/club/THH.jsonld" 26 | } 27 | ] 28 | } 29 | -------------------------------------------------------------------------------- /examples/federation/GB-NIR.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-NIR.jsonld", 4 | "@type": "Federation", 5 | "name": "Athletics Northern Ireland", 6 | "email": "nir@example.com", 7 | "url": "http://www.athleticsni.org", 8 | "telephone": "(+44) 028 9060 2707", 9 | "address": { 10 | "name": "Athletics House", 11 | "streetAddress": "Old Coach Road", 12 | "addressLocality": "Belfast", 13 | "postalCode": "BT9 5PR", 14 | "addressCountry": "countrycode:GBR" 15 | }, 16 | "areaServed": "Northern Ireland", 17 | "memberOf": { 18 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/federation/GB-SCT.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-SCT.jsonld", 4 | "@type": "Federation", 5 | "name": "Scottish Athletics Ltd", 6 | "email": "stc@example.com", 7 | "url": "http://www.scottishathletics.org.uk", 8 | "telephone": "(+44) 0131 539 7320", 9 | "faxNumber": "(+44) 0131 539 7321", 10 | "address": { 11 | "name": "Athletics House", 12 | "streetAddress": "Old Coach Road", 13 | "addressLocality": "Belfast", 14 | "postalCode": "BT9 5PR", 15 | "addressCountry": "countrycode:GBR" 16 | }, 17 | "areaServed": "Scotland", 18 | "memberOf": { 19 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /examples/federation/GB-WLS.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-WLS.jsonld", 4 | "@type": "Federation", 5 | "name": "Welsh Athletics", 6 | "url": "http://www.welshathletics.org", 7 | "email": "nir@example.com", 8 | "telephone": "(+44) 029 2064 4870", 9 | "address": { 10 | "name": "Cardiff International Sports Stadium", 11 | "streetAddress": "Leckwith Road", 12 | "addressLocality": "Cardiff", 13 | "postalCode": "CF11 8AZ", 14 | "addressCountry": "countrycode:GBR" 15 | }, 16 | "areaServed": "Welsh", 17 | "memberOf": { 18 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /examples/federation/GBR.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld", 4 | "@type": "Federation", 5 | "alternateName": "United Kingdom Athletics", 6 | "name": "British Athletics", 7 | "email": "ba@example.com", 8 | "url": "http://www.britishathletics.org.uk/", 9 | "faxNumber": "(+44) 0121 3047 34449", 10 | "telephone": "(+44) 0121 3407 21439", 11 | "address": { 12 | "name": "UK Athletics Limited, Athletics House, Alexander Stadium", 13 | "streetAddress": "Walsall Road", 14 | "addressLocality": "Birmingham", 15 | "postalCode": "B42 2BE", 16 | "addressCountry": "countrycode:GBR" 17 | }, 18 | "areaServed": "countrycode:GBR", 19 | "memberOf": [ 20 | { 21 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/IAAF.jsonld" 22 | }, 23 | { 24 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/EAA.jsonld" 25 | } 26 | ], 27 | "member": [ 28 | { 29 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-ENG.jsonld" 30 | }, 31 | { 32 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-NIR.jsonld" 33 | }, 34 | { 35 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-SCT.jsonld" 36 | }, 37 | { 38 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GB-WLS.jsonld" 39 | } 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /examples/federation/USATF.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/USATF.jsonld", 4 | "@type": "Federation", 5 | "name": "USA Track & Field", 6 | "email": "usatf@example.com", 7 | "areaServed": "countrycode:USA" 8 | } 9 | -------------------------------------------------------------------------------- /examples/field-trials/U15PoleVault.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/field-trials/U15PoleVault.jsonld", 4 | "@type": "UnitHeightCompetition", 5 | "name": "EA U15 Boys Pole Vault – Final", 6 | "category": { 7 | "name": "U15B" 8 | }, 9 | "startingHeight": { 10 | "@type": "QuantitativeValue", 11 | "value": "1.25", 12 | "unitCode": "MTR" 13 | }, 14 | "increasingHeight": "2.70, 2.90, 3.00 increasing 10 cms.", 15 | "participation": [ 16 | { 17 | "@type": "Competitor", 18 | "agent": { 19 | "@type": "Athlete", 20 | "name": "Joshua Ilyk", 21 | "affiliation": "Notts AC" 22 | }, 23 | "bibIdentifier": "678", 24 | "trial": [ 25 | { 26 | "@type": "HeightTrial", 27 | "targetHeight": { 28 | "value": "2.50", 29 | "unitCode": "MTR" 30 | }, 31 | "competitionFeature": "feature:NH" 32 | }, 33 | { 34 | "@type": "HeightTrial", 35 | "targetHeight": { 36 | "value": "2.70", 37 | "unitCode": "MTR" 38 | }, 39 | "competitionFeature": "feature:NH" 40 | }, 41 | { 42 | "@type": "HeightTrial", 43 | "targetHeight": { 44 | "value": "2.90", 45 | "unitCode": "MTR" 46 | }, 47 | "competitionFeature": "feature:NH" 48 | }, 49 | { 50 | "@type": "HeightTrial", 51 | "targetHeight": { 52 | "value": "3.00", 53 | "unitCode": "MTR" 54 | }, 55 | "attemptNumber": 1, 56 | "competitionFeature": "feature:x" 57 | }, 58 | { 59 | "@type": "HeightTrial", 60 | "targetHeight": { 61 | "value": "3.00", 62 | "unitCode": "MTR" 63 | }, 64 | "attemptNumber": 2, 65 | "competitionFeature": "feature:o" 66 | }, 67 | { 68 | "@type": "HeightTrial", 69 | "targetHeight": { 70 | "value": "3.10", 71 | "unitCode": "MTR" 72 | }, 73 | "attemptNumber": 1, 74 | "competitionFeature": "feature:o" 75 | }, 76 | { 77 | "@type": "HeightTrial", 78 | "targetHeight": { 79 | "value": "3.20", 80 | "unitCode": "MTR" 81 | }, 82 | "attemptNumber": 1, 83 | "competitionFeature": "feature:x" 84 | }, 85 | { 86 | "@type": "HeightTrial", 87 | "targetHeight": { 88 | "value": "3.20", 89 | "unitCode": "MTR" 90 | }, 91 | "attemptNumber": 2, 92 | "competitionFeature": "feature:o" 93 | }, 94 | { 95 | "@type": "HeightTrial", 96 | "targetHeight": { 97 | "value": "3.30", 98 | "unitCode": "MTR" 99 | }, 100 | "attemptNumber": 1, 101 | "competitionFeature": "feature:x" 102 | }, 103 | { 104 | "@type": "HeightTrial", 105 | "targetHeight": { 106 | "value": "3.30", 107 | "unitCode": "MTR" 108 | }, 109 | "attemptNumber": 2, 110 | "competitionFeature": "feature:x" 111 | }, 112 | { 113 | "@type": "HeightTrial", 114 | "targetHeight": { 115 | "value": "3.30", 116 | "unitCode": "MTR" 117 | }, 118 | "attemptNumber": 3, 119 | "competitionFeature": "feature:o" 120 | } 121 | ] 122 | } 123 | ] 124 | } 125 | -------------------------------------------------------------------------------- /examples/field-trials/U17DiscusThrow.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/field-trials/U17DiscusThrow.jsonld", 4 | "@type": "UnitDistanceCompetition", 5 | "name": "EA U17 Men Discus – Final", 6 | "category": { 7 | "name": "U17M" 8 | }, 9 | "participation": [ 10 | { 11 | "@type": "Competitor", 12 | "agent": { 13 | "@type": "Athlete", 14 | "name": "Matt Blandford", 15 | "affiliation": "Tonbridge AC" 16 | }, 17 | "bibIdentifier": "549", 18 | "trial": [ 19 | { 20 | "@type": "DistanceTrial", 21 | "attemptNumber": 1, 22 | "performance": { 23 | "@type": "DistancePerformance", 24 | "distance": { 25 | "value": "48.05", 26 | "unitCode": "MTR", 27 | "@type": "QuantitativeValue" 28 | } 29 | } 30 | }, 31 | { 32 | "@type": "DistanceTrial", 33 | "attemptNumber": 2, 34 | "performance": { 35 | "@type": "DistancePerformance", 36 | "distance": { 37 | "value": "55.69", 38 | "unitCode": "MTR", 39 | "@type": "QuantitativeValue" 40 | } 41 | } 42 | }, 43 | { 44 | "@type": "DistanceTrial", 45 | "attemptNumber": 3, 46 | "performance": { 47 | "@type": "DistancePerformance", 48 | "distance": { 49 | "value": "57.69", 50 | "unitCode": "MTR", 51 | "@type": "QuantitativeValue" 52 | } 53 | } 54 | }, 55 | { 56 | "@type": "DistanceTrial", 57 | "attemptNumber": 4, 58 | "performance": { 59 | "@type": "DistancePerformance", 60 | "distance": { 61 | "value": "53.28", 62 | "unitCode": "MTR", 63 | "@type": "QuantitativeValue" 64 | } 65 | } 66 | }, 67 | { 68 | "@type": "DistanceTrial", 69 | "attemptNumber": 5, 70 | "performance": { 71 | "@type": "DistancePerformance", 72 | "distance": { 73 | "value": "59.76", 74 | "unitCode": "MTR", 75 | "@type": "QuantitativeValue" 76 | } 77 | } 78 | }, 79 | { 80 | "@type": "DistanceTrial", 81 | "attemptNumber": 6, 82 | "competitionFeature": "feature:NM" 83 | } 84 | ] 85 | }, 86 | { 87 | "@type": "Competitor", 88 | "agent": { 89 | "@type": "Athlete", 90 | "name": "Gurtal Randhawa", 91 | "affiliation": "Windsor Slough Eton & H" 92 | }, 93 | "bibIdentifier": "792", 94 | "trial": [ 95 | { 96 | "@type": "DistanceTrial", 97 | "attemptNumber": 1, 98 | "performance": { 99 | "@type": "DistancePerformance", 100 | "distance": { 101 | "value": "43.30", 102 | "unitCode": "MTR", 103 | "@type": "QuantitativeValue" 104 | } 105 | } 106 | }, 107 | { 108 | "@type": "DistanceTrial", 109 | "attemptNumber": 2, 110 | "performance": { 111 | "@type": "DistancePerformance", 112 | "distance": { 113 | "value": "42.46", 114 | "unitCode": "MTR", 115 | "@type": "QuantitativeValue" 116 | } 117 | } 118 | }, 119 | { 120 | "@type": "DistanceTrial", 121 | "attemptNumber": 3, 122 | "performance": { 123 | "@type": "DistancePerformance", 124 | "distance": { 125 | "value": "42.70", 126 | "unitCode": "MTR", 127 | "@type": "QuantitativeValue" 128 | } 129 | } 130 | }, 131 | { 132 | "@type": "DistanceTrial", 133 | "attemptNumber": 4, 134 | "performance": { 135 | "@type": "DistancePerformance", 136 | "distance": { 137 | "value": "45.08", 138 | "unitCode": "MTR", 139 | "@type": "QuantitativeValue" 140 | } 141 | } 142 | }, 143 | { 144 | "@type": "DistanceTrial", 145 | "attemptNumber": 5, 146 | "competitionFeature": "feature:NM" 147 | }, 148 | { 149 | "@type": "DistanceTrial", 150 | "attemptNumber": 6, 151 | "performance": { 152 | "@type": "DistancePerformance", 153 | "distance": { 154 | "value": "44.33", 155 | "unitCode": "MTR", 156 | "@type": "QuantitativeValue" 157 | } 158 | } 159 | } 160 | ] 161 | } 162 | ] 163 | } 164 | -------------------------------------------------------------------------------- /examples/images/club/logo1.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 31 | 51 | 55 | 62 | 63 | -------------------------------------------------------------------------------- /examples/images/club/logo2.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 56 | 64 | 72 | 73 | -------------------------------------------------------------------------------- /examples/images/club/logo3.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 56 | 64 | 72 | 73 | -------------------------------------------------------------------------------- /examples/images/club/logo4.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 56 | 64 | 72 | 73 | -------------------------------------------------------------------------------- /examples/images/club/logo5.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 56 | 64 | 72 | 73 | -------------------------------------------------------------------------------- /examples/images/club/logo6.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 56 | 64 | 72 | 73 | -------------------------------------------------------------------------------- /examples/images/club/logo7.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 57 | 65 | 73 | 74 | -------------------------------------------------------------------------------- /examples/images/club/logo8.svg: -------------------------------------------------------------------------------- 1 | 2 | 18 | 20 | 21 | 23 | image/svg+xml 24 | 26 | 27 | 28 | 29 | 30 | 32 | 52 | 57 | 65 | 73 | 81 | 82 | -------------------------------------------------------------------------------- /examples/performance/001Farah.jsonld: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 4 | "@id": "http://w3c.github.io/opentrack-cg/examples/performance/001Farah.jsonld#HMarathon", 5 | "@type": "TimePerformance", 6 | "agent": { 7 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 8 | }, 9 | "sportsDiscipline": { 10 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/HMarathon.jsonld" 11 | }, 12 | "datePublished": "2015-03-22", 13 | "inCompetition": { 14 | "@id": "http://w3c.github.io/opentrack-cg/examples/competition/2015LisbonHM.jsonld" 15 | }, 16 | "time": "00:59:32", 17 | "recordOrBest": [ 18 | "best:AR", 19 | "best:ER" 20 | ] 21 | }, 22 | { 23 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 24 | "@id": "http://w3c.github.io/opentrack-cg/examples/performance/001Farah.jsonld#1500m", 25 | "@type": "TimePerformance", 26 | "datePublished": "2018-07-02", 27 | "agent": { 28 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 29 | }, 30 | "sportsDiscipline": { 31 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/1500m.jsonld" 32 | }, 33 | "time": "00:03:28.810", 34 | "recordOrBest": [ 35 | "best:AR", 36 | "best:ER" 37 | ] 38 | }, 39 | { 40 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 41 | "@id": "http://w3c.github.io/opentrack-cg/examples/performance/001Farah.jsonld#3000m", 42 | "@type": "TimePerformance", 43 | "datePublished": "2018-02-12", 44 | "agent": { 45 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 46 | }, 47 | "sportsDiscipline": { 48 | "@id": "http://w3c.github.io/opentrack-cg/examples/discipline/3000m.jsonld" 49 | }, 50 | "time": "00:07:32.620", 51 | "recordOrBest": "best:NR" 52 | } 53 | ] 54 | -------------------------------------------------------------------------------- /examples/schemaorg/competition-boston-marathon.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/schemaorg/competition-boston-marathon.jsonld", 4 | "@type": "SportsCompetitionEvent", 5 | "name": "Boston Marathon 2018", 6 | "description": "Annual BAA Boston Marathon", 7 | "organizer": "Boston Athletics Association", 8 | "sponsor": "Adidas", 9 | "url": "http://www.baa.org/races/boston-marathon.aspx", 10 | "image": "http://w3c.github.io/opentrack-cg/examples/schemaorg/images/boston_marathon.jpg", 11 | "location": { 12 | "@type": "SportsActivityLocation", 13 | "name": "Boston", 14 | "map": "http://www.baa.org/races/boston-marathon/event-information/~/media/Images/BAA/Races/Maps/Boston%20Marathon/2018/2018_bm_lrg.jpg", 15 | "address": { 16 | "@type": "PostalAddress", 17 | "streetAddress": "5 E Main Street", 18 | "addressLocality": "Hopkinton", 19 | "addressRegion": "MA", 20 | "postalCode": "MA 02116", 21 | "geo": { 22 | "@type": "GeoCoordinates", 23 | "latitude": "42.222001", 24 | "longitude": "-71.535175" 25 | }, 26 | "addressCountry": "US" 27 | } 28 | }, 29 | "startDate": "2018-04-13", 30 | "endDate": "2018-04-13", 31 | "status": "EventScheduled" 32 | } 33 | -------------------------------------------------------------------------------- /examples/schemaorg/images/boston_marathon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/examples/schemaorg/images/boston_marathon.jpg -------------------------------------------------------------------------------- /examples/schemaorg/images/track.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/examples/schemaorg/images/track.png -------------------------------------------------------------------------------- /examples/team/GBR2012.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/team/GBR2012.jsonld", 4 | "@type": "Team", 5 | "name": "Great Britain National Team - Olympic Games 2012", 6 | "alternateName": "GBR", 7 | "nationality": "countrycode:GBR", 8 | "federation": { 9 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /examples/team/GBR2016.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/team/GBR2016.jsonld", 4 | "@type": "Team", 5 | "name": "Great Britain National Team - Olympic Games 2016", 6 | "alternateName": "GBR", 7 | "nationality": "countrycode:GBR", 8 | "memberOf": { 9 | "@id": "http://w3c.github.io/opentrack-cg/examples/federation/GBR.jsonld" 10 | }, 11 | "athlete": [ 12 | { 13 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 14 | }, 15 | { 16 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/002Butchart.jsonld" 17 | }, 18 | { 19 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/004Athlete4.jsonld" 20 | }, 21 | { 22 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/005Athlete5.jsonld" 23 | }, 24 | { 25 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/006Athlete6.jsonld" 26 | }, 27 | { 28 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/006Athlete7.jsonld" 29 | } 30 | ], 31 | "captain": { 32 | "@id": "http://w3c.github.io/opentrack-cg/examples/athlete/001Farah.jsonld" 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /examples/timekeeping/FAT.jsonld: -------------------------------------------------------------------------------- 1 | { 2 | "@context": "http://w3c.github.io/opentrack-cg/contexts/opentrack.jsonld", 3 | "@id": "http://w3c.github.io/opentrack-cg/examples/timekeeping/FAT.json", 4 | "@type": "Timekeeping", 5 | "timekeepingType": "timekeeping:FAT", 6 | "name": "Generic Fully Automated System" 7 | } 8 | -------------------------------------------------------------------------------- /external/IAAF TERMS AND ABBREVIATIONS.PDF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/external/IAAF TERMS AND ABBREVIATIONS.PDF -------------------------------------------------------------------------------- /incubation/wa-competition-model/use-cases/100-final-DQ.json: -------------------------------------------------------------------------------- 1 | { 2 | "waId": 22, // Olympics 2024 3 | "athletes": [ 4 | { 5 | "id": 1, 6 | "waId": 1, 7 | "firstName": "Jane", 8 | "lastName": "Doe", 9 | "birthdate": "2000-08-24", 10 | "country": "SLO", 11 | "sex": "female" 12 | } 13 | ], 14 | "venues": [ 15 | { 16 | "id": 12, 17 | "waId": 34, 18 | "name": "Saint-Denis Stadium", 19 | "country": "FRA" 20 | } 21 | ], 22 | "units": [ 23 | { 24 | "waEventId": 11, 25 | "title": "Women's 100m", 26 | "rounds": [ 27 | { 28 | "type": "Final", 29 | "races": [ 30 | { 31 | "number": 1, 32 | "wind": "NWI", 33 | "date": "2024-08-24", 34 | "startTime": "10:00:54", 35 | "endTime": "11:10:01", 36 | "results": [ 37 | { 38 | "athleteId": 1, 39 | "result": "DQ" // Fault 40 | } 41 | ] 42 | } 43 | ] 44 | } 45 | ] 46 | } 47 | ] 48 | } -------------------------------------------------------------------------------- /incubation/wa-competition-model/use-cases/hj-qualification.json: -------------------------------------------------------------------------------- 1 | { 2 | "waId": 0, // Croatian National Championships 2021 3 | "athletes": [ 4 | { 5 | "id": 1, 6 | "waId": 1, 7 | "firstName": "Jane", 8 | "lastName": "Doe", 9 | "birthdate": "2000-08-24", 10 | "country": "SLO", 11 | "sex": "female" 12 | }, 13 | { 14 | "id": 2, 15 | "waId": 2, 16 | "firstName": "John", 17 | "lastName": "Smith", 18 | "birthdate": "2001-08-24", 19 | "country": "SLO", 20 | "sex": "male" 21 | } 22 | ], 23 | "venues": [ 24 | { 25 | "id": 1, 26 | "waId": 0, 27 | "name": "Stadion Branko Čavlović-Čavlek", 28 | "country": "CRO" 29 | } 30 | ], 31 | "units": [ 32 | { 33 | "waEventId": 0, 34 | "title": "Men's High Jump", 35 | "minAge": 18, 36 | "rounds": [ 37 | { 38 | "type": "Qualification", 39 | "races": [ 40 | { 41 | "number": 1, 42 | "wind": "NWI", 43 | "date": "2021-08-24", 44 | "startTime": "10:00:54", 45 | "endTime": "11:10:01", 46 | "results": [ 47 | { 48 | "athleteId": 2, 49 | "wind": "NWI", 50 | "result": "2.20", // Supposing he cleared 2.20 in the Final (in MetresResultFormat) 51 | "placeInRace": 5, // 5th in this qualification contest 52 | "placeInRound": 5, // 8th in the overall qualification round 53 | "qualified": "q", 54 | "detail": [ // Array of DetailVerticalJump 55 | { 56 | "height": "1.75", // MetresResultFormat 57 | "attempts": "o" 58 | }, 59 | { 60 | "height": "1.80", 61 | "attempts": "xxo" // <-- first and second attempt on 1.80 failed 62 | }, 63 | { 64 | "height": "2.00", 65 | "attempts": "xo" 66 | } 67 | ] 68 | } 69 | ] 70 | } 71 | ] 72 | } 73 | ] 74 | } 75 | ] 76 | } -------------------------------------------------------------------------------- /incubation/wa-competition-model/use-cases/tj-final.json: -------------------------------------------------------------------------------- 1 | { 2 | "waId": 10, // International Meeting Zadar 2021 3 | "athletes": [ 4 | { 5 | "id": 1, 6 | "waId": 1, 7 | "firstName": "Jane", 8 | "lastName": "Doe", 9 | "birthdate": "2000-08-24", 10 | "country": "SLO", 11 | "sex": "female" 12 | } 13 | ], 14 | "venues": [ 15 | { 16 | "id": 120, 17 | "waId": 374, 18 | "name": "Višnjik Sports Center", 19 | "country": "CRO" 20 | } 21 | ], 22 | "units": [ 23 | { 24 | "waEventId": 11, 25 | "title": "Women's Triple Jump", 26 | "rounds": [ 27 | { 28 | "type": "Final", 29 | "races": [ 30 | { 31 | "number": 1, 32 | "wind": "+1.2", 33 | "date": "2024-08-24", 34 | "startTime": "10:00:54", 35 | "endTime": "11:10:01", 36 | "results": [ 37 | { 38 | "athleteId": 1, 39 | "wind": "+1.2", 40 | "result": "13.43", // in MetresResultFormat 41 | "placeInRace": 2, // Second in the (one) final 42 | "placeInRound": 2, // Place in the overall round 43 | "detail": [ // Array of DetailOutdoorHorizontalJump 44 | { 45 | "result": "x", // MetresResultFormat or fail 46 | "wind": "+1.1" 47 | }, 48 | { 49 | "result": "13.00", 50 | "wind": "+1.1" 51 | }, 52 | { 53 | "result": "12.22", 54 | "wind": "+1.1" 55 | }, 56 | { 57 | "result": "x", 58 | "wind": "+1.1" 59 | }, 60 | { 61 | "result": "13.43", 62 | "wind": "+1.2" // <-- best performance at 5th attempt 63 | }, 64 | { 65 | "result": "x", 66 | "wind": "+1.1" 67 | } 68 | ] 69 | } 70 | ] 71 | } 72 | ] 73 | } 74 | ] 75 | } 76 | ] 77 | } -------------------------------------------------------------------------------- /spec/competition-types/README.md: -------------------------------------------------------------------------------- 1 | ## Type of Athletics Competitions 2 | 3 | This taxonomy of types of competitions aims at classifying the event according to the competition level, scope, permits and other specific information. 4 | 5 | This document is a draft. Feel free to suggest changes and additions. 6 | 7 | | CODE | DETAILS | Track & Field | Combined Events | Road Running | Road Walking | Governing Body | 8 | | --------- | ------- | ------------- | --------------- | ------------ | ------------ | -------------- | 9 | | OW | Olympic Games | x | x | x | x | World Athletics | 10 | | | World Athletics Championships | x | x | x | x | World Athletics | 11 | | DF | Diamond League Finals | x | | | | World Athletics | 12 | | GW | World Athletics Indoor Championships | x | x | | | World Athletics | 13 | | | World Athletics Cross Country Championships (senior race) | x | | | | World Athletics | 14 | | | World Athletics Half Marathon / Road Running Championships | | | x | | World Athletics | 15 | | | World Athletics Race Walking Team Championships | | | | x | World Athletics | 16 | | | Diamond League Meetings (DL disciplines only) | x | | | | World Athletics | 17 | | | World Athletics Continental Tour Gold (Hammer Throw only) | x | | | | World Athletics | 18 | | | World Athletics Platinum Label Marathons | | | x | | World Athletics | 19 | | GL | World Athletics Platinum Label Road Races (not including Marathons) | | | x | | World Athletics | 20 | | | World Athletics Gold Label Marathons | | | x | | World Athletics | 21 | | | Area Senior Outdoor Championships | x | x | x | x | World Athletics | 22 | | | World Athletics Race Walking & Combined Events Permit Meetings (other scoring opportunities are categorised according to the respective competitions) | | x | | x | World Athletics | 23 | | A | Major Games (All-African, Asian, Commonwealth, Pan American, European, South American) | x | x | x | x | World Athletics | 24 | | | World Athletics Continental Tour Gold Meetings** | x | | | | World Athletics | 25 | | | World Athletics Continental Tour Silver & Bronze Meetings (Hammer Throw only and subject to WA Approval)| x | | | | World Athletics | 26 | | | Diamond League Meetings (Additional international events with at least 50% of DL prize money) | x | | | | World Athletics | 27 | | | World Athletics Indoor Tour Gold Level Meetings** | x | | | | World Athletics | 28 | | | World Athletics Gold Label Road Races (Not including Marathons) | | | x | | World Athletics | 29 | | | World Athletics Silver & Elite Label Marathons | | | x | | World Athletics | 30 | | | Area Senior Indoor Championships | x | x | | | World Athletics | 31 | | | Area Senior Race Walking and Marathon Championships (when not part of the Area Championships) | | | x | x | World Athletics | 32 | | B | World Athletics Silver & Elite Label Road Races (Not including Marathons) | | | x | | World Athletics | 33 | | | World Athletics Bronze Label Marathons | | | x | | World Athletics | 34 | | | Regional Games & Athletics Championships (Universiade, Francophone Games Ibero-American Championships, CAC Games, Balkan Championships) | x | x | x | x | World Athletics | 35 | | | World Athletics Continental Tour Silver Meetings** | x | | | | World Athletics | 36 | | | World Athletics Continental Tour Bronze Meetings (Hammer Throw only and subject to WA Approval) | x | | | | World Athletics | 37 | | | Area second tier Championships (European Team Championships Super League) | x | x | x | | World Athletics | 38 | | | National Senior Championships (Outdoor T&F/CE, Marathon and 20km/35km*/50km Race Walking) | x | x | x | x | World Athletics | 39 | | C | World Athletics Series - U20 events (World U20, World Cross Country and World Race Walking Team Championships) | x | x | | x | World Athletics | 40 | | | World Athletics Continental Tour Bronze Meetings** | x | x | | x | World Athletics | 41 | | | World Athletics Indoor Tour Silver Meetings** | x | x | | x | World Athletics | 42 | | | Area Permit Outdoor Meetings | | x | | | World Athletics | 43 | | | World Athletics Bronze Label Road Races (Not including Marathons) | | | x | | World Athletics | 44 | | | Area third tier Championships (Area U23 Championships, European Team Championships 1st League, European Throwing Cup, European 10,000m Cup) and in Similar Events | x | x | x | x | World Athletics | 45 | | | Regional Games & Championships (Arab Championships, Mediterranean Games, CISM World Games) | x | x | x | x | World Athletics | 46 | | | NCAA Div. I Outdoor Championships | x | x | | | World Athletics | 47 | | D | Regional Games, Championships and Cups - third tier (First and senior division only) | x | x | x | x | World Athletics | 48 | | | World Athletics Indoor Tour Bronze Meetings** | x | x | | x | World Athletics | 49 | | | Area Permit Meetings (not included in WACT) | x | | | | World Athletics | 50 | | | Area Permit Indoor Meetings | | x | | | World Athletics | 51 | | | Area fourth tier Championships (Area U20 Championships, Continental Club Championships [first division only], European Team Championships 2nd League) | x | x | x | x | World Athletics | 52 | | | Traditional International Meetings: - subject to application and Area approval (e.g.: Finnkampen, Baltic Countries Championships) | x | x | | x | World Athletics | 53 | | | National Senior Championships (Indoor and in Similar Events) | x | x | x | x | World Athletics | 54 | | | Youth Olympic Games | x | | | x | World Athletics | 55 | | E | International Matches (Subject to World Athletics / Area Permit) | x | x | | x | World Athletics | 56 | | | Designated (national permit) meetings and competitions (Subject to MF/World Athletics approval) | x | x | | x | World Athletics | 57 | | | Other International Marathons including WA Label Marathons (If measured and certified) | | | x | | World Athletics | 58 | | | Other International Half Marathons and Road Races including WA Label Road Races(If measured and certified) | | | x | | World Athletics | 59 | | | NCAA Div. I Indoor Championships | x | x | | | World Athletics | 60 | | | Area U18 Championships | x | | | x | World Athletics | 61 | | | European Youth Olympic Festival | x | | | x | World Athletics | 62 | | F | National permit meetings | x | x | | x | World Athletics | 63 | 64 | Source: https://www.worldathletics.org/world-ranking-rules/basics 65 | 66 | Other identifiers may be included here. -------------------------------------------------------------------------------- /spec/disciplines/README.md: -------------------------------------------------------------------------------- 1 | # Athletics Disciplines 2 | 3 | Simplification of identifiers for athletics events, describing the existing [OpenTrack codes](https://docs.opentrack.run/cms/events/). These will be properly described using the [Sports Discipline vocabulary](../competition/#sports-discipline). 4 | 5 | *This is a working document*. 6 | 7 | ## Summary of the taxonomy 8 | 9 | - [Athletics Disciplines](#athletics-disciplines) 10 | * [`RACE`](#races) 11 | + [`SPRINTS`](#sprints) 12 | + `60` 13 | + `100` 14 | + `200` 15 | + `400` 16 | + [`HURDLES`](#hurdles) 17 | + `60H` 18 | + `100H` 19 | + `110H` 20 | + `400H` 21 | + [`SC` (Steeplechase)](#steeplechase) 22 | + `2000SC` 23 | + `3000SC` 24 | + [`MDLD` (Middle Distance & Long Distance Races)](#middle-distance---long-distance-races) 25 | + `800` 26 | + `1500` 27 | + `3000` 28 | + `5000` 29 | + `10000` 30 | + [`RW` (Race Walking)](#race-walking) 31 | + `3000W` 32 | + `5000W` 33 | + `20KW` 34 | + `50KW` 35 | + [`RELAYS` (Track Relays)](#track-relays) 36 | + `4X100` 37 | + `4X400` 38 | + [`ROAD` (Road Running)](#road-running) 39 | + `10K` 40 | + `HM` 41 | + `MAR` 42 | + [`XC` (Cross Country)](#cross-country) 43 | + [`MR` (Mountain Running)](#mountain-running) 44 | + [`ULTRA` (Ultrarunning)](#ultrarunning) 45 | * [`THROWS`](#throws) 46 | + `DT` (Discus Throw) 47 | + `HT` (Hammer Throw) 48 | + `JT` (Javelin Throw) 49 | + `SP` (Shot Put) 50 | * [`HORIZONTALJUMPS`](#horizontal-jumps) 51 | + `LJ` (Long Jump) 52 | + `TJ` (Triple Vault) 53 | * [`VERTICALJUMPS`](#vertical-jumps) 54 | + `HJ` (High Jump) 55 | + `PV` (Pole Vault) 56 | * [`COMBINED`](#combined-disciplines) 57 | + `PEN` (Pentathlon) 58 | + `HEP` (Heptathlon) 59 | + `DEC` (Decathlon) 60 | 61 | 62 | ## Generic Disciplines 63 | 64 | | identifier | name | Description | 65 | | ---------- | ---- | ----------- | 66 | | `RACE` | (Generic) Race | Race is a type of competition to see who is the fastest, including running or race-waking. | 67 | | `SPRINTS` | Sprints | Sprints are running events over a short distance (less than 800m). | 68 | | `HURDLES` | Hurdles | Hurdles is a running event where athletes jump over hurdles at speed. | 69 | | `SC` | Steeplechase | Steeplechase is a long distance running event where runners must clear obstacles and water jumps. | 70 | | `MDLD` | Middle and Long distance races | A Middle-distance or Long-distance running event, over a distance longer than sprints. Range of distances includes 800 m, up to Marathon 42.195 Km. | 71 | | `RW` | Race Walking | Race walking, is a long-distance discipline where one foot must appear to be in contact with the ground at all times. | 72 | | `RELAYS` | Track Relays | Relays, relays race or relay race, is a track race between two or more teams where each member of the team runs one leg of the race. | 73 | | `ROAD` | Road Running | Road Running is an Athletics discipline on a measured course over an established road. | 74 | | `XC` | Cross Country | Cross Country is a running discipline in which teams and individuals run a race on open-air courses over natural terrain such as dirt or grass. | 75 | | `MR` | Mountain Running | Mountain Running is a discipline that takes place on terrain that is mainly off-road and which course may gain elevation. | 76 | | `ULTRA` | Ultra Running | Ultra running, ultra distance or ultramarathon, is a road race longer than the traditional marathon length (42.195 Km). | 77 | | `THROWS` | (Generic) Throws | Throws are types of field events in which athletes throws heavy objects in an attempt to mark a farther distance than their competitors. | 78 | | `DT` | Discus Throw | Discus Throw is a track and field event in which an athlete throws a heavy disc (the discus) in an attempt to mark a farther distance than their competitors. The diameter and weight of the discus varies depending on the competition rules. | 79 | | `HT` | Hammer Throw | Hammer Throw is a track and field event in which an athlete throws a metal ball attached by a steel wire to a grip (the hammer). The size of the ball, and the length of the wire varies depending on the competition rules. | 80 | | `JT` | Javelin Throw | Javelin Throw is a track and field event where the javelin, a spear about 2.5 m (8 ft 2 in) in length, is thrown. Length and weight of javelin may vary depending on the rules of the competition. | 81 | | `SP` | Shot Put | Shot Put is a track and field event involving throwing/putting (throwing in a pushing motion) a heavy spherical object (the shot) as far as possible. The size of the ball, and the length of the wire varies depending on the competition rules. | 82 | | `HORIZONTALJUMPS` | Horizontal Jumps | Horizontal Jumps are track and field events in which athletes combine speed, strength and agility in an attempt to leap as far as possible from a take off point. Horizontal jumps include: long jump and triple jump. | 83 | | `HJ` | High Jump | High Jump is a track and field event in which competitors must jump unaided over a horizontal bar placed at measured heights without dislodging it. | 84 | | `PV` | Pole Vault | Pole Vault is a track and field event in which a person uses a long, flexible pole as an aid to jump over a bar. | 85 | | `VERTICALJUMPS` | Vertical Jumps | Vertical Jumps are track and field events in which competitors must jump or vault over a horizontal bar placed at measured heights without dislodging it. | 86 | | `LJ` | Long Jump | Long Jump (or broad jump) is a track and field event in which athletes combine speed, strength and agility in an attempt to leap as far as possible from a take off point. | 87 | | `TJ` | Triple Jump | Triple Jump (sometimes referred to as the hop, step and jump or the hop, skip and jump), is a track and field event, where competitors run down the track and perform a hop, a bound and then a jump into the sand pit. | 88 | | `COMBINED` | Combined Discipline | Combined Discipline is a competition where athletes participate in a number of track and field events, earning points for their performance in each event, which adds to a total points score. | 89 | 90 | 91 | ## Races 92 | 93 | ### Sprints 94 | 95 | | identifier | name | distance>unit | distance>value | 96 | | ---------- | ---- | ------------- | -------------- | 97 | | `60` | 60m | MTR | 60 | 98 | | `100` | 100m | MTR | 100 | 99 | | `200` | 200m | MTR | 200 | 100 | | `400` | 400m | MTR | 400 | 101 | 102 | ### Hurdles 103 | 104 | | identifier | name | distance>unit | distance>value | 105 | | ---------- | ---- | ------------- | -------------- | 106 | | `60H` | 60m Hurdles (0.60) | MTR | 60 | 107 | | `100H` | 100m Hurdles (0.84) | MTR | 100 | 108 | | `110H` | 110m Hurdles (1.067) | MTR | 110 | 109 | | `400H` | 400m Hurdles (0.91) | MTR | 400 | 110 | 111 | ### Steeplechase 112 | 113 | | identifier | name | distance>unit | distance>value | 114 | | ---------- | ---- | ------------- | -------------- | 115 | | `2000SC` | 2000m Steeplechase | MTR | 2000 | 116 | | `3000SC` | 3000m Steeplechase (36") | MTR | 3000 | 117 | 118 | 119 | ### Middle Distance & Long Distance Races 120 | 121 | | identifier | name | distance>unit | distance>value | maxDuration | 122 | | ---------- | ---- | ------------- | -------------- | ----------- | 123 | | `800` | 800m | MTR | 800 | | 124 | | `1500` | 1500m | MTR | 1500 | | 125 | | `3000` | 3000m | MTR | 3000 | | 126 | | `5000` | 5000m | MTR | 5000 | | 127 | | `10000` | 10000m | MTR | 10000 | | 128 | | `24H` | 24 Hours | | | 23:59:59.999 | 129 | 130 | 131 | ### Race Walking 132 | 133 | | identifier | name | venueType | distance>unit | distance>value | 134 | | ---------- | ---- | --------- | ------------- | -------------- | 135 | | `3000W` | 3000m Race Walking on track | | MTR | 3000 | 136 | | `5000W` | 5000m Race Walking on track | Outdoor | MTR | 5000 | 137 | | `10000W` | 10000m Race Walking on track | Outdoor | MTR | 10000 | 138 | | `10KW` | 10km Race Walking on Road | Road | MTR | 10000 | 139 | | `20KW` | 20km Race Walking on Road | Road | MTR | 20000 | 140 | | `50KW` | 50km Race Walking on Road | Road | MTR | 5000 | 141 | 142 | 143 | ### Track Relays 144 | 145 | | identifier | name | competitionType | distance>unit | distance>value | 146 | | ---------- | ---- | --------------- | ------------- | -------------- | 147 | | `4X100` | 4x100m | Relays | MTR | 400 | 148 | | `4X200` | 4x200m | Relays | MTR | 800 | 149 | | `4X400` | 4x400m | Relays | MTR | 1600 | 150 | | `4X800` | 4x800m | Relays | MTR | 3200 | 151 | | `4X1500` | 4x1500m | Relays | MTR | 6000 | 152 | | `MEDLEY` | Medley Relay | Relays | | | 153 | 154 | 155 | ### Road Running 156 | 157 | | identifier | name | distance>unit | distance>value | 158 | | ---------- | ---- | ------------- | -------------- | 159 | | `1M` | 1 Mile | SMI | 1 | 160 | | `2M` | 2 Miles | SMI | 2 | 161 | | `5M` | 5 Miles | SMI | 5 | 162 | | `10K` | 10K | MTR | 10000 | 163 | | `HM` | Half Marathon | MTR | 21097 | 164 | | `MAR` | Marathon | MTR | 42195 | 165 | 166 | 167 | ### Cross Country 168 | 169 | | identifier | name | distance>unit | distance>value | 170 | | ---------- | ---- | ------------- | -------------- | 171 | | `XC` | (Generic) CROSS COUNTRY | | | 172 | 173 | 174 | ### Mountain Running 175 | 176 | | identifier | name | distance>unit | distance>value | 177 | | ---------- | ---- | ------------- | -------------- | 178 | | `MR` | (Generic) MOUNTAIN RUNNING | | | 179 | 180 | 181 | ### Ultrarunning 182 | 183 | | identifier | name | distance>unit | distance>value | 184 | | ---------- | ---- | ------------- | -------------- | 185 | | `ULTRA` | (Generic) ULTRARUNNING | | | 186 | 187 | 188 | ## Throws 189 | 190 | | identifier | name | weight>unit | weight>value | 191 | | ---------- | ---- | ----------- | ------------ | 192 | | `DT` | (Generic) Discus Throw | | | 193 | | `HT` | (Generic) Hammer Throw | | | 194 | | `JT` | (Generic) Javelin Throw | | | 195 | | `SP` | (Generic) Shot Put | | | 196 | 197 | ## Horizontal Jumps 198 | 199 | | identifier | name | 200 | | ---------- | ---- | 201 | | `LJ` | (Generic) Long Jump | 202 | | `TJ` | (Generic) Triple Jump | 203 | 204 | ## Vertical Jumps 205 | 206 | | identifier | name | 207 | | ---------- | ---- | 208 | | `HJ` | (Generic) High Jump | 209 | | `PV` | (Generic) Pole Vault | 210 | 211 | ## Combined Disciplines 212 | 213 | | identifier | name | 214 | | ---------- | ---- | 215 | | `PEN` | (Generic) Pentathlon | 216 | | `HEP` | (Generic) Heptathlon | 217 | | `DEC` | (Generic) Decathlon | 218 | 219 | 220 | 221 | 222 | -------------------------------------------------------------------------------- /spec/disciplines/complete.md: -------------------------------------------------------------------------------- 1 | # Athletics Disciplines 2 | 3 | List of codes (identifiers) for athletics events. These will be described using the [Sports Discipline vocabulary](../competition/#sports-discipline). 4 | 5 | *This is a working document*. 6 | 7 | - [Athletics Disciplines](#athletics-disciplines) 8 | * [Races](#races) 9 | + [Sprints](#sprints) 10 | + [Hurdles](#hurdles) 11 | + [Steeplechase](#steeplechase) 12 | + [Middle Distance & Long Distance Races](#middle-distance---long-distance-races) 13 | + [Race Walking](#race-walking) 14 | + [Track Relays](#track-relays) 15 | + [Road Running](#road-running) 16 | + [Cross Country](#cross-country) 17 | + [Mountain Running](#mountain-running) 18 | + [Ultrarunning](#ultrarunning) 19 | * [Throws](#throws) 20 | * [Horizontal Jumps](#horizontal-jumps) 21 | * [Vertical Jumps](#vertical-jumps) 22 | * [Combined Disciplines](#combined-disciplines) 23 | 24 | ## Races 25 | 26 | ### Sprints 27 | 28 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | 29 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | 30 | | 60m | 60m Indoor | Indoor | 60 | Individual | MTR | 60 | 31 | | 100m | 100m Outdoor | Outdoor | 100 | Individual | MTR | 100 | 32 | | i400m | 400m Indoor | Indoor | 400 | Individual | MTR | 400 | 33 | | 200m | 200m Outdoor | Outdoor | 200 | Individual | MTR | 200 | 34 | | 400m | 400m Outdoor | Outdoor | 400 | Individual | MTR | 400 | 35 | 36 | ### Hurdles 37 | 38 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | height>value | height>value | 39 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | ------------ | ------------ | 40 | | 60mH | 60m Hurdles (0.60) Indoor | Indoor | 60H | Individual | MTR | 60 | MTR | 1.067 | 41 | | 100mH | H100m Hurdles (0.84) Women Outdoor | Outdoor | 100H | Individual | MTR | 100 | MTR | 0.84 | 42 | | 110mH | 110m Hurdles (1.067) Men Outdoor | Outdoor | 110H | Individual | MTR | 110 | MTR | 1.067 | 43 | | 400mH | 400m Hurdles (0.91) Men Outdoor | Outdoor | 400H | Individual | MTR | 400 | MTR | 0.914 | 44 | | 400mHW | 400m Hurdles (0.76) Women Outdoor | Outdoor | 400H | Individual | MTR | 400 | MTR | 0.762 | 45 | 46 | Note: Spacing is complex: distance to first hurdle, spacing between intermediate hurdles, distance last hurdle to the end. 47 | 48 | 49 | ### Steeplechase 50 | 51 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | height>value | height>value | 52 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | ------------ | ------------ | 53 | | 2000mSC | 2000m Steeplechase | Outdoor | 2000SC | Individual | MTR | 2000 | MTR | 0.838 | 54 | | 3000mSC | 3000m Steeplechase (36") | Outdoor | 3000SC | Individual | MTR | 3000 | MTR | 0.914 | 55 | 56 | 57 | ### Middle Distance & Long Distance Races 58 | 59 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | maxDuration | 60 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | ----------- | 61 | | 800m | 800m Outdoor | Outdoor | 800 | Individual | MTR | 800 | 62 | | i800m | 800m Indoor | Indoor | 800 | Individual | MTR | 800 | 63 | | i1500m | 1500m Indoor | Indoor | 1500 | Individual | MTR | 1500 | 64 | | 1500m | 1500m Outdoor | Outdoor | 1500 | Individual | MTR | 1500 | 65 | | i3000m | 3000m Indoor | Indoor | 3000 | Individual | MTR | 3000 | 66 | | 3000m | 3000m Outdoor | Outdoor | 3000 | Individual | MTR | 3000 | 67 | | 5000m | 5000m Outdoor | Outdoor | 5000 | Individual | MTR | 5000 | 68 | | 10000m | 10000m | Outdoor | 10000 | Individual | MTR | 10000 | 69 | | 24h | 24 Hours | Outdoor | 24H | Individual | | | 23:59:59.999 70 | 71 | 72 | ### Race Walking 73 | 74 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | 75 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | 76 | | 10000mRW | 10000m Race Walking on track | Road | 10KW | Individual | MTR | 10000 | 77 | | 10kmRW | 10km Race Walking on Road | Road | 10KW | Individual | MTR | 10000 | 78 | | 20kmRW | 20km Race Walking on Road | Road | 20KW | Individual | MTR | 20000 | 79 | | 5000mRW | 5000m Race Walking on track | Outdoor | 5KW | Individual | MTR | 5000 | 80 | | 50kmRW | 50km Race Walking on Road | Road | 50KW | Individual | MTR | 5000 | 81 | 82 | 83 | ### Track Relays 84 | 85 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | 86 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | 87 | | 4x100mR | 4x100m Outdoor | Outdoor | 4X100 | Relays | MTR | 400 | 88 | | 4x200mR | 4x200m Outdoor | Outdoor | 4X200 | Relays | MTR | 800 | 89 | | i4x400mR | 4x400m Indoor | Indoor | 4X400 | Relays | MTR | 1600 | 90 | | 4x400mR | 4x400m Outdoor | Outdoor | 4X400 | Relays | MTR | 1600 | 91 | | 4x800mR | 4x800m Outdoor | Outdoor | 4X800 | Relays | MTR | 3200 | 92 | | 4x1500mR | 4x1500m Outdoor | Outdoor | 4X1500 | Relays | MTR | 6000 | 93 | | MedleyR | Medley Relay Outdoor | Outdoor | MedleyR | Relays | | | 94 | 95 | 96 | ### Road Running 97 | 98 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | 99 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | 100 | | HMar | Half Marathon | Road | HM | Individual | MTR | 21097 | 101 | | Mar | Marathon | Road | MAR | Individual | MTR | 42195 | 102 | 103 | 104 | ### Cross Country 105 | 106 | | identifier | name | venueType | opentrack | competitionType | distance>unit | distance>value | 107 | | ---------- | ---- | --------- | ------------- | --------------- | ------------- | -------------- | 108 | | 60m | 60m Indoor | Indoor | 60 | Individual | MTR | 60 | 109 | 110 | 111 | 112 | ### Mountain Running 113 | 114 | 115 | 116 | ### Ultrarunning 117 | 118 | 119 | 120 | ## Throws 121 | 122 | | Sub-type | identifier | name | venueType | opentrack | competitionType | weight>unit | weight>value | 123 | | -------- | ---------- | ---- | --------- | ------------- | --------------- | ----------- | ------------ | 124 | | Discus Throw | DT | Discus Throw (1 kg) Outdoor | Outdoor | DT | Individual | KGM | 1 | 125 | | Hammer Throw | HT | Hammer Throw (7.260kg) | Outdoor | HT | Individual | KGM | 7.26 | 126 | | Javelin Throw | JT | Javelin Throw (800g) | Outdoor | JT | Individual | KGM | 0.8 | 127 | | Shot Put | iSP | Shot Put (4 kg) Indoor | Indoor | SP | Individual | KGM | 4 | 128 | | Shot Put | SP | Shot Put (4 kg) Outdoor | Outdoor | SP | Individual | KGM | 4 | 129 | 130 | 131 | ## Horizontal Jumps 132 | 133 | | Sub-type | identifier | name | venueType | opentrack | competitionType | 134 | | -------- | ---------- | ---- | --------- | ------------- | --------------- | 135 | | Long Jump | iLJ | Long Jump Indoor | Indoor | LJ | Individual | 136 | | Long Jump | LJ | Long Jump Outdoor | Outdoor | LJ | Individual | 137 | | Triple Jump | iTJ | Triple Jump Indoor | Indoor | TJ | Individual | 138 | | Triple Jump | TJ | Triple Jump Outdoor | Outdoor | TJ | Individual | 139 | 140 | ## Vertical Jumps 141 | 142 | | Sub-type | identifier | name | venueType | opentrack | competitionType | 143 | | -------- | ---------- | ---- | --------- | ------------- | --------------- | 144 | | High Jump | iHJ | High Jump Indoor | Indoor | HJ | Individual | 145 | | High Jump | HJ | High Jump Outdoor | Outdoor | HJ | Individual | 146 | | Pole Vault | iPV | Pole Vault Indoor | Indoor | PV | Individual | 147 | | Pole Vault | PV | Pole Vault Outdoor | Outdoor | PV | Individual | 148 | 149 | ## Combined Disciplines 150 | 151 | | identifier | name | venueType | opentrack | competitionType | 152 | | ---------- | ---- | --------- | ------------- | --------------- | 153 | | Pentathlon | Pen | Pentathlon Women Indoor | Indoor | PEN | Individual | 154 | | Heptathlon | HepW | Heptathlon Women | | HEP | Individual | 155 | | Heptathlon | iHep | Heptathlon Men Indoor | Indoor | HEP | Individual | 156 | | Heptathlon | HepM | Heptathlon Men | | HEP | Individual | 157 | | Decathlon | Dec | Decathlon Men | | DEC | Individual | 158 | 159 | 160 | 161 | 162 | -------------------------------------------------------------------------------- /spec/model/images/disciplines.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/disciplines.png -------------------------------------------------------------------------------- /spec/model/images/example_distance_card_concepts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/example_distance_card_concepts.png -------------------------------------------------------------------------------- /spec/model/images/example_height_card_concepts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/example_height_card_concepts.png -------------------------------------------------------------------------------- /spec/model/images/example_results.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/example_results.png -------------------------------------------------------------------------------- /spec/model/images/example_start_list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/example_start_list.png -------------------------------------------------------------------------------- /spec/model/images/instances_club_team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/instances_club_team.png -------------------------------------------------------------------------------- /spec/model/images/instances_competition_european_champs_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/instances_competition_european_champs_100.png -------------------------------------------------------------------------------- /spec/model/images/instances_competition_european_champs_heptathlon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/instances_competition_european_champs_heptathlon.png -------------------------------------------------------------------------------- /spec/model/images/instances_disciplines_pentathlon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/instances_disciplines_pentathlon.png -------------------------------------------------------------------------------- /spec/model/images/instances_national_team.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/instances_national_team.png -------------------------------------------------------------------------------- /spec/model/images/instances_relays_ekiden.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/instances_relays_ekiden.png -------------------------------------------------------------------------------- /spec/model/images/results_discus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/results_discus.png -------------------------------------------------------------------------------- /spec/model/images/results_final_teams.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/model/images/results_final_teams.png -------------------------------------------------------------------------------- /spec/model/officials.md: -------------------------------------------------------------------------------- 1 | # Competition Officials 2 | 3 | A Competition Official is a person involved in a competitive athletic or sporting events to help maintain standards of play. They detect infractions and decide penalties according to the rules of the game. 4 | 5 | The following list comprises the officials considered necessary for major international Competitions, according to IAAF. The organising committee may, however, vary this according to local circumstances. 6 | 7 | Management Officials: 8 | - Competition Director (1) 9 | - Meeting Manager (1) 10 | - Meeting Manager's Assistant (1..n) 11 | - Technical Manager (1) 12 | - Event Presentation Manager (1) 13 | 14 | Competition Officials: 15 | - Referee for the Call Room (1..n) 16 | - Referee for track event (1..n) 17 | - Referee for field event (1..n) 18 | - Referee for combined event (1..n) 19 | - Referee for events outside the stadium (1..n) 20 | - Video Referee (1..n) 21 | - Chief Judge for track event (1) 22 | - Judge for track event (1..n) 23 | - Chief Judge for field event (1) 24 | - Judge for field event (1..n) 25 | - Chief Judge for track Race Walking event (1) 26 | - Chief Judge's assistants for each track Race Walking event (1..n) 27 | - Judges for track Race Walking event (5) 28 | - Chief Judge for Road Race walking event(1) 29 | - Chief Judge's assistants for Road Race walking event (1..n) 30 | - Judges for Road Race walking event (8) 31 | - Race walking Competition officials: Recorders, Posting Board operators, etc. (1..n) 32 | - Chief Umpire (1) 33 | - Umpire (1..n) 34 | - Chief Timekeeper (1) 35 | - Timekeeper (1..n) 36 | - Chief Photo Finish Judge (1) 37 | - Chief Photo Finish Judge's Assistant (1..n) 38 | - Photo Finish Judge (1..n) 39 | - Chief Transponder Timing Judge (1) 40 | - Chief Transponder Timing Judge's Assistant (1..n) 41 | - Start Coordinator (1) 42 | - Starter (1..n) 43 | - Recaller (1..n) 44 | - Starter’s Assistant (1..n) 45 | - Chief Lap Scorer (1) 46 | - Lap Scorer (1..n) 47 | - Competition Secretary (1) 48 | - Competition Secretary's assistants (1..n) 49 | - Technical Information Centre (TIC) Manager (1) 50 | - Technical Information Centre (TIC) Manager's assistant (1..n) 51 | - Chief Marshal (1) 52 | - Marshals (1..n) 53 | - Wind Gauge Operators (1..n) 54 | - Chief Measurement Judge (Scientific) 55 | - Chief Measurement Judge's assistants 56 | - Chief Call Room Judge (1) 57 | - Call Room Judge (1..n) 58 | 59 | Additional Officials: 60 | - Announcer (1..n) 61 | - Statistician (1..n) 62 | - Advertising Commissioner (1) 63 | - Official Surveyor (1) 64 | - Doctor (1..n) 65 | - Stewards for Athletes, Officials and Media (1..n) 66 | 67 | Map of roles compared to Peter's List: 68 | 69 | | Roles in Peter's List | IAAF | 70 | | :-------------------- | :--- | 71 | | Meeting Manager | Meeting Manager | 72 | | Race Director | Competition Director | 73 | | Track Referee | Referee for track event | 74 | | Track Judge / Umpire | Judge for track event | 75 | | Race Referee | Referee for events outside the stadium? | 76 | | Chief Photofinish Judge | Chief Photo Finish Judge | 77 | | Photofinish Judge | Photo Finish Judge | 78 | | Chief Starter | Start Coordinator? | 79 | | Starter | Starter | 80 | | Chief Starter's Assistant | | 81 | | Starter's Assistant | | 82 | | Field Referee | Referee for field event | 83 | | Field Judge | Judge for field event | 84 | | Technical Manager | Technical Manager | 85 | | Chief Marshal | Chief Marshal | 86 | | Marshal | Marshal | 87 | | Chief Timekeeper | Chief Timekeeper | 88 | | Timekeeper | Timekeeper | 89 | | Timekeeper's Steward | | 90 | | Event Adjudicator | | 91 | | Finish Area Judge | | 92 | | Equipment Officer | | 93 | | Clerk of Course | | 94 | | Announcer | Announcer | 95 | | Results Co-Ordinator | | 96 | | Results Steward | | 97 | | Registration Steward | | 98 | | Chief Seeding Officer | | 99 | | Seeding Officer | | 100 | 101 | 102 | -------------------------------------------------------------------------------- /spec/references/rec20_Rev9e_2014.xls: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3c/opentrack-cg/242828e03a6330d38a8b69452cf18e392ded157f/spec/references/rec20_Rev9e_2014.xls -------------------------------------------------------------------------------- /spec/vocab/contents.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Ontology Browser 5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | Ontologies 13 | Classes 14 | Object Properties 15 | Data Properties 16 | Annotation Properties 17 | Individuals 18 | Datatypes 19 | Clouds 20 |
21 | 22 | 23 | 24 |
25 |

Contents

26 |
27 | 49 |
50 |
51 | 52 | 53 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /spec/vocab/css/default.css: -------------------------------------------------------------------------------- 1 | body {font-family: Verdana, Arial, sans-serif; font-size: 9pt; padding: 5px;} 2 | 3 | img {border: none;} 4 | img.button {position: relative; top: 8px;} 5 | 6 | .literal {color: green;} 7 | .annotation-uri {color: gray;} 8 | .ontology-uri {color: #990099;} 9 | .active-ontology-uri {color: #330033;} 10 | .active-entity {color: darkblue; font-weight: bold;} 11 | 12 | /* keywords - default cyan */ 13 | .keyword {color: #007777;} 14 | .comment {color: green;} 15 | .some {color: #770077;} 16 | .only {color: #770077;} 17 | .value {color: #770077;} 18 | .min {color: #770077;} 19 | .max {color: #770077;} 20 | .exactly {color: #770077;} 21 | 22 | div.codebox {overflow: hidden; 23 | background: #f1f5f9; width: 95%; padding: 5px; 24 | border-width: 1px; border-style: solid; border-color: #c7cfd5; 25 | } 26 | 27 | #queryform {background: #ddddff; padding: 5px;} 28 | #most_used_classes {text-align: center;} 29 | 30 | p.footer {font-size: 8pt; text-align: right;} 31 | 32 | h1 {margin-top: 5px; font-size: 14pt; font-weight: bold;} 33 | h2 {margin-top: 5px; margin-bottom: 3px; font-size: 12pt; font-weight: normal;} 34 | 35 | a {text-decoration: none; color: black;} 36 | a:hover {text-decoration: underline; color: blue;} 37 | 38 | a.subsexpand {color: #555555; font-size: 7pt; text-decoration: underline; line-height: 180%;} 39 | 40 | ul {margin-top: 1px; margin-bottom: 1px; margin-left: 10px; padding-left: 5px;} 41 | 42 | ul.minihierarchy {list-style-type: disc;} -------------------------------------------------------------------------------- /spec/vocab/css/jquery.toast.min.css: -------------------------------------------------------------------------------- 1 | .jq-toast-wrap,.jq-toast-wrap *{margin:0;padding:0}.jq-toast-wrap{display:block;position:fixed;width:250px;pointer-events:none!important;letter-spacing:normal;z-index:9000!important}.jq-toast-wrap.bottom-left{bottom:20px;left:20px}.jq-toast-wrap.bottom-right{bottom:20px;right:40px}.jq-toast-wrap.top-left{top:20px;left:20px}.jq-toast-wrap.top-right{top:20px;right:40px}.jq-toast-single{display:block;width:100%;padding:10px;margin:0 0 5px;border-radius:4px;font-size:12px;font-family:arial,sans-serif;line-height:17px;position:relative;pointer-events:all!important;background-color:#444;color:#fff}.jq-toast-single h2{font-family:arial,sans-serif;font-size:14px;margin:0 0 7px;background:0 0;color:inherit;line-height:inherit;letter-spacing:normal}.jq-toast-single a{color:#eee;text-decoration:none;font-weight:700;border-bottom:1px solid #fff;padding-bottom:3px;font-size:12px}.jq-toast-single ul{margin:0 0 0 15px;background:0 0;padding:0}.jq-toast-single ul li{list-style-type:disc!important;line-height:17px;background:0 0;margin:0;padding:0;letter-spacing:normal}.close-jq-toast-single{position:absolute;top:3px;right:7px;font-size:14px;cursor:pointer}.jq-toast-loader{display:block;position:absolute;top:-2px;height:5px;width:0;left:0;border-radius:5px;background:red}.jq-toast-loaded{width:100%}.jq-has-icon{padding:10px 10px 10px 50px;background-repeat:no-repeat;background-position:10px}.jq-icon-info{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGwSURBVEhLtZa9SgNBEMc9sUxxRcoUKSzSWIhXpFMhhYWFhaBg4yPYiWCXZxBLERsLRS3EQkEfwCKdjWJAwSKCgoKCcudv4O5YLrt7EzgXhiU3/4+b2ckmwVjJSpKkQ6wAi4gwhT+z3wRBcEz0yjSseUTrcRyfsHsXmD0AmbHOC9Ii8VImnuXBPglHpQ5wwSVM7sNnTG7Za4JwDdCjxyAiH3nyA2mtaTJufiDZ5dCaqlItILh1NHatfN5skvjx9Z38m69CgzuXmZgVrPIGE763Jx9qKsRozWYw6xOHdER+nn2KkO+Bb+UV5CBN6WC6QtBgbRVozrahAbmm6HtUsgtPC19tFdxXZYBOfkbmFJ1VaHA1VAHjd0pp70oTZzvR+EVrx2Ygfdsq6eu55BHYR8hlcki+n+kERUFG8BrA0BwjeAv2M8WLQBtcy+SD6fNsmnB3AlBLrgTtVW1c2QN4bVWLATaIS60J2Du5y1TiJgjSBvFVZgTmwCU+dAZFoPxGEEs8nyHC9Bwe2GvEJv2WXZb0vjdyFT4Cxk3e/kIqlOGoVLwwPevpYHT+00T+hWwXDf4AJAOUqWcDhbwAAAAASUVORK5CYII=);background-color:#31708f;color:#d9edf7;border-color:#bce8f1}.jq-icon-warning{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAGYSURBVEhL5ZSvTsNQFMbXZGICMYGYmJhAQIJAICYQPAACiSDB8AiICQQJT4CqQEwgJvYASAQCiZiYmJhAIBATCARJy+9rTsldd8sKu1M0+dLb057v6/lbq/2rK0mS/TRNj9cWNAKPYIJII7gIxCcQ51cvqID+GIEX8ASG4B1bK5gIZFeQfoJdEXOfgX4QAQg7kH2A65yQ87lyxb27sggkAzAuFhbbg1K2kgCkB1bVwyIR9m2L7PRPIhDUIXgGtyKw575yz3lTNs6X4JXnjV+LKM/m3MydnTbtOKIjtz6VhCBq4vSm3ncdrD2lk0VgUXSVKjVDJXJzijW1RQdsU7F77He8u68koNZTz8Oz5yGa6J3H3lZ0xYgXBK2QymlWWA+RWnYhskLBv2vmE+hBMCtbA7KX5drWyRT/2JsqZ2IvfB9Y4bWDNMFbJRFmC9E74SoS0CqulwjkC0+5bpcV1CZ8NMej4pjy0U+doDQsGyo1hzVJttIjhQ7GnBtRFN1UarUlH8F3xict+HY07rEzoUGPlWcjRFRr4/gChZgc3ZL2d8oAAAAASUVORK5CYII=);background-color:#8a6d3b;color:#fcf8e3;border-color:#faebcc}.jq-icon-error{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAHOSURBVEhLrZa/SgNBEMZzh0WKCClSCKaIYOED+AAKeQQLG8HWztLCImBrYadgIdY+gIKNYkBFSwu7CAoqCgkkoGBI/E28PdbLZmeDLgzZzcx83/zZ2SSXC1j9fr+I1Hq93g2yxH4iwM1vkoBWAdxCmpzTxfkN2RcyZNaHFIkSo10+8kgxkXIURV5HGxTmFuc75B2RfQkpxHG8aAgaAFa0tAHqYFfQ7Iwe2yhODk8+J4C7yAoRTWI3w/4klGRgR4lO7Rpn9+gvMyWp+uxFh8+H+ARlgN1nJuJuQAYvNkEnwGFck18Er4q3egEc/oO+mhLdKgRyhdNFiacC0rlOCbhNVz4H9FnAYgDBvU3QIioZlJFLJtsoHYRDfiZoUyIxqCtRpVlANq0EU4dApjrtgezPFad5S19Wgjkc0hNVnuF4HjVA6C7QrSIbylB+oZe3aHgBsqlNqKYH48jXyJKMuAbiyVJ8KzaB3eRc0pg9VwQ4niFryI68qiOi3AbjwdsfnAtk0bCjTLJKr6mrD9g8iq/S/B81hguOMlQTnVyG40wAcjnmgsCNESDrjme7wfftP4P7SP4N3CJZdvzoNyGq2c/HWOXJGsvVg+RA/k2MC/wN6I2YA2Pt8GkAAAAASUVORK5CYII=);background-color:#a94442;color:#f2dede;border-color:#ebccd1}.jq-icon-success{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAADsSURBVEhLY2AYBfQMgf///3P8+/evAIgvA/FsIF+BavYDDWMBGroaSMMBiE8VC7AZDrIFaMFnii3AZTjUgsUUWUDA8OdAH6iQbQEhw4HyGsPEcKBXBIC4ARhex4G4BsjmweU1soIFaGg/WtoFZRIZdEvIMhxkCCjXIVsATV6gFGACs4Rsw0EGgIIH3QJYJgHSARQZDrWAB+jawzgs+Q2UO49D7jnRSRGoEFRILcdmEMWGI0cm0JJ2QpYA1RDvcmzJEWhABhD/pqrL0S0CWuABKgnRki9lLseS7g2AlqwHWQSKH4oKLrILpRGhEQCw2LiRUIa4lwAAAABJRU5ErkJggg==);color:#dff0d8;background-color:#3c763d;border-color:#d6e9c6} -------------------------------------------------------------------------------- /spec/vocab/css/style.css: -------------------------------------------------------------------------------- 1 | table tr { 2 | height: 2em; 3 | line-height: 2em; 4 | vertical-align: middle; 5 | } 6 | button.btn { 7 | padding: 0; 8 | vertical-align: middle; 9 | margin-left: 0.5em; 10 | visibility: collapse; 11 | width: 2em; 12 | } 13 | .btn img { 14 | height: 2em; 15 | } 16 | -------------------------------------------------------------------------------- /spec/vocab/feature.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenTrack Competition Features 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 |

Competition Features

19 |

Collection of features used in Athletics competitions.

20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 |
44 | 45 |
46 | 47 |

Default schema prefix: feature:

48 |

IRI: http://purl.org/athletics/feature#

49 |
50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 66 | 67 | 68 | 69 | 70 | 71 | 74 | 75 | 76 | 77 | 78 | 79 | 82 | 83 | 84 | 85 | 86 | 87 | 90 | 91 | 92 | 93 | 94 | 95 | 98 | 99 | 100 | 101 | 102 | 103 | 106 | 107 | 108 | 109 | 110 | 111 | 114 | 115 | 116 | 117 | 118 | 119 | 122 | 123 | 124 | 125 | 126 | 127 | 130 | 131 | 132 | 133 | 134 | 135 | 138 | 139 | 140 | 141 | 142 | 143 | 146 | 147 | 148 | 149 | 150 | 151 | 154 | 155 | 156 | 157 | 158 | 159 | 162 | 163 | 164 | 165 | 166 | 167 | 170 | 171 | 172 | 173 | 174 | 175 | 178 | 179 | 180 | 181 | 182 | 183 | 186 | 187 | 188 | 189 | 190 | 191 | 194 | 195 | 196 | 197 | 198 | 199 | 202 | 203 | 204 | 205 | 206 | 207 | 210 | 211 | 212 | 213 | 214 | 215 | 218 | 219 | 220 | 221 | 222 | 223 | 226 | 227 | 228 | 229 | 230 | 231 | 234 | 235 | 236 | 237 | 238 | 239 | 242 | 243 | 244 |
CodeFeatureOpentrack Code
DNSDid Not Startfeature:DNS 64 | 65 |
DNFDid Not Finishfeature:DNF 72 | 73 |
DQDisqualifiedfeature:DQ 80 | 81 |
RRetired from competitionfeature:R 88 | 89 |
QQualified by place (track) or standard (field)feature:Q 96 | 97 |
qQualified by performance (time in timed events and rank in field events)feature:q 104 | 105 |
qRAdvanced to next round by Refereefeature:qR 112 | 113 |
qJAdvanced to next round by Jury of Appealfeature:qJ 120 | 121 |
>Bent knee (Race walking)feature:%3E 128 | 129 |
~loss of contact (Race walking)feature:~ 136 | 137 |
yCyellow Cardfeature:yC 144 | 145 |
yRCSecond yellow Cardfeature:yRC 152 | 153 |
RCRed Cardfeature:RC 160 | 161 |
FnFalse Startfeature:Fn 168 | 169 |
oClearance (valid trial in Height Events)feature:o 176 | 177 |
-Pass (passed trial in field events)feature:- 184 | 185 |
xFailure (failed trial in field events)feature:x 192 | 193 |
NMNo Markfeature:NM 200 | 201 |
NHNo Heightfeature:NH 208 | 209 |
hHand-timingfeature:h 216 | 217 |
aautomatic timing with no hundredths of a second measuredfeature:a 224 | 225 |
Aperformance achieved at altitudefeature:A 232 | 233 |
OTOversized Trackfeature:OT 240 | 241 |
245 | 246 | 247 | 248 | -------------------------------------------------------------------------------- /spec/vocab/img/clipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 18 | 20 | 42 | 44 | 45 | 47 | image/svg+xml 48 | 50 | 51 | 52 | 53 | 54 | 59 | 62 | 66 | 67 | 68 | 69 | -------------------------------------------------------------------------------- /spec/vocab/js/clipboard.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * clipboard.js v1.7.1 3 | * https://zenorocha.github.io/clipboard.js 4 | * 5 | * Licensed MIT © Zeno Rocha 6 | */ 7 | !function(t){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=t();else if("function"==typeof define&&define.amd)define([],t);else{var e;e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,e.Clipboard=t()}}(function(){var t,e,n;return function t(e,n,o){function i(a,c){if(!n[a]){if(!e[a]){var l="function"==typeof require&&require;if(!c&&l)return l(a,!0);if(r)return r(a,!0);var s=new Error("Cannot find module '"+a+"'");throw s.code="MODULE_NOT_FOUND",s}var u=n[a]={exports:{}};e[a][0].call(u.exports,function(t){var n=e[a][1][t];return i(n||t)},u,u.exports,t,e,n,o)}return n[a].exports}for(var r="function"==typeof require&&require,a=0;a0&&void 0!==arguments[0]?arguments[0]:{};this.action=e.action,this.container=e.container,this.emitter=e.emitter,this.target=e.target,this.text=e.text,this.trigger=e.trigger,this.selectedText=""}},{key:"initSelection",value:function t(){this.text?this.selectFake():this.target&&this.selectTarget()}},{key:"selectFake",value:function t(){var e=this,n="rtl"==document.documentElement.getAttribute("dir");this.removeFake(),this.fakeHandlerCallback=function(){return e.removeFake()},this.fakeHandler=this.container.addEventListener("click",this.fakeHandlerCallback)||!0,this.fakeElem=document.createElement("textarea"),this.fakeElem.style.fontSize="12pt",this.fakeElem.style.border="0",this.fakeElem.style.padding="0",this.fakeElem.style.margin="0",this.fakeElem.style.position="absolute",this.fakeElem.style[n?"right":"left"]="-9999px";var o=window.pageYOffset||document.documentElement.scrollTop;this.fakeElem.style.top=o+"px",this.fakeElem.setAttribute("readonly",""),this.fakeElem.value=this.text,this.container.appendChild(this.fakeElem),this.selectedText=(0,i.default)(this.fakeElem),this.copyText()}},{key:"removeFake",value:function t(){this.fakeHandler&&(this.container.removeEventListener("click",this.fakeHandlerCallback),this.fakeHandler=null,this.fakeHandlerCallback=null),this.fakeElem&&(this.container.removeChild(this.fakeElem),this.fakeElem=null)}},{key:"selectTarget",value:function t(){this.selectedText=(0,i.default)(this.target),this.copyText()}},{key:"copyText",value:function t(){var e=void 0;try{e=document.execCommand(this.action)}catch(t){e=!1}this.handleResult(e)}},{key:"handleResult",value:function t(e){this.emitter.emit(e?"success":"error",{action:this.action,text:this.selectedText,trigger:this.trigger,clearSelection:this.clearSelection.bind(this)})}},{key:"clearSelection",value:function t(){this.trigger&&this.trigger.focus(),window.getSelection().removeAllRanges()}},{key:"destroy",value:function t(){this.removeFake()}},{key:"action",set:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"copy";if(this._action=e,"copy"!==this._action&&"cut"!==this._action)throw new Error('Invalid "action" value, use either "copy" or "cut"')},get:function t(){return this._action}},{key:"target",set:function t(e){if(void 0!==e){if(!e||"object"!==(void 0===e?"undefined":r(e))||1!==e.nodeType)throw new Error('Invalid "target" value, use a valid Element');if("copy"===this.action&&e.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if("cut"===this.action&&(e.hasAttribute("readonly")||e.hasAttribute("disabled")))throw new Error('Invalid "target" attribute. You can\'t cut text from elements with "readonly" or "disabled" attributes');this._target=e}},get:function t(){return this._target}}]),t}();t.exports=c})},{select:5}],8:[function(e,n,o){!function(i,r){if("function"==typeof t&&t.amd)t(["module","./clipboard-action","tiny-emitter","good-listener"],r);else if(void 0!==o)r(n,e("./clipboard-action"),e("tiny-emitter"),e("good-listener"));else{var a={exports:{}};r(a,i.clipboardAction,i.tinyEmitter,i.goodListener),i.clipboard=a.exports}}(this,function(t,e,n,o){"use strict";function i(t){return t&&t.__esModule?t:{default:t}}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function l(t,e){var n="data-clipboard-"+t;if(e.hasAttribute(n))return e.getAttribute(n)}var s=i(e),u=i(n),f=i(o),d="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},h=function(){function t(t,e){for(var n=0;n0&&void 0!==arguments[0]?arguments[0]:{};this.action="function"==typeof e.action?e.action:this.defaultAction,this.target="function"==typeof e.target?e.target:this.defaultTarget,this.text="function"==typeof e.text?e.text:this.defaultText,this.container="object"===d(e.container)?e.container:document.body}},{key:"listenClick",value:function t(e){var n=this;this.listener=(0,f.default)(e,"click",function(t){return n.onClick(t)})}},{key:"onClick",value:function t(e){var n=e.delegateTarget||e.currentTarget;this.clipboardAction&&(this.clipboardAction=null),this.clipboardAction=new s.default({action:this.action(n),target:this.target(n),text:this.text(n),container:this.container,trigger:n,emitter:this})}},{key:"defaultAction",value:function t(e){return l("action",e)}},{key:"defaultTarget",value:function t(e){var n=l("target",e);if(n)return document.querySelector(n)}},{key:"defaultText",value:function t(e){return l("text",e)}},{key:"destroy",value:function t(){this.listener.destroy(),this.clipboardAction&&(this.clipboardAction.destroy(),this.clipboardAction=null)}}],[{key:"isSupported",value:function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:["copy","cut"],n="string"==typeof e?[e]:e,o=!!document.queryCommandSupported;return n.forEach(function(t){o=o&&!!document.queryCommandSupported(t)}),o}}]),e}(u.default);t.exports=p})},{"./clipboard-action":7,"good-listener":4,"tiny-emitter":6}]},{},[8])(8)}); -------------------------------------------------------------------------------- /spec/vocab/js/core.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | 3 | var clipboard = new Clipboard('.btn'); 4 | clipboard.on('success', function(e) { 5 | $.toast({ 6 | heading: 'Copied', 7 | text: 'The Opentrack code [' + e.text + '] is now in your clipboard', 8 | icon: 'success', 9 | position: 'mid-center', 10 | loaderBg: '#9EC600', 11 | stack: 'false', 12 | hideAfter: 5000 13 | }); 14 | }); 15 | clipboard.on('error', function(e) { 16 | $.toast({ 17 | heading: 'Cannot Copy', 18 | text: 'I cannot copy the code for you. Please do it yourself.', 19 | icon: 'error', 20 | position: 'mid-center', 21 | stack: 'false', 22 | hideAfter: 5000 23 | }); 24 | }); 25 | $('.key').on('mouseenter', function(event){ 26 | $(event.target.children).css('visibility', 'visible'); 27 | }); 28 | $('.key').on('mouseleave', function(event){ 29 | $('.btn').css('visibility', 'collapse'); 30 | }); 31 | }); 32 | 33 | -------------------------------------------------------------------------------- /spec/vocab/js/jquery.toast.min.js: -------------------------------------------------------------------------------- 1 | "function"!=typeof Object.create&&(Object.create=function(t){function o(){}return o.prototype=t,new o}),function(t,o){"use strict";var i={_positionClasses:["bottom-left","bottom-right","top-right","top-left","bottom-center","top-center","mid-center"],_defaultIcons:["success","error","info","warning"],init:function(o){this.prepareOptions(o,t.toast.options),this.process()},prepareOptions:function(o,i){var s={};"string"==typeof o||o instanceof Array?s.text=o:s=o,this.options=t.extend({},i,s)},process:function(){this.setup(),this.addToDom(),this.position(),this.bindToast(),this.animate()},setup:function(){var o="";if(this._toastEl=this._toastEl||t("
",{"class":"jq-toast-single"}),o+='',this.options.allowToastClose&&(o+='×'),this.options.text instanceof Array){this.options.heading&&(o+='

'+this.options.heading+"

"),o+='
    ';for(var i=0;i'+this.options.text[i]+"";o+="
"}else this.options.heading&&(o+='

'+this.options.heading+"

"),o+=this.options.text;this._toastEl.html(o),this.options.bgColor!==!1&&this._toastEl.css("background-color",this.options.bgColor),this.options.textColor!==!1&&this._toastEl.css("color",this.options.textColor),this.options.textAlign&&this._toastEl.css("text-align",this.options.textAlign),this.options.icon!==!1&&(this._toastEl.addClass("jq-has-icon"),-1!==t.inArray(this.options.icon,this._defaultIcons)&&this._toastEl.addClass("jq-icon-"+this.options.icon))},position:function(){"string"==typeof this.options.position&&-1!==t.inArray(this.options.position,this._positionClasses)?"bottom-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,bottom:20}):"top-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:20}):"mid-center"===this.options.position?this._container.css({left:t(o).outerWidth()/2-this._container.outerWidth()/2,top:t(o).outerHeight()/2-this._container.outerHeight()/2}):this._container.addClass(this.options.position):"object"==typeof this.options.position?this._container.css({top:this.options.position.top?this.options.position.top:"auto",bottom:this.options.position.bottom?this.options.position.bottom:"auto",left:this.options.position.left?this.options.position.left:"auto",right:this.options.position.right?this.options.position.right:"auto"}):this._container.addClass("bottom-left")},bindToast:function(){var t=this;this._toastEl.on("afterShown",function(){t.processLoader()}),this._toastEl.find(".close-jq-toast-single").on("click",function(o){o.preventDefault(),"fade"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))}),"function"==typeof this.options.beforeShow&&this._toastEl.on("beforeShow",function(){t.options.beforeShow()}),"function"==typeof this.options.afterShown&&this._toastEl.on("afterShown",function(){t.options.afterShown()}),"function"==typeof this.options.beforeHide&&this._toastEl.on("beforeHide",function(){t.options.beforeHide()}),"function"==typeof this.options.afterHidden&&this._toastEl.on("afterHidden",function(){t.options.afterHidden()})},addToDom:function(){var o=t(".jq-toast-wrap");if(0===o.length?(o=t("
",{"class":"jq-toast-wrap"}),t("body").append(o)):(!this.options.stack||isNaN(parseInt(this.options.stack,10)))&&o.empty(),o.find(".jq-toast-single:hidden").remove(),o.append(this._toastEl),this.options.stack&&!isNaN(parseInt(this.options.stack),10)){var i=o.find(".jq-toast-single").length,s=i-this.options.stack;s>0&&t(".jq-toast-wrap").find(".jq-toast-single").slice(0,s).remove()}this._container=o},canAutoHide:function(){return this.options.hideAfter!==!1&&!isNaN(parseInt(this.options.hideAfter,10))},processLoader:function(){if(!this.canAutoHide()||this.options.loader===!1)return!1;var t=this._toastEl.find(".jq-toast-loader"),o=(this.options.hideAfter-400)/1e3+"s",i=this.options.loaderBg,s=t.attr("style")||"";s=s.substring(0,s.indexOf("-webkit-transition")),s+="-webkit-transition: width "+o+" ease-in; -o-transition: width "+o+" ease-in; transition: width "+o+" ease-in; background-color: "+i+";",t.attr("style",s).addClass("jq-toast-loaded")},animate:function(){var t=this;if(this._toastEl.hide(),this._toastEl.trigger("beforeShow"),"fade"===this.options.showHideTransition.toLowerCase()?this._toastEl.fadeIn(function(){t._toastEl.trigger("afterShown")}):"slide"===this.options.showHideTransition.toLowerCase()?this._toastEl.slideDown(function(){t._toastEl.trigger("afterShown")}):this._toastEl.show(function(){t._toastEl.trigger("afterShown")}),this.canAutoHide()){var t=this;o.setTimeout(function(){"fade"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.fadeOut(function(){t._toastEl.trigger("afterHidden")})):"slide"===t.options.showHideTransition.toLowerCase()?(t._toastEl.trigger("beforeHide"),t._toastEl.slideUp(function(){t._toastEl.trigger("afterHidden")})):(t._toastEl.trigger("beforeHide"),t._toastEl.hide(function(){t._toastEl.trigger("afterHidden")}))},this.options.hideAfter)}},reset:function(o){"all"===o?t(".jq-toast-wrap").remove():this._toastEl.remove()},update:function(t){this.prepareOptions(t,this.options),this.setup(),this.bindToast()}};t.toast=function(t){var o=Object.create(i);return o.init(t,this),{reset:function(t){o.reset(t)},update:function(t){o.update(t)}}},t.toast.options={text:"",heading:"",showHideTransition:"fade",allowToastClose:!0,hideAfter:3e3,loader:!0,loaderBg:"#9EC600",stack:5,position:"bottom-left",bgColor:!1,textColor:!1,textAlign:"left",icon:!1,beforeShow:function(){},afterShown:function(){},beforeHide:function(){},afterHidden:function(){}}}(jQuery,window,document); -------------------------------------------------------------------------------- /spec/vocab/js/tree.js: -------------------------------------------------------------------------------- 1 | function showSubs(id){ 2 | var subs = document.getElementById(id); 3 | if (subs != null){ 4 | if (subs.style.display == "none"){ 5 | subs.style.display = "block"; 6 | } 7 | else{ 8 | subs.style.display = "none"; 9 | } 10 | } 11 | var subExpand = document.getElementById(id + "-expand"); 12 | if (subExpand != null){ 13 | if (subExpand.style.display == "none"){ 14 | subExpand.style.display = "inline"; 15 | } 16 | else{ 17 | subExpand.style.display = "none"; 18 | } 19 | } 20 | } -------------------------------------------------------------------------------- /spec/vocab/protest.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenTrack Protest Statuses 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |

OpenTrack Protest Statuses

20 |

Collection of statuses of protest actions in Athletics competitions.

21 | 22 | 23 | 24 | 25 |
26 | 27 |
28 | 29 |

Default schema prefix: protest:

30 |

IRI: http://purl.org/athletics/protest#

31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | 48 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | 60 | 63 | 64 | 65 | 66 |
Opentrack CodeStatus of protest action
protest:closed 43 | 44 | Closed
protest:open 49 | 50 | Open
protest:pending 55 | 56 | Pending
protest:reopen 61 | 62 | Re-Open
67 | 68 | 69 | 70 | 71 | -------------------------------------------------------------------------------- /spec/vocab/race.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenTrack Competition Type within Races 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 |
20 |

OpenTrack Competition Type within Races

21 |

Collection of competition types in Athletics races.

22 | 23 | 24 | 25 |
26 | 27 |
28 | 29 |

Default schema prefix: race:

30 |

IRI: http://purl.org/athletics/race#

31 |
32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | 48 | 51 | 52 | 53 | 54 | 57 | 58 | 59 | 60 | 61 |
Opentrack CodeStatus of competition types in races
race:individual 43 | 44 | Individual Competition
race:RelayCompetition 49 | 50 | Relay Competition
race:TimeTrialCompetition 55 | 56 | Time Trial Competition
62 | 63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /spec/vocab/results.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenTrack Results Types 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 |
19 |

OpenTrack Results Types

20 |

Collection of types of results for Athletics competitions.

21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
32 | 33 |

Default schema prefix: results:

34 |

IRI: http://purl.org/athletics/results#

35 |
36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 49 | 50 | 51 | 52 | 55 | 56 | 57 | 58 | 61 | 62 | 63 | 64 | 67 | 68 | 69 | 70 | 73 | 74 | 75 | 76 | 79 | 80 | 81 | 82 | 85 | 86 | 87 | 88 | 91 | 92 | 93 | 94 |
Opentrack CodeType of Result
results:startList 47 | 48 | Before competition, Start List
results:live 53 | 54 | For live updates during competition
results:intermediate 59 | 60 | When competition is stopped, used at pre-defined points
results:unconfirmed 65 | 66 | When the unit is over but not yet unofficial or official. Only used if other statuses do not come quickly.
results:unofficial 71 | 72 | Results of the competition released as soon as the event is over, not waiting any official decision of the International Federation. The correctness of data must be assured.
results:official 77 | 78 | Results of the competition released as soon as the event is officially confirmed taking into account the resolution of the protests, etc.
results:partial 83 | 84 | Incomplete list, Final Ranking.
results:protested 89 | 90 | After the competition is no longer LIVE and a protest has been lodged After all decisions on the protest are made the ResultStatus will change to UNOFFICIAL or OFFICIAL as appropriate.
95 | 96 | 97 | 98 | 99 | 100 | -------------------------------------------------------------------------------- /spec/vocab/trial.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | OpenTrack Field Trial Features 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 |
18 |

Field Trial Features

19 |

Collection of features used in Athletics field trials.

20 | 21 | 22 |
23 | 24 |
25 | 26 |

Default schema prefix: trial:

27 |

IRI: http://purl.org/athletics/trial#

28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 45 | 46 | 47 | 48 | 49 | 50 | 53 | 54 | 55 |
CodeFeatureOpentrack Code
validValid Trialtrial:valid 43 | 44 |
substituteSubstitute Trialtrial:substitute 51 | 52 |
56 | 57 | 58 | 59 | -------------------------------------------------------------------------------- /tools/normalise-json.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const FS = require('fs'), 4 | PATH = require('path'); 5 | 6 | const BLACKLIST = /^\.(git|\.)?$/i, 7 | WHITELIST = /[^\.]+\.json(ld)?$/i; 8 | 9 | const fail = (message) => { 10 | console.error(message); 11 | process.exitCode = 1; 12 | }; 13 | 14 | const processSubDir = (path) => { 15 | FS.readdir(path, (err, files) => { 16 | if (err) 17 | fail(`Something went wrong listing directory "${path}": ${err}`); 18 | else { 19 | const cwd = path + PATH.sep; 20 | for (let f of files) 21 | if (!BLACKLIST.test(f)) { 22 | FS.lstat(cwd + f, (err, stats) => { 23 | if (err) 24 | fail(`Something went wrong examining file "${cwd + f}": ${err}`); 25 | else if (stats.isDirectory()) 26 | processSubDir(cwd + f); 27 | else if (WHITELIST.test(f)) 28 | FS.readFile(cwd + f, {encoding: 'utf-8'}, (err, data) => { 29 | if (err) 30 | fail(`Something went wrong reading JSON file "${cwd + f}": ${err}`); 31 | else { 32 | const reformatted = JSON.stringify(JSON.parse(data), null, 4) + '\n'; 33 | FS.writeFile(cwd + f, reformatted, (err) => { 34 | if (err) 35 | fail(`Something went wrong writing JSON file "${cwd + f}": ${err}`); 36 | else if (reformatted !== data) 37 | fail(`JSON file "${cwd + f}" had incorrect formatting; it was reformatted`); 38 | else 39 | console.log(cwd + f + ' ✓'); 40 | }); 41 | } 42 | }); 43 | }); 44 | } 45 | } 46 | }); 47 | }; 48 | 49 | console.log('Processing current directory… '); 50 | processSubDir('.'); 51 | -------------------------------------------------------------------------------- /w3c.json: -------------------------------------------------------------------------------- 1 | { 2 | "group": 96642, 3 | "contacts": [ 4 | "espinr" 5 | ] 6 | } 7 | --------------------------------------------------------------------------------