Difference between revisions of "Contest Data Package"

From PC2wiki
Jump to: navigation, search
(major addition, added 15+ new sections)
m (Sample One: add link)
 
(24 intermediate revisions by the same user not shown)
Line 1: Line 1:
A contest data package (CDP) is a description of files/directories that
+
A contest data package (CDP) is a description of files and directory layout for
are input and output from a contest.  
+
contest configuration, data and results.
  
 
=Introduction=
 
=Introduction=
  
 +
This standard contains a description of the organization of contest data.  Both
 +
the data that is input to the contest, under config/, images/ etc. and the results of the contest,
 +
under results/, events/, etc.
 +
 +
Here are two example of the standard.
 +
 +
To learn how pc2 imports and exports the data see the Import/Export section below.
  
 
==Sample One==
 
==Sample One==
  
  config/hello/problem.yaml
+
  config/hello/[[problem.yaml]]
 
  config/hello/data/secret/hello.ans
 
  config/hello/data/secret/hello.ans
 
  config/hello/data/secret/hello.in
 
  config/hello/data/secret/hello.in
  config/hello/data/problem_statement/problem.tex
+
  config/hello/data/problem_statement/[[problem.tex]]
  config/teams.tsv
+
  config/[[teams.tsv]]
  config/sumit/problem.yaml
+
  config/sumit/[[problem.yaml]]
 
  config/sumit/data/secret/sumit.in
 
  config/sumit/data/secret/sumit.in
 
  config/sumit/data/secret/sumit.ans
 
  config/sumit/data/secret/sumit.ans
  config/sumit/data/problem_statement/problem.tex
+
  config/sumit/data/problem_statement/[[problem.tex]]
  config/contest.yaml
+
  config/[[contest.yaml]]
  config/problemset.yaml
+
  config/[[problemset.yaml]]
  config/groups.tsv
+
  config/[[groups.tsv]]
  config/userdata.tsv
+
  config/[[userdata.tsv]]
 
+
 
  submissions/1/A.java
 
  submissions/1/A.java
 
  submissions/3/C.java
 
  submissions/3/C.java
 
  submissions/3/A.java
 
  submissions/3/A.java
 
  submissions/2/A.java
 
  submissions/2/A.java
 
+
  results/runs.tsv
+
  results/[[runs.tsv]]
  results/scoreboard.tsv
+
  results/[[scoreboard.tsv]]
  results/results.tsv
+
  results/[[standings.json]]
  backups/team1.tar.gz
+
results/[[results.tsv]]
  backups/team2.tar.gz
+
  backups/team1.zip
  backups/team3.tar.gz
+
  backups/team2.zip
 +
  backups/team3.zip
 
  video/reactions/reaction3.m2ts
 
  video/reactions/reaction3.m2ts
 
  video/reactions/reaction1.m2ts
 
  video/reactions/reaction1.m2ts
Line 41: Line 49:
 
  images/logos/logo3.png
 
  images/logos/logo3.png
 
  images/logos/logo2.png
 
  images/logos/logo2.png
 
+
  eventFeed/eventfeed.json
+
  eventFeed/[[eventfeed.json]]
  eventFeed/eventfeed.xml
+
  eventFeed/[[Event Feed|eventfeed.xml]]
 
 
  
 
==Sample Two==
 
==Sample Two==
Line 75: Line 82:
 
  results/[[runs.tsv]]
 
  results/[[runs.tsv]]
 
  results/[[scoreboard.tsv]]
 
  results/[[scoreboard.tsv]]
 +
results/[[standings.json]]
 
  submissions/1/[[run.properties]]
 
  submissions/1/[[run.properties]]
 
  submissions/1/A.java
 
  submissions/1/A.java
Line 88: Line 96:
 
=Layout / Structure=
 
=Layout / Structure=
  
==config/==
+
==Input Files==
 +
 
 +
These are files that are input/configuration files for a contest.
 +
 
 +
===config directory ===
 +
 
 +
Contains configuration (input) files to configure a CCS (pc2).
 +
 
 +
* [[contest.yaml]]
 +
* [[problemset.yaml]])
  
