References are an important element of scholarly metadata, and that is also true for science blog posts. Currently 5.06% of all Rogue Scholar posts include at least one reference, which are then registered with Crossref metadata.

Citations are the counterpart of references. When other scholarly works are cited in the references of a scholarly work, this citation information can be communicated to the cited work.

Citations are the links that knit together our scientific and cultural knowledge. They are primary data that provide both provenance and an explanation for how we know facts. They allow us to attribute and credit scientific contributions, and they enable the evaluation of research and its impacts. In sum, citations are the most important vehicle for the discovery, dissemination, and evaluation of all scholarly knowledge.
Initiative for Open Citations (I4OC)

References

The first step is making the references metadata openly available in Crossref metadata, and thanks to the Initiative for Open Citations (I4OC) and the work of many publishers, nearly 100% of all references are now open by default.

The next step is aggregating all these references by the cited work. Crossref members receive this information via the Crossref Cited-By service, other aggregators are OpenCitations and OpenAlex, and of course a number of commercial services.

Rogue Scholar is collecting citations to its blog posts via the Crossref Cited-By service every week and makes that information available with each record, and with a search filter. As of today, there are 1,392 citations of 766 Rogue Scholar posts (1.65%). You can get basically the same information from OpenAlex or other aggregators.

DataCite

DataCite references and citations add several challenges to this. A small number of Rogue Scholar blogs register their own DOI metadata and use DataCite for this. DataCite metadata use related_identifiers with a number of relation_types instead of references, which adds ambiguity, e.g. what relation_types should be treated as references (probably Cites and References, but maybe also IsSupplementedBy). There are also relation_types for the inverse relation (IsCitedBy, IsReferencedBy) with the challenge that a repository has to update these metadata after publication as citations happen. And aggregators face the same problems. In addition, services such as OpenAlex are still building up workflows to index DataCite metadata at scale.

Extracting Reference Metadata

For science blogs where Rogue Scholar registers the DOI metadata, the above is not relevant. The challenge is to provide reference metadata in a format Rogue Scholar can understand. Besides experimental support for a JSON Feed extension (as RSS, Atom.,or blogging platform JSON APIs don't support references), this means extracting the references from the full-text content.

Luckily references in scholarly documents follow an established format: a section called references (or similar) at the end of the document, followed by one or more references. The recommendation by Rogue Scholar is to format these references as an ordered or unordered HTML list (<ol> or <ul> tag), as this is easier to parse than a list of <div> or <p>. The citation style (there are thousands) doesn't matter, but the reference should include a link to the DOI or URL of the cited resource.

Generating Reference Metadata

Reference metadata can be generated by copy/paste from your favorite reference manager, or can be automatically generated. From the popular blogging platforms only Quarto can generate references (what they call citations, a common confusion). With Wordpress, the most popular blogging platform in Rogue Scholar, you can use a plugin to automate reference generation. Either Zotpress, which tightly integrates with the reference manager Zotero, or kcite.

Kcite Wordpress Plugin

Kcite works by collecting reference metadata for DOIs, PubMed, or random web resources via the Greycite service. Greycite was discontinued years ago, and the plugin was last updated 12 years ago, so that the plugin is no longer working with current PHP and Wordpress versions.

The plugin makes it very easy to cite DOI resources, just use a Wordpress shortcode in a blog post:

[cite]10.59350/xqerh-wam97[/cite]

The Rogue Scholar blogger (and Advisory Board member) Henry Rzepa has made heavy use of the plugin for many years, and ultimately convinced me to update the plugin. Last week, I did that and released a fixed kcite version. You can download the latest version (1.7.97) here as zip file, that you can upload to your Wordpress instance:

A more streamlined installation via the plugin installer requires this fork to become the official kcite plugin, something I am working on.

The focus on the initial work was compatibility with recent versions of PHP (8.4) and Wordpres (6.8.2). The included citeproc.js Javascript file was updated to the latest version (1.4.61), and the citation styles and locales used are the latest versions.

The plugin by default works in server mode, where references are formatted with a generic template. In client mode, the built-in citeproc.js processor is used to generate references with richer metadata. I included a fix to properly show the name of Rogue Scholar blogs. An example reference list in client mode generated by the plugin is shown below:

A lot more work is needed with testing the plugin, and potentially adding more functionality, especially the following:

  • support more citation styles
  • allow references to random web content without a DOI, e.g. using Zotero online storage.

Please use SlackemailMastodon, or Bluesky if you have any questions or comments regarding references, citations, or the kcite plugin.