Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Services

Barnaby Alter edited this page Dec 19, 2017 · 21 revisions

Services are what GetIt is all about. Services help patron's get the identified resource. We have services for getting full text and physical copies, getting cover images, enhancing metadata, getting tables of contents, linking to other articles that have cited the work, linking to document delivery options and a slew of others covered below. Learn more about services on the Umlaut page.

Which services will show up?

We display services on the principle that we want to give the user all of their options given their context at the time of the request.

All requests get the default services. Which additional services are in play for a given request depends on a combination of IP, user status (if logged in) and URL.

For an example lets take a New School student. If the student hasn't logged in, but is at the New School Library (and hence, in the NS IP range), the services in play are

but if the same New School student is at the Bobst Library (NYU IPs) and logs in, the services in play would be

Finally, if the student was off campus, not logged in, and routed to GetIt from the NS BobCat skin (with an NS URL), the services in play would be

Enabled Services

Below is a complete list of currently enabled services for all institutions.

Default Services

By default we've enabled several services to display before the page renders:

  • Primo: includes full text links, table of contents and enhanced metadata for the resource
  • Amazon 1: includes enhanced metadata and cover images
  • NYU's Wayfinder: provides a link back to the source of the OpenURL for select sources

and several services to display after the page renders:

NYU (including NYU Abu Dhabi) Only Services

We have configured some services only for NYU. The services that run before the page loads are:

The services that display after the page loads are:

  • NYU's ILLiad Export: includes link to request this item via ILL, doesn't displays if there are holdings or full text links
  • Ulrichs Link: includes a highlighted_link to the Ulrich's periodical directory
  • Scopus Citations: includes citation links, "similar articles" links, "more by these authors" links and abstracts from scopus.
  • E-ZBorrow: determines E-ZBorrow availability and presents in-page option to request.

Cooper Union Only Services

We have configured some services only for CU. The services that are run before the page loads are:

  • Cooper Union's SFX the first service to run and includes full text links, highlighted links for DOI, abstracts and tables of contents

The services that display after the page loads are:

  • Scopus Citations: includes citation links, "similar articles" links, "more by these authors" links and abstracts from scopus.

New School Only Services

We have configured some services only for NS. The services that are run before the page loads are:

  • New School's SFX the first service to run and includes full text links, highlighted links for DOI, abstracts and tables of contents
  • GetIt @ NYU: includes link to NYU's GetIt services

The services that display after the page loads are:

  • Ulrichs Link: includes a highlighted_link to the Ulrich's periodical directory
  • New School's bX: includes links to "similar" articles as determined by bX.
  • E-ZBorrow: determines E-ZBorrow availability and presents in-page option to request.

Service Types

Service types are broad categories of services, including fulltext, local holdings, document delivery and help. GetIt organizes service links and information in logical groups based on the service types. Umlaut comes with a number of service types. At NYU, we added an additional one.

Order of Service Types

In Umlaut, service types are displayed in sections. The order we have defined for our service type sections in GetIt is:

  • main section

    • search inside
    • fulltext
    • holding
    • document delivery (ILL)
    • audio
    • excerpts
    • table of contents
    • abstract
  • sidebar

    • wayfinder (Back to BobCat)
    • help
    • coins
    • export citation
    • highlighted link
    • related items

Service Logic

Below is pseudo code for seeing what the service specified does. It is not comprehensive but is included to provide an overview of what the specified service does (and doesn't do). For the full logic, please look at the actual code.

Set SFX URL = OpenURL
Add URL params for SFX:
  SFX URL += sfx.response_type=multi_obj_xml # API param
  if no date and no year and no (pmid or doi):
    SFX URL += sfx.ignore_date_threshold=1
    SFX URL += sfx.show_availability=1
  if doi:
    SFX URL += sfx.doi_url=http://dx.doi.org
Call SFX API based on SFX URL
Parse response:
  # These are the basics
  Grab SFX Context Objects
  Loop through SFX Context Objects:
    Grab SFX Targets for SFX Context Object
    Loop through SFX Targets:
      Determine Umlaut category (fulltext, document_delivery, etc) based on SFX Target service type mappings.  If we're not interested in that service type, go to the next SFX Target
      Add Umlaut service:
        Display text from SFX Target public name
        URL from SFX Target URL
        Coverage information from threshold coverage statement and embargo statement
        Source from SFX Target displayer
  Add related objects as See Also links
  For journals only, enhance Umlaut OpenURL based on SFX Context Object Attributes.  Enhancements are available to subsequent services.
Search Primo web service based on:
  Primo ID
  issn or isbn
  title, author AND genre (genre search is an "ANY" search with exact precision)
Parse web service response:
  Enhance Umlaut OpenURL from PNX addata section.  Enhancements are available to subsequent services:
    :jtitle => { :overwrite => false },
    :btitle => { :overwrite => true }, :aulast => { :overwrite => true },
    :aufirst => { :overwrite => true }, :aucorp => { :overwrite => true },
    :au => { :overwrite => true }, :pub => { :overwrite => true },
    :place => { :value => :cop, :overwrite => false },
    # Prefer SFX journal titles to Primo journal titles
    :title => { :value => :jtitle, :overwrite => false},
    :title => { :value => :btitle, :overwrite => true},
    # Primo lccn and oclcid are spotty in Primo, so don't overwrite
    :lccn => { :overwrite => false }, :oclcnum => { :value => :oclcid, :overwrite => false}
  Get holdings and store for later processing via Aleph:
    Skip web resources
  Get electronic resources:
    Skip if no URL
    Skip if there is a duplicate URL already seen from Primo
    Skip if genre not book, there are other fulltext links in Umlaut and SFX controls URL:
      SFX controls the URL if the hostname is in a nightly load from SFX
  Get TOCs

Primo Source (Aleph) - happens after page has rendered

For Primo Sources from NYU01 (handles dedupmgr from Primo):
  If journal:
    Get coverage from Aleph bib (via call to Aleph API)
    Get coverage from Aleph holdings (via call to Aleph API)
  If not journal:
    Expand Aleph items (via call to Aleph API):
      If items less than 10:
        Parse Aleph items for statuses, requestability, etc.
        One Primo Source becomeS many, since Aleph->Primo is stupid
  Dedup to handle Aleph->Primo's stupidity