/dev/docs/scan-on-demand
Type: /type/page
body: value: <div class="contenttext">
<p>This document provides an overview of Open Library Scan-On-Demand. It is a planning document at this stage, and needs more input from the community. The ultimate goal is to use it as a tool to encourage participation from more libraries as Open Library moves towards Digital ILL.</p>
<p style="padding-left: 224px;">
  <img src="/static/images/arrow.red.png" alt="arrow"><a href="#import">Data Import and UI Integration</a><br />
  <img src="/static/images/arrow.red.png" alt="arrow"><a href="#scod">User-Facing View</a><br />
  <img src="/static/images/arrow.red.png" alt="arrow"><a href="#queue">Administrator View</a><br />
  <img src="/static/images/arrow.red.png" alt="arrow"><a href="#scanrecord">The IA Book Identifier</a><br />
  <img src="/static/images/arrow.red.png" alt="arrow"><a href="#existing">Existing Workflow Considerations</a><br />
  <img src="/static/images/arrow.red.png" alt="arrow"><a href="#nextsteps">Next Steps</a><br />
 </p>
 

<br clear="all" />

<p><a name="import"></a>
   </p><p><a name="intro"></a></p><h2>Data Import and UI Integration</h2>
   
When importing data from a library participating in Scan-On-Demand, the first step is to target the records to be used (e.g. pre-1923 research library works), and import all of the relevant MARC fields that support the library workflow and that of the participating scanning center.
 In the case of the Boston Public Library, the relevant MARC fields were as follows:
<ul>
	<div style="float: right; clear: right; padding-top: 40px; padding-right: 20px;">
    <span class="green"><a href="http://openlibrary.org/show-marc/bpl_marc/bpl109.mrc:15225896:617">View Sample BPL MARC Record</a>
	</span></div>

	<li><b>Field 001:</b> Source Record ID<br /><i>Locates the record in participating library database.</i></li>
	<li><b>Field 090:</b> Shelf Number<br /><i>Locates the book on the physical shelf.</i></li>
	<li><b>Field 852:</b> Barcode<br /><i>Unique identifier for each book.</i>
	<br />
	</li>
</ul>

<p>
The 001 (003) is best stored as a unique id (generally one appends the 003 to the beginning or end of the 001 in parens -- like OCLC numbers). 
This allows Open Library to link to the exact record in the participating library database. The call number is where it is on the physical shelf,
however, the participating library can have more than one copy of the book and those copies may have different call numbers.
 With just the ID, Open Library could get copy information directly from a participating database (a common practice because copy information changes more frequently than other information). 
 Open Library could even retrieve whether or not the item is on the shelf or checked out (most catalogs can serve up that data) but in any case, accurate copy/shelf information has to be up-to-date to be reliable. <!-- stored from records pulled off their database. -->
 More in-depth information on establishing a connection to a contributing institution's Z39.50 catalog is available at the <a href="http://www.us.archive.org/biblio?f=connect">Internet Archive</a> <i>(password required).</i> 

<p> Once the required fields have been identified and imported, additional munging may be required to reflect workflow realities. In the case of the Boston Public Library, all microtext records had to be deleted as there was no microfilm scanner on-site.</p>

</p>


<p>Once the data has been imported, the user interface can be customized to meet the participating libraries needs. The following list reflects the customizable components of the user interface:


<a name="core"></a>

<br clear="all" />
<div class="alert">
<table cellpadding="5" cellspacing="0" border="0" width="100%"><tr><td width="50%" valign="top">
	<code class="normal"><b>Customizable Email Templates</b><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_request_email.tmpl">/templates/scan_request_email.tmpl</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_complete_email.tmpl">/templates/scan_complete_email.tmpl</a><br /><br />
	</code>

	<code class="normal"><b>Customizable HTML Templates</b><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_complete.tmpl">/templates/scan_complete.tmpl</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_confirm.tmpl">/templates/scan_confirm.tmpl</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_inprogress.tmpl">/templates/scan_inprogress.tmpl</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_login.tmpl">/templates/scan_login.tmpl</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_queue.tmpl">/templates/scan_queue.tmpl</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/templates/scan_review.tmpl">/templates/scan_review.tmpl</a><br /><br />
	</code>
	
	<code class="normal"><b>Scanning Centers and Record Lists</b><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/scanning_center">/scanning_center</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/scan_record">/scan_record</a><br /><br />
	</code>

	<code class="normal"><b>Scan-On-Demand Admin Group*</b><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/usergroup/scan">/usergroup/scan</a><br /><br />
	</code>
</td><td width="50%" valign="top">
	<code class="normal"><b>Scan-On-Demand Types</b><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record">/type/scan_record</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_location">/type/scan_location</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_location/available_books">/type/scan_location/available_books</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_location/name">/type/scan_location/name</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record">/type/scan_record</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/barcode">/type/scan_record/barcode</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/barcodes">/type/scan_record/barcodes</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/completion_date">/type/scan_record/completion_date</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/edition">/type/scan_record/edition</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/locations">/type/scan_record/locations</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/request_date">/type/scan_record/request_date</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/scan_status">/type/scan_record/scan_status</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/shelf">/type/scan_record/shelf</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/shelves">/type/scan_record/shelves</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/source_record_id">/type/scan_record/source_record_id</a><br />
	<img src="/static/images/arrow.red.png" alt="arrow"><a href="http://openlibrary.org/type/scan_record/sponsor">/type/scan_record/sponsor</a><br /><br />
	</code>
