Springing into Evergreen 2.x ============================ :author: Dan Scott :copyright: 2011 Laurentian University :backend: slidy :data-uri: :max-width: 45em :icons: :duration: 60 This talk is licensed under a http://creativecommons.org/licenses/by-sa/2.5/ca/[Creative Commons, Attribution, Share Alike license]. image::images/cc_by_sa_360.png[] Evergreen's code is licensed under the http://www.gnu.org/licenses/old-licenses/gpl-2.0.html[GNU General Public License, version 2] or later. Important stuff up front ------------------------ * 2.x upgrade schedule * Communication channels Upgrade to 2.x: schedule ------------------------ Goal for May: upgrade to newest version of Evergreen without loss of existing functionality [width="80%",cols="2,5",options="header"] |======================================================================= | Now -> end of May | Testing and (re)training with 2.x functionality | Friday, April 8th | Upgrade test server to 2.0.5 | Friday, April 15th | Port catalogue skins to 2.0.x | Wednesday, April 20th | Upgrade test server to 2.1 beta | Week of April 25th | Evergreen Conference | Week of May 2nd | Port circulation rules to 2.1 (in-database) | Week of May 16th | Final testing: public interface, circulation, cataloguing | Weekend of May 20th | Upgrade to 2.1 | Weekend of May 27th | Contingency: Upgrade to 2.1 |======================================================================= Communication ------------- * Conifer is a consortium, not a set of individual libraries * Preference is to discuss first and get it right once across most or all libraries * Channels: ** Many-to-many: http://groups.google.com/group/conifer-discuss[Conifer discussion list] ** Many-to-many (specialized): Circulation / Cataloguing / Public interface groups ** One-to-many: http://biblio.laurentian.ca/tickets/conifer[Conifer tickets] ** One-to-one: Contact individual Conifer systems person *** Perfectly appropriate for *SYSTEM IS DOWN!* Evergreen release timeline -------------------------- [width="80%",cols="2,5",options="header"] |=========================== |Release |Date |1.0 |September 2006 |1.2 |July 2007 |1.4 |January 2009 |1.6.0 |November 2009 |1.6.1 |June 2010 |2.0 |January 2011 |2.1 beta |April 2011 |=========================== Steady pace of releases featuring enhancements over time; so what's _not_ in 2.0? Configurable - Blessing / Curse ------------------------------- Before you ask, almost everything in Evergreen is configurable; too configurable, perhaps... image::images/administration_local.png[] Public catalogue features ------------------------- * Added content (cover images, reviews, etc) from many sources: ** OpenLibrary (default, cover images, tables of content) *** *Conifer is adopting OpenLibrary as its content provider* ** ChiliFresh (reviews) - _not Conifer_ ** ContentCafe (reviews) - _not Conifer_ ** Syndetic (cover images, reviews, author biographies, notes) - _not Conifer anymore_ ** Google Books (full or partial previews) ** Amazon (cover images) - _not Conifer_ * Improved faceting: ** Displays record counts for each facet ** Selection is ANDed to current search, multiple facets supported ** Facets derived predictably from records returned in search results Public catalogue - Basic search ------------------------------- image::images/opac_basic_results.png[] Public catalogue - Advanced search ---------------------------------- * Search with truncation operators ("child*") * Search with Boolean operators (AND, OR, NOT) image::images/opac_advanced.png[] ifndef::backend-slidy[] * Exact phrase searching: '''"quote text"''' * NOT operator by prefixing word or phrase with hyphen: '''-notgonnaincludeme''' * Search specific indexes by prefixing index name: '''title:who has seen the wind''' * Search more granular indexes by prefixing index name and subindex: '''author|personal:margaret atwood''' * Limit search to specific shelving locations * Specify MARC item type / format characteristics in excruciating detail * Search specific tag/subfield combinations endif::backend-slidy[] Public catalogue - Features (2) ------------------------------- * Display of arbitrary MARC data (_BibTemplate_) in search results and record details image::images/opac_reset_password.png[float="right"] * Patrons can update their own contact information, reset their passwords * Call number browse normalized to per-library classification scheme (Dewey and LC supported out of the box) * **Missing**: a full-featured catalogue suitable for low-bandwidth connections or Internet Explorer ** A working proof of concept has been developed; with some work it could completely replace the existing catalogue * **Missing**: significant social features such as patron-generated reviews, ratings ** There is some exploratory code in this area outside of 2.0; see http://coffeecode.net/archives/237-Standard-Social-Sharing-and-Aggregation-on-the-Go-Access-2010-presentation.html[this Access 2010 presentation] ifndef::backend-slidy[] ** Current catalogue is an Ajax dream/nightmare ** Makes many requests, which can take a long time to complete over a low-bandwidth connection ** Internet Explorer has a terrible time managing memory in JavaScript and quickly slows to a crawl (or crashes Windows entirely) ** ... Development team hopes to rewrite the catalogue to be bandwidth/mobile/Internet Explorer-friendly endif::backend-slidy[] Cataloguing - Authorities ------------------------- * Categories of authorities: ** Author: 100‡a, 110‡a, 111‡a ** Subject: 148‡a, 150‡a, 151‡a, 155‡a ** Title: 130‡a ** Topic: 150‡a * Changes to an authority propagate to linked bibliographic records * A http://svn.open-ils.org/trac/ILS/browser/trunk/Open-ILS/src/support-scripts/authority_control_fields.pl[script] is available to link bibliographic records against authorities ** We will run this script for Conifer's authority records ** First we have a massive amount of de-duplication to tackle, because we loaded all of Windsor and Laurentian's authority records when we migrated to Conifer Importing authorities --------------------- * Authorities in MARC or MARCXML format can be imported via the MARC Batch Import/Export tool * Once authorities have been de-duplicated, duplicate authorities are prevented in the future image::images/staff_client_vandelay_import.png[] Managing authorities -------------------- image::images/authority_manager.png[] Editing an authority record --------------------------- * **Actions -> Edit** opens the authority record in a MARC editor: image::images/authority_edit.png[] Editing an authority record: result ----------------------------------- image::images/authority_edit_result.png[] Merging authority records ------------------------- * **Action -> Merge** enables you to merge two or more authority records * Linked bibliographic records get linked to the master authority record image::images/authority_merge.png[] Controlling fields manually --------------------------- * Fields in bibliographic records that are controlled by an authority record will be linked via a $0 subfield per MARC rules * Right-clicking a field in the MARC Editor triggers an alphabetical browse of available authority records, including 4xx and 5xx matches * Ability to create an authority record on the fly * **Missing**: linkage between authority records (5xx) Browsing authority records -------------------------- * The classic MARC editor offers an authority browser on controllable fields image::images/authority_browse.png[] Cataloguing - Serials --------------------- image::images/serials_options.png[float="right"] * Not just one, but two user-friendly interfaces for predicting and receiving serials ** And one raw MFHD interface for the hardcore * Procedure: 1. Create a _subscription_ 2. Add the _captions and patterns_ for the serial 3. Add a _distribution_ with a copy attribute template 4. Create one issuance for that combination of subscription and distribution 5. Generate predictions starting from that issuance 6. Receive the issues Serials - Enumeration wizard ---------------------------- image::images/serial_pattern_enumeration.png[] Serials - Chronology wizard ---------------------------- image::images/serial_pattern_chronology.png[] Serials - Frequency wizard ---------------------------- image::images/serial_pattern_compress_frequency.png[] Serials - Predictions --------------------- * Once you have a pattern, you can generate predictions! image::images/serial_generate_predictions.png[] Serials - Check in ------------------ * Once you have predicted issues and created a copy template, you can receive serials image::images/serials_receiving.png[] Serials - Missing in action --------------------------- Some important functionality is still missing in action: * Serials claiming has not yet been implemented * Display of records with hundreds of barcoded issues is still a problem ** Thankfully, Art Rhyno's https://bugs.launchpad.net/evergreen/+bug/491594[workaround] can be adapted to 2.x ** New catalogue does a much better job of handling this situation * Placing holds on specific issues is only available to staff by default; see also display of records with hundreds of barcoded issues Cataloguing - Flat-text MARC editor ----------------------------------- * Switch between flat-text MARC editor and classic editor on the fly image::images/marc_editor_flat_text.png[] Cataloging - Classification and call numbers -------------------------------------------- * Configurable classification scheme defines default call number selection per library (Dewey, LC, and generic out of the box) * Spine labels ** Configurable call number prefix & suffix per shelving location ** Configurable font and label sizes per library * *2.1* adds call number prefixes and suffixes per call number Copy location editor -------------------- image::images/copy_location_editor.png[] Spine label editor ------------------ image::images/spine_label.png[] Circulation - Patron registration --------------------------------- * Register a patron in a single screen (seven screens prior to 2.0!) image::images/patron_editor.png[] Circulation - Rules ------------------- image::images/circulation_policy_editor.png[float='right'] * Staff client interface for defining duration and fine rules based on criteria including: ** item circulation modifier ** item type, format, videorecording format ** owning library ** circulating library ** reference state ** type of patron ** age of patron * *2.1*: Grace periods can be defined per rule, instead of current global ''0 or 1 fine intervals'' * *2.1*: Improved support for fine calculations for intervals of less than 1 day Circulation - Multi-item sets ----------------------------- * **Missing in 2.0**: ability to catalogue multiple items as a single set (for example, _Play harmonica today!_ consisting of a book, CD, and harmonica) ** Current workaround is to assign just a single barcode to the complete set ** *2.1* brings multi-item set support * Some support, via **Mark Missing Pieces** at check-in (albeit for only a single barcode) ** Changes item status to ''Damaged'' ** Prints an item slip ** Prints a notification letter ** Adds a note to the patron's record ** Item remains checked out to patron's account until resolved Circulation - Mark Missing Pieces --------------------------------- image::images/mark_missing_pieces.png[] Circulation - Missing pieces (confirm and note) ----------------------------------------------- image::images/mark_missing_pieces_ok.png[] image::images/mark_missing_pieces_note.png[] Circulation - Missing pieces patron note ---------------------------------------- image::images/mark_missing_pieces_patron_notes.png[] Circulation - Bound-withs ------------------------- * The inverse of the multi-part item is two or more separate works bound together in a single item. For example: ** Collections of pamphlets in a single bound volume ** _tête-bêche_ - popular for Canadian bilingual governement documents ** Thousands of books on a single e-reader * **Missing**: Evergreen currently provides no support for separate bibliographic records that can be linked to a single barcode ** *2.1* brings bound-with set support Circulation - Hard due dates ---------------------------- * Most loan durations are expressed as an interval of time ("2 weeks", "4 hours") * Academics needed a way to set "End of term" due dates, so now hard due dates enable you to ** Set a _ceiling_ for regular loan durations ** Or set due dates for all affected items to the hard due date image::images/circ_hard_due_dates.png[] Circulation - Holds ------------------- * Optional first-in, first algorithm (**new**) vs. classic "minimize transit distance" algorithm * Patrons can: ** See estimated wait time, hold queue details ** Cancel and recreate holds ** Change pickup location before the hold is ready for pickup ** Place holds on on-order items ** Create holds from bookbags (_KCLS skin?_) * Staff can: ** Add custom notes to hold slips ** Force a patron to the front of the queue (for example, if the held item was damaged) * System can be configured to disallow holds for items that are on the shelf Circulation - Notifications --------------------------- * Out of the box, email, print, and telephone notification is supported (Asterisk PBX server not included) * Pre-defined events that trigger notification include: ** Holds are available or expiring ** Pre-overdue reminders ** Items are overdue or marked as lost ** Password resets ** Self-checkout receipts ** Results of a patron request (ordered, received, cancelled, rejected) Booking / reservations ---------------------- * If you have all items of a reservable type attached to a single bibliographic record, the booking module can help ** "Video Projector", "Study Room", "Laptop", etc * Staff can reserve items on behalf of patrons for time slots in the future * Limitation: Reserved items are "picked up" by patrons, rather than checked out ** Does not count as a circulation ** Does not trigger circulation rules Booking - Create reservation ---------------------------- image::images/booking_create_reservation.png[] Booking - Capture reservation ----------------------------- image::images/booking_capture.png[] Booking - Pick up reservation ----------------------------- image::images/booking_pickup.png[] Circulation - Other ------------------- * Sets of items * Transaction logging (who accepted payment for what?) * Merge patrons * Delete patrons (anonymizing all transaction history) * Amnesty mode * Built-in self-check supports credit card payments (Canadian usage unknown) * Backdated check-ins retain actual check-in time as well as backdate * **Missing**: Built-in academic reserves ** University of Windsor has implemented and adopted http://svn.open-ils.org/trac/ILS-Contrib/wiki/SyrupReserves[Syrup] reserves system Acquisitions ------------ * In preview mode since 1.6.0, acquisitions has been unleashed in 2.0.0: ** Funding sources and funds ** Multiple currencies and exchange rates ** Provider (vendor) management Acquisitions - Funding sources ------------------------------ image::images/funding_sources.png[] Acquisitions - Funds -------------------- image::images/funds.png[] Acquisitions - Providers ------------------------ image::images/acquisitions_providers.png[] Acquisitions - Ordering ----------------------- * There are a number of ways of ordering in Evergreen: ** Manually creating selection lists and invoices ** Generating an EDI ORDERS message (the provider's ORDRSP can be used to update price and status information) ** Using the provider's selection interface and loading their MARC order records * EDI has been tested so far with: ** Baker & Taylor ** Brodart ** Midwest Tapes ** Ingram * Documentation on how to use most of the advanced features in acquisitions is http://docs.evergreen-ils.org[now available] Integration ----------- * Z39.50 client for copy cataloguing * SRU and Z39.50 server interfaces for external clients * SIP server support for self-checkout and authentication * OpenURL support: ** http://coffeecode.net/archives/194-SFX-target-parser-for-Evergreen-and-some-thoughts-about-searching-identifiers.html[Basic SFX target parser] ** Cached SFX lookups for electronic resource display in search results (post-2.0 but available now) * **Missing**: ability to delegate authentication to an external service (LDAP, OpenID, Shibboleth, etc) Documentation ------------- * Team co-led by Robert Soulliere at Mohawk College has produced http://docs.evergreen-ils.org/[a solid draft for 1.6.0] ** Full HTML and PDF versions available * Staff client supports separate help page for each staff client interface * **In progress**: ** 2.0 documentation ** Actual help content for staf client Independence and governance --------------------------- * Development team features a more diverse mix of active committers: ** Currently 4/9 from outside of Equinox (arguably 2/7) * Increasing quantity of patches contributed by, and bugs opened and answered by, the community * Community has self-organized into a number of ad-hoc teams / committees: ** Developer team ** Communications / Web team ** Documentation team ** Reports committee ** Conference committee * Governance committee was struck at the 2010 Evergreen Conference ** Currently working on forming a fiscal sponsorship agreement with the http://sfconservancy.org[Software Freedom Conservancy] ** Has also held healthy debates about how the governance committee should renew itself, what membership means, etc Upgrade to 2.x: schedule ------------------------ Goal for May: upgrade to newest version of Evergreen without loss of existing functionality [width="80%",cols="2,5",options="header"] |======================================================================= | Now -> end of May | Testing and (re)training with 2.x functionality | Friday, April 8th | Upgrade test server to 2.0.5 | Friday, April 15th | Port catalogue skins to 2.0.x | Wednesday, April 20th | Upgrade test server to 2.1 beta | Week of April 25th | Evergreen Conference | Week of May 2nd | Port circulation rules to 2.1 (in-database) | Week of May 16th | Final testing: public interface, circulation, cataloguing | Weekend of May 20th | Upgrade to 2.1 | Weekend of May 27th | Contingency: Upgrade to 2.1 |======================================================================= Communication ------------- * Conifer is a consortium, not a set of individual libraries * Preference is to discuss first and get it right once across most or all libraries * Channels: ** Many-to-many: http://groups.google.com/group/conifer-discuss[Conifer discussion list] ** Many-to-many (specialized): Circulation / Cataloguing / Public interface groups ** One-to-many: http://biblio.laurentian.ca/tickets/conifer[Conifer tickets] ** One-to-one: Contact individual Conifer systems person *** Perfectly appropriate for *SYSTEM IS DOWN!* Testing - Circulation --------------------- * Rules calculate fines correctly for most common categories * Scheduled reports continue to provide accurate (or more accurate) information * Reminder / overdue notices generated appropriately for all languages * Item history / patron history * Fine payments * Fields that we have hidden locally (date of birth, internet filtering) should stay hidden * *New*: Set due time as well as due date * *New*: Ensure 'Renew items' interface works correctly * *New*: Adopt bookings / reservations at some locations? Testing - Cataloguing --------------------- * Located URIs for electronic resources ** Ingest multiple URIs successfully ** Remove URIs and reingest to enable deleting a record * Spine labels ** Printing still works ** *New* Set per-library formatting defaults ** *New* Prefixes / suffixes by shelving location * Call numbers ** *New* Default to LC or Dewey on a per-library basis ** *New* Improved call number sorting * Serials ** Raw MFHD approach still works ** *New* User-friendly predictions and check-ins * *New* Authorities management and use Testing - Public interface -------------------------- * Display URI / call number / location / availability in search results * SFX lookups * Local branding in skins * French / English interfaces * Zotero support * Keyword / title / author / subject / series searches (including phrases) * *New* Advanced search options ** Boolean OR ** Wildcard '*' truncation operator ** Identifier indices Testing - System integration ---------------------------- * RACER integration ** Accurate ISSN / ISBN search via Z39.50 * Self-check machines ** Supports Unicode characters in patron names / item metadata Summer projects --------------- * Automate synchronization of Laurentian user information ** Depends heavily upon Information Technology Services, the gatekeepers to this information ** We have worked out a technical path to synchronize user accounts, including name, email address, contact information, password, program and enrolment status * In-database circulation: ** First, adopt it at time of upgrade (converting existing scripted rules to in-database logic) ** Second, enable local administrators to adjust their rules according to local requirements * "Syrup" reserves: ** Continue to encourage faculty to link to electronic resources from Desire2Learn ** If time allows, set up a limited Syrup instance for Laurentian to support physical resources * Acquisitions: ** No urgent need at J.N. Desmarais to adopt Evergreen acquisitions ** Could begin by loading last few years of acquisitions history, then load current year one month at a time until cut over? * New pure HTML catalogue (speed and stability) ** Some significant differences in applying local customizations * Discovery ** Contribute on an as-needed basis to Windsor's "single search" effort for searching all electronic and print resources from one search box * Update of union catalogues (AMICUS, WorldCat, ...)