33
Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library [email protected] Tom Trutt E-Reserve & Access Services Specialist Mann Library [email protected]

Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

  • View
    216

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Re-using Metadata from the Voyager Library Catalog

– CUL Metadata Working Group –

Friday October 19, 2007

Nick CappadonaInterface DesignerMann [email protected]

Tom TruttE-Reserve & Access Services SpecialistMann [email protected]

Page 2: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Background

• Problems pulling due date & times for multiple items (Suppressed from OPAC)

• Slow response time from the OPAC for reserves searches

• Window clutter

Page 3: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Solution 1• Microsoft Access Database

– Used an ODBC connection, via Microsoft Jet– Form Based

The Advantages• Allowed access to high use items

• Slow• Yet another open window• Interface issues

– Non-intuitive GUI• Not easily customizable

The Disadvantages

Page 4: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Solution 2• System tray based program

– Written in Visual Basic .NET

• Query Voyager’s database directly– OLeDB connection

• Small footprint• Faster response times• Ability to filter reserves by location• Customizable searches

The Advantages

Page 5: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The Interface

Runs From The System Tray

Right clicking on the icon will bring up available reports.

Page 6: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Checking Study Room Availability

Item Description Current Due Date and Time

Charged Rooms Highlighted In Yellow Overdue Rooms Highlighted In RedFree Rooms Are Not Highlighted

Page 7: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Checking Course Reserves

Toggles Between Mann Only and All of CUL Course Listing

Shows Selected Course Materials

Page 8: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Course Materials Listing

Reserves Item Information

Current Status Information, Reserve Location and Owning Location

Items are color coded as to current charged status

Page 9: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

BIB_ITEM

BIB_ID ITEM_ID ADD_DATE OPERATOR_ID

BIB_TEXT

PK BIB_ID

AUTHOR TITLE TITLE_BRIEF UNIFORM_TITLE ....

MFHD_ITEM

MFHD_ID ITEM_ID ITEM_ENUM CHRON YEAR CAPTION FREETEXT

CIRC_TRANSACTIONS

PK CIRC_TRANSACTION_ID

ITEM_ID CIRC_POLICY_MATRIX_ID PATRON_ID .... CHARGE_DATE ... CURRENT_DUE_DATE ...

ITEM

PK ITEM_ID

PERM_LOCATION TEMP_LOCATION ITEM_TYPE_ID TEMP_ITEM_TYPE_ID COPY_NUMBER ON_RESERVE ....

TITLEAUTHOR

COPY_NUMBER

ITEM_ENUMCHRON

CHRAGE_DATE

CURRENT_DUE_DATE

BIB_STATUS_LOOKUP

TITLEITEM_ENUMCHRONCHARGE_DATECURRENT_DUE_DATE

Pull Status by BibID

Page 10: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

In Other Words …

Where “X” is equal to the bib id of the items you wish to view.

SELECT BIB_TEXT.TITLE, MFHD_ITEM.ITEM_ENUM, MFHD_ITEM.CHRON, CIRC_TRANSACTIONS.CHARGE_DATE, CIRC_TRANSACTIONS.CURRENT_DUE_DATE, ITEM.COPY_NUMBERFROM ITEM INNER JOIN (CIRC_TRANSACTIONS RIGHT JOIN (MFHD_ITEM INNER JOIN (BIB_TEXT INNER JOIN BIB_ITEM ON BIB_TEXT.BIB_ID = BIB_ITEM.BIB_ID) ON MFHD_ITEM.ITEM_ID = BIB_ITEM.ITEM_ID) ON CIRC_TRANSACTIONS.ITEM_ID = BIB_ITEM.ITEM_ID) ON ITEM.ITEM_ID = BIB_ITEM.ITEM_IDWHERE (((BIB_ITEM.BIB_ID)="X"));

TITLE ITEM_ENUM CHRON COPY_NUMBER CHARGE_DATE CURRENT_DUE_DATEMann Library Circulation Study Rooms. Room 271 1Mann Library Circulation Study Rooms. Room 272 1Mann Library Circulation Study Rooms. Room 378 1Mann Library Circulation Study Rooms. Room 381 1 23-Dec-04 31-Dec-06Mann Library Circulation Study Rooms. Room 478 1 18-Aug-06 28-May-07Mann Library Circulation Study Rooms. Room 480 1 30-Aug-06 30-Dec-06Mann Library Circulation Study Rooms. Room 481 1 30-May-06 18-Dec-06

If an item is not charged the “CHARGE_DATE” and “CURRENT_DUE_DATE” fields return as “null” or remain empty.

Query

Query results

Page 11: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

COURSE

PK COURSE_ID

COURSE_NAME NORMAL_COURSE_NAME COURSE_NUMBER NORMAL_COURSE_NUMBER BEGIN_DATE END_DATE CIRC_CLUSTER_ID

Pull Course Listing

INSTRUCTOR

PK INSTRUCTOR_ID

LAST_NAME NORMAL_LAST_NAME FIRST_NAME TITLE CIRC_CLUSTER_ID

RESERVE_LIST_COURSE

