Skip to main content
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Automating the addition of subjects for use as Database categories

    Created By: Amelia Rowe (RMIT University)
    Created on: 12/20/2018

    Process for automating the addition of subjects for Database categories

    Date edited: 13-Aept-2019




    Rational for automating this process

    Benefits of this process

    Step 1: Generate database categories field based on LCSH subjects

    Step 2: Create set of database records

    Step 3: Create Process

    Step 4: Run Process

    Rational for deciding to use LCSH subjects


    This procedure captures the steps used to automatically generate database categories in Alma records for use in the Primo Database Search categories based on LCSH subject terms present in the Alma bibliographic records.


    For setting up database categories in Primo via Alma records see the existing documentation:


    Rational for automating this process

    The existing infrastructure for database categories requires that the desired subject categories be entered into the databases bibliographic record in Alma. This can be a time consuming and tedious process. In addition, the maintenance of an internal list of subject categories can be easily neglected.

    To avoid both the manual addition of subjects, and the need to maintain an internal subject categories list we chose to automatically assign categories based on existing LCSH subjects within the records. Some more points about this decision making can be found at the end of this document.


    Benefits of this process

    • Automatic generation of database categories (a real time saver)
    • Database categories generated are based on valid subject terminology
    • Ability to edit and update subject choices with ease in the future


    Step 1: Generate database categories field based on LCSH subjects

    Using Alma Normalization rules copy the LCSH subject into the desired database category field (for example 699).

    Tip: LCSH subjects can be identified by the MARC field 650 Ind 1=blank, Ind 2=0


    Example Alma Normalization rule 1




    copyField "650.a" to "699.a" if (exists "650.{ ,0}")



    Note: Copying all LCSH subjects can result in a very long list of subjects

    We chose to focus on the Top 30 occuring LSCH subjects. The identification of these subjects was a quick process done using the MARCEdit tool.


    To only generate the database categories subjects for select LCSH subjects nominate the desired LCSH subjects in the normalization rule.

    Example Alma Normalization rule 2

    rule "Copy 650 Social science to 699 Field"
    priority 31
    (not exists "699.a.Social sciences") AND ((exists "650.{ ,0}.a.Social sciences.") OR (exists "650.{ ,0}.a.Social sciences\\\\."))
    addField "699.a.Social sciences"

    rule "Copy 650 Science to 699 Field"
    priority 30
    (not exists "699.a.Science") AND ((exists "650.{ ,0}.a.Science") OR (exists "650.{ ,0}.a.Science\\\\."))
    addField "699.a.Science"


    Example Alma Normalization rule 2 acts as a white list nominating which subjects you wish to use. At any point in the future this list can be edited by editing the normalization rule.

    Note: In your Normalization rule it is important to capture the LCSH with end punctution and without.

    Note: The Normalization rule looks to confirm the 699 of the subject doesn't already exist. This is to ensure duplicate 699s are not created.


    Note: For information about Alma Normalization rules generally go to:


    Step 2: Create set of database records

    Create a set of bibliographic records that includes the desired electronic collections. You will use this set in Steps 3 and 4.

    We use a special field to identify our database records, this field is used in generating our logical set of database records.


    Step 3: Create Process

    For information of how to add normalization rules to processes see the documentation:


    Step 4: Run Process

    Unfortunately, this type of process cannot be scheduled.

    Run the process manually as your institution likes – such on the last Monday of each month.

    Run the process via jobs.

    For how to manually run the normalization rule over a set of records see the following documentation:


    Note: You can also add this process to import profiles. This would enable you to automatically add your desired database catageories to new database record uploaded via import profiles.


    Rational for deciding to use LCSH subjects

    1. Impractical to maintain an internal database categories list
    2. All database bibliographic records already contain LCSH fields
    3. The decision to copy only 650 $a and not to capture other subfields, valid LCSH geographic fields, and valid LCSH events fields was made to keep the categories list concise and broadly applicable.

    Should you wish to copy subfields into the database categories you can do this by copying them into the subfield b or c of your database category field (for example 699 $b and $c).

    1. The decision of which LCSH subjects to use was based on analysis of LCSH subjects present on database records. The top 30 most used subjects were chosen.