This page contains general information about CUFTS - explanations about terms, pseudocode, etc.
Services
Services is the CUFTS term for a level of linking or other action that CUFTS can perform. There are currently seven service types:
database A link to the database level where a user would have to further search for fulltext. This is a last ditch level, however some resources do not provide the ability to link in further than this.
fulltext A link directly to the fulltext of an article, either HTML, PDF, or a page with further links to the fulltext.
holdings A link to print holdings for a library - usually a link into their catalogue.
journal A link to the journal level from where a user can normally pick a specific volume/issue to browse for fulltext.
metadata This may not actually be a link, but may return extra data to be added to a request object for other resources to use. See CrossRef? for an example.
table of contents A link to the issue level which should display all the articles in the issue. This may be a real TOC page, or it may be a search for all articles in a specific issue.
web search A link to a web search engine like Google.
Resolving
Here's (very roughly) how the resolver works...
- Parse the OpenURL request and create a Request object.
- Determine the user's site from Request or IP/domain information, create a Site object
- Find all active resources for Site, and create Resource objects for each one
- Foreach Resource...
- Get all the active services for Resource
- Foreach service...
- If deduping is turned on and a link for this provider at this services level, goto next service
- Call "search_get$service" method on the resource to find any active titles
- Filter those titles by the request information: date, embargo, volume, issue, etc.
- Call "build_link$service" to try to create links at that service level for titles which are not filtered out. If a link is made, create a Result object for it. Store all the Results.
- Pass all the Results into the template chosen to display the results