RESERVE_LIST_ID DEPARTMENT_ID INSTRUCTOR_ID COURSE_ID SECTION_ID

RESERVE_LIST

PK RESERVE_LIST_ID

RESERVE_LOCATION LIST_TITLE NORMAL_LIST_TITLE EFFECT_DATE EXPIRE_DATE CREATE_DATE CREATE_OPID CREATE_LOCATION_ID UPDATE_DATE UPDATE_OPID UPDATE_LOCTATION_ID

RESERVE_LIST_ID

LAST_NAME

FIRST_NAME

COURSE_NUMBER

COURSE_NAME

COURSE_LISTING

RESERVES_LIST_IDCOURSE_NUMBERCOURSE_NAMEFIRST_NAMELAST_NAME

Page 12: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

An Example

SELECT RESERVE_LIST.RESERVE_LIST_ID, COURSE.COURSE_NUMBER, COURSE.COURSE_NAME, INSTRUCTOR.FIRST_NAME, INSTRUCTOR.LAST_NAMEFROM COURSE, RESERVE_LIST_COURSES, RESERVE_LIST, INSTRUCTORWHERE (((COURSE.COURSE_ID)=[RESERVE_LIST_COURSES].[COURSE_ID]) AND ((RESERVE_LIST_COURSES.RESERVE_LIST_ID)=[RESERVE_LIST].[RESERVE_LIST_ID]) AND ((RESERVE_LIST_COURSES.INSTRUCTOR_ID)=[INSTRUCTOR].[INSTRUCTOR_ID]) AND ((RESERVE_LIST.RESERVE_LOCATION)="79")) AND

((RESERVE_LIST.EFFECT_DATE)<Now()) AND ((RESERVE_LIST.EXPIRE_DATE)>Now()))ORDER BY COURSE.COURSE_NUMBER;

“79" corresponds to our reserves location, “Mann Reserve”. If removed the query will pull all reserves locations.

RESERVE_LIST_ID COURSE_NUMBER COURSE_NAME FIRST_NAME LAST_NAME11719 DEA 111 Making a difference: by design Sheila Danko6843 DEA 250 Environment and Social Behavior Gary Evans7242 DEA 303 Interior Materials and Sustainable Elem Rhonda Gilmore5035 DEA 325 Human Factors: Ergonomics-Anthropometri Alan Hedge9058 DEA 401 research class Gary Evans8173 DEA 408 DESIGN STUDIO VIII Sheila Danko

The “RESERVE_LIST_ID” that is shown here is passed to the second query to obtain the item lists for that class

Query

Query Results

Page 13: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

COURSE_LISTING

RESERVES_LIST_IDCOURSE_NUMBERCOURSE_NAMEFIRST_NAMELAST_NAME

Pull Course Materials

RESERVE_LIST_ITEMS

RESERVE_LIST_ID ITEM_ID

MFHD_ITEM

MFHD_ID ITEM_ID ITEM_ENUM CHRON YEAR CAPTION FREETEXT

MFHD_MASTER

PK MFHD_ID

LOCATION_ID CALL_NO_TYPE NORMALIZED_CALL_NO DISPLAY_CALL_NO ....

BIB_ITEM

BIB_ID ITEM_ID ADD_DATE OPERATOR_ID

BIB_TEXT

PK BIB_ID

AUTHOR TITLE TITLE_BRIEF UNIFORM_TITLE ....

CIRC_TRANSACTIONS

PK CIRC_TRANSACTION_ID

ITEM_ID CIRC_POLICY_MATRIX_ID PATRON_ID .... CHARGE_DATE ... CURRENT_DUE_DATE ...

ITEM

PK ITEM_ID

PERM_LOCATION TEMP_LOCATION ITEM_TYPE_ID TEMP_ITEM_TYPE_ID COPY_NUMBER ON_RESERVE ....

LOCATION1

LOCATION_ID LOCATION_CODE LOCATION_NAME LCOATION_DISPLAY_NAME ....

ITEM_ENUMCHRON

DISPLAY_CALL_NO

AUTHORTITLE

CHARGE_DATE

CURRENT_DUE_DATE

COPY_NUMBER

LOCATION_DISPLAY_NAME

RESERVES_LIST_ITEMS

TITLEAUTHORITEM_ENUMCHRONCOPY_NUMBERDISPLAY_CALL_NOCHAREG_DATECURRENT_DUE_DATEITEM_TEMP_LOCATION

LOCATION1

LOCATION_ID LOCATION_CODE LOCATION_NAME LCOATION_DISPLAY_NAME ....

LOCATION_DISPLAY_NAME

Page 14: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

An Example

