Giter VIP home page Giter VIP logo

qa_server's Introduction

QA Server

This app can be installed to serve as a Questioning Authority (QA) Server for accessing external authorities. It is part of a larger architecture supporting linked data authority access. See ld4l:linked_data_authorities for more information on the full architecture. From this app, you can send a search query and get back multiple results OR you can fetch a single term.

Setup

Compatibility

  • Ruby 2.4 or the latest 2.3 version is recommended. Later versions may also work.
  • Rails 5 is required. We recommend the latest Rails 5.0 release.

Installation Instructions

  • clone this app from github
  • run bundle install
  • run rake db:migrate

To Start the Server

  • run rails s

To stop, use <ctrl><c> in the terminal window where rails s started.

Supported Authorities

Authorities that come with QA

There are a few authorities that are part of the QA gem. All directly access the external authority.

Predefined Configurations in ld4l-labs/linked_data_authorities

All authorities defined in ld4l-labs/linked_data_authorities are included in this repository. In your copy/fork of this app, you can remove the configuration and validation files for any authorities you do not want to support.

Configurations exist for a number of other common authorities that can be used by your QA Server. When possible, each configuration comes in two varieties...

  • _AUTHORITY_NAME__direct - configuration can be used as is to access the external authority directly
  • _AUTHORITY_NAME__local - configuration may require an update to the search:url:template and term:url:template to point to your local server. More information on this in ld4l-labs/linked_data_authorities

Configurations define how to access an authority and how to decode the ontology predicates to extract and convert the data to normalized data. The predefined configurations live in qa_server/config/authorities/linked_data.

Write your own configuration

Authority requirements

If you want to access an authority for which there isn't a configuration, you can write your own. There are only two requirements to be able to access an authority.

  1. For search access, the authority must have a URL API defined that accepts a string search query.
  2. For term access, the authority must either support accessing the URI for the term OR provide a URL API which takes an id or URI as a parameter.
  3. For both search and term, the returned results must be in a linked data format.

Writing the configuration

Instructions for writing your own configuration can be found in the (QA gem README). You are encouraged to use consistent names for common prameters, including the following...

  • q - search query value that the user types
  • maxRecords - to identify the max number of records for the authority to return if the authority supports limiting the number of returned records
  • lang - limit string values to the identified language if the authority supports language specific requests

Using the configuration

Add your new configuration to this_app/config/authorities/linked_data

TEST QUERY: http://localhost:3000/qa/search/linked_data/_AUTHORITY_NAME__direct?q=your_query&maxRecords=3 TEST FETCH: http://localhost:3000/qa/show/linked_data/_AUTHORITY_NAME__direct/_ID_OR_URI_

Substitute the name of the configuration file for _AUTHORITY_NAME__direct in the URL. Substitute a valid ID or URI for ID_OR_URI in the URL, as appropriate. NOTE: Some authorities expect an ID and others expect a URI.

Expected Results

Search Query Results

This search query... http://localhost:3000/qa/search/linked_data/oclc_fast/personal_name?q=Cornell&maximumRecords=3

will return results like...

[{"uri":"http://id.worldcat.org/fast/5140","id":"5140","label":"Cornell, Joseph"},
 {"uri":"http://id.worldcat.org/fast/72456","id":"72456","label":"Cornell, Sarah Maria, 1802-1832"},
 {"uri":"http://id.worldcat.org/fast/409667","id":"409667","label":"Cornell, Ezra, 1807-1874"}]

Term Fetch Results

This term fetch... http://localhost:3000/qa/show/linked_data/oclc_fast/530369

will return results like...

