Invenio as a library system. Replacing Aleph at DESY library - - PowerPoint PPT Presentation

invenio as a library system
SMART_READER_LITE
LIVE PREVIEW

Invenio as a library system. Replacing Aleph at DESY library - - PowerPoint PPT Presentation

Invenio as a library system. Replacing Aleph at DESY library Alexander Wagner Garching, 22.03.2017 4 th IUGW Overview > Invenio BibCirculation 1.1 > Bibliographic > Patrons > Holdings > Circulation history Alexander Wagner |


slide-1
SLIDE 1

Invenio as a library system.

Replacing Aleph at DESY library

Alexander Wagner 4th IUGW Garching, 22.03.2017

slide-2
SLIDE 2

Overview

> Invenio BibCirculation 1.1 > Bibliographic > Patrons > Holdings > Circulation history

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 2

slide-3
SLIDE 3

Overview

> Invenio BibCirculation 1.1 > Bibliographic > Patrons > Holdings > Circulation history

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 2

slide-4
SLIDE 4

Overview

> Invenio BibCirculation 1.1 > Bibliographic > Patrons > Holdings > Circulation history

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 2

slide-5
SLIDE 5

Overview

> Invenio BibCirculation 1.1 > Bibliographic > Patrons > Holdings > Circulation history

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 2

slide-6
SLIDE 6

Overview

> Invenio BibCirculation 1.1 > Bibliographic > Patrons > Holdings > Circulation history

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 2

slide-7
SLIDE 7

Invenio as a library system.

Part I: Invenio BibCirculation 1.1

slide-8
SLIDE 8

Goals

> Replace Aleph 22

Lightweight solution Software consolidation OpenSource

> Integrate library services

Library holdings (Books and gray literature) Patron Driven Acquisition (Data delivery from Schweitzers) Journals (Electronic and eventually print) Publications database (Reporting, digitization, retro cataloguing) Document delivery (Inter Library Loan, scan service…) Publishing house

(Theses, DESY proceedings …)

Approval/review workflow APC management

Sideffect: ensures reporting

What started out as a publications database is about to become the central hub for all libraries services.

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 4

slide-9
SLIDE 9

Goals

> Replace Aleph 22

Lightweight solution Software consolidation OpenSource

> Integrate library services

Library holdings (Books and gray literature) Patron Driven Acquisition (Data delivery from Schweitzers) Journals (Electronic and eventually print) Publications database (Reporting, digitization, retro cataloguing) Document delivery (Inter Library Loan, scan service…) Publishing house

(Theses, DESY proceedings …)

Approval/review workflow APC management

Sideffect: ensures reporting

What started out as a publications database is about to become the central hub for all libraries services.

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 4

slide-10
SLIDE 10

Goals

> Replace Aleph 22

Lightweight solution Software consolidation OpenSource

> Integrate library services

Library holdings (Books and gray literature) Patron Driven Acquisition (Data delivery from Schweitzers) Journals (Electronic and eventually print) Publications database (Reporting, digitization, retro cataloguing) Document delivery (Inter Library Loan, scan service…) Publishing house

(Theses, DESY proceedings …)

Approval/review workflow APC management

Sideffect: ensures reporting

What started out as a publications database is about to become the central hub for all libraries services.

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 4

slide-11
SLIDE 11

Goals

> Replace Aleph 22

Lightweight solution Software consolidation OpenSource

> Integrate library services

Library holdings (Books and gray literature) Patron Driven Acquisition (Data delivery from Schweitzers) Journals (Electronic and eventually print) Publications database (Reporting, digitization, retro cataloguing) Document delivery (Inter Library Loan, scan service…) Publishing house∗ (Theses, DESY proceedings …) Approval/review workflow∗ APC management∗

∗ Sideffect: ensures reporting

What started out as a publications database is about to become the central hub for all libraries services.

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 4

slide-12
SLIDE 12

Goals

> Replace Aleph 22

Lightweight solution Software consolidation OpenSource

