Abbreviation of journal titles throws out dots

I have observed an inconsistency with journal abbreviations. I have a large number of citations imported from BibTeX files, where the `Publication field` actually contains an abbreviation (e.g. `Appl. Phys. Lett.`) instead of the full journal name. The `Journal Abbreviation` field is usually kept empty.

Now, when I create a bibliography, the unabbreviated names are abbreviated correctly, but in the already abbreviated ones the dots are thrown out.

Here is an example (the first entry had an unabbreviated journal name, the second one an already abbreviated name):
1 A. Ajay, J. Schörmann, M. Jiménez-Rodriguez, C.B. Lim, F. Walther, M. Rohnke, I. Mouton, L. Amichi, C. Bougerol, M.I. Den Hertog, M. Eickhoff, and E. Monroy, J. Phys. Appl. Phys. 49, 445301 (2016).
2 H.A. Zarem, P.C. Sercel, J.A. Lebens, L.E. Eng, A. Yariv, and K.J. Vahala, Appl Phys Lett 55, 1647 (1989).

I tried without or with Medline abbreviations activated.

Debug ID: D216382291

I first had BBT under suspicion, see discussion at https://github.com/retorquere/zotero-better-bibtex/issues/1436 but as it also affects the LO plugin it is obviously happening on the Zotero side.
  • I doubt there'll be much enthusiasm for fixing this if it could even be considered a fix -- the problem is that you have incorrect data in Zotero -- i.e. journal abbreviations where journal full titles should be and Zotero's automated abbreviations remove periods from strings before re-adding them when abbreviating.


  • Yes, I would recommend you correct your data. You can use the JavaScript API under
    Tools → Developer → Run JavaScript. You can use this example for batch editing as a guide https://www.zotero.org/support/dev/client_coding/javascript_api#batch_editing
  • Well, if I had known about this, I would have unabbreviated the journal names using JabRef before import - but now I have a mixed library with >1000 items of which at least half have abbreviated journal names.

    I guess, instead of changing the export, it would make more sense to either have an 'unabbreviate journal names' and/or 'update metadata from DOI' function that could be run as batch processes. Both would allow to correct the data. And, I guess I might not be the only one importing from BibTeX, where it is quite common to save abbreviated journal names. From other discussions, I have seen that at least the latter is in fact already on the list of features that are being developed. Any idea when that could be available?

    In the meantime, when I find some time, I will try using pyzotero together with a journal abbreviation list from JabRef to replace the abbreviated names.
  • edited February 22, 2020
    You can use the following in the javascript runner in Zotero. You can paste semicolon-separated text at the top where there's currently "J. Phys. Appl. Phys." meaning abbreviation;full name. Replacement is case insensitive. You can find such lists at https://abbrv.jabref.org/journals/

    edit make sure "run as async function" is checked

    const unabbr = `

    J. Phys. Appl. Phys.;Journal of Applied Physics

    `.split('\n')
    .filter(t => t.includes(';'))
    .reduce((acc, t) => {
    const [abbr, full] = t.split(';')
    acc[abbr.toLowerCase()] = full
    return acc
    }, {})

    const status = { errors: [] }

    for (const item of await Zotero.Items.getAll(Zotero.Libraries.userLibraryID)) {
    try {
    const abbr = item.getField('publicationTitle').toLowerCase()
    const title = unabbr[abbr]
    if (title) {
    item.setField('publicationTitle', title)
    await item.saveTx()
    status[abbr] = (status[abbr] || 0) + 1
    }
    } catch (err) {
    status.errors.push(err.message)
    }
    }
    return status
  • edited February 22, 2020
    @jlaehne I'm working on a feature to optionally unabbreviate during import, but that won't help you much at this stage.
  • edited February 22, 2020
    @emilianoeheyns Thanks for the code, I got it sorted now.

    Also thanks for letting me know about the coming import feature, I have several colleagues who will probably be migrating their JabRef databases to Zotero in the near future, so such a feature would be very desirable. That definitely is the right approach to have correct Zotero data in the end.
  • edited February 22, 2020
    I don't know about it being right -- Zotero doesn't have to do everything. As you mentioned yourself, JabRef can do the unabbreviation, and it could easily be argued that Zotero should trust its users; if you offer a bib file for import that says the journal title is "Adv. Synth. Catal.", who is Zotero to say it knows better than you? Maybe that is the name of the journal.

    edit: I think it's important to understand I do not speak for the Zotero team in any way, shape or form. When I say I'm looking into the unabbr functionality (which I'm experimenting with, not promising outright), I mean that I'm doing so in BBT. This would never make it into the Zotero BibTeX importer for good reason; extra complexity and potentially bloat for something that can easily be done pre-import by JabRef.

    I've found JabRef to be harder and harder to get running on MacOS/Linux because Java is, as far as I can tell, a hot mess of incompatible versions (JabRef is blameless here), so I still see value in implementing this.
  • Well, concerning the issue what is the right journal name, there are databases to check, I would say. So it should be clear what is an abbreviation and what a full journal name.

    Your right that Zotero should probably not be overloaded with functionalities (though an update metadata from DOI will be very helpful in this context and also in other cases, see e.g. https://forums.zotero.org/discussion/72336/feature-request-update-or-force-recheck-of-metadata).

    One advantage of JabRef is its vast range of functionalities. So, as BBT adds some of these extra functionalities for people coming from the BibTeX side, I would find it good to handle journal abbreviations there. See the related BBT-GitHub issue: https://github.com/retorquere/zotero-better-bibtex/issues/1436
  • There is in fact a multitude of such databases, and at the same time no central registry to manage them, They also come under a plurality of licenses. And: Zotero seems to value trusting the user input (and import is a form of user input) rather than second-guessing the user.

    Update from DOI does seem valuable, but I'm not involved in the effort to make that come about; I can't comment on it.

    (I'm retorquere on github BTW)
Sign In or Register to comment.