Comment 6 for bug 1482757

Revision history for this message
Michele Morgan (mmorgan) wrote :

Mike,

Thanks for looking at this!

Yes, my goals did evolve from the original call number issue. The rewrite was intended to address these concerns:

- eliminate call number churn
- avoid orphaned uris
- avoid string comparisons in hopes of speed improvements
- properly handle multiple uris per call number on an ongoing basis

Since there's no uniqueness constraint on asset.uri, it seemed cleaner to avoid using string comparisons to match to existing uris and just remove the old mappings and uris and regenerate them. I guess I'm not clear on the importance of allowing multiple call numbers to map to the same uri.

I took a look at your latest branch at:

http://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/miker/lp1482757-cleaner-uri-extraction

and while it does solve the problem of orphaned uris as well as the call number issue, it doesn't appear to handle multiple uris per call number properly when a second 856 for a library is removed.

Here's a use case we see often:

A single title is available through multiple electronic collections. Here's an example:

http://evergreen.noblenet.org/eg/opac/record/3736349

Should the above record change over time, here's the list of links, showing two for Phillips Academy:

Access for Bunker Hill Community College via ebrary
Access for Endicott College via EBSCOhost
Access for Gordon College via EBSCOhost
Access for Merrimack College via ebrary
Access for Middlesex Community College via EBSCOhost
Access for North Shore Community College via ebrary
Access for Northern Essex Community College via ebrary
Access for Phillips Academy via EBSCOhost
Access for Phillips Academy via ebrary
Access for Salem State University via EBSCOhost

The title exists in both EBSCOhost and ebrary collections. Phillips decides to discontinue the ebrary collection that contains this title so the corresponding 856 link will be removed from the MARC record. Since a call number is not being added or deleted, the function doesn't remove the ebrary uri.

Can you clarify the importance of multiple records using the same uri?

Thanks!