> Integrate library services

Library holdings (Books and gray literature) Patron Driven Acquisition (Data delivery from Schweitzers) Journals (Electronic and eventually print) Publications database (Reporting, digitization, retro cataloguing) Document delivery (Inter Library Loan, scan service…) Publishing house∗ (Theses, DESY proceedings …) Approval/review workflow∗ APC management∗

∗ Sideffect: ensures reporting

What started out as a publications database is about to become the central hub for all libraries services.

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 4

slide-13
SLIDE 13

Problems with BibCirculation

> Bit hackish code… (some hardcoded CERN) > No SIP-Self Service (only checkout/checkin method at DESY) > No library cards / patron barcodes

(required for Self Service)

> No handling for multiple email addresses

(multiple login methods at DESY; one is the library card)

> Separation of circulation from the rest

Holdings not searchable (e. g. barcode, availability…) No “New items” display (derives from holdings as well)

> 110 technical issues (89 to go online) > 17 issues for librarians (some are quite large…)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 5

slide-14
SLIDE 14

Problems with BibCirculation

> Bit hackish code… (some hardcoded CERN) > No SIP-Self Service (only checkout/checkin method at DESY) > No library cards / patron barcodes

(required for Self Service)

> No handling for multiple email addresses

(multiple login methods at DESY; one is the library card)

> Separation of circulation from the rest

Holdings not searchable (e. g. barcode, availability…) No “New items” display (derives from holdings as well)

> 110 technical issues (89 to go online) > 17 issues for librarians (some are quite large…)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 5

slide-15
SLIDE 15

Problems with BibCirculation

> Bit hackish code… (some hardcoded CERN) > No SIP-Self Service (only checkout/checkin method at DESY) > No library cards / patron barcodes

(required for Self Service)

> No handling for multiple email addresses

(multiple login methods at DESY; one is the library card)

> Separation of circulation from the rest

Holdings not searchable (e. g. barcode, availability…) No “New items” display (derives from holdings as well)

> 110 technical issues (89 to go online) > 17 issues for librarians (some are quite large…)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 5

slide-16
SLIDE 16

Problems with BibCirculation

> Bit hackish code… (some hardcoded CERN) > No SIP-Self Service (only checkout/checkin method at DESY) > No library cards / patron barcodes

(required for Self Service)

> No handling for multiple email addresses

(multiple login methods at DESY; one is the library card)

> Separation of circulation from the rest

Holdings not searchable (e. g. barcode, availability…) No “New items” display (derives from holdings as well)

> 110 technical issues (89 to go online) > 17 issues for librarians (some are quite large…)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 5

slide-17
SLIDE 17

Problems with BibCirculation

> Bit hackish code… (some hardcoded CERN) > No SIP-Self Service (only checkout/checkin method at DESY) > No library cards / patron barcodes

(required for Self Service)

> No handling for multiple email addresses

(multiple login methods at DESY; one is the library card)

> Separation of circulation from the rest

Holdings not searchable (e. g. barcode, availability…) No “New items” display (derives from holdings as well)

> 110 technical issues (89 to go online) > 17 issues for librarians (some are quite large…)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 5

slide-18
SLIDE 18

Invenio as a library system.

Part II: Bibliographic and Holdings

slide-19
SLIDE 19

From Aleph 22 …

Legacy…

long history, several migrations: data cleanup > Aleph 22 allows MarcXML output via print-03 > Not all records hold an Aleph 22 SysNo (extract aleph.seq for mapping) > Identify and map document types (Aleph 22

JOIN )

> Require expansion for holdings (cf. Slides from N. Schulz (Oxford), IGeLU 2013) > PST Aleph 22s holdings (virtual field) > Automatize dumping in Aleph 22 (job_list) Reverse engineering is time consuming

Detailed in Aleph_migration.md (to be finished and published) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 7

slide-20
SLIDE 20

From Aleph 22 …

Legacy…

