Aleph 20 Syslib Guide - Indexing
Aleph 20 Syslib Guide - Indexing
Guide - Indexing
Version 20
CONFIDENTIAL INFORMATION
The information herein is the property of Ex Libris Ltd. or its affiliates and any misuse or abuse will
result in economic loss. DO NOT COPY UNLESS YOU HAVE BEEN GIVEN SPECIFIC WRITTEN
AUTHORIZATION FROM EX LIBRIS LTD.
This document is provided for limited and restricted purposes in accordance with a binding contract
with Ex Libris Ltd. or an affiliate. The information herein includes trade secrets and is confidential.
DISCLAIMER
The information in this document will be subject to periodic change and updating. Please confirm that
you have the most current documentation. There are no warranties of any kind, express or implied,
provided in this documentation, other than those expressly agreed upon in the applicable Ex Libris
contract. This information is provided AS IS. Unless otherwise agreed, Ex Libris shall not be liable for
any damages for use of this document, including, without limitation, consequential, punitive, indirect or
direct damages.
Any references in this document to third‐party material (including third‐party Web sites) are provided
for convenience only and do not in any manner serve as an endorsement of that third‐party material or
those Web sites. The third‐party materials are not part of the materials for this Ex Libris product and Ex
Libris has no liability for such materials.
TRADEMARKS
ʺEx Libris,ʺ the Ex Libris bridge , Primo, Aleph, Alephino, Voyager, SFX, MetaLib, Verde, DigiTool,
Preservation, URM, Voyager, ENCompass, Endeavor eZConnect, WebVoyage, Citation Server,
LinkFinder and LinkFinder Plus, and other marks are trademarks or registered trademarks of Ex Libris
Ltd. or its affiliates.
The absence of a name or logo in this list does not constitute a waiver of any and all intellectual
property rights that Ex Libris Ltd. or its affiliates have established in any of its products, features, or
service names or logos.
Trademarks of various third‐party products, which may include the following, are referenced in this
documentation. Ex Libris does not claim any rights in these trademarks. Use of these marks does not
imply endorsement by Ex Libris of these third‐party products, or endorsement by these third parties of
Ex Libris products.
UNIX is a registered trademark in the United States and other countries, licensed exclusively through
X/Open Company Ltd.
Microsoft, the Microsoft logo, MS, MS‐DOS, Microsoft PowerPoint, Visual Basic, Visual C++, Win32,
Microsoft Windows, the Windows logo, Microsoft Notepad, Microsoft Windows Explorer, Microsoft
Internet Explorer, and Windows NT are registered trademarks and ActiveX is a trademark of the
Microsoft Corporation in the United States and/or other countries.
Unicode and the Unicode logo are registered trademarks of Unicode, Inc.
4 WORD INDEX....................................................................................................18
5 DIRECT INDEX.................................................................................................21
6 APAC INDEXING..............................................................................................23
10 OTHER INDEXES......................................................................................97
12 PARALLEL INDEXING............................................................................99
13 INDEXING SERVICES............................................................................105
14 FURTHER READING..............................................................................106
There are three major ways of accessing the bibliographic database, via three types of
indexes: Headings Index, Word Index and Direct Index. Each of these types of
indexes has specific subindexes attached. For example, among the subindexes
attached to the Headings (ACC) index are the TIT and AUT subindexes.
Indexes are used by end users for OPAC searches and by librarians for internal needs,
such as catalogers' lists and record retrieval to produce various reports.
This chapter is intended mainly for system librarians. It provides an overview of data
access methods. It includes index definitions and types, index specifications, indexing
processes, expand programs.
Note that the various indexing services can be accessed via the Cataloging GUI by
opening the Services menu and selecting an option from the Build Indexes to Catalog
submenu.
Notes
• Although the code can be up to five characters, by convention it is usually only
three characters.
• If the index is a Direct index, specify "IND" for the index type.
• If the index is a Headings index, specify "ACC" for the index type.
• If the index is a Words index, find the next "W-nnn" value and use that for the
index type. The -nnn numbers must be unique and consecutive.
• The Words index type should always start with the letter W.
• The system always provides SCAN and FIND access by system number and
FIND access by barcode. Therefore, although they do not need to be defined
in the indexing table (tab11), they must be defined here in order to define the
index name in column 11.
In order to perform the retrieval of records which are presented in a set, add the index
either to the scan-include-2 file or to the find-code-include file in the
alephe/www_f_lng/ directory.
3 Headings Index
This chapter includes the following sections:
Filing of Headings
Main Headings Services
Other Headings Services
Linking Process
The Headings Index creates a list of entries that can be browsed by the patron or by a
librarian in the Web OPAC. The Headings Index is also sometimes called the Browse
List or ACC List.
Headings indexes are phrases from a record field such as author, title, subject,
publishers, and so on. A Headings Index term can be either an entire field or one or
more specific subfields.
The Headings or Browse index can be accessed through the Browse function in the
Web OPAC or via the Search functionality in the GUIs.
Each field or subfield is assigned to a specific headings group. For example, all types
of titles can be assigned to the title headings group. Subjects can be assigned to a
different "sub-index" for subjects.
The filing text is built in three steps, based on the field text:
3.1.1 Normalization
Normalization refers to the process whereby diacritics, most punctuation marks,
special characters, and case differences are stripped from access fields (headings) for
the purpose of determining the uniqueness of headings.
The normalized form of the headings is built according to the rules defined in the
library's tab_filing table:
For further information about this process, refer to the Authorities - Batch Jobs for
Authority Enrichment and Correction of Bibliographic Libraries section of the
Authorities chapter in the ALEPH System Librarian’s Guide.
Note
After you run this service using the "Rebuild" option, always run the Alphabetize
Long Headings (manage-17) service.
Note
After you run this service, always run the Alphabetize Long Headings (manage-17)
service.
Note that this process does not delete heading records which have an authority link.
This is in order to keep the cross-references which are not linked to the document
directly.
The UE_08 procedure checks new headings in the bibliographic library against the
authority library and adds cross-references and/or multi-lingual equivalents to the
bibliographic headings table.
For further information about this process, refer to The Authority Database as Search
Aid section of the Authorities chapter in the ALEPH User Guide.
4 Word Index
This chapter includes the following sections:
Defining Words
Database Tables Involved
When to Update the Word Index
The Word Index contains a list of words that appear in specific fields of the
bibliographic records in the database.
When a patron or librarian uses the Search function on a Word index in the Web
OPAC, the system retrieves all documents containing the keyword(s) entered by the
user.
Words are assigned to specific word groups. Thus, all words from the various types of
title can be assigned to the "words from titles" group. Words from subjects can be
assigned to a different word group.
Web OPAC searches can apply to the general word index or to any specified sub-
index:
The extracted words are stored in the Z97 table that contains the word dictionary. The
word dictionary is a list of all the searchable words derived from information in the
document record.
When the user performs a Find/Search request from the Web OPAC, the system
checks the Word Index to retrieve all documents containing the keyword(s) entered by
the user.
The Word Index is usually used for the Search function in the Web OPAC and in the
GUIs:
Word Breaking
Word-breaking routines are used to define what will be considered a "word" for the
system in special cases (for example, I.B.M). Word-breaking routines are listed in
Sorting and Word Breaking on page 34.
Word-breaking routines are specified for each word index group through column 6 of
the tab11_word table of the library's tab directory.
Character Conversion
In addition to the word-building procedures, after text has been broken into words, a
character conversion table is used to define equivalencies for characters. The system
uses the character conversion table that is listed in column 5 of the
tab_character_conversion_line table of the $alephe_unicode directory under
the WORD-FIX entry:
5 Direct Index
This chapter includes the following sections:
Filing Direct Indexes
When to Update the Direct Index
Database Tables Involved
Direct indexes enable the user to retrieve a specific record. A direct index is suited to
unique or almost unique identifiers (such as the ISBN, the ISSN and the shelving
location) of the record and provides quick access to a record:
Each library can decide which fields of the record are suited for this type of index and
search capability.
Direct access functions are available from the menus of the Browse and Search
Filing routines are specified for each direct index through column 5 of the tab00.lng
table of the library's tab directory.
Update
If a new code has been added to an already existing index, or if a new index has been
added, use the Update option in the procedure to run the drop-down list box.
Note
Z11 indexing is independent of the ue_01 process; it happens automatically when a
bibliographic record is added or updated.
6 APAC Indexing
Four filing routines are available in order to define whether CJK headings are sorted
by Pinyin or by strokes. If these routines are not used, the headings are sorted by
Unicode value and no special indexing setup is required. The following are the
available CJK filing routines:
• cjk_pinyin: This routine adds an exclamation point (!) before each CJK
character, translates the characters to pinyin using the Z114 table, and adds the
Unicode value in decimal notation. The exclamation point (!) causes the
pinyin filing-text to be sequenced separately from regular Latin characters.
• cjk_stroke: This routine is similar to the cjk_pinyin routine, except that each
character is translated to the stroke value, using the Z114 table.
• chi_pinyin: This routine translates each character to pinyin using the Z114
table and adds the Unicode value (in decimal notation) for each character. The
Unicode value is added in order to differentiate between different characters
that have the same pinyin value. Because the pinyin filing text is sequenced
together with regular Latin characters, this routine should be used for browse
lists that use the language code from 008 to create separate browse lists (for
example, AUTC).
• chi_stroke: This routine is similar to the chi_pinyin routine, except that each
character is translated to the stroke value, using the Z114 table.
The Aleph default setup is adjusted to sort by Pinyin. Therefore, when multiple CJK
languages are used, it is required to create a separate CJK index for each CJK
language that is indexed in the catalog and browsed by the user. The following is a
description of how this setup is configured.
ACC expand_doc_bib_lng_cjk
These lines set the headings and words indexing process to run the
expand_doc_bib_lng_cjk routine. The routine adds the $$9 subfield with the
language code from 008/34-36 to each field which contains Chinese, Japanese, or
Korean characters. $$9 is then used in tab11_acc and tab11_word to put the CJK
entries into different indexes.
o tab11_acc
! 1 2 3 4 5 6 7 8
!!!!!-!!!!!-!-!!!!!!!!!!-!!!!!-!!!!!!!!!!!!!!!!!!!!-!-!
245## 9 chi TITC -e468
245## 9 jpn TITJ -e468
245## 9 kor TITK -e468
245## 9 - TIT -e468
This example is coordinated with tab00.lng which has "51" as the filing procedure
for TITC (Chinese Tiles) and so on.
When creating the filing key, "chi_pinyin" uses Z114 to translate characters to Pinyin
and adds the Unicode value of the character after each Pinyin character, in order to
differentiate between multiple Chinese characters that share the same Pinyin value.
There is no parallel dictionary available for Japanese and Korean. When creating the
filing key for these languages using "jpn" and "kor", the system uses the Unicode
value of the characters.
Punctuation Removal
Replace all CJK and Latin punctuation by space. This may be done using the existing
“to_blank” routine.
Characters Transliteration
Replace characters by equivalent characters using a transliteration table. This may be
done using the existing “char_conv” routine.
The WTI Index will contain words from 245 $$w using “01” word-breaking
routines.
The “01” word breaking routine removes punctuation using the to_blank
routine, and transliterates the characters based on the char_conv routine.
The tab_word_breaking routine that will be used in the indexing process is defined in
column 6 of the relevant tab11_word line. For example:
1 2 3 4 5 6 7 8 9 10
!!!!!-!!!!!-!-!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!-!!-!-!-!!!!!-
!!!!!!!!!!!!!!
245## w 01 WTI
See the Suggested APAC Indexing and Searching Segmentation Routines Setup on
page 27 for examples of segmentation routines.
• Section 90 - the word_breaking routines set in this section will be performed for
parsing a FIND query.
The saved search text is the find query text AFTER performing the routines set
in section 90.
Note that routines of section 90 are always performed on the FIND string, while
sections 93/94 are performed only if the FIND string contains CJK text.
The following is a summary of the flow when the system segments the FIND query:
No Yes
adjacency?
!1 2 3 4
!!-!-!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
90 # to_blank !@#$%^()_={}[]:";<>,.?|\
93 # char_conv CJK_TO_NORMALIZED
93 # cjk_2gram_all
94 # char_conv CJK_TO_NORMALIZED
94 # morpheme_search
Note that the Morpheme index algorithm does not produces word pairs; therefore,
Morpheme search should be used only for searching without adjacency (section
93 of tab_wrd_breaking).
When this routine is used for segmentation during the indexing process, the
thai_search routine must be used during the segmentation of the FIND string.
The following options may be used for defining the indexing (in tab11_word) and
searching (“93” and “94”) segmentation routines:
In the following example, if the indexing is done using the “01” and “02”
segmentation routines then the following tab_word_breaking setup is recommended.
!1 2 3 4
!!-!-!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
01 # to_blank !@#$%^()_={}[]:";<>,.?|\
01 # char_conv HANJA_TO_HANGUL
01 # char_conv KANA_TO_NORMALIZED
01 # cjk_add_space
01 # cjk_2gram_lng CONC
02 # to_blank !@#$%^()_={}[]:";<>,.?|\
02 # char_conv HANJA_TO_HANGUL
02 # char_conv KANA_TO_NORMALIZED
02 # cjk_add_space
02 # cjk_2gram_all
93 # to_blank !@#$%^()_={}[]:";<>,.?|\
93 # char_conv HANJA_TO_HANGUL
93 # char_conv KANA_TO_NORMALIZED
93 # cjk_add_space
93 # cjk_2gram_lng NO-CONC
94 # to_blank !@#$%^()_={}[]:";<>,.?|\
94 # char_conv HANJA_TO_HANGUL
94 # char_conv KANA_TO_NORMALIZED
94 # cjk_2gram_all
Note: If you want to index single CJK characters as words in addition to regular
words, set cjk_add_single in tab_word_breaking. Note that this routine should be
added AFTER the routines cjk_to_word and split_cjk, if they are in use.
In order to set up a logical base that includes all records except for a specified group
Normalization routines are defined in the tab_filing table together with filing
routines and display text routines.
When a new heading is added to the database, if there is already another heading with
the same normalized text (Z01-NORMALIZED-TEXT), even if the display text (Z01-
DISPLAY-TEXT) is different, both headings are considered to be the same. In this
case, no heading record (Z01) is registered for the new heading and the display text of
the first heading is taken.
The filing key of the headings is built in two stages:
Display text (Z01-DISPLAY-TEXT) to normalized text (Z01-NORMALIZED-
TEXT).
Normalized text (Z01-NORMALIZED-TEXT) to filing text (Z01-REC-KEY).
For this reason, when creating the filing form of the heading, it is not necessary to
perform routines that have already been performed in order to create the normalized
text of the heading.
The library's tab/tab_filing table defines the normalization and filing routines that
are used. The order of the subroutines within a routine is important; for example, you
Note that the routines defined in the tab_filing table require an 'F' section, so even
if this section is not needed (because the lines for 'N' suffice), an 'F' line still needs to
be present with "no" as the filing procedure.
Column 3 - Procedure
This column contains the name of the filing or normalization procedure.
Column 4 - Parameters
Parameters for the filing/normalization procedure (when relevant). If the parameters
are characters, and a character is out of the ASCII range, type this character in
Unicode notation.
The available filing and normalization procedures are:
abbreviation: compress a dot between single characters (for example, I.B.M. changes
to IBM). This routine works only with characters in the 7-bit ASCII range.
add_prefix_hash: adds a hash (#) sign immediately after the subfield code specified
in the parameters column. It is mostly required in order to correctly sort headings
derived from the fix_doc_aut_duplicate program.
bbk: special procedure for Russian filing standards, in which the sorting sequence is
special characters, followed by Cyrillic characters, followed by Latin characters,
followed by numbers.
char_conv: perform the character conversion procedure according to the procedure
name listed in col.4. This name must match procedure identification in col.1 of
/alephe/unicode/tab_character_conversion_line.
chi: translates each character to pinyin, using the Oracle table that contains the pinyin
form of Chinese characters (Z114), and adds the Unicode value for each character.
The Unicode values added in order to differentiate between different characters have
the same pinyin value. Since the pinyin filing-text is sequenced together with regular
Latin characters, this routine should be used for browse lists that use the language
code from the 008 MARC 21 field to separate by language, and are separate for
Chinese (for example, AUTC). Note that separate browse lists can be created by using
the expand_doc_bib_lng_cjk expand program.
!1 2 3 4
!!-!-!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
11 F expand_num 13
get_subfields: use only the subfields, or subtract some using "-" as listed in col.4.
get_subfields_order: this procedure is similar to the get_subfields routine except that
it retains the order of the subfields specified in col. 4.
icelandic_name: changes the order of subfields 7 and 1, placing subfield 7 after
subfield 1. Intended for sorting OPAC browse lists. For example, the display text:
$$aAlexander $$7Alfred $$1Jonsson$$c1943-
If the parameter 88-89 is specified, the control characters U+0088 and U+0089 will
be used instead of << and >>. The parameter <<>> acts the same way as the default.
If both parameters are specified, the input text will undergo suppression twice: once
with << and >> as delimiters, and again - with U+0088 and U+0089 as delimiters (or
vice versa).
The following parameter combinations are allowed:
11 D end_punctuation :,=;/
11 N to_lower
11 N to_blank !@#%^&*()_+-={}[]:";?,./~`
11 N pack_spaces
11 N del_subfield_code
11 F del_subfield
11 F suppress
11 F numbers
11 F to_blank $<>
11 F expand_num
11 F non_filing
11 F compress '
11 F pack_spaces
11 F char_conv FILING-KEY-01
11 F cjk
Services BATCH
A - Ascending
Notes:
The procedures must be listed in logical order. For example, numbers must be listed
before compress or change_to_blank if a comma or a dot are included in them.
Otherwise, they will no longer be present when the numbers procedure is used.
Word breaking procedures are defined in the tab11_word table (column 6) of the
library's tab directory. A line can be listed several times in the tab11_word table in
order to index it multiple times, with different word breaking procedures each time.
In the following example, words from the 100 field are indexed according to the word
breaking procedures 01 and 02:
100## -6 01 WRD WAU
100## -6 02 WRD WAU
The "hyphen" and the apostrophe must be left with their actual value in the
alephe/unicode/unicode_to_word_gen file, and both the hyphen and the
apostrophe must not be entered in any of the word breaking procedures in the library's
tab/tab_word_breaking file.
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
U39-DOC expand_doc_fmt
U39-DOC expand_doc_join
ACC
Context: Headings index creation/update (p_manage_02).
BUF-Z403
Context: Used to enrich the BUF-Z403 , which is used to govern access to electronic
resources. This is required when, for example, expanding the 856 field, or any other
field with electronic contents, into the holdings library. Note that
expand_doc_bib_z403 expand procedure may not be used with expand menu BUF-
Z403.
CREATE-Z13
Context: Short bibliographic record creation/update (p_manage_07).
E-DOC-<format number>
Context: Specific format display. Used for running expand programs that should be
applied only to specific formats. For example, the expand_doc_uni_merge program
should be functional only when the record is displayed in ISBD format.
The format number of the instance should match the format number defined in the
edit_doc.lng table for the desired format. For the expand_doc_uni_merge example
mentioned above, if the ISBD format has been defined as 038 in the edit_doc.lng
table, then the tab_expand table should be defined as follows:
GUI-ACCREF
Context: Authority record display from bibliographic heading (Search module).
GUI-BRIEF
Context: Brief display (Search module).
GUI-DOC-D
Context: Full display (Search module).
GUI-DOC-P
Context: Full print (Search module).
HOL-LOC
Context: Use in the holdings library with expand_doc_hol_loc_1_a and
expand_doc_hol_loc_2_a.
HOLDING
Context: Display of item list.
INDEX
Context: Direct index creation/update (p_manage_05).
PRE-MERGE
PRINT-CAT
Context: Print catalog (p_print_04).
PRINT-CUST
Context: Print custom format (p_print_01).
PRINT-COL
Context: Print columnar format (p_print_08).
PRINT-REC
Context: Print Catalog Records with "Non-preferred" Headings (print-05).
RET
Context: Retrieval of records (p_ret_01) and sorting (p_ret_21).
SORT-DOC
Context: Sort keys creation/update (p_manage_27).
U39-DOC
Context: Record display through UTIL F/4/DOC.
UE-08
Context: UE-08 (for expanding authority records for UE-08 procedures).
WEB-ACCREF
Context: Authority record display from bibliographic heading (Web OPAC).
WEB-BRIEF
Context: Brief display (Web OPAC).
WEB-FULL
Context: Full display (Web OPAC).
WEB-FULL-1
Context: Full display - format 01 (Web OPAC).
WEB-MAIL
Context: Full print - mail (Web OPAC).
WEB-SAVE
Context: Full print - save (Web OPAC).
WEB-SCNIND
Context: Title display when browsing Direct indexes (Web OPAC).
Z00R
Context: Creation of a Z00R record (p_manage_07, cataloging, UE_01).
Z39-SERVER
Context: Z39-SERVER.
expand_doc_acronym_title
The expand_doc_acronym_title routine facilitates acronymic indexing of long titles
that have common words (for example, Report of the …Association). This expand
creates a new index which will help users search more easily for serial titles. It takes
the first four letters from the first word of the title connected to the first three letters of
the second word, connected to the first two letters of the third word, connected to the
first letter of the fourth word. If the words are short, only the existing letters will be
used. For example: The title “Gen. hosp psych” will be indexed as genhosps.
Stop words such as "the”, "and”, or "to", which reside in tab03 in the bibliographic
library are not considered when building the "Acronymic Title".
This expand should be used when WORD indexing is performed.
Column 3 needs to be defined to include the record format, field and subfield to index
and the tab_word_breaking procedure that will be used.
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
WORD expand_doc_acronym_title SE,245##a,92
WORD expand_doc_acronym_title BK,245##a,92
expand_doc_adm_bib
The expand_doc_adm_bib program adds bibliographic data to the administrative
record.
To include or exclude specific BIB fields in the expanded ADM record, use column 3
of tab_expand of the ADM library.
The parameters in Column 3 of tab_expand are up to 10 comma-separated fields
(five characters each, can include hashes, for example 100##), to be included or
excluded in the ADM record.
To exclude specific fields, the list of fields to be excluded should be preceded by a
dash - , for example -245##,100##.
If column 3 is blank, then ALL fields from the BIB record are added to the ADM
record.
In the following example, the 260## and 100## fields will be excluded from the
expanded ADM record
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
U39-DOC expand_doc_adm_bib -260##,100##
Note that this expand program must be defined in the tab_expand table of the
administrative library (XXX50). This can be useful for creating short_doc (Z13)
(using manage-07) in the ADM library.
Note that this expand routine's behavior is the same as expand_doc_hol_bib.
expand_doc_adm_hol
The expand_doc_adm_hol expand routine is used in the tab_expand table of an
ADM library in order to add HOL data to the ADM record.
Parameters in column 3 of tab_expand can be up to 10 comma-separated fields (five
characters each, can include hashes, for example, 85###). If column 3 is blank, then
all fields from the HOL record are added to the ADM record.
To exclude a specific field, precede the list of fields with a dash - , (for example, -
85###, -86###).
Example of expand_doc_adm_hol in tab_expand (ADM library):
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
U39-DOC expand_doc_adm_hol 85###,86###
expand_doc_aut_aut
For multilingual applications, the expand_doc_aut_aut program identifies the
authority record of a heading that is a "see also" in the authority record. The program
adds all forms of the heading from the "main" authority record. This program builds
the "See also" field for all languages for Broader, Narrower, and "See also" terms.
expand_doc_bib_001
The expand_doc_bib_001 program builds a 001 field that contains the system
number of the record. The field is built only if the 001 field does not already exist in
the record.
expand_doc_bib_852_1
The expand_doc_bib_852_1 program expands the 852 MARC21 location field into
the bibliographic record. The field is brought from the holdings record and/or built
from the information in the Z30 (item record). If the holdings record has an 866
MARC21 field (textual holdings statement), the field is appended to the 852 field
from the holdings record that is expanded into the bibliographic record.
Sublibrary (subfield $b) and collection (subfield $c) codes are expanded into subfields
$4 and $5 in which the sublibrary code and collection code are replaced by names
using the tab_sub_library (sublibrary definitions) and tab40 (collection
definitions) tables. Items barcode are expanded into 852$$p.
The second call number (Z30-CALL-NO-2) is expanded using the same subfield
definitions used for expanding the regular call number (Z30-CALL-NO), but in
uppercase. For example:
852 $$bULINC$$cGEN$$HHG939.5 D38 1970$$bLincoln
Library$$cGeneral$$HHG939.5 D38 1970
You can define the field, subfield and subfield contents to filter the holdings records
that are expanded. This can be done by defining the field, subfield and subfield
contents in the parameters column (col. 3) of the library's tab_expand table. For
example, if the tab_expand table contains the following line:
PRINT-REC expand_doc_bib_852_1 852##,b,ULINC
When the holdings information is expanded into the bibliographic record, the holdings
data is included only if subfield $b of the 852 field contains the value 'ULINC'.
Holdings records that do not match this definition are not included.
The format for the filtering definitions is the following:
FIELD,Subfield,CONTENTS
expand_doc_bib_852_title
The expand_doc_bib_852_title program expands the subfields $a, $b, $c of the
Main Title field (245 MARC21 field) into the 852 MARC21 field ($$a, $$b, $$c) and
creates a new CLN field. For example, if the bibliographic record contains the
following fields:
then the expand_doc_bib_880_n program creates the following two new virtual
fields:
245 10 $$603$$aSosei to kako$$A<Title in Japanese
script>:$$bNihon Sosei Kako Gakkai shi.$$B<Subtitle in
Japanese script>.
expand_doc_bib_accref
The expand_doc_bib_accref program adds non-preferred terms to the bibliographic
record in order to build word entries from cross-references. This feature allows the
user to perform a "find" search on preferred or non-preferred terms with the same
result.
The expand_doc_bib_accref should only be used with the WORD system function.
expand_doc_bib_accref_1
This expand program works like expand_doc_bib_accref. The difference is that the
cross reference information expanded by expand_doc_bib_accref_1 is put into lines
named after the acc code of the relevant Z01 record of the bibliographic library.
If, for example, the acc code of the relevant Z01 record is AUT then the line to which
the information is expanded is called: AUT. The expand_doc_bib_accref_1 should
only be used with the WORD system function.
expand_doc_bib_adm
This expand program takes the ADM record fields and expands them in the connected
bibliographic record.
Note that the expand works only in a single ADM environment.
expand_doc_bib_lng_cjk
The expand_doc_bib_lng_cjk expand program adds subfield $$9 with the language
code (chi, jpn, and kor) to each CJK field, in order to differentiate between Chinese,
This program should be used for sites where the items and the holdings records are
not linked.
expand_doc_bib_loc_3_a
This expand program adds the following subfields (replaces codes by names) for
display purposes:
$3 - Material type (display form)
$4 - Sublibrary name
$5 - Collection name
$6 - Item loan status (display form)
$7 - Item process status (display form)
expand_doc_bib_loc_4_a
Imitates expand_doc_bib_loc_usm creating a LOC field.
expand_doc_bib_loc_4_b
Imitates expand_doc_bib_psts creating a PSTS field.
This expand mechanism generates intermediate PS1 fields; the PS1's are sorted and
deduplicated into PST fields. Codes (for example, sublibrary) in the PST fields are
expanded into display forms.
The PST field is only created from the linked item and holdings records and not for
the linked subscription records.
expand_doc_bib_loc_1_a
expand_doc_bib_loc_1_b
expand_doc_bib_loc_1_b2
expand_doc_bib_loc_1_c
expand_doc_bib_loc_1_c2
expand_doc_sort_loc_a
expand_doc_sort_loc_b
expand_doc_bib_loc_3_a
expand_doc_bib_loc_4_a
expand_doc_bib_loc_4_b
expand_doc_bib_loc_4_c
expand_doc_bib_loc_5_c
expand_doc_bib_loc_cleanup
expand_doc_hol_loc_1_a
expand_doc_hol_loc_2_a
This ensures that the expanded bibliographic record is updated when information
related to the item is changed.
The following is an example of the setup for a site where items are linked to holdings
records:
! 1 2
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
XXX-XXX expand_doc_bib_loc_1_a
XXX-XXX expand_doc_bib_loc_1_b
XXX-XXX expand_doc_bib_loc_1_b2
XXX-XXX expand_doc_bib_loc_1_c
XXX-XXX expand_doc_sort_loc_b
XXX-XXX expand_doc_bib_loc_2_a
XXX-XXX expand_doc_bib_loc_3_a
XXX-XXX expand_doc_bib_loc_cleanup
Following is an example of the setup for a site where items are not linked to holdings
records:
! 1 2
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
XXX-XXX expand_doc_bib_loc_1_a
XXX-XXX expand_doc_bib_loc_1_b
XXX-XXX expand_doc_bib_loc_1_b2
XXX-XXX expand_doc_bib_loc_1_c2
XXX-XXX expand_doc_sort_loc_a
XXX-XXX expand_doc_bib_loc_2_a
XXX-XXX expand_doc_bib_loc_3_a
XXX-XXX expand_doc_bib_loc_cleanup
In order to include both LKR types (ADM and ITM), the xxx30 tab_expand needs to
specify both _b and _b2:
CREATE-Z13 expand_doc_course
CREATE-Z13 expand_doc_bib_loc_1_a
CREATE-Z13 expand_doc_bib_loc_1_b
CREATE-Z13 expand_doc_bib_loc_1_b2
CREATE-Z13 expand_doc_bib_loc_1_c
CREATE-Z13 expand_doc_sort_loc_b
CREATE-Z13 expand_doc_bib_loc_2_a
CREATE-Z13 expand_doc_bib_loc_3_a
CREATE-Z13 expand_doc_bib_loc_4_a
This program uses the same environment variable that is used when ALEPH
automatically updates the Z16 (subscription record) and the Z30 (item record) from
the 852 field of the linked holdings record. The program only expands the subfields of
the 852 field defined in the correct_852_subfields environment variable defined in the
aleph_start file. In this way, call numbers from the item and the holdings record are
treated consistently when they are merged into a single list during the expand.
Additionally, note that a Z07 record is triggered for the bibliographic record linked to
the item when one of the following fields of the item record is updated:
- Z30-SUB-LIBRARY
- Z30-MATERIAL
- Z30-ITEM-STATUS
- Z30-COLLECTION
- Z30-CALL-NO-TYPE
- Z30-CALL-NO
- Z30-CALL-NO-KEY
- Z30-CALL-NO-2-TYPE
- Z30-CALL-NO-2
- Z30-CALL-NO-2-KEY
- Z30-DESCRIPTION
- Z30-INVENTORY-NUMBER
A Z07 for the bibliographic record is also triggered when the linked subscription
record is updated.
This ensures that the expanded bibliographic record is updated when information
related to the linked item or to the linked subscription information is changed.
See above.
When the records are displayed in their full format (WEB-FULL routine from
tab_expand) or indexed, the program consults the tab_base.conf table of the
alephe directory, and only the local tags of the selected base are indexed and
displayed.
The following are the tables involved:
The tab_expand in the tab directory of the bibliographic library (XXX01):
This table is used to define the owner codes for the holdings records to display local
tags in the OPAC. The table also defines the tags that are to be expanded. In the
sample below, XXX01_AA will display the local tags that are in the holdings records
where the OWN tag is AA. XXX01_PUB will display local tags for both AA and BB
owners:
[XXX01_AA]
owners list = AA
owner tag = OWN
owner subfield = a
owner alternative tag = 590,690
owner alternative subfield = 9
mapping section = LCN-2-BIB
[XXX01_PUB]
owners list = AA,BB
owner tag = OWN
owner subfield = a
owner alternative tag = 590,690
owner alternative subfield = 9
mapping section = LCN-2-BIB
The tab_mapping table in the tab directory of the bibliographic library (XXX01):
This table is used to map the local tags into the new virtual tags to be indexed or
displayed. In the sample below, if the holdings record has a 690 field, then the
program expands this field into the virtual LCS field in the bibliographic record:
LCN-2-BIB 541## abcde LCN abcde Y Y
LCN-2-BIB 541## fho39 LCN fho39 Y Y
LCN-2-BIB 561## ab39 LCN ab39 Y Y
LCN-2-BIB 590## ab9 LCN ab9 Y Y
The program strips punctuation, capitalizes text and removes initial articles (if
suppressed for filing).
expand_doc_bib_psts
The expand_doc_bib_psts program builds a PSTS field from the Z30 (item record),
the Z16 (subscription record), and the 852 field of the holdings record. This routine
shows the processing status of the item record if available, as well as the call number,
collection and sublibrary.
Note that the item process status is stored in subfield $e. If the item is not in process,
the expand routine takes the loan status of the item and stores it in subfield $d.
This program uses the same environment variable that is used when ALEPH
automatically updates the Z16 (subscription record) and the Z30 (item record) from
the 852 field of the linked holdings record. The program only expands the subfields of
This expand routine skips those holdings records that have been suppressed
(STA$$aSUPPRESSED).
Additionally, note that a Z07 record is triggered for the bibliographic record linked to
the item when one of the following fields of the item record is updated:
- Z30-SUB-LIBRARY
- Z30-MATERIAL
- Z30-ITEM-STATUS
- Z30-COLLECTION
- Z30-CALL-NO-TYPE
- Z30-CALL-NO
- Z30-CALL-NO-KEY
- Z30-CALL-NO-2-TYPE
- Z30-CALL-NO-2
- Z30-CALL-NO-2-KEY
- Z30-DESCRIPTION
- Z30-INVENTORY-NUMBER
A Z07 for the bibliographic record is also triggered when the linked subscription
record is updated.
This ensures that the expanded bibliographic record is updated when information
related to the linked item or to the linked subscription information is changed.
expand_doc_bib_psts_disp
The expand_doc_bib_psts_disp program expands subfields $b and $c of the PSTS
field created by expand_doc_bib_psts, adding subfields $4 (sublibrary name) and
$5 (collection name) in which the codes are replaced by names.
• TAG - This parameter can be used in order to specify that a different new
expanded field should be created instead of the defaults Z30-1 (for copy items)
or Z30-2 (for issue items).
Following is a sample line for the usage of this parameter:
expand_doc_deleted
This routine deletes all the expanded lines of a deleted record and should be added at
the end of the sections relevant for indexing.
expand_doc_duplicate_field
The expand_doc_duplicate_field program is used to duplicate a field, assigning a
new field tag plus indicators. The expand_doc_duplicate_field program is used
with the tab_expand_duplicate_field table of the library's tab directory. This table
defines the field to be duplicated and the new assigned field tag. For example, if the
tab_expand_duplicate field contains the following line:
! 1 2
!!!!!-!!!!!
260## IMP
then the 260 field is duplicated and assigned to a new IMP field. The
expand_doc_duplicate_field procedure and expand_doc_duplicate table can be
used to overcome the problem created when using expand_doc_split, which does
not retain the source field. When expand_doc_split is based on a field created by
the expand_doc_duplicate_field program, the source field is retained. In the above
example, the IMP field can be later processed by expand_doc_split without losing
the original 260 field.
expand_doc_extract
The expand_doc_extract program is used with the tab_expand_extract table of
the library's tab directory. This table defines extraction of subfields for indexing. For
example, if the library wants to create a headings list of "chronological subdivisions"
for "subject added entries - topical terms", it is possible to define that MARC21 650
Note that the fourth column in the tab_expand_extract table can be used to specify
the number of subfield occurrences for which the new virtual field is created. For
example, you can define that only the first occurrence of subfield $y in the 650 field
should be used for the creation of the new field. The following is an extract from the
table:
! 1 2 3 4
!!!!!-!-!!!!!-!
650## y Y650 1
expand_doc_extract_holding
This program moves the 852 field from the holdings record into the linked
bibliographic record. In addition, the contents of subfields $a and $z of the 866/7/8
fields of the holdings records are added to the new 852 field under subfield $3. Note
that between each additional subfield and field, three asterisks are inserted (***).
Subfield $a of the new field is built based on the library code (first three positions, for
example USM). For example, if the holdings record contains the following fields:
86631 L $$aav. 37-52$$zSome issues missing
a new 852 field is added to the linked bibliographic record as follows:
8520 L $$aUSM$$bUELEC$$hhE183.8.B7$$iL494$&
#36;3av. 37-52***Some issues missing
The parameters column of the tab_expand table can include two program arguments:
the first calls a section in tab_fix of the holdings library (XXX60) and the second
lists the item processing status that should be considered as suppressed (the expand
should skip the holdings records linked to the items). Note that in order to use this
expand routine, a line containing ADM USM60 USM50 must be present in the
library_relation table. For example, if tab_expand is defined as follows:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
U39-DOC expand_doc_extract_holding HOL,OI,BP,CA,CL,CT
then HOL is a section from the tab_fix table of the holdings library and OI, BP, CA,
CL and CT are suppressed item processing statuses. Up to 10 item process statuses
can be defined.
In addition, the program does not expand holdings records where the STA field is set
to "SUPPRESSED". Additionally, the program does not check records in SE format.
Note that the hash (#) character can be used as a wildcard and that you can specify the
list to have values such as A# or #B. This will filter out all process status codes
starting with A or ending in B.
expand_doc_fix_abbreviation
The expand_doc_fix_abbreviation program is used to change abbreviations into
full text. The routine can be used to replace any text string in a record with a different
text string. There are two options:
A new duplicate field is added to the record with the non-abbreviated form of the text.
The abbreviated form of the text is changed into full text in the original field.
The available values are ADD and REPLACE. ADD adds a new field to the record
with the non-abbreviated form and REPLACE replaces the abbreviated form with the
new form in the original field without duplication. If the column is left blank, the
system duplicates the field (as ADD). Following is a sample of the tab_expand table:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
U39-DOC expand_doc_fix_abbreviation ADD
The expand_doc_fix_abbreviation program is used with the tab_abbrev table of
the library's tab directory (see tab_abbrev). The tab_abbrev table contains the list
of "abbreviations" and the whole forms into which the shortened form is to be
changed in the new virtual field added to the record.
! 1 2 3 4
!!!!!-!-!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
225## Y 1st FIRST
043## Y u-at--- Australia
043## Y u-at-ne Australia New South Wales
Based on the above sample, the following document:
043 L $$au-at-ne
043 L $$au-at-ne
expand_doc_hld_stmt
The expand_doc_hld_stmt routine generates 863/4/5 enumeration and chronology
data in HOL records, using item records that are linked to the HOL record. The fields
that are generated can then be used to create compressed holdings statements for
display.
As an expand routine, the compressed holdings statements are built on-the-fly when
the record is displayed. Note that a similar program, fix_doc_hld_stmt, can be applied
in the cataloging module (after setting the tab_fix and the fix_doc.eng table of the
HOL library (XXX60). When the fix_doc_hld_stmt program is performed, the
863/4/5 fields are added to the HOL record.
This routine is relevant to HOL libraries only. Note that this routine is relevant only if
the 85x/85xX Publication Pattern fields reside in the HOL document record.
The following item records are taken into consideration when generating the 863/4/5
fields:
Items that have HOL no. in the Hol. Link field.
For example: if the field "S63" contains in subfield $a the value "3", only items with
the first enumeration level of "3" (or higher) will be included in the holdings
statement.
If the field "S63" subfield $t contains the value "2", only items with the value "2" in
the copy number field (Z30-COPY-ID) will be included in the generated holdings
statement.
S63 L $$a3 $$t2
C6340 L $$81.1$$a3$$b2-4$$i2002$$j03-07$$wg$$t2$$9Y
C6340 L $$81.2$$a4$$b1-2$$i2003$$j01-03$$wg$$t2$$9Y
C6340 L $$81.3$$a4$$b4-5$$i2003$$j07-09$$wg$$t2$$9Y
Note: it is possible to have several "S63" fields in the HOL record. In this case, a set
of holdings statement (863/4/5) fields will be created for each "S63" field that
includes subfield $t (copy-ID).
For example:
86340 L $$81.13$$a1$$i20000-2000$$t1$$9Y
86340 L $$81.14$$a2$$b1-3$$i2001$$j01-05$$wg$$t1$$9Y
86340 L $$81.15$$a2$$b5-6$$i2001$$j09-11$$t1$$9Y
(Note: $$9Y is used to denote that the holdings statement field should be regenerated
each time the procedure is used. When a holdings statement field (863/4/5) is
generated, it always includes $$9Y. If the library has holdings statement fields that it
wants to retain when running the procedure, the fields should contain $$9N.
Sets of "considered" item records (as defined in section 4 above) are compressed to
create ranges by enumeration and chronology.
For example:
For example:
C6340 L $$82.3$$a3$$b2-5$$i2002$$j03-09$$wg$$t1
In the above example, subfield $$w contains the value "g" to indicate
that there is a gap break. Issues no. 1 and no. 6 of Volume no. 3 did not
arrive.
Break indicator ($$w) is generated for items that are not included in the summary
holdings statement. These are Items with the process status of: NA or NP, or items
that were mapped to be considered as if they have processing status NA or NP, using
the tab_hld_stmt table of the administrative library (XXX50).
Since different institutions might use different codes to describe the process-status
Not Arrived or Not Published, tab_hld_stmt is used to map those different codes
into "NA" or "NP".
By using this table, we can also map items that have a particular sublibrary and/or
collection, and/or item status, and/or item process status, and/or break indicator to be
considered as NA or NP. Those items will be excluded from the holdings statement.
For example, a library that might want to exclude missing items from the holdings
statement should map the process status MI (missing) as NA in tab_hld_stmt, as
follows:
! 1 2 3 4 5 6
!!!!!-!!!!!-!!-!!-!-!!
##### ##### ## MI # NA
expand_doc_hld_stmt should be listed in col.2 of tab_expand of the HOL library;
for example:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!>
WEB-FULL expand_doc_hld_stmt
WEB-FULL expand_doc_hol_86x
The routine will create 863/4/5 tags in UTIL F/4/doc and in WEB
FULL display.
C6340 L $$81.1$$a1$$i2000$$t2$$9Y
C6340 L $$81.2$$a2$$b1-5$$i2001$$j01-09$$wg$$t2$$9Y
C6340 L $$81.3$$a3$$b2-4$$i2002$$j03-07$$wg$$t2$$9Y
This feature can be used if and when you are checking the generated data and want to
separate it from data that has actually been written in the record.
To enable the generation of summary holdings statements for item records that are not
linked to a subscription record or do not hold a value in the Copy ID field in the
subscription record, the parameter:
GET_Z30_BY=HOL
should be defined in col.3 of tab_expand as follows:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
WEB-FULL expand_doc_hld_stmt GET_Z30_BY=HOL
For item records that are linked to a subscription record and which hold a value in the
Copy ID field in the subscription record and the item records, the parameter:
GET_Z30_BY=COPY_ID
Note: If no parameter is defined in col.3 of tab_expand the system will use the
default parameter:
GET_Z30_BY=COPY ID
expand_doc_hol_852_disp
The expand_doc_hol_852_disp program expands subfields $b and $c of the 852
MARC21 location field adding subfields $4 and $5 in which the sublibrary code and
collection code are replaced by names.
expand_doc_hol_86x
The expand_doc_hol_86x program is used to create the textual holdings statement
fields (866, 867 and 868) based on the 853-855 (Captions and Pattern) and 863-865
(Enumeration and Chronology) fields from the holdings record.
The textual holdings statement fields are created according to the ANSI/NISO Z39.71
- 1999 standard (Holdings Statements for Bibliographic Items) with stripped
punctuation.
If the holdings record includes an 866/7/8 field with sequence number 0 registered in
subfield $8, then no other 866/7/8 field will be generated by the program.
Note that this expand program must be defined in the tab_expand table of the
holdings library (XXX60).
expand_doc_hol_bib
The expand_doc_hol_bib program adds bibliographic data to the holdings record.
Column 3 contains the merge section to be used from the tab_merge_overlay table.
This table is used to define how the holdings record is updated (merged) if it already
exists.
99 1 Y #####
99 2 Y 245##
99 2 Y 1####
According to the above example, the holdings record will display all
the fields cataloged in the holdings records with an expand of the
bibliographic record's title and main entry, as follows:
FMT L HO
LDR L ^^^^^nx^^a22^^^^^1i^4500
008 L 0207042u^^^^8^^^4001uueng0000000
LKR L $$aHOL$$lUSM01$$b000000120
CAT L $$aYOHANAN$$b10$$c20020704$$lUSM60$$h1317
8520 L $$bULINC$$cGEN$$hB819$$i.G3 1968
10010 L $$aGabriel, Leo,$$d1902-
2451 L $$aExistenzphilosophie :$$bKierkegaard, Jaspers,
Heidegger, Sartre. Dial
og der Positionen /$$cLeo Gabriel. --
The expand parameters in Column 3 of tab_expand can contain up to 10 comma-
separated fields (five characters each, including hashes, for example, 85###). If
Column 3 is blank, then all fields from the HOL record are added to the ADM record.
To exclude a specific field, precede the list of fields with a dash - (for example, -
85### -86###).
You can expand the record that is merged into the expanded record. For example: in
expand_doc_lib1_lib2, it is possible to expand the lib2 record and merge it into the
lib1 record. You do this by using a special section in the format "LIB1-LIB2" in the
tab_expand table of LIB2. For example:
V66 is created from 853/853X, V67 is created from 854/854X, and V68 is created
from 855/855X.
In addition, you can filter the items by their status. You do this by using the
parameters column of the tab_expand table. Up to 30 item statuses can be defined
(separated by commas). The expand program only creates new fields for the items
with the statuses included in the column. If a minus (-) is defined in the first position,
then the holdings fields are not created for those items with statuses included in the
column.
expand_doc_isbn_13
The expand_doc_isbn_13 expand procedure adds a field with a 13-digit ISBN if the
record contains a 10-digit ISBN, and vice versa. Expand_doc_isbn_13 should be
added to the "INDEX" section of tab_expand, and the Direct Index (p_manage_05)
should be rebuilt in order to apply the expand.
expand_doc_ismn_13
The expand_doc_ismn_13 routine is used for 13-digit ISMN codes (field 024
indicator 2 in USMARC and 541 in MAB) and their existing 10-digit counterparts. It
is used for converting 10-digit ISMN code to 13-digit code and vice versa.
The procedure should be set in tab_expand with the ISMN field index code as a
parameter in col.3 (the name of the ISMN field index code from tab00.eng). If no
parameter is entered, the default index code is ISMN.
The following is an example of setting expand_doc_ismn_13 in tab_expand:
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
INDEX expand_doc_ismn_13 ISMN
expand_doc_issn_isbn
The expand_doc_issn_isbn program creates virtual 020/022 fields from the 020/022
expand_doc_join
The expand_doc_join program is used with the tab_expand_join table of the
library's tab directory. This table creates a virtual field out of two or more MARC
fields. The tab_expand_join table determines which fields and which of its subfields
should be joined, their order and what the resulting field should be called.
For example, if the library wants to create a headings list of authors and titles, it is
possible to define that MARC21 fields 100 and 245 are to be expanded into a new tag
(for example, TMP01). You may then send the new virtual tag and 7XX fields that
have subfield $t to a common author/title list.
If there are multiple occurrences of the fields, joining is done in pairs. For example, if
tab_expand_join is set to join 595 and 596 as new field 599, and the record contains
"595 a1", "595 a2", "596 b1", "596 b2", "596 b3" the system will create "599 a1 b1"
and "599 a2 b2". "596 b3" will be ignored, since it does not have a 595 pair.
Note that you can redirect information to a new subfield in cases where the original
field does not have subfields (for example, when joining the MARC 21 001 field).
In the following example, the contents of the 001 field are redirected into subfield $x
for the creation of a virtual field (SYS01) created from the 001 field and the 245 field:
! 1 2 3 4 5 6 7
!!!!!-!!!!!-!!!!!-!!!!!-!!!!!-!!!!!-!!!!!
SYS01 001 x 245## a t
For example, if the cataloging record contains the following fields:
001 L 000003333
24504 L $$aThe Yearbook of Medicine
then the new expanded field is created as follows:
SYS01 L $$x000000333$$tThe Yearbook of Medicine
Entering the TYPE=ALL parameter in Column 3 of the $data_tab/tab_expand
table creates a virtual field out of two or more MARC fields.
Here is an example of the tab/tab_expand table with the definition for this
functionality:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
U39-DOC expand_doc_join TYPE=ALL
This functionality also uses the used tab_expand_join table of the library's tab
directory. The tab_expand_join table determines which fields and which of its
subfields should be joined, their order and what the resulting field should be called.
The difference is that this program builds a new virtual field for every combination of
Take abcd and change to xy. It takes the abcd and changes it to x.
Take all but a few defined subfields and change them to a few new subfields,
changing the text to the first new subfield. For example:
Take -abcd and change to xy. It takes all text except for abcd and changes it to x.
expand_doc_join_filter
The expand_doc_join_filter program is used with the tab_expand_join_filter table of
the library's tab directory.
This table creates a virtual field out of up to four fields. The tab_expand_join_filter
table determines which fields and which of its subfields should be joined, their order,
and what the resulting field should be called. It includes the ability to set filter values
and the grouping value for joining. Only fields that contain the filter value and have
same grouping value are joined.
For more details, see the table: tab_expand_join_filter.
expand_doc_join_permute
This expand procedure uses tab_expand_join and creates all the possible
permutations of a field.
! 1 2 3 4 5 6 7
!!!!!-!!!!!-!!!!!-!!!!!-!!!!!-!!!!!-!!!!! ->
AU700 700## abc abc 245## ab fg
AU700 700## abc abc 740## a f
The text taken for the virtual field will be changed according to the filing indicator
defined in tab01.eng.
expand_doc_join_simple
The expand_doc_join_simple program is used with the tab_expand_join_simple
table of the library's tab directory. This table creates a virtual field taking specific
occurrences or all occurrences of a field and joins it with specific or all occurrences of
another field. The tab_expand_join_simple table determines which fields and
which of its subfields should be joined, their order and what the resulting field should
be called.
SECTION1 expand_doc_bib_loc_usm
SECTION1 expand_doc_yr
SECTION1 expand_doc_type tab_type_config
expand_doc_sort
The expand_doc_sort program is used with the tab_expand_sort table of the
library's tab directory. The program sorts the subfields of a specific field according to
the sorting order setup in the table.
expand_doc_sort_field
This program sorts a specific field according to the parameters defined in column 3 of
the library's tab_expand table. In the following example, 260 MARC21 field is
sorted according to the contents of subfield $b (the name of the publisher, distributor,
and so on.):
expand_doc_sort_loc_a
This program sorts uniquely the PS1 fields (items + holdings) creating a PST field for
each unique PS1. PS1 match for uniqueness is on sublibrary, collection, call number
and status.
This program should be used for sites where the items and the holdings records are
not linked.
expand_doc_sort_loc_b
This program sorts uniquely the PS1 fields (items) creating a PST field for each
unique PS1. PS1 match for uniqueness is on sublibrary, collection, call number,
status, and material type. Note that holdings records that do not have linked items
already have their PST field created directly by expand_doc_bib_loc_1_c.
This program should be used for sites where the items and the holdings records are
linked.
expand_doc_split_external
This program, together with the tab_expand_external table of the library's tab
directory, is used to split the content of a tag, with multiple occurrences of subfields
containing external location (856, 505 and so on), into separate tab fields for each
occurrence of the designated subfield.
The program duplicates all subfields besides the designated subfield and places them
in each new tag field.
Note that the new lines created by the program have the original tag while the original
line is suppressed.
expand_doc_sysno
The expand_doc_sysno program is primarily intended for the Z39_SERVER
instance in the tab_expand table of the library's tab directory. This program creates a
virtual SYS field records the Z39.50 server. This program works with the tab04 table
of the library's tab directory. The tab04 table is used to set up the specifications for the
conversion of the "SYS" tag to a numeric tag . Note that it should always appear
under conversion routine 90. The following is an extract from the tab04 table:
90 SYS## 903## N
90 ##### ##### N
Note that the last line in this extract must always be present. In addition, note that the
program must be defined under the Z39_SERVER entry before the
expand_doc_bib_tab04 program as follows:
! 1 2
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
Z39_SERVER expand_doc_sysno
Z39_SERVER expand_doc_bib_tab04
expand_doc_type
This program can be used to create a new field according to the specifications defined
In the above example, the TYP field ($aFilm) is created when position 06 of the LDR
contains a 'g' and position 33 of the 008 field contains an 'm'. Following is the
structure of the new field:
TYP L $$aFilm
Note that the name of the configuration table (for example, tab_type_config) should
be added as a parameter in column 3 of the library's tab_expand table.
expand_doc_type can be used with repetitive fields. This is especially useful for the
EXIST function. For example:
!!!!!-!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!-!!!!!!!!!!-
!!!!!!!!!!-!!!!!!!!!!!!
TYP EL Electronic material 856## u EXIST
Note the following:
If the second parameter in tab_expand is left blank or set to "Y" as follows:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
WORD expand_doc_type tab_type_config.eng,Y
then the program matches the first tag which matches the tag+subfield condition.
Accordingly, the EQUAL, N-EQUAL or MATCH functions cannot be used for
repetitive fields with the same subfield. For example:
TYP Publisher 260## b EQUAL Oclc
The line above does not work with a record such as:
000000000 L 26001 $$aNew York$$bRandom House
000000000 L 26001 $$aNew York$$bOCLC
since it only takes the first line.
If the second parameter in tab_expand is set to "N" as follows:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
WORD expand_doc_type tab_type_config.eng,N
then the program will attempt to find matches with every occurrence of the repetitive
field and subfields in the record.
For example:
tab_type_config includes the following lines:
! 1 2 3 4 5 6 7
!!!!!-!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!-!!!!!!!!!!-!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!
LOC LOC-1 852## b EQUAL WID
LOC LOC-2 852## b EQUAL HIL
expand_doc_uni_merge
The expand_doc_uni_merge program is used by UNIMARC libraries to merge
linked records and display them together. For example, for displaying linked records
in brief format, the following line should be present in tab_expand:
! 1 2
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
WEB-BRIEF expand_doc_uni_merge
expand_doc_union_add_852
The expand_doc_union_add_852 program adds, in a union catalog, a dummy 852
field containing the value of SID $$b in cases when a record has only 856 fields
without 852. This program should reside in to the PRE-MERGE section in
tab_expand.
Note that there must be a matching Z124 so that it will be displayed.
expand_doc_union_exclude_lib
The expand_doc_union_exclude_lib routine faciliates preventing Web OPAC
download of union records from non-authorized users. Column 3 of tab_expand is
used when setting up this expand routine to set which contributing library is to be
removed by this expand routine. The SID,852,856 and 866 fields of the libraries given
as parameter are deleted. If more than one library code is to be used in column 3, the
library codes must be separated by a comma.
expand_doc_yr
This expand program builds a virtual YR field that contains the publication date
(year) based on the parameters entered in column 3 of the tab_expand table.
Following is the structure of the YR field:
YR $a [year]
In the following example, the tab_expand table is set up so that the year is taken
from the 008 MARC 21 field. If the 008 field has no publication date, the contents
expanded into the new YR field are taken from subfield $c of the 260 MARC 21 field:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
U39-DOC expand_doc_yr 008,260##c
If the publication year is 2001, for example, then the new field is built as follows:
YR L $$a2001
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
U39-DOC expand_doc_yr 100
In the following example, the new virtual field contains 'FILM' according to the
values of both the LDR and the 008 field:
! 1 2 3 4 5 6 7
8
!!!!!-!!-!!!!!!!!!!!!!!!!!!!!-!!!!!-!!!!!!!!!!-!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!
982 Media LDR F06-01 EQUAL [g,k,r,o]
Note that the tables used by the expand_doc_type program are language-sensitive. If,
for example, the tab_expand table is set up as follows:
! 1 2 3
!!!!!!!!!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!>
WORD expand_doc_type tab_type_config
then the system looks for the matching tab_type_config in the following order
based on the language:
then a new TYP field with the following structure is added when position 06 of the
LDR field contains an 'a':
TYP L $$aBK$$bBook
If this column is left blank, the new field will be created/expanded as follows:
TYP L $$aBook
Column 3 - Format name
Format name, for example, Book. If a format code is present (column 2), then the
format name is added/expanded into subfield $b of the new field. If no format code is
defined, then the format name is added/expanded into subfield $a of the new field. For
example, if the table contains the following line:
TYP BK Book LDR F06-01 EQUAL a
then a new TYP field with the following structure is added when position 06 of the
LDR field contains an 'a':
TYP L $$aBK$$bBook
If the format code column is left blank, the new field is created/expanded as follows:
TYP L $$aBook
In the following line, the program checks subfield $a of the 490 field:
You can specify positional conditions in this column by the following syntax:
S<subfield><occurrence>FNN-NN
For example
!!!!!-!!-!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!-!!!!!-!!!!!!!!!!-!!!!!!!!!!-
!!!!!!!!!!!!
TYP AB Book 100 Sa1F06-01 EQUAL x
This example shows that if in field 100, the first subfield is a, which occurs once, and
position 6 length 1 contains x, then an expanded TYP field will contain AB book.
Usage:
EQUAL (N-EQUAL) - checks for direct match
EXIST (N-EXIST) - checks if the field exists without checking the field contents. For
example, if a record has a 027 MARC 21 field, then the record is a technical report
(contents are irrelevant).
MATCH (N-MATCH) - checks for a match that is not case-sensitive
Column 7 - Contents
This column contains the contents of the field or of the fixed field position used for
matching (according to the match criteria defined in column 6). Use [] to enclose
multiple values for matching (up to 15 different comparison values). The relationship
between the values is of type OR. In the following line, the match is based on values
'e' or 'f' of position 06 of the LDR field:
TYP Map LDR F06-01 EQUAL [e,f]
Note that if this column is left blank, the default is matching which is not case-
sensitive.
9.3.2 tab_expand_split
The tab_expand_split table is used to set up the specifications for the
expand_doc_split program. This program splits a field into separate parts, splitting
on the subfield specified in column 2 of the tab_expand_split table. The split
occurs on every occurrence of the subfield, thereby creating multiple occurrences of
the field.
The "split" includes all the data up to the subfield, and all the data from the subfield
up to the next occurrence of the subfield, or to the end. For example, if subfield $a is
set in the table, then $a $b $c $a $a $c split into:
$a $b $c
$a
$a $c
The following is a sample of the tab_expand_split table:
! 1 2 3 4
!!!!!-!-----!!!!!-!!!!!
260## b PLA PUB
700## t 100 240
is cut into:
PLA $$aBoston:
PUB $$bLittle, Brown, and company,$$c1933.
9.3.3 tab_abbrev
The tab_abbrev table used is in conjunction with the
expand_doc_fix_abbreviation program.
Note that this program can be also used as a fix program (using tab_fix in place of
tab_expand). The difference is that instead of adding virtual fields (for indexing
or/and display), when used as a fix program, the fields with the whole forms are
actually added to the record.
! 1 2 3 4
!!!!!-!-!!!!!!!!!!!!!!!!!!!!-
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
225## Y 1st FIRST
043## Y u-at--- Australia
043## Y u-at-ne Australia New South Wales
X: Defines that the tag is not to be considered at all for any abbreviation fixing.
Therefore, an X line should not include text in columns 3 and 4.
the program changes Ft. to FORT in all fields that begin with 2, except
for field tag 245.
Column 3 - Abbreviation
Contains the text that should be changed in the new field added to the record.
Column 4 - Expanded Form
Contains the expanded form for the abbreviation in column 3.
Based on the sample table, the following document:
043 L $$au-at-ne
1001 L $$aWilliams, David
2451 L $$aThe 1st man
is expanded into:
043 L $$au-at-ne
1001 L $$aWilliams, David
2451 L $$aThe 1st man
043 L $$aAustralia New South Wales
2451 L $$aThe FIRST man
9.3.4 tab_expand_duplicate_field
The tab_expand_duplicate_field table is used to set up the specifications for the
expand_doc_duplicate_field program. This program is used to duplicate a field,
assigning a new field tag plus indicators.
! 1 2
!!!!!-!!!!!
Is duplicated into:
9.3.5 tab_expand_external
The tab_expand_external table is used together with the
expand_doc_split_external program.
! 1 2
!!!!!-!-
856## u
505## u
Key to the tab_expand_external table:
Column 1 - Input Field Tag and Indicators
Contains the tag and indicators of the document field to be inspected by the expand
program.
9.3.6 expand_doc_bib_z30
The expand_doc_bib_z30 table is used to define the information from the item
record that is expanded by the expand_doc_bib_z30 program. The table defines the
following: which fields are taken from the item record; in which cases these fields
should be taken (for issues, for copy items, and so on,); in which subfields of the
expanded field the information should be stored; and for some specific item fields,
whether the codes should be replaced by names (for example, the sublibrary code can
be replaced by the sublibrary name).
9.3.7 expand_doc_bib_z403
The expand_doc_bib_z403 table is used to define the information from the object's
data information that is expanded by the expand_doc_bib_z403 program. The table
defines the following: which fields are taken from the object's data record (Z403); in
which subfields of the expanded field the information should be stored; and for some
specific fields of the object's data record, whether the codes should be replaced by
names (for example, the sublibrary code can be replaced by the sublibrary name).
Note that column two of this table usually contains the field from the Z403 record (for
example, z403-sub-library), in order to create a valid 856 URL field, the column
should contain url and the expanded field should be set in tab_expand to be 856. This
option should only be used in special cases such as the X and Z39.50 servers.
tab_expand_extract
Example:
tab_expand
WORD expand_doc_fmt_mgu
WORD expand_doc_join
!
ACC expand_doc_bib_loc_usm
ACC expand_doc_bib_ndu
ACC expand_doc_join
!
INDEX expand_doc_extract
INDEX expand_doc_bib_loc_usm
SORT-DOC expand_doc_bib_loc_usm
!
WEB-BRIEF expand_doc_join_simple
!
9.4.1 tab_expand_extract
This table defines the extraction of subfields for indexing. For example, if you want to
create a headings list of chronological subdivisions for subject added entries - topical
terms, you can define that MARC21 650 field, subfield $y is to be expanded into a
new tag (for example, y650). The virtual field may then be indexed or displayed.
Note that the fourth column in the tab_expand_extract table can be used to specify the
number of subfield occurrences for which the new virtual field is created. For
example, you can define that only the first occurrence of subfield $y in the 650 field
should be used for the creation of the new field. The following is an example of
extraction from the table:
! 1 2 3 4
!!!!!-!-!!!!!-!
650#:#y CHRON 1
9.4.2 tab_expand_join
This table creates a virtual field out of two or more MARC fields. The
tab_expand_join table determines which fields and which of its subfields should be
joined, their order and what the resulting field should be called.
For example, if you want to create a headings list of authors and titles, you can define
that MARC21 fields 100 and 245 are to be expanded into a new tag (for example,
AUTIT). You can then send the new virtual tag to an author/title list. The virtual field
is used for indexing purposes.
! 1 2 3 4 5 6
!!!!!-!!!!!-!!!!!-!!!!!-!!!!!-!!!!!
AUTIT 100## a 245## abcd
Note
If there are multiple occurrences of the fields, joining is done in pairs. For example, if
tab_expand_join is set to join 595 and 596 as the i new field 599, and if the record
contains "595 a1", "595 a2", "596 b1", "596 b2", "596 b3", the system will create
"599 a1 b1" and "599 a2 b2". "596 b3" will be ignored, since it does not have a 595
pair.
9.4.3 tab_expand_join_simple
This table creates a virtual field taking specific occurrences or all occurrences of a
field and concatenates it with specific or all occurrences of another field. The
tab_expand_join_simple table determines which fields and which of its subfields
should be concatenated, their order and what the resulting field should be called. The
virtual field is used for display purposes.
! 1 2 3 4 5 6 7 8 9
!!!!!-!!!!!-!!-!!!!!-!!!!!-!!!!!-!!-!!!!!-!!!!!
ATS02 100## AA a a 245## AA y
10 Other Indexes
This chapter includes the following sections:
Update Short Bibliographic Records (manage-07)
Update Sort Index (manage-27)
Update Indexes for Selected Records (manage-40)
Short bibliographic records must be updated if a large number of records have been
The Z101 table contains sorting keys. When a list of brief records is displayed in the
Web OPAC, the Z101 records are used to arrange the list in a specific order. The
fields that are used for building sorting keys are defined in the library's tab/tab_sort
table in the library's tab directory.
12 Parallel Indexing
Parallel indexing is used to rebuild an OPAC index parallel to the online ALEPH
system without downtime while the index is being created. This process also lets you
change indexing parameters and check the results without losing current indexes.
The indexing is carried out in a separate library. This library is set up with a pointer to
the document records in the actual library, and indexes are located in the indexing
library. After indexing has been completed, a pointer is created in the actual library to
the index in the indexing library.
In the examples in the following sections, USM01 is used as the actual library, and
USM21 is used as the indexing library.
To start the indexing process in the USM21 library, assume that all index tables (for
example, for Word tables this would be Z97, Z98, and so on) are defined as local in
the files list, and the documents file as a logical synonym to USM01. You can now
run the indexing job (for example, p_manage_01) in USM21. It reads records from
USM01 via the logical synonym, but creates index tables locally. You can also
change the index setup in the indexing library to create different index codes or to use
different filing procedures.
After the index is built successfully, check it in USM21 using Web OPAC.
Finally, if you want to switch to the new index, create a logical synonym from
USM01 to USM21 for all relevant tables. Thus there is no downtime whatsoever.
The re-indexing of word (W-nnn) and direct (IND) indexes is an autonomous process
that does not require any other indexing. Re-indexing the headings (ACC) index, on
the other hand, requires a series of indexing jobs.
The following are the steps that should be taken to activate parallel indexing:
In addition, the relationship between the indexing library and the ADM and HOL
libraries must be defined in exactly the same way as the relationship between the
actual library and its related ADM and HOL libraries. For example:
Initially, in the root directory of the new library, there should be a copy of the actual
library's file_list. At this stage, the file_list should contain all the Oracle tables listed
in the actual library’s file_list, using the same definitions. Later on, the definitions are
changed, in both the actual and the indexing library, as required.
In the indexing library, the sequence numbers table, Z52, must always be local:
In the indexing library, you must always use a logical synonym for the bibliographic
documents table, Z00 as well as Z103 table:
LS z00 usm01
LS z103 usm01
In addition, the TAB and IND lines for the z00 and z103 need to be commented out
(by placing "!" in front of them).
Before initiating parallel indexing, the above tables should be dropped in the indexing
library (the parallel library).
Before doing the SQL drops for this (shown further below), do the following select:
>>s+ usm21
SQL-USM21> select count(*) from Z00 ;
SQL-USM21> select count(*) from Z103 ;
Note: If you have run p_manage_102, starting UE-08 at this stage is not necessary.
Run p_manage_105 in the AUT libraries to add untraced references.
Run p_manage_17 to alphabetize long headings.
Run p_manage_35 to create brief records (z0101) .
Run p_manage_32 to build counters for logical bases.
Note: Since v17, p_manage_32 can be run in the parallel library.
Note: When rebuilding headings (browse) indexes, you must run the additional
indexing processes listed above.
If your AUT database does not include untraced headings, there is no need to run
p_manage_105.
If you do not have logical bases, or if you have not set "Y" in column 8 of
tab_base.lng for any of the bases, then there is no need to run p_manage_32.
If you are not using brief records, you do not have to run p_manage_35.
Other Indexing Jobs to Run
Run p_ manage-07 to update short bibliographic records.
Run p_manage_27 to update the sort index.
If your site is using Union Catalog or Union View, note that they do not work in
performing this test unless you add LS’s for the z120 and z127.
The next step required is switching from the current (old) index to the new index.
Create a pointer from the actual library Oracle table to the Oracle table in the indexing
library, by changing the definition in the actual library's file_list to a logical synonym.
The following example shows the new setup after re-indexing headings:
Replace:
With:
LS z01 USM21
Replace:
With:
LS z02 USM21
The following example shows the new setup after re-indexing words:
Replace:
With:
LS z95 USM21
LS z97 USM21
LS z98 USM21
LS z980 USM21
Before doing the SQL drops for this (shown further below), do the following select:
>>s+ usm21
SQL-USM21> select count(*) from Z01 ;
SQL-USM21> select count(*) from Z02 ;
Check that these tables are not empty.
Drop the relevant Z tables (mentioned above) in the actual library by using the SQL
command, as in the following example:
>>s+ usm01
SQL-USM01>drop table Z01;
SQL-USM01>drop table Z02;
etc.
Then create logical synonyms to the indexing library, using UTIL A/17/5 in the
actual library.
Note: If you use this option, the next time you want to re-index, you must create an
additional indexing library (in order that both the BIB documents library and the
indexing library remain unlocked).
Step 10: Index Records that Have Been Updated in the Interim
In order to include records that have been updated while indexing has been running in
the indexing library, activate UTIL/E/5/2 in the actual library. This copies the saved
Z07H records to Z07, deleting duplicate entries. The ongoing ue_01 process in the
actual library re-indexes the records stored in Z07.
13 Indexing Services
Each service is identified in the Batch Log and Batch Queue by its procedure name.
14 Further Reading
The following ALEPH documents contain material not included in the Indexing
chapter. They are available from the Ex Libris Documentation Center. Note that
differences might appear between these documents and the current version.
How To Run Index Jobs - This document describes how to run index jobs such as
Words and Headings. It touches upon such issues as turning off archive logging,
number of processes, disk space and file locations, unlocking the library while a job is
running, monitoring jobs, troubleshooting, and estimation runtime.
Index Building / Parallel Processing - This document explains how parallel
processing can be used in ALEPH to decrease the time of indexing, within specific
constraints. It describes key concepts such as cycles, job duration, disk space
calculation and acquaints the reader with the batch jobs involved. It also points out
when part of a specific task cannot be done in parallel.