OAI-PMH - Custom Set Support

Bug #2030066 reported by Josh Stompro
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Evergreen
New
Undecided
Unassigned

Bug Description

Hello, I'm looking into using the OAI-PMH support with our new state wide ILL sharing system (Minnesota MNLINK, ReShare with Index Data as the vendor).

See Bug #1729620 for details about the current OAI-PMH implementation.

I'm seeing that the built in setSpecs are related to catalog visibility based on owning lib of copies. For our systems, this won't exactly match the set of materials that we want to offer up for ILL loans.

I'm wondering if any ideas for how defining a custom setspec might work have been thought through yet?

The sorts of adjustments to the system visible set we would need to make are things like.

  * Exclude all non holdable copies. (Reference)
  * Exclude copies with a certain circ_modifier. (Wifi-Hotspots)
  * Exclude copies with a certain shelving location and with an active date less than 6 months old. (New Items).

I'm thinking about maybe trying to use a record buckets to hold the list of records added and removed from a custom set. Then I can populate the record bucket based off of whatever criteria I want. The bucket_item create_time can be used to keep track of recent changes, and the pos could be used to indicate deletes. A custom bib bucket type could be used to flag buckets that represent OAI-PMH Sets. This wouldn't deal with copy changes, but for our purposes we don't need to track every copy status change, only ones that would make the bib no longer catalog visible.

Thanks
Josh

Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

Here is a working branch that adds in the ability to base an OAI set of bibs on the contents of a bib bucket.

user/stompro/lp2030066_oai_custom_sets

https://git.evergreen-ils.org/?p=working/Evergreen.git;a=shortlog;h=refs/heads/user/stompro/lp2030066_oai_custom_sets

Filling up the buckets with what you want is left to the user, but I included an example script that shows one method of tracking changes.

The bucket contents controls if a bib is reported deleted or not, so that a bib can be reported deleted whenever the user want, unrelated to the actual bib status.

Let me know what you all think of this method. I think this meets my goal of ReShare being able to harvest only the bibs with copies that we are willing to lend out via ILL if they use our custom setspec.

Josh

tags: added: pullrequest supercat
Revision history for this message
Mike Rylander (mrylander) wrote :

Josh, I like this!

My only feedback (not a deal-breaker, but for consideration) is perhaps we should use a different (or additional) prefix for the bucket-controlled sets, as "CUSTOM" is pretty broad and I could imagine us wanting to add more "custom" set source lists.

Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

I'm happy to change that, naming stuff is hard.

How about BUCKET, or BIBBUCKET, RBUCKET, CONTAINER.

The others are plural
COPIES
LURIS
SOURCES

So BUCKETS, BBUCKETS, BIBBUCKETS, CONTAINERS...

What do you like?
Josh

Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

I also just noticed I left in my debug print statements, took me a while to figure out that the sets hash was being built with the same data in with two different keys. I'll take those out when I change the prefix.
Josh

Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

I'm going to go with RBUCKET instead of CUSTOM.

Short for Record Bucket. Room for IBUCKET and PBUCKET if they ever make sense. Not plural since we are just specifying one bucket at a time.

Revision history for this message
Josh Stompro (u-launchpad-stompro-org) wrote :

Working branch updated at user/stompro/lp2030066_oai_custom_sets

Removed debug logging and changed prefix to RBUCKET.

Josh

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.