long history, several migrations: data cleanup > Aleph 22 allows MarcXML output via print-03 > Not all records hold an Aleph 22 SysNo (extract aleph.seq for mapping) > Identify and map document types (Aleph 22

JOIN )

> Require expansion for holdings (cf. Slides from N. Schulz (Oxford), IGeLU 2013) > PST Aleph 22s holdings (virtual field) > Automatize dumping in Aleph 22 (job_list) Reverse engineering is time consuming

Detailed in Aleph_migration.md (to be finished and published) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 7

slide-21
SLIDE 21

From Aleph 22 …

Legacy…

long history, several migrations: data cleanup > Aleph 22 allows MarcXML output via print-03 > Not all records hold an Aleph 22 SysNo (extract aleph.seq for mapping) > Identify and map document types (Aleph 22

JOIN )

> Require expansion for holdings (cf. Slides from N. Schulz (Oxford), IGeLU 2013) > PST Aleph 22s holdings (virtual field) > Automatize dumping in Aleph 22 (job_list) Reverse engineering is time consuming

Detailed in Aleph_migration.md (to be finished and published) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 7

slide-22
SLIDE 22

From Aleph 22 …

Legacy…

long history, several migrations: data cleanup > Aleph 22 allows MarcXML output via print-03 > Not all records hold an Aleph 22 SysNo (extract aleph.seq for mapping) > Identify and map document types (Aleph 22 → JOIN2) > Require expansion for holdings (cf. Slides from N. Schulz (Oxford), IGeLU 2013) > PST Aleph 22s holdings (virtual field) > Automatize dumping in Aleph 22 (job_list) Reverse engineering is time consuming

Detailed in Aleph_migration.md (to be finished and published) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 7

slide-23
SLIDE 23

From Aleph 22 …

Legacy…

long history, several migrations: data cleanup > Aleph 22 allows MarcXML output via print-03 > Not all records hold an Aleph 22 SysNo (extract aleph.seq for mapping) > Identify and map document types (Aleph 22 → JOIN2) > Require expansion for holdings (cf. Slides from N. Schulz (Oxford), IGeLU 2013) > PST Aleph 22s holdings (virtual field) > Automatize dumping in Aleph 22 (job_list) Reverse engineering is time consuming

Detailed in Aleph_migration.md (to be finished and published) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 7

slide-24
SLIDE 24

…to Invenio

> Use batch-websubmit (enforce JOIN2data model) > Define mapping and field transformations > Define string translations (e. g. Hrsg.

Editor)

> Report on tag coverage and field contents (did we get everything?) > Add data cleanup (e. g. normalize URLs, clean description chars) > Hook up with INSPIRE (conference proceedings) > Fix some sloppy cataloguing in historic records (e. g. dissertation notes) > Expand holdings to Marc (8527_, 8767_) > Add bibsched tasklet populates Invenios holdings table

(ConvertAlephXML2Invenio.py, lines) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 8

slide-25
SLIDE 25

…to Invenio

> Use batch-websubmit (enforce JOIN2data model) > Define mapping and field transformations > Define string translations (e. g. Hrsg. → Editor) > Report on tag coverage and field contents (did we get everything?) > Add data cleanup (e. g. normalize URLs, clean description chars) > Hook up with INSPIRE (conference proceedings) > Fix some sloppy cataloguing in historic records (e. g. dissertation notes) > Expand holdings to Marc (8527_, 8767_) > Add bibsched tasklet populates Invenios holdings table

(ConvertAlephXML2Invenio.py, ≈ 2100 lines) Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 8

slide-26
SLIDE 26

Holdings mapping 8527_

subfield value Aleph 22 field code $2 Source derived from 852__b $a Library 852__b (translated) $b collection 852__c / 852__5 (translated) $c shelfmark 090__a $h classification derived from 090__a $p barcode 852__p padded to 6 digits $t item number [counter] $x nonpublic note $z public note

Note: DESY has two values for $2 > Hamburg: DE-H253 > Zeuthen: DE-B524 Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 9

