= Participant submission procedure = === Application === Teams willing to register for the competition can send an email to this [[mailto:aspcomp2011_REPLACEWITHAT_mat.unical.it|address]] specifying: * the name of their team; * names and affiliation of the team members (institution, research group); * whether the team will participate to the System or to the Model & Solve competition, or both. You will get a private e-mail with credentials for accessing our Competition server through ssh. As soon as you will login the Competition server, you will find a Linux home directory having a folder structure described next. A sample home directory tree can be found [[XXX|here]]. === Instructions for testing and submitting systems and benchmarks === Your home directory in the Competition server contains a subdirectory {{{submitted}}}. Only files in this directory will be processed during the Competition. The content of the {{{submitted}}} directory depends on whether your team is participating to the system or model competition. '''IMPORTANT:''' The {{{submitted}}} directory should be used only for submitting systems and problem encodings in their final submitted version. Participants are provided with a {{{try}}} directory, structured as {{{submitted}}}. This directory can be used for testing systems and benchmark encodings. <> == Model & Solve Competition == If your team is participating to the model competition, your {{{submitted}}} directory will contain a subdirectory for each benchmark: let us call one of such directories {{{benchmark_example}}}. {{{#!wiki caution In the '''Model & Solve''' Competition, you're allowed to specify a different software solution per each benchmark problem, provided it is based at its core on a declarative programming system coupled with a declarative problem specification of your choice. }}} Each of these directories must include all files required for solving a specific benchmark. In particular, there must be an executable file named {{{run}}}, which will be invoked during the Competition. This file can be a script invoking a binary executable, possibly using other scripts for pre- or post-processing. Take note that {{{benchmark_example}}} must be self-contained, thus: * All files invoked/used by {{{run}}} must be placed in the directory containing the {{{run}}} file, or in one of its subdirectories; * Except for system-wide available dynamic libraries and commands, all other file resources should be referred using paths relative to "{{{.}}}" in all the scripts: note that this is a strong requirement, since the Competition will be executed on several machines (with same hardware, configuration and installed libraries) and in an environment different from your {{{home}}} directory; * If you rely on a particular value of the {{{$PATH}}} variable please set this on your {{{run}}} script; {{{$PATH}}} can anyway list only system folders and relative paths in your {{{submitted}}} directory. * Note that if you're using the same system binary for all the benchmark problems you will have to make a copy of it on each benchmark directory. ==== Execution conventions for the "run" script ==== During the Competition, the {{{run}}} executable will be invoked according to the following: ===== Input ===== A problem instance in the prescribed [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|format]] is fed to {{{run}}}'s standard input. ===== Command Line ===== {{{run}}} takes three arguments: * The first argument is the maximum integer which is sufficient for solving the input instance ({{{0}}} if not meaningful for the problem/instance at hand). * The second argument is the maximum nesting level of function symbols which is sufficient for solving the input instance ({{{0}}} if not meaningful for the problem/instance at hand). * The third argument is a comma-separated list of output predicate names. This list will differ on a per problem basis (not per instance), and will coincide with the list of output predicates which should be included in the output of the run script. Of course, the three arguments can be taken into account or not by submitted scripts at participant's will and necessity (for instance, output predicate names can be hardwired in the {{{run}}} script or elsewhere). ===== Output ===== The output of {{{run}}} must be printed in standard output, according to the format specified [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|here]]. Examples of scripts will be provided in the {{{try}}} directory. An example of {{{run}}} script can be found [[RunModelSolve|here]]. <> == System Competition == If your team is participating to the model competition, your {{{submitted}}} directory will contain a single subdirectory called {{{System}}}. This directory must comprise all files required for running your system on any problem encoding and any problem instance. {{{#!wiki caution In the '''System''' Competition, you must specify a single fixed software bundle capable of accepting problem encodings written in the ASP-Core and ASP-RfC formats. }}} In particular, the {{{System}}} folder must contain an executable file called {{{run}}}, which will be invoked during the Competition. This file can be a script invoking a binary executable, possibly using other scripts for pre- or post-processing. Take note that {{{System}}} must be self-contained, thus: * All files invoked/used by {{{run}}} must be placed in the directory containing the {{{run}}} file, or in one of its subdirectories; * Except for system-wide available dynamic libraries and commands, all other file resources should be referred using paths relative to "{{{.}}}" in all the scripts: note that this is a strong requirement, since the Competition will be executed on several machines (with same hardware, configuration and installed libraries) and in an environment different from your {{{home}}} directory; * If you rely on a particular value of the {{{$PATH}}} variable please set this in your {{{run}}} script; {{{$PATH}}} can anyway list only system folders and relative paths in your {{{submitted}}} directory. ===== Input ===== A problem instance, '''together with an ASP-Core/ASP-RfC encoding''', in the prescribed [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|formats]] is fed to {{{run}}}'s standard input. ===== Command Line ===== {{{run}}} takes three arguments: * The first argument is the maximum integer which is sufficient for solving the input instance ({{{0}}} if not meaningful for the problem/instance at hand). * The second argument is the maximum nesting level of function symbols which is sufficient for solving the input instance ({{{0}}} if not meaningful for the problem/instance at hand). * The third argument is a comma-separated list of output predicate names. This list specifies which output predicates should be included in the output of the run script. Note that, for avoiding syntactic problem recognition techniques, predicate names might be masked/renamed and might not coincide with output predicate names listed in public problem specifications. Of course, the first two arguments can be taken into account or not by submitted scripts at participant's will and necessity (for instance, a system not having particular constraints on termination when function symbols are into play, can ignore the second argument). The third argument must be explicitly used for filtering and preparing output data. ===== Output ===== The output of {{{run}}} must be printed in standard output, according to the format specified [[https://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|here]]. Examples of scripts will be provided in the {{{try}}} directory. An example of {{{run}}} script can be found [[RunSystem|here]]. == Submission Process (both Competitions) == The submission of Systems (System competition) and Benchmark solutions (Model & Solve competition) will be performed by properly invoking the available {{{submit}}} command. {{{submit}}} requires a command-line parameter specifying either {{{System}}} or the name of a directory containing a benchmark solution (just the name, not the complete path). Once a system or a benchmark solution are {{{submit}}}-ted, direct modification to the associated directories in the {{{submitted}}} folder is prevented. At any time, a participant can invoke the {{{unsubmit}}} command to retire a submitted directory and get back the grant of modifying its content. All the {{{submitted}}} subfolders must be frozen at the time of the Participant submission deadline. ===== Examples ===== To submit your {{{submission/System}}} directory in your home folder, just type: {{{ $ submit System }}} The {{{submission/System}}} directory will be no more editable. To undo your submission, type: {{{ $ unsubmit System }}}