</td></tr></table>

</code>
</div>

<p>*Core team members from the participating library and scanning center must be identified and added to the <a href="http://openlibrary.org/usergroup/scan">administrator group.</a> Members of this group are added to the internal workflow mailing list and are permitted to work in the <a href="#queue">administrative interface.</a></p>

<p><a name="scod"></a><br />
   </p><p><a name="intro"></a></p><h2>User-Facing View</h2>

<p>Once the user interface has been customized, the books available for scan-on-demand from a participating library can be made available to users. At present, the books can only be discovered through limited means.
 A user can discover a scannable book if it is listed in the "scannable" facet in the search results. Scannable books are also presented as a <a href="http://openlibrary.org/scan_record">browsable list of scan records.</a> These records are also further broken down by <a href="http://openlibrary.org/scanning_center/MBMBN/BPL1ST">scan location.</a> More sophisticated methods of resource discovery will be built into future generations of Scan-On-Demand.</p>
<p>Scannable records are distinguished by a button underneath the graphical representation of the cover. When a user clicks this button, they are required to log in and, after a few simple prompts, the selected book is entered into the Scan-On-Demand workflow.</p>

<p align="center">
<a href="http://openlibrary.org/b/OL13440399M"><img src="/static/scanondemand/lost.trail.one.png" border="0"></a>
</p>

<p>One key prompt in this workflow notifies the user of the time it will take for a book be scanned. In the case of the Boston Public Library, three classes of books were identified:
 <b>Rare Books, Fine Arts,</b> and <b>Book Delivery.</b> A one-week window is the standard turnaround time for all three departments.

</ul>



<a name="email-hook-1"></a>

<p align="center">
<img src="/static/scanondemand/patronage.png" border="0">
</p>




<p align="center">
<a href="http://openlibrary.org/templates/scan_request_email.tmpl"><img src="/static/scanondemand/email.png" border="0"></a><br /><br />
<b>This email is generated by a user action, but only viewable by the administrative group.</b>
</p>

<p>Once the scan is initiated, an email is sent to a mailing list comprised of members of the participating library, the scanning center, and the Open Library team (defined as the administrator group in the <a href="#core">Data Import and UI Integration</a> step). The email contains important record information such as title, item, author, edition, publication date, call number, and bib number.</p>

<p>As a time-saving measure, the bar-code can be electronically generated and embedded in the email itself, so that the email can be printed and inserted into the physical book as a tracking method. This is a method currently in practice at the Internet Archive/LA scanning center to eliminate the reliance on pick lists which can impede workflow in an on-demand environment.</p>


<p><a name="queue"></a><br />
   </p><p><a name="intro"></a></p><h2>Administrator View</h2>
   <p> The Scan Queue is a web interface that organizes many of the functions of the Scan-On-Demand administrator view in a dashboard display. 
   The queue is sortable by book state and provides easy access to many key functions, most notably the scan record.</p>

<p align="center">
<a href="http://openlibrary.org/scan_queue/"><img src="/static/scanondemand/lost.queue.png" border="0"></a>
</p>

<p>
The scan record provides the interface for most of the key functions in the Scan-On-Demand workflow. This is where the scanner operator changes the state of a book in the workflow. The record provides a simple history view, and the ability for scanner operators to provide comments on the status of a book.</p>

<p align="center">
<a href="http://openlibrary.org/scan_record/b/OL13440399M"><img src="/static/scanondemand/lost.trail.pulldown.png" border="0"></a>



</p>



<br clear="all">
<br><a name="scanrecord"></a><br>

<p><a name="intro"></a></p><h2>The IA Book Identifier</h2>

<p>The IA Book Identifier is the critical piece of information in this process. It is what links the Open Library record to the scanned manifestation of the physical book. This information is entered during the final stage of the workflow, when the scanner operator changes the status of a book to "SCAN_COMPLETE."
 Multiple identifiers can be entered when the scanner operator selects the check box for a multi-volume work. As of this writing, there is no support for incomplete multi-volume sets.
</p>

<!-- <p align="center">
<a href="/a/OL19441A?m=change_cover"><img src="/static/scanondemand/summa.view.png" border="0"></a>
</p>
-->


<p align="center">
<a href="http://openlibrary.org/scan_record/b/OL7120086M"><img src="/static/scanondemand/multivolume.record.png" border="0"></a>
</p>

<p><b>WISH-LIST FEATURE:</b> The scanner operator will be prompted to select a suitable cover for the book from the first 10 pages of the scanned volume. This feature is currently in development, and works in tandem with the recently released <a href="http://openlibrary.org/tour#opencover">Open Library Covers API.</a></p>


<p align="center">
<img src="/static/scanondemand/pick.cover.png" border="0">
</p>