{"uri":"http://id.worldcat.org/fast/530369",
 "id":"530369","label":"Cornell University",
 "altlabel":["Ithaca (N.Y.). Cornell University","Kornelʹskii universitet","Kʻang-nai-erh ta hsüeh"],
 "sameas":["http://id.loc.gov/authorities/names/n79021621","https://viaf.org/viaf/126293486"],
 "predicates":{
   "http://purl.org/dc/terms/identifier":"530369",
   "http://www.w3.org/2004/02/skos/core#inScheme":["http://id.worldcat.org/fast/ontology/1.0/#fast","http://id.worldcat.org/fast/ontology/1.0/#facet-Corporate"],
   "http://www.w3.org/1999/02/22-rdf-syntax-ns#type":"http://schema.org/Organization",
   "http://www.w3.org/2004/02/skos/core#prefLabel":"Cornell University",
   "http://schema.org/name":["Cornell University","Ithaca (N.Y.). Cornell University","Kornelʹskii universitet","Kʻang-nai-erh ta hsüeh"],
   "http://www.w3.org/2004/02/skos/core#altLabel":["Ithaca (N.Y.). Cornell University","Kornelʹskii universitet","Kʻang-nai-erh ta hsüeh"],
   "http://schema.org/sameAs":["http://id.loc.gov/authorities/names/n79021621","https://viaf.org/viaf/126293486"]}}

Connection and Accuracy Validations

Validations come in two flavors...

  • connection validation - PASS if a request gets back a specified minimum size result set from an authority; otherwise, FAIL.
  • accuracy test - PASS if a specific result is returned by a specified position (e.g. uri is in the top 10 results); otherwise, FAIL.

The validations can be defined in a file with a matching file name in the scenarios directory. For example, direct access to the AgroVoc authority, access is configured in config/authorities/linked_data/agrovoc_direct.json and the validations are defined in config/authorities/linked_data/scenarios/agrovoc_direct_validation.yml

The UI for qa_server provides access to running connection validation and accuracy tests in the Check Status navigation menu item.

Non linked-data authority access

QA Server is based on the Questioning Authority gem. As such, it can be used to serve up controlled vocabularies defined in one of three ways.

  1. locally defined controlled vocabularies
  2. specifically supported external authorities (non-linked data)
  3. configurable access to linked data authorities

This document addresses the use of QA Server app for access to linked data authorities. You can reference Questioning Authorities documentation for more information on the other uses.

qa_server's People

Contributors

dependabot[bot] avatar elrayle avatar gdelisle avatar sfolsom avatar tworrall avatar zimeon avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

qa_server's Issues

Disable Cache Lookups

Disable those that we aren't replacing (e.g. SVDE) and those we successfully replace with direct lookups.

AWS shows something went wrong on monitor status page when page returns 500

Description

It is normal for the Monitor Status page to return a 500. This lets other processes to be triggered to show that at least one authority is down.

Expected

Monitor Status page shows full html of the page when response code = 500.

Actual

Monitor Status page shows Something Went Wrong modal when response code = 500.

Related Issues:

#33 Show history of failures on Monitor Status screen
#18 Setup monitoring of status of the authority configs

Add Direct Lookups for LC RBMS Controlled Vocabulary

Create direct lookups for the following LC RBMS Controlled Vocabulary.

The Samvera QA Code seems to offer search for some LC vocabs: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on and add new vocabs for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=686515295

Add Direct Lookups for LC Medium of Performance Thesaurus for Music

Create direct lookups for the following LC Medium of Performance Thesaurus for Music

The Samvera QA Code seems to offer search for some LC vocabs: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on for our app and add new vocabs.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=239265704

Brand the service as the "LD4L Authority Lookup Service"

I discussed with Dean and we think it should stay at lookup.ld4l.org and be branded "LD4L Authority Lookup Service"

Underneath the title we should explain:

This service provide authority lookup for single terms and search for terms matching a query. It has been created as part of the LD4L Labs project, and is operated by Cornell University Library in collaboration with the School of Library and Information Science, University of Iowa. This work was funded through a grant from the Andrew W. Mellon Foundation.

I'm guessing at how Dave would want the Iowa contribution acknowledged so you might ping him to see whether that is OK.

Add Direct Lookup for Homosaurus

