Boolean value of disambiguate conditional

One of the last loose ends of the current CSL 1.0 draft is that the
disambiguate conditional currently accepts a boolean value (
http://bitbucket.org/bdarcus/csl-schema/src/9a350e694198/csl.rnc#cl-881).
The usual use case of this conditional is:

However, Frank and I couldn’t come up with a clear use case for
disambiguate=“false”: having a way to only render elements when they do
not disambiguate otherwise identical cites doesn’t seem very useful. Would
it be okay to limit the disambiguate attribute to a single value, “true”?
Alternatively we could scrap disambiguate from the list of conditionals and
introduce a cs:disambiguate element. This would be analogous to the existing
cs:substitute element, which also functions as a conditional. This latter
option might be a bit too disruptive as a last-minute change to CSL 1.0
though.

Rintze

(if nobody protests, I’ll change the disambiguate attribute to allow only
the “true” value)

for the sake of consistency I would prefer the alternative solution, a
cs:disambiguate element, instead of a conditional that can have just
one value. anyway, as far as I remember the “true” case was to be
tried before using year disambiguation, which means that the "false"
case could be used to turn on the year disambiguation without trying
the “disambiguate” addition in some special case - that would be a
clear case for its existence. but I could be wrong on this (in which
case sorry for the noise).

andrea

for the sake of consistency I would prefer the alternative solution, a
cs:disambiguate element, instead of a conditional that can have just
one value.

I agree this would be the cleaner option, if we come to the conclusion that
a boolean toggle isn’t necessary.

anyway, as far as I remember the “true” case was to be
tried before using year disambiguation

I found an earlier email from you suggesting otherwise (
http://sourceforge.net/mailarchive/message.php?msg_id=20090312165701.GA15958%40eeepc.nowhere.net
):

“This is the order I implemented: if both add-names and add-given-names are
set, first the et-al option is overridden, by adding more
names. If the citations are not disambiguated then we start adding
given-names. Then we add the year suffix (if the option is set). If no
disambiguation is achieved we try re-evaluating the style with the
disambiguate conditional set to true.”

I think Frank uses the same priority order (see
http://bitbucket.org/bdarcus/csl-docs/src/21720c6b5bf0/upgrade-notes.txt#cl-1076).
(this would of course mean that anything in a disambiguate=“true”
conditional will never be rendered when disambiguate-add-year-suffix is set
to “true”, as adding year-suffixes always results in successful
disambiguation.)

Rintze

for the sake of consistency I would prefer the alternative solution, a
cs:disambiguate element, instead of a conditional that can have just
one value.

I agree this would be the cleaner option, if we come to the conclusion that
a boolean toggle isn’t necessary.

anyway, as far as I remember the “true” case was to be
tried before using year disambiguation

I found an earlier email from you suggesting otherwise
(http://sourceforge.net/mailarchive/message.php?msg_id=20090312165701.GA15958%40eeepc.nowhere.net):

“This is the order I implemented: if both add-names and add-given-names are
set, first the et-al option is overridden, by adding more
names. If the citations are not disambiguated then we start adding
given-names. Then we add the year suffix (if the option is set). If no
disambiguation is achieved we try re-evaluating the style with the
disambiguate conditional set to true.”

I think Frank uses the same priority order (see
http://bitbucket.org/bdarcus/csl-docs/src/21720c6b5bf0/upgrade-notes.txt#cl-1076).
(this would of course mean that anything in a disambiguate=“true”
conditional will never be rendered when disambiguate-add-year-suffix is set
to “true”, as adding year-suffixes always results in successful
disambiguation.)

That’s the sequence I’ve used. I don’t like to tempt fate, but maybe
(someday) someone might ask for adding, say, the title in a final
attempt before year-suffix. To support that, you might use something
other than “true” as the option – maybe “before-year-suffix” and
“last”. I think that’s essentially Andrea’s point also. It would
suggest leaving things with “true” only, waiting (hopefully
forever?!!) for a demand for greater flexibility to arise.

Frank

I suspected I was wrong this time… I do indeed agree with this
previous statement of mine. I also agree we what Frank said, that a
future request may require to change the present behaviour of
cs:disambiguate.

Why don’t with use something other then “true”, like “last” or
something similar, just to avoid the confusion of a boolean with just
one possible value? But now I’m just thinking aloud and perhaps "true"
is just the cleanest available solution.

andrea

I’ll make this change for CSL 1.0. We can always add more options for the
conditional if there is demand.

Rintze

Change made:

RintzeOn Thu, Feb 18, 2010 at 9:27 PM, Rintze Zelle <@Rintze_Zelle>wrote: