= Problem specifications package format = === Remark === For packages to be submitted via Easychair system: in case the size of the submitted package exceeds the allowed size limits, please just put an URL pointing to it. === Submission packages === Submitted problem specifications have to be packaged in a single compressed archive named {{{benchmark_name-contributor_name.zip}}} (or {{{tar.gz}}}) containing: 1. a {{{benchmark_name.spec.txt}}} file containing the textual problem description (a template is available, see below); 2. a {{{benchmark_name.enc.asp}}} file containing a proposed encoding for the problem (which must match the provided language classification); 3. a folder named {{{checker}}} containing the sources of a correctness checker together with a README.txt file containing the instructions for (possibly building and) running it; 4. a folder named {{{samples}}} containing some instances (one instance per text file). {{{benchmark_name}}} and {{{contributor_name}}} should be substituted with their actual value. The provision of a checker at this stage is optional. A '''template package''' for benchmark submissions is available [[http://www.mat.unical.it/aspcomp2011/files/myproblem-aspteam-submission.zip|here]]. === Finalized packages (for accepted problems only) === A finalized problem specification has to be packaged in a single compressed archive named {{{benchmark_name-contributor_name.zip}}} (or {{{tar.gz}}}) containing: 1. a {{{benchmark_name.spec.txt}}} file containing the textual problem description (a template is available, see below); 2. a {{{benchmark_name.enc.asp}}} file containing a proposed encoding for the problem (that must match the provided language classification); 3. a folder named {{{checker}}} containing the sources of a correctness checker together with a README.txt file containing suitable instruction for (building and) running it. 4. a folder named {{{instances}}} containing at least 50, sufficiently "hard", numbered instances (one per file) named {{{XX-benchmark_name-MAXINT-MAXLEVEL.asp}}} where: XX is the instance number, MAXINT is the maximum integer (0 if not relevant - e.g., because no arithmetics is required), and the maximum function nesting level is MAXLEVEL (0 if not relevant - e.g., because function symbols are not required), see Section [[BenchmarkSubmission#MAXINT-MAXLEVEL|Programs with Function symbols and integers]]; 5. In alternative to the point above, a folder named {{{generator}}} containing the sources of an instance generator together with a README.txt file containing suitable instruction for (building and) running it; such generator should be able to produce a number of instances according to naming given in point 4, above. Finally, 6. a {{{demonstration.txt}}} file in which the author provides sufficient arguments demonstrating that the benchmark problem can be effectively solved. A '''template package''' for final benchmark submission is available [[attachment:myproblem-aspteam-finalized-fixed.zip|here]]. <> === Checker format === The checker reads from standard input a witness in the prescribed format (see [[http://www.mat.unical.it/aspcomp2011/files/LanguageSpecifications.pdf|File and Language Format]] for details) and writes in standard output a single row of text containing the string {{{OK}}} (if the witness is correctly assessed as a solution), and the string {{{FAIL}}} otherwise. The string {{{OK}}} must be followed by a space-separated integer representing the witness cost in case of optimization problems. The checker outputs {{{WARN}}} and an exit code different from zero in all other cases (e.g. the witness is not syntactically correct, or the output {{{INCONSISTENT}}} has been incorrectly piped towards the checker). Informative messages can be output in standard error. Note that witnesses are assumed to be inclusive of both instance facts (input predicates) and solution facts (output predicates). '''Remark''': checkers provided by benchmark authors will be used only for checking existing witnesses. It is not up to the benchmark author to check validity of other outputs like {{{INCONSISTENT}}}. The source code of the correctness checker has to be be included in the package; moreover, the provided software must be able to (build and) run on the Debian i686 GNU/Linux(kernel ver. 2.6.26) operating system. A checker can be built on top of a logic specification for a solver of choice: in such a case binaries of the solver must be provided together with the checker encoding. ==== Instance "Hardness" ==== Provided problem instances should be "hard" in a pragmatic sense: we will not compare systems over instances expectedly taking far less than 1 second when run on the Competition hardware. === Problem Input-Output predicates and Instance Specification === In the following it is specified the allowed format for specifying input and output of problems and instances. Samples are available in the competition web site. ==== Problem Input and Output. ==== Benchmark problems specifications have to clearly indicate the vocabulary of input and output predicates, i.e., a list of predicate names for the input and a list of predicate names for the output and their arity in the usual logic programming notation (e.g. {{{p/2}}} denotes the binary predicate {{{p}}}). ==== Instance Specification. ==== Input instance are sequences of ''Facts'' (atoms followed by the dot "." character) with only predicates of the input vocabulary, possibly separated by spaces and line breaks, entirely saved in a text file (only one instance per file is allowed). <> ==== Maximum Integer and maximum function nesting level, ==== have to be provided in a per-instance basis. In particular, they are specified in the filename containing a given instance. We recall that instances must be named {{{XX-benchmark_name-MAXINT-MAXLEVEL.asp}}} where {{{XX}}} is the instance number, {{{MAXINT}}} is the maximum integer ({{{0}}} if not relevant/no arithmetics are required), and {{{MAXLEVEL}}} is the maximum function nesting level ({{{0}}} if not relevant). ##==== Remark. ==== ##Recall that each ASP system (or solver script) will read an input instance (from standard input) and will produce an output (to standard ##output) according to the specifications for the input and output format of call scripts reported in the ''Competition Rules'' document.