* contains contest configuration files: yaml & tsv.
+
* files for each problem defined, using [[Problem Format]]
  
* <prob dir> - each problem's data files per Problem Format
+
* [[groups.tsv]]
 +
* [[teams.tsv]]
 +
* [[userdata.tsv]]
  
==images/logos/==
+
===images/logos directory ===
  
 
* contains 600x600 images of each team's logo, in logo<x>.png format.
 
* contains 600x600 images of each team's logo, in logo<x>.png format.
  
==images/teams/==
+
===images/teams directory ===
 
* contains 1920x1080 images of each team, in team<x>.jpg format.
 
* contains 1920x1080 images of each team, in team<x>.jpg format.
  
==submissions/==
+
==Output Files==
* contains a folder for each submission
 
  
==submissions/##==
+
These are files that are output from a contest.
  
* contains run source file
+
===submissions directory ===
  
* contains run.properties file (see below for contents)
+
* contains a folder for each run submission
  
==eventFeed/==
+
===submissions/## directory===
  
* contains a finalized event feed events.xml.
+
# Team's submitted source code file(s)
 +
# [[run.properties]] file (optional)
 +
 
 +
===eventFeed directory ===
 +
 
 +
# Finalized event feed [[events.xml]]
 +
# [[events.json]]
  
 
- may contain other files in the format "<x>-events.xml", e.g. "pc2-events.xml".
 
- may contain other files in the format "<x>-events.xml", e.g. "pc2-events.xml".
  
==results/==
+
===results directory ===
  
* contains results.tsv and other output files from the CCS.
+
* contains other output files from the CCS.
 +
# [[results.tsv]]
 +
# [[scoreboard.tsv]]
 +
* [[runs.tsv]]
  
==results/<CCS>==
+
===results/<CCS> directory ===
* contain CCS specific results files, ex. reports, ex results/pc2
+
* contain CCS specific results files, ex. reports, ex  
 +
results/pc2/[[results.tsv]]
 +
results/pc2/[[scoreboard.tsv]]
  
==video/reactions/==
+
===video/reactions directory ===
 
* contains recorded reaction videos for each submission, in reaction<X>.m2ts format.
 
* contains recorded reaction videos for each submission, in reaction<X>.m2ts format.
  
==backups/==
+
===backups directory ===
* contains a final backups of each team's working folder in the form team<X>.tar.gz.
+
* contains a final backups of each team's working folder in the form team<X>.zip.
  
 +
For team102 their $HOME backup would be stored in
 +
backups/team102.zip
  
=File Formats=
+
=Multiple Sites =
  
==runs.properties file ==
+
The CDP was developed for the ICPC Finals and single site contests.
* contains information about the run
+
This section covers where to put other sites' files.
  
===Required names===
+
In general each sites' data is saved in a directory under the
 +
cdp directory.
  
mainfile= source file name of main (to be executed executed) source file
+
Certain output files contain all sites' information like
 +
results.tsv and scoreboard.tsv (scoreboards).
  
===Optional names===
+
# The site 1 information is stored under the cdp as described (no need for site1 directories)
 +
# Other sites are stored under their respective site dirs under the same cdp directory with the site name (see examples)
 +
# Each site is stored under siteN where N is the number of the site. 
 +
# No zero padding is allowed for the site directory or filenames.
  
contesttime= number of milliseconds since contest start when submission sent
+
Examples
  
  submittedby= either a # meaning a team or a login account (like judge3)
+
  site3
 +
site4
 +
site9
 +
site22
  
language= language name, can be the file extension or the full title of the language used
+
==Multi-site specific files==
  
problem= problem short name as found in the problemset.yaml
+
[[TBD]] [[sites.tsv]]
  
solved= boolean (yes/no or true/false)
+
==Examples==
  
[[TBD]] should we limit the boolean values to yes/no ?
+
These example location and files will be for site 4 of a contest.
  
  sourcecount= number of source files submitted
+
  results/site4
  
source1= source file one
+
Here would be the locations for files for site4 data.
source2= source file two
 
sourceN= source file N
 
  
===Examples===
+
backups/site4/team1.tar.gz
 +
