Agreements Local KB: Remote KB search integration

Description

Current situation or problem:
Following the option to selectively synchronise data from an external knowledgebase (https://folio-org.atlassian.net/browse/UXPROD-4956) it is no longer the case that all titles from a synchronised KB are searchable.

To ensure that users are able to search by title, and optionally then select particular packages for synchronisation, this feature is to implement an integrated search of an external KB into the Agreements app. This feature will focus on GOKb as a first implementation, but the approach will not be limited to GOKb (although any integration will require a suitable API for the external KB)

In scope

  • Abstract implementation of an external title search option

  • Specific implementation of a GOKb title search using the GOKb OpenSearch API specified at https://github.com/openlibraryenvironment/gokb/wiki/Opensearch-API

  • Surface remote title search in Agreements UI

  • Ensure the user gets directed to local information as appropriate (i.e. if title already in the local KB, use this to bring in existing agreements etc for the title)

  • Integrate display of title and title availability (in GOKb terms = TIPP information, in Local KB = PCI) information into Agreements UI, with options for synchronising related packages

  • Optional to suppress display of the existing Local KB Title search - for tenants that are only using GOKb as the source of their titles/package information (i.e. not other data sources or file upload used to populate the local KB) the local kb title search could be seen as redundant and confusing

Out of scope

  • Search of external sources other than GOKb

  • Filters to search only titles that are part of an agreement (while this is seen as desirable, it is not linked to this feature. However, potentially the local KB title search could become a proxy for this if the tenant only ever syncrhonises package content where there is an agreement for the package/PCI)

Use case(s)
The user may wish to answer the following questions/carry out the following tasks:

  • Given a known title, how can I obtain it via a package or directly

  • I need to setup an agreement for a known a title which we already have access to, but I don't know/care which package it is in

  • Given a known title, do we currently have access to this title via an agreement?

Proposed solution/stories
This will require:

  • Backend implementation of search of remote KB with appropriate understanding of the API and response data

  • New search screen in Agreements UI that allows title search of remote kb and display of results

  • New view screen for title from remote KB which includes options for acquiring the title (i.e. which packages it is available through) and option to add to an agreement line / synchronise those packages to the local KB

  • Integration of title display from remote KB with local information in order the user does not have to do any action to see the local (agreements) information about the title

Links to additional info
Presentation on GOKb APIs: https://www.gbv.de/informationen/Verbundzentrale/Publikationen/publikationen-der-vzg-2022/pdf/horn_2022-09-02_gokb_wolfcon.pdf

GOKb OpenSearch API documentation:

More information

Example search query across all titles: https://gokb.org/gokb/api/find?componentType=Title&q=science (searches name+altname+suggest+ids) - close equivalent to our local KB search which searches Name, Alternative name, Identifiers and Description. However, we don’t get a “Description” value for GOKb derived Tis (unless they are otherwise updated from other sources) so in reality this is searching the same fields. May want to decide if we really want to include the “suggest” (which is an ngram based search more intended for typeaheads) or be more specific with field search to exclude it

There isn’t support for Monograph/Serial filters, but rather you can specify the componentType searched:

Title (all titles), Journal, Book, Database - this makes the search for particular things exclusive, and not a filter on an existing result, but rather a new search with a different componentType specified and all other parameters repeated

Example query to find all TIPPs for a Title: https://gokb.org/gokb/api/find?componentType=TIPP&title=8b24b206-de04-4568-8471-f02791a9e402&status=Current&max=10000

Questions

Priority

Fix versions

None

Development Team

Bienenvolk

Assignee

Solution Architect

Parent

None

Parent Field Value

None

Parent Status

None

Checklist

hide

Activity

Show:

Details

Reporter

PO Rank

0

Release

Trillium (R2 2025)

TestRail: Cases

Open TestRail: Cases

TestRail: Runs

Open TestRail: Runs
Created March 3, 2025 at 2:26 PM
Updated March 6, 2025 at 10:39 AM
TestRail: Cases
TestRail: Runs