DOI Content in Citeproc JSON Format

Q

How to represent DOI content in Citeproc JSON format?

✍: FYIcenter.com

A

Citeproc JSON is also called as CSL-JSON Schema, which uses JSON to store citation data for the Citation Style Language (CSL).

You can use the DOI Content Negotiation service provided by doi.org to represent the content of a given DOI in Citeproc JSON format.

The Citeproc JSON format is triggered by the "application/vnd.citationstyles.csl+json" MIME type as shown this HTTP request syntax:

GET https://doi.org/{doi} HTTP/1.1
Accept: application/vnd.citationstyles.csl+json  

Here is an example of how to use the DOI Content Negotiation service to get the Citeproc JSON format of a given DOI:

fyicenter$ curl -H "Accept: application/vnd.citationstyles.csl+json" \
  'https://doi.org/10.1126/science.169.3946.635'

<html><head><title>Handle Redirect</title></head>
<body>
<a href="https://api.crossref.org/v1/works/10.1126%2Fscience.169.3946.635/transform">
https://api.crossref.org/v1/works/10.1126%2Fscience.169.3946.635/transform</a>
</body></html>

Okay, doi.org is not serving this Content Negotiation request directly. It is redirecting you to api.crossref.org to get the response.

You can add the -L option to let "curl" follow the redirected location. api.crossref.org will return you the DOI content in Citeproc JSON format.

fyicenter$ curl -LH "Accept: application/vnd.citationstyles.csl+json" \
  'https://doi.org/10.1126/science.169.3946.635'

{
  "DOI": "10.1126/science.169.3946.635",
  "ISSN": [
    "0036-8075",
    "1095-9203"
  ],
  "URL": "http://dx.doi.org/10.1126/science.169.3946.635",
  "alternative-id": [
    "10.1126/science.169.3946.635"
  ],
  "author": [
    {
      "affiliation": [
        {
          "name": "University of Pittsburgh, Mellon Institute of Carnegie-Mellon University"
        }
      ],
      "family": "Frank",
      "given": "Henry S.",
      "sequence": "first"
    }
  ],
  "container-title": "Science",
  "container-title-short": "Science",
  "content-domain": {
    "crossmark-restriction": false,
    "domain": []
  },
  "created": {
    "date-parts": [
      [
        2006,
        10,
        5
      ]
    ],
    "date-time": "2006-10-05T12:56:56Z",
    "timestamp": 1160053016000
  },
...

As you can see from the output, Citeproc JSON format provides you must more information than other representation formats.

 

DOI Content in RDF XML Format

DOI Content in Schema.org in JSON-LD Format

DOI Content Negotiation at doi.org

⇑⇑ DOI - Frequently Asked Questions

2022-10-06, 366👍, 0💬