There is a "Search" at the top menu of homosaurus.org. Doing a search gives results that include other formats at the bottom. One can replace the "q=" paramter for one of those formats for a machine readable format. For example, for a turtle format for "ze" would be: https://homosaurus.org/search/v3.ttl?q=ze

Because this returns RDF, we might(?) be able to use the linked data module, https://github.com/cul-it/qa_server/blob/dev/config/authorities/linked_data/homosaurus_ld4l_cache.json (Would need to point to Homosaurus instead of http://ld4l.org/ld4l_services/cache.)

NB, when RDF results lack ranking predicate QA sorts results alphabetically.

Add Direct Lookups for LC Smaller Cataloging Vocabs

Create direct lookups for the following LOC smaller cataloging vocabs.
See https://id.loc.gov/techcenter/searching.html for API documentation.

The Samevera QA Code seems to offer search for some LC authorities: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on for our app, and extend with the full list of LC authorities.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
Create direct lookups for the following LOC smaller cataloging vocabs.
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=1379361528

  • Aspect Ratio
  • Authentication Action
  • Book Format
  • Broadcast Standard
  • Carriers
  • Color Content
  • Content Types
  • Description Conventions
  • Sound Capture and Storage
  • Encoding Format
  • Encoding Level
  • Font Size
  • File Type
  • Generation
  • Government Publication Type
  • Groove Width/Pitch/Cutting
  • Illustrative Content
  • Intended Audience
  • Issuance
  • Layout
  • Media Types
  • Music Notation
  • Notated Music Form
  • Note Type
  • Playback
  • Playing Speed
  • Polarity
  • Presentation Format
  • Production Method
  • Projection
  • Publication Frequencies
  • Recording Medium
  • Recording Type
  • Reduction Ratio
  • Regional Encoding
  • RBMS Relationship Designators
  • Relators
  • Relief
  • Resource Components
  • Scale
  • Script
  • Serial Publication Type
  • Sound Content
  • Special Playback Characteristics
  • Status codes
  • Supplementary Content
  • Support Material
  • Tactile Notation
  • Tape Configuration
  • Technique
  • Video Format
  • Relationship

create jsp in services.ld4l.org that can request paged results of all terms starting with letter(s)

Having observed a cataloger at work with existing tools, one of the ways they search for a term is using an alpha sorted terms and jumping to the term they want to explore.

This can be replicated using one of the following approaches...

  1. Pass first less to the alpha_jsp and it returns pages of all terms whose primary label starts with that letter. This allows a UI with letters of the alphabet as a index and user can select a letter. This searches unstemmed prefLabel.
  2. Pass first few letters to the alpha jsp and it returns pages of all terms whose primary label starts with the those letters. This allows a UI where the user types the first few letters and then terms are displayed that start with those letters. This searches unstemmed prefLabel.
  3. Pass a few letters to the alpha jsp and it returns terms where the first few letters of any word in the term starts with those letters. This searches unstemmed prefLabel.

Perhaps support both 2 and 3 with an option that can be passed in to the alpha jsp and a UI that allows the user to select stemmed or unstemmed.

Add Direct Lookups for LC Thesaurus for Graphic Materials (TGM)

Create direct lookups for the following LC Thesaurus for Graphic Materials (TGM).

The Samvera QA Code seems to offer search for some LC vocabs: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on and add new vocabs for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=1559658996

Geonames - create subauth that prioritizes country, state, and region

Request by @hudajkhan

Description

Searching Geonames for something like 'Ithaca' returns results that include hotels and other establishments in and around Ithaca, but not the city of Ithaca itself. Is it possible to use subauthorities to make a query that only returns results that are country, state, or region?

Expected Results

http://lookup.ld4l.org/qa/search/linked_data/geonames_ld4l_cache?q=Ithaca&maxRecords=4