slide-27
SLIDE 27

Holdings mapping 8767_

subfield value Aleph 22 field code $2 Source derived from 852__b $a NSK 035__a $c price

  • n/a -

$e Vendor

  • n/a -

$d Accession date

  • n/a -

$h loan period PST__6 (normalized) $j availability derived from loan data $l

  • temp. location
  • e. g. “on display”

$p barcode 852__p padded to 6 digits $t item number [counter] $x cost code

  • n/a -

No price/vendor data as DESY did not use ACQ consistently Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 10

slide-28
SLIDE 28

Invenio as a library system.

Part III: Patrons

slide-29
SLIDE 29

cir-05

> Data extraction straight forward (cir-05 export) Data is not > Add email-addresses in Aleph 22 (mapping to authorities) > Hook up login to people authority records (allows for multiple emails etc.) > Generate authorities for external patrons > Add format element to register library card > Add People to bibcirculation_template.py

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 12

slide-30
SLIDE 30

cir-05

> Data extraction straight forward (cir-05 export) Data is not > Add email-addresses in Aleph 22 (mapping to authorities) > Hook up login to people authority records (allows for multiple emails etc.) > Generate authorities for external patrons > Add format element to register library card > Add People to bibcirculation_template.py

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 12

slide-31
SLIDE 31

cir-05

> Data extraction straight forward (cir-05 export) Data is not > Add email-addresses in Aleph 22 (mapping to authorities) > Hook up login to people authority records (allows for multiple emails etc.) > Generate authorities for external patrons > Add format element to register library card > Add People to bibcirculation_template.py

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 12

slide-32
SLIDE 32

cir-05

> Data extraction straight forward (cir-05 export) Data is not > Add email-addresses in Aleph 22 (mapping to authorities) > Hook up login to people authority records (allows for multiple emails etc.) > Generate authorities for external patrons > Add format element to register library card > Add People to bibcirculation_template.py

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 12

slide-33
SLIDE 33

cir-05

> Data extraction straight forward (cir-05 export) Data is not > Add email-addresses in Aleph 22 (mapping to authorities) > Hook up login to people authority records (allows for multiple emails etc.) > Generate authorities for external patrons > Add format element to register library card > Add People to bibcirculation_template.py

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 12

slide-34
SLIDE 34

Invenio as a library system.

Part IV: Circulation history

slide-35
SLIDE 35

Circulation history

> Easy: items on loan (cir-04) > History: Not exposed by any export > Stored in internal tables > Requires SQL

$ rlwrap sqlplus aleph@ALEPH22> set pagesize 0 aleph@ALEPH22> spool /tmp/aleph.history aleph@ALEPH22> SELECT z35_id as patron, z30_barcode as barcode, z35_event_date as YYYYMMDD, lpad(z35_event_hour, 4, 0) as HHMM, z35_event_type as event FROM des50.z30, des50.z35 WHERE z30_rec_key = z35_rec_key || lpad(z35_item_sequence, 6, 0) ORDER BY z35_time_stamp ;

Event sorting is important! > Dumps event log > Just replay.py > ILS Loanmigration

Dummy User All unknown patrons Allows for revision list

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 14

slide-36
SLIDE 36

Circulation history

> Easy: items on loan (cir-04) > History: Not exposed by any export > Stored in internal tables > Requires SQL

$ rlwrap sqlplus aleph@ALEPH22> set pagesize 0 aleph@ALEPH22> spool /tmp/aleph.history aleph@ALEPH22> SELECT z35_id as patron, z30_barcode as barcode, z35_event_date as YYYYMMDD, lpad(z35_event_hour, 4, 0) as HHMM, z35_event_type as event FROM des50.z30, des50.z35 WHERE z30_rec_key = z35_rec_key || lpad(z35_item_sequence, 6, 0) ORDER BY z35_time_stamp ;

Event sorting is important! > Dumps event log > Just replay.py > ILS Loanmigration