<p>Once the IA identifier has been successfully entered by the scanner operator, an email is sent to the original requester notifying them that the book they requested is available for digital download on Open Library.</p>

<p align="center">
<a href="http://openlibrary.org/templates/scan_complete_email.tmpl"><img src="/static/scanondemand/scan.complete.png" border="0"></a><br />
<a href="http://openlibrary.org/b/OL7120086M"><img src="/static/scanondemand/read.online.png" border="0"></a>
<br /><br /><b>This email is initiated by an administrative action, and is sent to the user (original requester)<br />and the administrative group to close the workflow cycle.</b>
</p>


<br clear="all"><br />
<a name="existing"></a>

<p><a name="intro"></a></p><h2>Existing Workflow Considerations</h2>

<p>The current Scan-On-Demand system was based on the physical workflow at the Internet Archive/SF and modified to suit the workflow realities of the Boston Scanning Center and BPL. 
Initial on-site meetings were conducted in May 2008 with members of Open Library and the Internet Archive. The goal of the meeting was to potentially integrate the existing elements into one cohesive system, and it was noted from the outset that tracking the book through the system was essential to the success of the tool. 
This section also introduces some key terminology used by Internet Archive scanning operators, and identifies the software programs and technology currently used in the workflow.</p>

<p>The overall workflow can be distilled as follows, although the process can differ at individual scanning centers:</p>

<ul>
	<li>Once a book is pulled, it arrives to the scanning center and is placed on a cart. </li>
	<li>The scanner operator places a color-coded tag (which simply identifies the books by which cart they came off of).</li>
	<li>The tag contains a GLADYS number if available and other information from the contributing library</li>
	<li>A book is pulled from the cart and "loaded" (given an IA identifier using the <b><a href="http://www.us.archive.org/biblio?f=help">BibTool</a></b>) - this is a manual process - duplicate entries are flagged and edited by operators.</li>
	<li>The book is then available for scanning on the <b>Scribe2</b> system.</li>
	<li>Once scanned, it is sent to the <b><a href="http://openlibrary.org/dev/docs/ia#petabox">petabox</a></b> for processing (this is where the book is derived into its various formats: PDF, .txt, DjVu, FlipBook etc.).</li>
	<li>At this point, it appears in the <b><a href="http://www.us.archive.org/metamgr.php?w_mediatype=texts&w_scancenter=!null&srt=updated&ord=desc">MetaManager</a></b> queue (once it passes QA and processing) with all of the other submissions from users of archive.org</li>
</ul>


<p>It was noted during that meeting that it would be ideal if there was a system where people could sign off on:

<ul>
	<li>when a book is <b>checked</b> in</li>
	<li><b>flagged</b> (this is the QA term for books that do not pass inspection)</li>
	<li><b>loaded</b> (this currently entails creating an IA identifier with the BibTool [<a href="/static/scanondemand/BibTool.png" title="Steve Sisney's BibTool (click on image to return to document)">screenshot</a>])</li>
	<li>which books are <b>priority</b></li>
	<li><b>scan in progress</b>  (book on Scribe2)</li>
	<li><b>scan completed</b> (URL sent to patron --> processed at petabox --> MetaManager queue [<a href="/static/docs/metamgr.short.png" title="Steve Sisney's Metamanager (click on image to return to document)">screenshot</a>])</li>
</ul>

<p>The final prototype created for use with the Boston Public Library simplified the steps outlined in this initial workflow, but it is interesting to note what could be considered in a more comprehensive quality assurance/workflow management system.

<br clear="all"><br />
<a name="nextsteps"></a>

<p><a name="intro"></a></p><h2>Next Steps</h2>

<h3>Digital ILL</h3>

<p>The next steps for Scan-On-Demand will involve getting more catalogs from libraries interested in participating. At that time, we can move towards a Digital ILL environment. If a book cannot be found on the shelf of a participating library, a request for an in-depth search will be initiated and forwarded to other participating institutions. 
 The original requester will be notified by email that the search is still in progress.

<h3>Stats</h3>

<p>Support for statistics is a service that Open Library would like to offer with Scan-On-Demand. Providing this type of service would help libraries keep costs down since they would have to develop the same type of system in-house. Interesting stats include requests received versus actually filled. Repeat requests for an unavailable book would also help libraries update their catalogs by purging obsolete records. There is some interest in migrating towards a system similar to <a href="http://launchpad.net/">launchpad.net.</a> This could be a viable option when more libraries begin participating and the workflow can potentially be distributed.</p>

<h3>Outreach</h3>

<p>Interesting ideas for outreach have been brainstormed during the planning of Scan-On-Demand.
 One scenario involves initiating the request at the front desk of a participating library when the physical book is checked out.
  The patron would receive a hard copy and then be asked if they would like a digital copy as well. The key will be getting the book in the requester's hands as soon as possible -
so scanning would be done after a person uses the book. In essence, a user voted for the book just by the fact that they requested it.
</p>

<!-- <br /><br />
 <span class="green"><a href="http://wiki-beta.us.archive.org/static/scanondemand/revision2.scod-ill.png">← View Scan-on-Demand / Digital ILL Diagram</a></span> -->
title: How Scan-On-Demand Works