[
    {
        "uri":"http://sws.geonames.org/261707/",
        "id":"http://sws.geonames.org/261707/",
        "label":"Ithaca (GR)"
    },
    {
        "uri":"http://sws.geonames.org/5122432/",
        "id":"http://sws.geonames.org/5122432/",
        "label":"Ithaca (US)"
    },
    {
        "uri":"http://sws.geonames.org/8133849/",
        "id":"http://sws.geonames.org/8133849/",
        "label":"Ithaca (GR)"
    },
    {
        "uri":"http://sws.geonames.org/261708/",
        "id":"http://sws.geonames.org/261708/",
        "label":"Itháki (GR)"
    }
]

Actual Results

http://lookup.ld4l.org/qa/search/linked_data/geonames_ld4l_cache?q=Ithaca&maxRecords=4

image

Add Direct Lookups for LC Names

Create direct lookups for the following LC Names.

The Samvera QA Code seems to offer search for LC names: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=745128104

Authorities/sub-authorities:

  • Names (all)
  • Names Geographic
  • Names Conference
  • Names Family
  • Names Organization
  • Names Person

Add status validation scenarios for Getty AAT hierarchies

One search query is needed for each of the following hierarchy levels...

Hierarchy Level Query
"Activities"
"Activities__Disciplines"
"Activities__Events"
"Activities__Functions"
"Activities__Physical_and_Mental"
"Activities__Processes_and_Techniques"
"Activities__activities"
"Agents" domestic
"Agents__Living_Organisms" domestic
"Agents__Organizations"
"Agents__People" domestic
"Agents__agents"
"Associated_Concepts"
"Associated_Concepts__Associated_Concepts"
"Brand_Names"
"Brand_Names__Brand_Names"
"Materials"
"Materials__Materials"
"Objects"
"Objects__Built_Environment"
"Objects__Components"
"Objects__Furnishings_and_Equipment"
"Objects__Object_Genres"
"Objects__Object_Groupings and Systems"
"Objects__Visual_and_Verbal_Communication"
"Physical_Attributes"
"Physical_Attributes__Attributes_and_Properties"
"Physical_Attributes__Color"
"Physical_Attributes__Conditions_and_Effects"
"Physical_Attributes__Design_Elements"
"Styles_and_Periods"
"Styles_and_Periods__Styles_and_Periods"

@sfolsom Can you help fill these in?

Tweak LoC Genre indexing

Work with metadata team and Dave to identify fields for searching and weighting of search results.

See @sfolsom's document describing what context should be searched and what should be displayed to the user... Indexing of External Data for Look-ups

General notes about indexing:

  • prefLabel (or other primary label field) should be stem indexed and non-stem indexed.
  • an exact match on the non-stem indexed prefLabel field should have the highest weighting in the index
  • matches on the stemmed prefLabel field should have the second highest weighting in the index
  • other fields (e.g. variant labels, notes, etc.) should have a lower weighting

As we explore effects of indexing, the last area of other fields may be tweaked to determine the best weighting.

Add Direct Lookup for Cultural Heritage Organizations

Create direct lookups for the following Cultural Heritage Organizations.

The Samvera QA Code seems to offer search for some LC names: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API:
https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=71593845

Add subauth to get Events from OCLC FAST data

Request from @hudajkhan...

with respect to oclc fast, is there a way to just get events? Is that one of the options?

@eichmann's asked which rdf:type identifies events.

M. Futornick responded that http://schema.org/Event identifies events.

@eichmann

OCLC FAST triplestores and indices have been rebuilt with all 8 categories. The entity types now valid for those services are: Concept, Event, Intangible, Organization, Person, Place, and Work

Add Direct Lookups for LC Classification Schemes

Create direct lookups for the following LC Classification Schemes.

The Samvera QA Code seems to offer search for some LC vocabs: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on and add new vocabs for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

blank node in results from qa_server for locnames_ld4l_cache/person

This query has a blank node in the results. Seems like we should always suppress blank nodes. Not completely sure if this is happening in the processing in qa_server or services.ld4l.org. Definitely coming in the services.ld4l.org results, but could be the qa_server post-processing of the graph that lets the blank node slip through.

