internetarchive / openlibrary

One webpage for every book ever published!
https://openlibrary.org
GNU Affero General Public License v3.0
5.09k stars 1.33k forks source link

Add UI for adding work IDs #3430

Open cdrini opened 4 years ago

cdrini commented 4 years ago

Currently we have no way to store identifiers on a work. Loads of identifier (Wikidata IDs, GoodReads work IDs, LibraryThing IDs) apply only to works, and not editions.

Summary of Requirements

Additional context

Stakeholders

@seabelis

BrittanyBunk commented 4 years ago

Blocks: #3433. Until the UI for works and editions are separated out, it'll be too difficult and confusing for members to add work IDs when editing.

seabelis commented 4 years ago

Loads of identifier (Wikidata IDs, GoodReads work IDs, LibraryThing IDs) apply only to works, and not editions.

Goodreads IDs are edition specific. These should remain at the edition-level.

cdrini commented 4 years ago

👍 The majority should remain on the edition. But note that there are GoodReads work-specific IDs, they're just hard to find (e.g. https://www.goodreads.com/work/editions/2776383-the-driver-s-seat <- this url contains the work id). We might have to have some warning to avoid this being used incorrectly though, since I imagine it would be confusing.

seabelis commented 4 years ago

Good point. I hadn't considered that as you have to get there via an edition. But it's subject to change. Because of the way the GR combination and separation works, it's possible if this gets combined incorrectly with a work that has an edition that has more "shelvings" than other editions, the work will then become that other work and the work with fewer editions will then have to be separated out into a new work.

There's no edit history on works, so I cannot give an example.

RayBB commented 3 years ago

Pretty sure this is a duplicate of #1797 Edit: Not a duplicate but rather a superset. When we do this the other is closed. And the other can't be done until we do this.

LeadSongDog commented 3 years ago

@RayBB Not quite, that #1797 is just Wikidata IDs, but there are multiple work ID types just as there are multiple edition IDs. There are also multiple work classification IDs (see #897) for which we will still need to provide a distinct UI.

davidscotson commented 11 months ago

Documenting some questions I'm not totally sure about, and what I've decided in the code for now:

  1. The editions code can attach an identifier directly to the Edition object, not inside the identifiers group, e.g. on this example, goodreads and librarything are listed under identifiers but isbn_10 and lccn are at the top level.

https://openlibrary.org/books/OL18352429M.json

I'm assuming that all Work identifiers will go under identifiers and so removed the code that checks for such special cases.

  1. That OCAID are Edition level identifiers, and similarly to above, special code to handle them can be deleted.

  2. That we don't have enough Work IDs to require the seperate list of popular and then alphabetized other IDs used for Editions.

tfmorris commented 11 months ago

That OCAID are Edition level identifiers, and similarly to above, special code to handle them can be deleted.

Internet Archive IDs don't actually correspond 1:1 with editions, but rather identify a particular scan/volume. Multi-volume editions and editions which have been scanned multiple times will both have multiple IA identifiers.

daniel-barrows commented 4 weeks ago

@davidscotson: "we don't have enough Work IDs to require the separate list of popular and then alphabetized other IDs used for Editions.". Really? Take a look at all the identifiers on ''Harry Potter and the Philosopher's Stone'' on Wikidata.