BE - Normalize ISBNs for ISBN searching. Search option: Identifier (all) in the Instance segment

Description

Overview: ISBN, normalized is implemented as a dedicated search option, , which supports searching by ISBN when those are being entered in a variety of ways (e.g. strip any internal punctuation (usually hyphens)), no matter which version is in the Instance Resource identifier element:

This story here is about implementing the same normalization of ISBNs when search using search option Identifier (all) in the Instance segment.

Scenarios:
Assume the following instance records exist

Example

ISBN

Invalid ISBN

1

978-92-8011-565-9

 

2

9789280115659

 

3

978 92 8011 565 9

 

4

978-92-8011-565-9 (pbk.)

 

5

978-92-8011-5659(pbk.)

 

6

978 92 8011 5659(pbk.)

 

7

92801156507

 

8

9280115650 (pbk.)

 

9

 

9789280115669

10

 

978-92-8011-566-9

11

 

978 92 8011 566 9

12

 

978 92 8011 566 9(hardcover)

# Scenario

  •  

    • Login to FOLIO Snapshot, go to Inventory, Search & filter pane, and select Instance segment

    • When a user wants to search on ISBN then following search options are in focus of this story:

      • Identifier (all)

  1. Scenario

    • When searching on ISBN (Resource Identifier)

    • Then search are conducted across following elements:

      • Resource identifier type: ISBN

      • Resource identifier type: Invalid ISBN

  2. Scenario

    • ensure following normalizations are covered:

      • with and without hyphens

      • with and without spaces

      • with and without qualifiers, like (pbk.), (inb.), (paperback), (vol. 1), (alk. paper) and more

  3. Scenario

    • Ensure automated testing coverage for this new code is 80% plus and confirm with screenshot

  • - - - - - - - - - -

Requirements:

  1. search in the instance record on both:

    • Resource identifier type: ISBN

    • Resource identifier type: Invalid ISBN

  2. search on ISBN numbers

    • with 10 digits

    • with 13 digits

  3. search on ISBN numbers

    • with qualifier data after the 10/13 digit number

    • without qualifier data after the 10/13 digit number

  4. search on ISBNs with qualifiers

    • preceded by spaces, e.g. 9789280115659 (pbk.)

    • not preceded by spaces. e.g. 978-0-12-3736668-0(CD-ROM)

  5. search on ISBN numbers

    • with hyphens

    • without hyphens

  6. search even ignore eventually spaces in the ISBN

  7. search on ISBN is possible in any of the three segments: Instance, Holdings, Item (see )

Examples on ISBN searches which will find following instance record (from Bugfest environment (login: folio/folio) - https://bugfest.folio.ebsco.com/inventory/view/0f5983eb-1912-4e88-bcbf-2a8f97b42f5a?query=9789280115659%2A&sort=Title):

Identifier search option: 9789280115659
Identifier search option: 9789280115659 (pbk.)
Identifier search option: 9789280115659(pbk.)
Identifier search option: 978-92-8011-565-9
Identifier search option: 978 92 8011 565 9
Identifier search option: 9280115650
Identifier search option: 9280115650 (pbk.)
Identifier* search option: 9789280115669 an invalid ISBN
Identifier search option: 978-92-8011-566-9 an invalid ISBN

See also slide deck: https://docs.google.com/presentation/d/1zsgykxOAKSdjikm8Lg56lamAv9u6o7ms1dTIHx1SDnI/edit#slide=id.p
Out of scope for MVP:
The RA and MM -SIG discussed the need for search on calculated ISBN. The requirements are not clear, while e.g. SMEs with expertise on Special collection and rare books does not find an automatic conversion between 10 digit and 13 digit ISBNs to be expected behavior.

TIPS:
ISBN Utility functionality for the Orders app - see (module/project = ISBNUTIL) https://github.com/folio-org/folio-isbn-util

Note: if the implementation is based only on (without any ISBN-specific validation, backend nor front-end) it will be possible to find results when searching for partial tokens e.g "978" or "978 92". pull request: https://github.com/folio-org/raml-module-builder/pull/615/files . It uses regexp

resulting in two chunks. Remove spaces, tabs and hyphens from the first chunk. Now concatenate the two chunks with a space separator; but don't add the space separator if any of the chunks is empty.

Note: it's possible to add UI validation for user input

Implementation:

The front-end need to change the CQL from

to

This is needed to prevent isbn normalisation in other identifier fields as discussed on .

No back-end work is needed. This is ui-only.

Environment

None

Potential Workaround

None

CSP Request Details

None

CSP Rejection Details

None

CSP Approved

None

Attachments

7

Checklist

hide

TestRail: Results

Activity

Show:

Pavlo Smahin June 1, 2022 at 8:32 AM

, yes, this should work.

Michal Kuklis June 1, 2022 at 8:26 AM
Edited

Thanks . 

would you mind providing us with an example from mod-search how to accomplish it?

Would something like: 

for keyword all:

for identifiers:

work? 

 

Khalilah Gambrell May 26, 2022 at 1:54 PM

and - there is no mod-search work needed for this requirement so closing. - if you have questions for how to apply this to Identifier all and Keyword please reach out to

Michal Kuklis May 23, 2022 at 7:27 PM

Thanks . I'm still a bit confused about this. How would you approach UIIN-998 and UIIN-999 with this information? Would we include the ISBN index into these indexes?

  • Keyword (title,contributor, identifier) 

  • Identifier, all

Charlotte Whitt May 23, 2022 at 3:36 PM
Edited

- finally I got to the bottom of this. My investigation in FOLIO Snapshot (today) shows, that search on ISBN normalized works in the search option ISBN, but not in:

  • Keyword (title,contributor, identifier)

  • Identifier, all

So then that to me indicate that it should be straight forward to do:

  • UIIN-998

  • UIIN-999

Won't Do

Details

Assignee

Reporter

Tester Assignee

Priority

Development Team

Spitfire

Release

Morning Glory (R2 2022)

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs

Created March 9, 2022 at 9:10 PM
Updated June 1, 2022 at 8:32 AM
Resolved May 26, 2022 at 1:54 PM
TestRail: Cases
TestRail: Runs