Andreas Sewe wrote:
>[snip]
> Now the current draft defines two elements, r:value and r:range, for
> this purpose. Those two elements can be, however, be collapsed into a
> single one, and, with cleverly chosen defaults, defining sets using this
> new r:values element is IMHO as simple, if not simpler, as with the old
> approach. Others might have different opinions, though, which I would
> really like to hear about.
>
Just to note, this seems to be the key disagreement between Andreas and
I on the spec. IMHO, for schemes consisting of a constrained set of
fixed absolute values (like the German grading system which uses 1.0,
1.3, 1.7, 2.0 etc), specifying a collection of overlapping ranges just
doesn't feel right.
>[snip]
> values = element r:values {
> atomCommonAttributes,
> attribute minimum { xsd:decimal | "unbounded" }?,
> attribute maximum { xsd:decimal | "unbounded" }?,
> attribute steps { xsd:decimal | "continuous" }?,
> attribute origin { xsd:decimal }?,
> undefinedContent
> }
>
>[snip]
> <!-- 1.0, 1.3, 1.7, 2.0, 2.3, 2.7, ..., 4.0, and 5.0 -->
> <r:scheme significance="descending" ...>
> <r:values minimum="1.0" maximum="4.0 origin="1.0" steps="1.0" />
> <r:values minimum="1.0" maximum="4.0 origin="1.3" steps="1.0" />
> <r:values minimum="1.0" maximum="4.0 origin="1.7" steps="1.0" />
> <r:values origin="5.0" />
> </r:scheme>
>
>[snip]
> Of course one could alternatively list all 11 values explicitly, but the
> above is rather more concise. (In fact, the definition of 5.0 could
> even be moved into the first r:values element.)
>
> But as I said above, others might see this differently...
>
The alternative:
<r:scheme significance="descending" scale="1">
<r:value label="1" >1.0</r:value>
<r:value label="1-">1.3</r:value>
<r:value label="2+">1.7</r:value>
<r:value label="2" >2.0</r:value>
<r:value label="2-">2.3</r:value>
<r:value label="3+">2.7</r:value>
<r:value label="3" >3.0</r:value>
<r:value label="3-">3.3</r:value>
<r:value label="4+">3.7</r:value>
<r:value label="4" >4.0</r:value>
<r:value label="4-">4.3</r:value>
<r:value label="5+">4.7</r:value>
<r:value label="5" >5.0</r:value>
</r:scheme>
To me, this is a whole lot less complicated because I don't have to deal
with step sizes, origins, minimum and maximum values, overlapping
ranges, etc. There's just a set of explicitly defined values. Also
note that in the German grading scheme, each of the values are generally
associated with labels (e.g. 1, 1-, 2+, etc) much in the same way that
the U.S. grading scheme associates percentages with labels (A, B, C,
etc). Using the overlapping ranges approach, it would not be possible
to specify the labels for the values.
That said, there are cases in which a set of ranges are appropriate. For
example, the typical US grading system.
<r:scheme significance="ascending" scale="2">
<r:range label="F" minimum="0.00" maximum="0.59" step="0.01" />
<r:range label="D" minimum="0.60" maximum="0.69" step="0.01" />
<r:range label="C" minimum="0.70" maximum="0.79" step="0.01" />
<r:range label="B" minimum="0.80" maximum="0.89" step="0.01" />
<r:range label="A" minimum="0.90" maximum="0.99" step="0.01" />
<r:value label="A+">1.00</r:value>
</r:scheme>
In this case, it is obvious that the set of acceptable values is too
large to list individually.
> Also, I would like to know whether a definition in terms of set notation
> is fine with you, or whether we should expand on the natural language
> explanations. Describing precisely what "origin" and "steps" do, in
> plain English, is unfortunately surprisingly difficult. :-(
>
We're working on the language in the spec. I've never really been happy
with it and had been planning on a scrub for some time, but I wanted our
initial focus to be on the elements and the basic mechanism for defining
the schemes.
- James