backups/site4/team2.tar.gz
 +
backups/site4/team3.tar.gz
 +
eventFeed/site4/events.json
 +
eventFeed/site4/events.xml
 +
images/site4/logos/logo1.png
 +
images/site4/logos/logo2.png
 +
images/site4/logos/logo3.png
 +
images/site4/teams/team1.jpg
 +
images/site4/teams/team2.jpg
 +
images/site4/teams/team3.jpg
 +
results/site4/results.tsv
 +
results/site4/runs.tsv
 +
results/site4/scoreboard.tsv
 +
results/site4/standings.json
 +
submissions/site4/1/A.java
 +
submissions/site4/1/run.properties
 +
submissions/site4/2/A.java
 +
submissions/site4/2/run.properties
 +
submissions/site4/3/A.java
 +
submissions/site4/3/C.java
 +
submissions/site4/3/run.properties
 +
video/reactions/site4/reaction1.m2ts
 +
video/reactions/site4/reaction2.m2ts
 +
video/reactions/site4/reaction3.m2ts
  
  mainfile=Main.java
+
=PC&sup2; Import/Export=
problem=low
+
 
language=Java
+
For each file or set of files, click on the link to learn
submittedby=28
+
how to import / export from PC&sup2;. The articles
contesttime=1897053
+
also describe the contents of the files.
source1=Main.java
+
* [[contest.yaml]]
source2=Utilities.java
+
* [[events.json]]
sourcecount=2
+
* [[events.xml]]
solved=Yes
+
* [[groups.tsv]]
 +
* [[problemset.yaml]] - See [[contest.yaml]]
 +
* [[results.tsv]]
 +
* [[run.properties]]
 +
* [[runs.tsv]]
 +
* [[scoreboard.tsv]]
 +
* [[teams.tsv]]
 +
* [[userdata.tsv]]
 +
* Problem files See [[problem.yaml]]
  
 
=Notes=
 
=Notes=
Line 185: Line 254:
 
=See Also=
 
=See Also=
  
* [[TBD]] add links to other files like event feed, etc.
+
* [[Event Feed]]  
* [[TBD]] links to loading of contest data file functions in pc2
 
 
 
[[Category:CCS|CCS]]
 
  
 +
[[Category:CLICS]]
 
[[Category:Import and Export]]
 
[[Category:Import and Export]]

Latest revision as of 10:27, 31 August 2017

A contest data package (CDP) is a description of files and directory layout for contest configuration, data and results.

Introduction

This standard contains a description of the organization of contest data. Both the data that is input to the contest, under config/, images/ etc. and the results of the contest, under results/, events/, etc.

Here are two example of the standard.

To learn how pc2 imports and exports the data see the Import/Export section below.

Sample One

config/hello/problem.yaml
config/hello/data/secret/hello.ans
config/hello/data/secret/hello.in
config/hello/data/problem_statement/problem.tex
config/teams.tsv
config/sumit/problem.yaml
config/sumit/data/secret/sumit.in
config/sumit/data/secret/sumit.ans
config/sumit/data/problem_statement/problem.tex
config/contest.yaml
config/problemset.yaml
config/groups.tsv
config/userdata.tsv

submissions/1/A.java
submissions/3/C.java
submissions/3/A.java
submissions/2/A.java

results/runs.tsv
results/scoreboard.tsv
results/standings.json
results/results.tsv
backups/team1.zip
backups/team2.zip
backups/team3.zip
video/reactions/reaction3.m2ts
video/reactions/reaction1.m2ts
video/reactions/reaction2.m2ts
images/teams/team3.jpg
images/teams/team2.jpg
images/teams/team1.jpg
images/logos/logo1.png
images/logos/logo3.png
images/logos/logo2.png

eventFeed/eventfeed.json
eventFeed/eventfeed.xml

Sample Two

