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

Normalize ISBNs for ISBN searching in Instance, holdings, item segments. New search option: ISBN, normalized



    • Core: F - Sprint 84, Core: F - Sprint 85, Core: F - Sprint 86
    • 5
    • Prokopovych


      Overview: When searching by ISBN, FOLIO allows for ISBNs to be entered in a variety of ways and normalize properly (e.g. strip any internal punctuation (usually hyphens)), no matter which version is in the Instance Resource identifier element:

      jakub refined the requirements - 20/Feb/20 2:24 PM:

      1. it is acceptable to add a new dedicated normalized ISBN index
      2. and leave "keyword" and "identifiers" index ISBN normalization as a post-MVP feature.

      The outcome of this story is

      • adding a new search option: ISBN, normalized
      • the UI needs to use a new CQL query to search a normalized ISBN: isbn = "xxx" (note the single equals)


      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):

      See also slide deck: https://docs.google.com/presentation/d/1zsgykxOAKSdjikm8Lg56lamAv9u6o7ms1dTIHx1SDnI/edit#slide=id.p


      1. Scenario
        • Login to FOLIO Snapshot, go to Inventory, Search & filter pane, and select any of the three segments (Instance, Holdings, Item - UIIN-758)
        • When a user wants to search on normalized ISBN then following search options are in focus of this story:
          • ISBN, normalized – the search option is displayed after: ISBN and before: ISSN - see the three UX mock ups below:
            Instance Holdings Item
      2. Scenario
        • When searching on ISBN, normalized
        • 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

      Out of scope for MVP:

      1. Search on normalized ISBNs in the Keyword search option - UIIN-998
      2. Search on normalized ISBNs in the Identifier search option - UIIN-999
      3. 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

      TestRail: Results


          Issue Links



                SergiySergiyenko Sergiy Sergiyenko
                charlotte Charlotte Whitt
                Charlotte Whitt Charlotte Whitt
                0 Vote for this issue
                11 Start watching this issue



                  TestRail: Runs

                    TestRail: Cases