Support for Digital Object Identifier (DOI) in Book Info/metadata

We’d like to add support for Digital Object Identifiers (DOIs) to Pressbooks. My assumption is that this should involve:

  1. Adding a new field to the Book Info page which accepts a DOI.
  2. Adding the DOI to the book info display on the webbook cover page and to front matter (alongside ISBN) in ebook and PDF outputs.
  3. Adding the DOI to the REST API’s /metadata endpoint.

I’m interested in hearing from community members on this approach. Does it sound like the right one? How do you (or do you) attach DOIs to other resources in your institutions? Thanks! I’m particularly interested in how DOIs would fit into our metadata. I found this resource in a cursory search.


Great question, Ned. I don’t know as much as others about DOIs, but can ask some of our librarians and try to get back to you on this.

1 Like

@PhilBarker It occurs to me that you might have some knowledge in this area?

Hi @ned , yes I know a little about DOIs and how they fit with What you outline above would be a good start, but other things to bear in mind:

  • You can assign DOIs to book series and chapters (especially in edited collections). Unlike an ISBN you don’t need different DOIs for different formats (i.e. ePub, Paperback, Hardback etc may all have same DOI).
  • The DOI is a number, like an ISBN, but to make full use of it you need to resolve it. Currently the prime resolving service is but the DOI spec allows for others services, e.g. for open access. I suggest providing a default DOI resolver but allowing it to be configurable
  • That link for registering DOIs in the OP, is (I think) concerned with creating new DOIs using metadata. That’s really interesting, but for a first step you might just allow people to use DOIs registered through conventional means (Q1 in DOI FAQ) and focus on how to expose that information through
  • For notes on using for DOI , see

As for the use of DOIs, I think it is very important for scholarly works. I know scenarios where researchers will not get credit for output unless it has a a DOI.

Hope this helps. I’d be happy to try to answer any questions not covered.


Thanks for this! Initial PR:

This is the JSON-LD blob for DOI as and

"identifier": {
  "@type": "PropertyValue",
  "propertyID": "DOI",
  "value": "some_doi_value"
"sameAs": "",

Does this conform to your expectations, @PhilBarker? I opted to use a PropertyValue type for the identifier. Also note that I’m including a filter (and we will in future add a UI) for the resolver so that the default can be changed, e.g. to as per your example.

1 Like

Looks good @ned thank you

1 Like

Thank you for your guidance on this!

1 Like