Uploaded image for project: 'ui-inventory'
  1. ui-inventory
  2. UIIN-999

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



    • Prokopovych - Sprint 140, Prokopovych - Sprint 141
    • 1
    • Prokopovych
    • Morning Glory (R2 2022)


      Overview: ISBN, normalized is implemented as a dedicated search option, UIIN-647, 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.

      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)
      1. 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)
      2. Scenario
        • When searching on ISBN (Resource Identifier)
        • Then search are conducted across following elements:
          • Resource identifier type: ISBN
          • Resource identifier type: Invalid ISBN
      3. 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
      4. Scenario
        • Ensure automated testing coverage for this new code is 80% plus and confirm with screenshot
      • - - - - - - - - - -


      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 UIIN-758)

      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.

      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 RMB-499 (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"

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


      The front-end need to change the CQL from

      (identifiers =/@value "foo bar") sortby title


      (identifiers =/@value "foo bar" OR isbn = "foo bar" OR invalidIsbn = "foo bar") sortBy title

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

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

      TestRail: Results


          Issue Links



                mpk35 Michal Kuklis
                charlotte Charlotte Whitt
                Charlotte Whitt Charlotte Whitt
                0 Vote for this issue
                10 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases