I would suggest to adopt a very careful approach with this.
I’ve been struggling in search of a nice and efficient way of
implementing disambiguation options and I’m coming to think there is
none I’m able to think about.
So I went to have a closer look at what Zotero does, and, as far as I
can understand, it does not implement disambiguation. Or at least it
does not implement it correctly. So I actually wonder if you proposal
would be trivial to be implemented in Zotero or not. Could you please
elaborate a bit on this?
Why am I saying that Zotero seems to me not to be implementing
disambiguation correctly? Because all it does is to make a guess,
given a reference group and some style elements, whether 2 citations
will need to be disambiguated or not. This guess is good most of the
time, but it is very easy to create perfectly valid styles for which
Zotero will miserably fail to disambiguate citations, because the way
it is using to guess cannot provide it with enough information to
decide in every situation.
Just to give you a few example, take this data set:
http://gorgias.mine.nu/csl/zoteroItems.rdf
You should be able to import it in Zotero.
Here you’ll find:
a) a book I (fictionally … edited with a friend and a book I
authored with my wife in 2007. I’m the first editor of the first and
the first author of the second.
b) 2 books by two brothers: Giovanni and Giuseppe Pascuzzi, same year,
different titles;
c) 2 books with the same author and 2 different editors, same year.
If we apply the following style to a):
http://gorgias.mine.nu/csl/testAddName.xml
we will get:
(Andrea Rossato et al., 2007), (Andrea Rossato et al., 2007)
you can install this style in Zotero from here:
http://gorgias.mine.nu/csl/install/testAddName.csl
What happened? The style requires author and date. If no author is
present the editor will be used instead. While these 2 citations
produce the same output, and so add-name should be applied, Zotero
thinks their output is different (as far as I understand because their
author field is different).
Now, if you apply this style to b):
http://gorgias.mine.nu/csl/testAddGivenName.xml
install it from here:
http://gorgias.mine.nu/csl/install/testAddGivenName.csl
you’ll get:
(G. Pascuzzi, 2004),(G. Pascuzzi, 2004)
I’m not sure what the issue is, here. But the result is definitely
wrong: add-given-name should be used, and it is not. But, as I said,
Zotero is not take into account what the style actually produces. It
is just guessing.
And you can see that especially in this 3rd issue.
If you apply this style to c):
http://gorgias.mine.nu/csl/testYearSuffix.xml
install it from here:
http://gorgias.mine.nu/csl/install/testYearSuffix.csl
you’ll get:
(Roberto Caso, no date),(Roberto Caso, no date)
Now, this style is not using the date for books. But the items have
the date set. Since the items have the date set and the style has the
option disambiguate-add-year-suffix Zotero is guessing every citation
gets the date, and so to disambiguate it is sufficient to add the year
suffix. In this case this is false.
But Zotero will think that the citation has been disambiguated, and it
will not apply the disambiguate-condition.
You can test it by applying to c) the following style:
http://gorgias.mine.nu/csl/testYearSuffix-2.xml
install here:
http://gorgias.mine.nu/csl/install/testYearSuffix-2.csl
This will produce:
(Roberto Caso, Giovanni Pascuzzi, no date),(Roberto Caso, Andrea Rossato, no date)
Since disambiguate-add-year-suffix is not set, Zotero will not
consider the citations disambiguated, and it will try the disambiguate
condition.
Now, you may think those are bugs that can be easily solved. Maybe you
are right, but the information I have, and the fact that I discovered
those issues by reading the code, makes me think this is a design
flaw. I don’t see any easy solutions.
Which brings me to the reason why I wrote such a long message: when
you decided to add those disambiguation options did you have in mind a
way of implementing them? Would you please share it with me?
Thanks,
Andrea