You can see this at...
http://elr37-dev.library.cornell.edu/qa/search/linked_data/locnames_ld4l_cache/person?q=frankie%20valli&maxRecords=10

list failing tests on Dashboard

The Dashboard currently only shows a count of the number of tests failing. This proposes extending the Dashboard controller to store the names of the tests that are failing and to keep this information over time to enable long term trend analysis.

chrome reports 404 for all fetch term example URLs when they identify the term using a URI

URL: http://lookup.ld4l.org/qa/show/linked_data/locnames_ld4l_cache/http%3A%2F%2Fid%2Eloc%2Egov%2Fauthorities%2Fnames%2Fn92016188

Note that the URI is encoded. When Chrome executes the URL it decodes the %2E back into a . which Rails interprets as a path separator. Firefox and Safari on Mac did not have a problem.

The addition of the term identifier as part of the URL is following the precedence set by QA before linked data processing was added. So I am hesitant to change that precedence. But I could add a route in addition to the current one that allows for the format...

URL: http://lookup.ld4l.org/qa/show/linked_data/locnames_ld4l_cache?term=http%3A%2F%2Fid%2Eloc%2Egov%2Fauthorities%2Fnames%2Fn92016188

Chrome and Rails do not seem to have a problem when the URI is a parameter to the URL.

Extend getty aat to include facets on hierarchy top concepts

Description:

There is an additional request to facet aat on top hierarchy concepts. Dave has implemented the subset at URL: http://deep-thought.slis.uiowa.edu:8081/ld4l_services/getty_aat.jsp

The QA config needs to be updated to support the faceted hierarchy concepts.

This will be addressed in QA either as a sub-authority or as a simple additional param for aat. More exploration is needed.

Related Work:

Issue #7 Add Getty vocabularies (PR #22)
Issue #24 Add Getty configs to linked_data_authorities project

Add Direct Lookups for LC Demographics

Create direct lookups for the following LC Demographics.

The Samvera QA Code seems to offer search for some LC vocabs: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on and add new vocabs for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=612799256

Add Direct Lookups for LC Subjects

Create direct lookups for the following LC Subjects.

The Samvera QA Code seems to offer search for LC Subjects: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=221282005

Include additional parent context for geonames

Expand context to include gn:parentADM1, gn:parentADM2, and gn:parentCountry

  • services.ld4l.org adds the additional context
    • URI of additional predicates
    • triples with additional context URIs as subject providing associate labels of the context
  • lookup.ld4l.org config updated to include the additional context

Add Direct Lookups for LC Genres

Create direct lookups for the following LC Genre.

The Samvera QA Code seems to offer search for LC Genres: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=696491968

Upgrade ruby, rails, qa and other gems

We're currently using ruby 2.7.3 and rails 5.2, both of which have reached end of life:
https://endoflife.date/rails
https://endoflife.date/ruby

As part of this, we may need to update the qa gem from 5.8.0 to 5.9.0 for ruby 3.1 support: https://github.com/samvera/questioning_authority/releases/tag/v5.9.0. Worryingly, the release notes for 5.9.0 say it supports rails 6.1 - may need to do some testing to see if rails 7 can also be supported.

What do we need to do to update ruby? Is this set in https://github.com/LD4P/qa_server_container?

Add Direct Lookup for MESH

To get back RDF from MESH's APIs, it seems like we need to use their SPARQL API, but SPARQL isn't great for generic keyword searching.

Samvera code base has MESH lookups, maybe this is something we can turn on. https://github.com/samvera/questioning_authority/tree/main/lib/qa/authorities

We’ve discussed the possibility of converting json response into linked data that QA can recognize and use the linked data module to translate.

See https://id.nlm.nih.gov/mesh/swagger/ui#/lookup/lookupTerms for API documentation.

Show history of failures on Monitor Status screen

Currently, monitor status shows a summary of the count of failing/passing tests at midnight last night. It also shows the list of tests that are failing.