Dummy User All unknown patrons Allows for revision list

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 14

slide-37
SLIDE 37

Circulation history

> Easy: items on loan (cir-04) > History: Not exposed by any export > Stored in internal tables > Requires SQL

$ rlwrap sqlplus aleph@ALEPH22> set pagesize 0 aleph@ALEPH22> spool /tmp/aleph.history aleph@ALEPH22> SELECT z35_id as patron, z30_barcode as barcode, z35_event_date as YYYYMMDD, lpad(z35_event_hour, 4, 0) as HHMM, z35_event_type as event FROM des50.z30, des50.z35 WHERE z30_rec_key = z35_rec_key || lpad(z35_item_sequence, 6, 0) ORDER BY z35_time_stamp ;

Event sorting is important! > Dumps event log > Just replay.py > ILS Loanmigration

Dummy User All unknown patrons Allows for revision list

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 14

slide-38
SLIDE 38

Circulation history

> Easy: items on loan (cir-04) > History: Not exposed by any export > Stored in internal tables > Requires SQL

$ rlwrap sqlplus aleph@ALEPH22> set pagesize 0 aleph@ALEPH22> spool /tmp/aleph.history aleph@ALEPH22> SELECT z35_id as patron, z30_barcode as barcode, z35_event_date as YYYYMMDD, lpad(z35_event_hour, 4, 0) as HHMM, z35_event_type as event FROM des50.z30, des50.z35 WHERE z30_rec_key = z35_rec_key || lpad(z35_item_sequence, 6, 0) ORDER BY z35_time_stamp ;

Event sorting is important! > Dumps event log > Just replay.py > ILS Loanmigration

Dummy User All unknown patrons Allows for revision list

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 14

slide-39
SLIDE 39

Self Service – SIP

> EasyCheck software (terminals) > SIP Backend

Available at https://github.com/join2/SIPServer Reuse Perl-code from Evergreen Use Inline::python libSIP_join.py

Handle crc* tables Staff notifications by email patron / item as required checkin() checkout() renew()

> EasyCheck handles user interaction

barcode scanner (library card) RFID scanner (media)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 15

slide-40
SLIDE 40

Self Service – SIP

> EasyCheck software (terminals) > SIP Backend

Available at https://github.com/join2/SIPServer Reuse Perl-code from Evergreen Use Inline::python libSIP_join.py

Handle crc* tables Staff notifications by email patron / item as required checkin() checkout() renew()

> EasyCheck handles user interaction

barcode scanner (library card) RFID scanner (media)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 15

slide-41
SLIDE 41

Self Service – SIP

> EasyCheck software (terminals) > SIP Backend

Available at https://github.com/join2/SIPServer Reuse Perl-code from Evergreen Use Inline::python libSIP_join.py

Handle crc* tables Staff notifications by email patron / item as required checkin() checkout() renew()

> EasyCheck handles user interaction

barcode scanner (library card) RFID scanner (media)

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 15

slide-42
SLIDE 42

Put it all togeter…

> CreateOPAC.py (collection setup) > SetupLibraries.py (library definitions, bibedit templates) > SetupVendors.py (vendor definitions) > ConvertAlephXML2Invenio.py (convert data from Aleph 22) > ConvertPatrons.py (convert Aleph 22 patrons to JSON) > SetupBorrower.py (setup patrons) > replay.py (replay circulation events) > bst_AddHoldings.py (update holdings from bibliographic) > lib_SIP.py / lib_ILS.py (circulation, patron registration) > Finish the docs Sprint to close issues…

Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 16

slide-43
SLIDE 43

Thank you!

Alexander Wagner Deutsches Elektronen-Synchrotron Central Library Tel.: +49–40–8998–1758 alexander.wagner@desy.de

0000-0001-9846-5516

http://library.desy.de

This document is available as 10.3204/PUBDB-2017-01357 Typeset by luaL

A

T EX Alexander Wagner | 4th IUGW | Garching, 22.03.2017 | Page 17