SELECT BIB_TEXT.TITLE, BIB_TEXT.AUTHOR, MFHD_ITEM.ITEM_ENUM, MFHD_ITEM.CHRON, ITEM.COPY_NUMBER, MFHD_MASTER.DISPLAY_CALL_NO, CIRC_TRANSACTIONS.CHARGE_DATE, CIRC_TRANSACTIONS.CURRENT_DUE_DATE, LOCATION_1.LOCATION_NAME AS Temp_Location, LOCATION.LOCATION_NAME AS Perm_LocationFROM LOCATION AS LOCATION_1 RIGHT JOIN (LOCATION RIGHT JOIN (BIB_TEXT INNER JOIN (CIRC_TRANSACTIONS RIGHT JOIN (ITEM INNER JOIN (((RESERVE_LIST_ITEMS INNER JOIN MFHD_ITEM ON RESERVE_LIST_ITEMS.ITEM_ID = MFHD_ITEM.ITEM_ID) INNER JOIN BIB_ITEM ON RESERVE_LIST_ITEMS.ITEM_ID = BIB_ITEM.ITEM_ID) INNER JOIN MFHD_MASTER ON MFHD_ITEM.MFHD_ID = MFHD_MASTER.MFHD_ID) ON ITEM.ITEM_ID = RESERVE_LIST_ITEMS.ITEM_ID) ON CIRC_TRANSACTIONS.ITEM_ID = RESERVE_LIST_ITEMS.ITEM_ID) ON BIB_TEXT.BIB_ID = BIB_ITEM.BIB_ID) ON LOCATION.LOCATION_ID = ITEM.PERM_LOCATION) ON LOCATION_1.LOCATION_ID = ITEM.TEMP_LOCATIONWHERE (((RESERVE_LIST_ITEMS.RESERVE_LIST_ID)="X") AND ((ITEM.TEMP_LOCATION) In ("79")))ORDER BY BIB_TEXT.TITLE;

“Optional”

Where “X” is equal to RESERVE_LIST_ID from the first query.

TITLE AUTHOR ITEM_ENUM CHRON COPY_NUMBER DISPLAY_CALL_NO CHARGE_DATE CURRENT_DUE_DATE Temp_Location Perm_Location*Electronic Reserve Readings For DEA 250 Fall 2006 Evans 0

Electronic Reserve No call number Mann Reserve Mann Reserve

7 habits of highly effective people : restoring the character ethic / Stephen R. Covey.

Covey, Stephen R. 1 BF637.S8 C68 2004 9/18/2006 12:04 9/18/2006 14:04 Mann Reserve Hotel

Accessible housing design file / Barrier Free Environments Incorporated. 1 NA2545.P5 A17 Mann Reserve Fine Arts

Adolescence / Laurence Steinberg.

Steinberg, Laurence D., 1952- 1 HQ796 .S81x 1996 Mann Reserve Mann

If an item is not charged the “CHARGE_DATE” and “CURRENT_DUE_DATE” fields return as “null” or remain empty.

Query

Query Results

Page 15: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Meanwhile…

• Our Web site was under the knife• Refocused as a research tool• Empowering our patrons• Moonlighting in e-reserves

Page 16: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

So what about those patrons?

• What if they could check the status of a study room?

• Our GPS units and camcorders?• Laptops?• Course Reserves?• And …

Page 17: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Study Rooms

Page 18: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Equipment & Laptops

Page 19: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Course Reserves

Page 20: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Behind the Scenes

• SQL + ColdFusion

Page 21: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Tom’s SQL

Database connection is predefined in Coldfusion AdministratorResults are cached for 2 minutes

Page 22: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library
Page 23: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Course Reserves: A Slight Twist

• SQL + ColdFusion + Javascript + elbow grease

Page 24: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

ajaxCFC http://www.robgonda.com/blog/projects/ajaxcfc

• ColdFusion framework• Middleman between JavaScript and

ColdFusion• Packaged with Direct Web Remoting (DWR)

– http://getahead.ltd.uk/dwr

• Returns pure JavaScript

Page 25: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Course Reserves

• Initial query for course list is handled the same way as equipment and rooms

• SQL + ColdFusion XHTML

• Used to populate select field

Page 26: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

More on Course Reserves

• When a course is selected, a JavaScript function is called

path to listener CFC

scriptName

methodName

argument

call-back function

Page 27: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The ColdFusion Component (CFC)

• Arguments are passed to the CFCmethodName

Argument (ex. 5309,BIO G 109: Biological Principles,1234)

Page 28: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The ColdFusion Component (CFC)

• The selectedReserveID is passed to the secondary query

Page 29: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The ColdFusion Component (CFC)

• The selectedCourseID is used to build the link to the e-reserves listing in the library catalog

finally, the query results are returned to the pagevia a JavaScript structure

Page 30: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The Call-Back Function

• Resides on the requesting page• Receives the returned results• Incorporates DWR utility functions to alter the

page

Page 31: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The Call-Back in Action

Determine table heading based on selected course

Clear table body with id=“returnedItems”

Populate table using DWRUtil.addRows and cellFuncs

Page 32: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

The Call-Back in Action

Page 33: Re-using Metadata from the Voyager Library Catalog – CUL Metadata Working Group – Friday October 19, 2007 Nick Cappadona Interface Designer Mann Library

Handy Tools for Circulation and the Web

– Endeavor Mid-Atlantic Users Group Meeting 2006 –

Hamilton College

Tuesday October 3, 2006Nick CappadonaInterface DesignerMann [email protected]

Tom TruttE-Reserve & Access Services SpecialistMann [email protected]