# Boolean value of disambiguate conditional

**URL:** <https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824>\
**Category:** CSL Development\
**Created:** [February 17, 2010, 6:40pm UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824 "2010-02-17T18:40:58Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Rintze\_Zelle1](https://avatars.discourse-cdn.com/v4/letter/r/258eb7/32.png) [@Rintze\_Zelle1](https://discourse.citationstyles.org/u/Rintze_Zelle1)\
**Post date:** [February 17, 2010, 6:40pm UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/1 "2010-02-17T18:40:58Z")

</div>

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](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)

---

<div class="post-metadata">

**Author:** ![Andrea\_Rossato1](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@Andrea\_Rossato1](https://discourse.citationstyles.org/u/Andrea_Rossato1)\
**Post date:** [February 18, 2010, 9:06am UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/2 "2010-02-18T09:06:23Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Rintze\_Zelle](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.citationstyles.org/rintze_zelle/32/175_2.png) [@Rintze\_Zelle](https://discourse.citationstyles.org/u/Rintze_Zelle)\
**Post date:** [February 18, 2010, 10:39am UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/3 "2010-02-18T10:39:56Z")

</div>

> 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](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](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

---

<div class="post-metadata">

**Author:** ![Frank\_Bennett](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.citationstyles.org/frank_bennett/32/198_2.png) [@Frank\_Bennett](https://discourse.citationstyles.org/u/Frank_Bennett)\
**Post date:** [February 18, 2010, 12:05pm UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/4 "2010-02-18T12:05:30Z")

</div>

> > 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](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](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

---

<div class="post-metadata">

**Author:** ![Andrea\_Rossato1](https://avatars.discourse-cdn.com/v4/letter/a/e47774/32.png) [@Andrea\_Rossato1](https://discourse.citationstyles.org/u/Andrea_Rossato1)\
**Post date:** [February 18, 2010, 7:41pm UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/5 "2010-02-18T19:41:17Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![Rintze\_Zelle](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.citationstyles.org/rintze_zelle/32/175_2.png) [@Rintze\_Zelle](https://discourse.citationstyles.org/u/Rintze_Zelle)\
**Post date:** [February 18, 2010, 8:27pm UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/6 "2010-02-18T20:27:34Z")

</div>

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

Rintze

---

<div class="post-metadata">

**Author:** ![Rintze\_Zelle](https://yyz1.discourse-cdn.com/flex029/user_avatar/discourse.citationstyles.org/rintze_zelle/32/175_2.png) [@Rintze\_Zelle](https://discourse.citationstyles.org/u/Rintze_Zelle)\
**Post date:** [February 20, 2010, 11:20am UTC](https://discourse.citationstyles.org/t/boolean-value-of-disambiguate-conditional/824/7 "2010-02-20T11:20:16Z")

</div>

Change made:

> **[bdarcus / CSL Schema - c728bb8](https://bitbucket.org/bdarcus/csl-schema/commits/c728bb8cae9f/)**
>
> Only allow "true" for the disambiguate conditional

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