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