Article Banner

Linking to the Appropriate Copy: Report of a DOI-Based Prototype - Appendix A: Illinois Local Link Server


The University of Illinois at Urbana-Champaign (UIUC) Library makes available to its users a Testbed of over 60,000 locally mounted full-text journal articles-dating from 1995 to the present-taken from 47 physics, computer science, and engineering journals published by five professional societies. This full-text Testbed, developed and maintained in the UIUC Grainger Engineering Library, has been constructed under the aegis of a DLI (Digital Library Initiative) Phase I grant (1994-1998) and a follow-on CNRI D-Lib Test Suite grant (1998-2001). The Testbed has been used to investigate a wealth of information technologies, including SGML to XML conversion, document and metadata representation standards, linking technologies, the rendering of mathematics in a Web environment, and the application of transformative and style sheet mechanisms. The Illinois Testbed offers a natural laboratory to investigate techniques that address the problems connected with localization in reference linking. For the purposes of this study, Illinois Project staff elected to utilize the full-text Testbed articles from the American Institute of Physics (AIP) and the American Physical Society (APS), both members of CrossRef, as targets for local linking.


The Illinois Local Link Server is designed to accept and process a DOI passed to it in an OpenURL format. The Link Server was implemented as a three-stage project, with each stage building on the features of the previous implementation. A diagram of the overarching project implementation with the three complementary design features is shown in Figure A1.

The initial Local Link Server implementation utilized a one-step lookup in a local database of stored Testbed DOIs to determine if a locally held copy of the article was to be displayed or if the DOI was to be sent back through the CNRI Handle System server with a parameter (‘nosfx=y’) that indicates that the DOI should not be routed back to the Local Link Server. (This bypass parameter prevents an “endless loop” problem.) This version required DOIs to be determined and stored for each Testbed article, both for back-volumes and newly added articles.

The second version of the Link Server utilized the passed DOI for a ‘reverse lookup’ in the CrossRef metadata database to extract additional metadata elements of the article. This metadata could then be searched in the Testbed metadata database to determine if a local copy of the article was available. Following on this, the more extensive full Local Link Server utilized the metadata elements extracted from the CrossRef metadata database to present users with a list of menu options that provide value-added and expanded retrieval services.

The full Local Link Server will be described here, but it should be made clear that the Illinois project developed solutions that range from a straightforward pass-through/local presentation decision system to a more fully developed OpenURL-based Local Link Server with value-added services.


chart showing Illinois local server design

Figure A1: Illinois Local Link Server Design



The top level menu used at the Grainger Library public PC terminals was modified to allow for a DOI cookie to be pushed to selected public terminal machines. This DOI cookie was 'pushed' onto a terminal client via a one-pixel, transparent GIF image loaded via:


code for DOI cookie


Initially, this "image" was only added to the Grainger Library's top-level public terminal Web menu if the user's IP address was within the Grainger Library address range. Later, the IP address checking was modified to allow the cookie to be pushed to addresses in the University range. We wanted to avoid disseminating the cookie to users outside of the University. We assumed that most users accessing Grainger Library digital resources would be coming through this web page.

The Local Link Server uses Microsoft’s Active Server Page (ASP) technology running under Microsoft Internet Information Server (IIS) version 4.0. The server-side scripts are in VBScript and utilize the Active Data Objects (ADO) over Microsoft SQL Server and Access databases. The Local Link Server conforms to the OpenURL specification, but at this time accepts only DOI Global Identifiers. To apply the Link Server to other uses, we plan to enhance it in the future to accept other parameters from the OpenURL OBJECT-METADATA-ZONE.

In terms of sequential processing flow, the Local Link Server does the following:

  1. Retrieves the 'id' parameter with the DOI from the Handle System server and parses it to determine whether it is a valid DOI or not. If the 'id' is missing or is not a valid DOI, an HTTP error code "400 Bad Request" is returned to the user's browser along with a simple human-readable message explaining the problem.
    The DOI itself is parsed into the publisher prefix and the value. In the first two iterations of the Link Server, the publisher prefix is used to determine the appropriate action. In these implementations, the DOIs for all publishers outside the chosen group are sent back to the Handle server with the 'nosfx=y' parameter. This can be done directly in code, but we have implemented an XML-based approach using an XML file that identifies the publishers for which we may be able to locate full-text locally. This XML file also contains a database connection string that is used to connect to a local database to identify specific locally held full-text articles. An example of this file is below:


    Example of XML file


    1. Using the DOI, a reverse lookup is performed in the central CrossRef metadata database. If the lookup is successful, the returned XML file containing additional metadata elements (first author, title, journal name, volume, issue, ISSN, etc.) is loaded using the XML Document Object Model (DOM). All further processing is then performed using Extensible Stylesheet Language Transformations (XSLT) to merge XML files and return HTML. If the lookup is not successful, the DOI is redirected back to the handle server with the 'nosfx=y' parameter set.
    1. The metadata returned from the CrossRef reverse lookup, in conjunction with the 'resolvables' XML file (shown above), is used to query a local database to determine the existence of a local HTML and/or PDF version of the full-text corresponding to the given DOI. If available, the URL of the local version of the full-text is returned.
      1. Using the CrossRef metadata, the local URLs returned in step 4, and other local XML metadata that provides call number, print availability, and other local information, the actual locally-constructed Link Server resolution page is built and displayed (see Figure A2 for an example page). This is done entirely by using XSLT to transform the XML returned by the CrossRef reverse lookup and the local databases into HTML for display for a Web browser.


      Screen shot of browser

      Figure A2: Example page from Illinois Local Link Server constructed from passed DOI


      Implementation Notes

      In the implementation of the Illinois Local Link Server, the XSLT 'document(…)' function is used to merge external XML files with the CrossRef metadata (which is returned as XML). For example, one external XML file is generated by an ASP script, which takes an ISSN (derived from the CrossRef reverse lookup) and returns the local location and call number for that journal. In this case, the URL '' will return the XML:


      code for DOI cookie


      Much of this information is contained in the local OPAC, but is actually retrieved from another database. This XML, along with the CrossRef XML, is transformed into the location information in the HTML output, such as:

      Location: Grainger Engineering Library, Call Number: Q.530.5APPH

      This XSLT technique could be used to merge in any number of other external XML documents, which would be used to add data to the HTML output. For example, this technique could be used to look up the URLs for local copies of the full-text (instead of using the method described above). The use of these techniques will be expanded in the future, possibly in conjunction with other local OpenURL services, which return XML.

      Value-added links to A & I service databases are displayed in the Local Link Server. These include links to citations with abstracts and a search mechanism to retrieve other articles by the same author. These links are all derived from the metadata returned by the CrossRef reverse lookup, but in the future may be dependent on passed in parameters or other external XML files which are returned by the 'document(…)' function, described above. Numerous possibilities for value-added data are possible, such as display of the complete table of contents for the journal issue in which the current article resides, links to possibly related articles which share keywords taken from the current article's title, links to monographs by the same author found the local OPAC, and others.

      In addition to generating the HTML output, the ASP script also generates a log entry for each Local Link Server resolution request.

      Copyright© 2001 William H. Mischo.

      Back to the Article