Root element type of a ProFormA grading-hints element. This includes the complete
hierarchical grading scheme with all tests references, weights, accumulating functions and nullify conditions.
Hierarchy nodes and conditions can get a title and descriptions. All information below this element except the
root node is optional. Grader-specific hints from other XML namespaces can be included in xs:any elements.
Root node of the grading scheme hierarchy. If no children are specified, the
total grading score will be obtained by including all test results scores. The "function" attribute
specifies the accumulator function.
Inner node of the grading scheme hierarchy. This can be a child of the root
node or any descendant node. A "combine" node specifies how to condense several sub results. Sub results can
be test results or again "combined" results.
Any non-standard information that can be used by a grader or humans to
calculate a total result from tests results.
Inner node of the grading scheme hierarchy. There are only two types of inner
nodes: the "root" node and "combine" nodes.
A not too long title to be shown above the grading result represented by this
node.
A more or less comprehensive description of the problem aspect represented by
this node.
A more or less comprehensive internal description of the problem aspect
represented by this node. Internal descriptions are meant for teachers and maybe grading assistants.
Internal descriptions are not shown to students. The internal description could include didactic background
information and possibly technical or organizational details about this grading aspect.
Node identifier. It is optional for the "root" node and required for "combine"
nodes.
Accumulator function that is used to condense several sub results to a single
result.
Specifies the minimum of several sub scores. This can be used in an "all
or nothing" situation, where a parent score should reflect the worst of the child results. Weights can
be attached to children to express the valency of a child's result. The child node representing the
easiest aspect among its siblings could get the weight 1. Child nodes for grading aspects connected with
a higher effort represent scores that are more difficult to achieve. These child nodes could get weights
larger than 1. This would guarantee, that when all child nodes results are in [0,1] also the parent node
result is in [0,1].
Specifies the maximum of several sub scores. This is used in an "one
success is enough" situation, where a parent score should reflect the best of the child results. An
example is a task or a graded problem aspect that could be solved in different ways and for each way
there is a separate test element in the task. A solution that succeeds any one of these tests is
regarded successful. If one of the different ways of solving the task is more sophisticated than the
others, the respective child test could get the highest weight 1. Easier, less valent solution paths get
lower weights between 0 and 1. This would guarantee, that when all child nodes results are in [0,1] also
the parent node result is in [0,1].
Specifies the sum of several sub scores. This is used in a situation,
where every child represents a problem aspect that could be solved more or less independently of the
other aspects. Weights can be attached to child nodes. Those child nodes representing easy problem
aspects could get lower weights than other aspects. If all weights of all direct children of a node add
up to 1, this would guarantee, that the parent node result is in [0,1] when all child nodes results are
in [0,1].
Inner nodes of the grading scheme hierarchy carry pointers to children. This
element represents such a pointer. There are two kinds of pointers: "test-ref" pointers and "combine-ref"
pointers.
Specifies a composite condition when the sub result of the pointed-at node
should get nullified. The pointed-at node is a test or a combine node. If the composite condition
evaluates to False, it has no effect. Otherwise, the score of the pointed-at node is not accumulated into
the condensed result of the pointing-from-node. State differently, the score that flows into the
accumulator function of the pointing-from-node, is assumed to be emitted as 0 from the pointed-at node.
Specifies a _comparison_ condition when the sub result of the pointed-at
node should get nullified. The only difference to <nullify-conditions> is the trailing "s" and the
fact, that <nullify-conditions> represents a composite condition while <nullify-condition>
represents a simple comparison condition.
Specifies a weight that is multiplied to the sub result of the pointed-at node
when flowing into the accumulator function. The pointed-at node is a test or a combine node. When calculating
the condensed result for the pointing-from node, the score of the pointed-at node is multiplied by the weight,
if present. Otherwise nothing is multiplied.
A "test-ref" node points to a test in a ProFormA task. As such the result of the
pointed at test is obtained and included in a bottom-up fashion in the calculation of the total result.
A not too long title to be shown above the pointed-at test's result.
Overrides the title of the pointed-at test element. This can be used especially when pointing to sub
test results.
A more or less comprehensive description of the problem aspect represented
by the pointed-at test. This can be used especially when pointing to sub test results.
A more or less comprehensive internal description of the problem aspect
represented by the pointed-at test. This can be used especially when pointing to sub test results.
Internal descriptions are meant for teachers and maybe grading assistants. Internal descriptions are not
shown to students. The internal description could include didactic background information and possibly
technical or organizational details about this grading aspect.
The id of the pointed-at test.
If the pointed at test exhibits sub test results, this points to one of the
sub results. Examples are individual test cases in a unit test specification, individual violation rules
in a static code analyzer, individual error classes in a compilation step, etc. Since the sub-ref format
or content is test-tool-specific, it is not normed in the ProFormA format.
A "combine-ref" node points to a "combine" node in the grading scheme hierarchy.
As such the result of the pointed at node is obtained and included in a bottom-up fashion in the calculation of
the total result.
The id of the pointed-at combine node.
Specifies an operand of a composite nullify condition.
A title to be displayed when explaining a score nullification to students or
teachers. Front ends might decide to explain nullification conditions in a grading scheme even if for a
certain submission no nullification took place.
A detailed description to be displayed when explaining a score nullification.
Front ends might decide to extend this description by an automatically generated, human readable version of
the involved boolean or comparison expression.
A detailed description to be displayed to teachers and grading assistants
only.
Specifies a composite condition when the sub result of a pointed-at node should
get nullified. The composite condition is attributed with one of the boolean operators { and, or }. Further it
contains operands that usually are of the nullify-condition type, which represents a simple comparison.
Nevertheless a composite condition can have nested composite conditions as operands as well.
An operand of the boolean expression, itself being a composite
condition.
A simple comparison condition as an operand of the boolean expression.
The boolean operator of the boolean expression.
Specifies a simple comparison condition when the sub result of a pointed-at node
should get nullified. This simple comparison condition is attributed with one of the six common comparison
operators. Further it contains operands that refer to tests or combine nodes or that specify a numerical
constant, which a result should be compared to.
An operand of the comparison expression pointing to a "combine" node.
When evaluating the condition, the numerical score calculated for the referenced combine node will be
used as an operand in comparison.
An operand of the comparison expression pointing to a "test". When
evaluating the condition, the numerical score delivered by the referenced test will be used as an
operand in comparison.
A numerical constant serving as an operand of the comparison expression.
The constant is specified as a "value" attribute in the nullify-literal element.
The comparison operator of the comparison expression.
equals
not equals
greater than
greater than or equals
less than
less than or equals
Specifies an operand of a comparison nullify condition.
An operand of a comparison expression pointing to a "combine" node.
The id of the pointed-at combine node.
An operand of a comparison expression pointing to a "test".
The id of the pointed-at test.
If the pointed at test exhibits sub test results, this points to one of the
sub results. Examples are individual test cases in a unit test specification, individual violation rules
in a static code analyzer, individual error classes in a compilation step, etc. Since the sub-ref format
or content is test-tool-specific, it is not normed in the ProFormA format.
A numerical constant serving as an operand of the comparison expression.
A numerical constant value to be compared with.
For common test types one of the following strings should be used:
"java-compilation", "java-checkstyle", "java-code-coverage-emma", "java-findbugs",
"java-pmd", "unittest", "dejagnu", "setlx", "regexptest". For some of these
an xsd is provided by the format.