backups/team1.tar.gz
backups/team2.tar.gz
backups/team3.tar.gz
config/contest.yaml
config/groups.tsv
config/problemset.yaml
config/teams.tsv
config/userdata.tsv
config/hello/problem.yaml
config/hello/data/problem_statement/problem.tex
config/hello/data/secret/hello.ans
config/hello/data/secret/hello.in
config/sumit/data/problem_statement/problem.tex
config/sumit/data/secret/sumit.ans
config/sumit/data/secret/sumit.in
config/sumit/problem.yaml
eventFeed/events.json
eventFeed/events.xml
images/logos/logo1.png
images/logos/logo2.png
images/logos/logo3.png
images/teams/team1.jpg
images/teams/team2.jpg
images/teams/team3.jpg
results/results.tsv
results/runs.tsv
results/scoreboard.tsv
results/standings.json
submissions/1/run.properties
submissions/1/A.java
submissions/2/A.java
submissions/2/run.properties
submissions/3/run.properties
submissions/3/A.java
submissions/3/C.java
video/reactions/reaction1.m2ts
video/reactions/reaction2.m2ts
video/reactions/reaction3.m2ts

Layout / Structure

Input Files

These are files that are input/configuration files for a contest.

config directory

Contains configuration (input) files to configure a CCS (pc2).

images/logos directory

  • contains 600x600 images of each team's logo, in logo<x>.png format.

images/teams directory

  • contains 1920x1080 images of each team, in team<x>.jpg format.

Output Files

These are files that are output from a contest.

submissions directory

  • contains a folder for each run submission

submissions/## directory

  1. Team's submitted source code file(s)
  2. run.properties file (optional)

eventFeed directory

  1. Finalized event feed events.xml
  2. events.json

- may contain other files in the format "<x>-events.xml", e.g. "pc2-events.xml".

results directory

  • contains other output files from the CCS.
  1. results.tsv
  2. scoreboard.tsv

results/<CCS> directory

  • contain CCS specific results files, ex. reports, ex
results/pc2/results.tsv
results/pc2/scoreboard.tsv

video/reactions directory

  • contains recorded reaction videos for each submission, in reaction<X>.m2ts format.

backups directory

  • contains a final backups of each team's working folder in the form team<X>.zip.

For team102 their $HOME backup would be stored in

backups/team102.zip

Multiple Sites

The CDP was developed for the ICPC Finals and single site contests. This section covers where to put other sites' files.

In general each sites' data is saved in a directory under the cdp directory.

Certain output files contain all sites' information like results.tsv and scoreboard.tsv (scoreboards).

  1. The site 1 information is stored under the cdp as described (no need for site1 directories)
  2. Other sites are stored under their respective site dirs under the same cdp directory with the site name (see examples)
  3. Each site is stored under siteN where N is the number of the site.
  4. No zero padding is allowed for the site directory or filenames.

Examples

site3
site4
site9
site22

Multi-site specific files

TBD sites.tsv

Examples

These example location and files will be for site 4 of a contest.

results/site4

Here would be the locations for files for site4 data.

backups/site4/team1.tar.gz
backups/site4/team2.tar.gz
backups/site4/team3.tar.gz
eventFeed/site4/events.json
eventFeed/site4/events.xml
images/site4/logos/logo1.png
images/site4/logos/logo2.png
images/site4/logos/logo3.png
images/site4/teams/team1.jpg
images/site4/teams/team2.jpg
images/site4/teams/team3.jpg
results/site4/results.tsv
results/site4/runs.tsv
results/site4/scoreboard.tsv
results/site4/standings.json
submissions/site4/1/A.java
submissions/site4/1/run.properties
submissions/site4/2/A.java
submissions/site4/2/run.properties
submissions/site4/3/A.java
submissions/site4/3/C.java
submissions/site4/3/run.properties
video/reactions/site4/reaction1.m2ts
video/reactions/site4/reaction2.m2ts
video/reactions/site4/reaction3.m2ts

PC² Import/Export

For each file or set of files, click on the link to learn how to import / export from PC². The articles also describe the contents of the files.

Notes

To start/configure a contest the only required folder is config/. A contest archive with only config/ is only useful for loading into a CCS to start configuring a contest.

Once the contest is complete, the final event feed and submission files should be added back into the archive.

Other content is added as available, e.g. some contests will have backups, reaction videos, or logos, and others won't.

See Also