This proposes adding a section that shows historical failures and statistics for failures to answer questions like...

  • number of failing days out of # of days run
  • number type of failures... can't load authority vs. exception vs. no data returned
  • for a given authority, did all tests fail or just a few?
  • are tests failing for a particular subauthority?
  • are tests failing for a particular type (search vs. term)

Add Local Lookup for RDA Terms

Samvara QA code has a sample yml file to add a controlled list locally to a QA instance: https://github.com/samvera/questioning_authority/blob/main/config/authorities/states.yml

RDA Registry doesn't seem to have a search API that we can use to create a direct lookup, so we need to add a file for each of the RDA Reference value vocabularies found here: https://www.rdaregistry.info/termList/. The ids in the yml will need to be the URI for the term, and the term in the yml should be the preferred term in English.

I'm not sure if our instance is set up for these types of lookups, so we'll have to do some testing.

  • RDA Aspect Ratio Designation
  • RDA Bibliographic Format
  • RDA Broadcast Standard
  • RDA Carrier Extent Unit
  • RDA Carrier Type
  • RDA Cartographic Data Type
  • RDA Collection Accrual Method
  • RDA Collection Accrual Policy
  • RDA Colour Content
  • RDA Configuration of Playback Channels
  • RDA Content Type
  • RDA Extension Plan
  • RDA File Type
  • RDA Font Size
  • RDA Form of Musical Notation
  • RDA Form of Notated Movement
  • RDA Form of Tactile Notation
  • RDA Format of Notated Music
  • RDA Frequency
  • RDA Generation
  • RDA Groove Pitch of an Analog Cylinder
  • RDA Groove Width of an Analog Disc
  • RDA Illustrative Content
  • RDA Interactivity Mode
  • RDA Layout
  • RDA Linked Data Work
  • RDA Material
  • RDA Media Type
  • RDA Mode of Issuance
  • RDA Polarity
  • RDA Presentation Format
  • RDA Production Method
  • RDA Recording Medium
  • RDA Recording Methods
  • RDA Recording Source
  • RDA Reduction Ratio Designation
  • RDA Regional Encoding
  • RDA Scale Designation
  • RDA Sound Content
  • RDA Special Playback Characteristics
  • RDA Status of Identification
  • RDA Terms
  • RDA Track Configuration
  • RDA Type of Binding
  • RDA Type of Recording
  • RDA Unit of Time
  • RDA User Tasks
  • RDA Video Format

Setup monitoring of status of the authority configs

It is important to get early feedback if an authority becomes unavailable. The validation that confirms authority availability is slow to run because it runs a query for every subauthority for every authority. Because of this, the monitoring can't initiate the check, wait, and confirm pass/fail. The time to complete would likely not finish before the monitor decided whether there was a pass/fail causing many false failures.

Work to complete...

  • create a page (Dashboard) that does the validation creating stats for count of tests and number of failures which are stored in the database, only being refreshed once daily (at midnight ET). Returns 200 if all tests pass and 500 if there are any failures for any reason.
  • setup a cron job that runs after daily update time (midnight ET)
  • setup monitor to check the return code of the Dashboard page sending email if return code is not 200

Working with sysopts for the last 2 items. https://culibrary.atlassian.net/browse/DLITSYS-2779

Add Direct Lookups for LC MARC Countries

Create direct lookups for the following LC MARC Countries.

The Samvera QA Code seems to offer search for some LC vocabs: https://github.com/samvera/questioning_authority/wiki/Connecting-to-Library-of-Congress-%28LOC%29.

  • Hopefully we can turn this on and add new vocabs for our app.
  • If not, we’ve discussed the possibility of converting LC suggest2 json response into linked data that QA can recognize and use the linked data module to translate

Related links:
See https://id.loc.gov/techcenter/searching.html for API documentation.

Example of a direct search config to base new config off:

Data to bring in and translate, if available in the API: https://docs.google.com/spreadsheets/d/1rPvEoP9iYNkxJ0eWC8gXe3ci7e6mhW0da59xkGhadi0/edit#gid=1202667279

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.