For package developer -- DOI is the key to your citation

17 July 2018 by Walter Xie

When I am developing a tool to extract citations from @Citation in BEAST 2 packages recently, I find nearly two thirds of them without DOI (Digital Object Identifier). Besides the importance of using DOI, from the software engineering perspective, I strongly recommend package developers to provide them in every @Citation.

The @Citation in BEAST 2 stores the information of a citation for the model implemented in that Java class, which includes 4 elements (value, DOI, year, and firstAuthorSurname) at the moment. A Java class could have more than one @Citation, if there are multiple citations.

The element value is supposed to be the whole citation. Personally, I suggest to use APA style which is the second choice from Google Scholar, because the authors can be easily pulled out by brackets (year) using text processing. You can add the newline character to make it look pretty when it is printed in the BEAST 2 output console.

The element DOI is the key to locate the unique citations, and it can also be used to extract the publication metadata from third party online tools. Without DOI, the citation will be treated as an invalid format for a further citation summary or analysis.

A good example can be seen in beast.evolution.tree.coalescent.BayesianSkyline. Some of contents below are omitted to fit in the box:

@Citation(value="Drummond, A. J., Rambaut, ..., & Pybus, O. G. (2005).\n" +
        "Bayesian coalescent inference of ... from molecular sequences.\n" +
        "Molecular biology and evolution, 22(5), 1185-1192.",
        year = 2005, firstAuthorSurname = "Drummond", DOI="10.1093/molbev/msi103")

Please provide DOI in the @Citation in your package.