Skip to Main Content

Brown University Scholarly Resources

Normalization Rules


Normalization rules can be used to make batch changes to bibliograph or holding records. Adding, Changing, Deleting, and Copying fields are some of the tasks that can be performed by a Norm Rule. Unfortunately Regular Expressions are not supported within Norm Rules as of 12/1/21.
  1. Open Metadata Editor (MDE)
  2. Select the Rules tab
  3. Select the Normalization option
  4. There are three folders:
    • Private: Your personal folder, only usable in MDE
    • Shared: This folder is accessible by Brown library colleagues, can be used as public processes
    • Community: This folder contains rules made by Alma users across many institutions and can be copied into your private or shared folders.
    Animated GIF of navigating to Normalization Rules in Alma
  5. Select New to start a rule from scratch
    • Alternatively you can copy an existing rule to have a base to edit from
    1. Name your rule - YOU CANNOT CHANGE THIS
    2. Enter a description - in some places this will be used to identify the process rather than the name (I have no idea why)
    3. Set whether this rule will be placed in the private or shared folder.
    Animated GIF of Creating a new normalization rule in Alma
  6. Write your rule
    1. rule "description of what the rule does"
    2. conditional
    3. actions
    4. end
  7. You can enter multiple tasks within a single rule.

Example

screenshot of a norm rule with each line explained.

rule "Change first indicator of field 852 to 0" --- The Rule name is in the quote tag

when

(TRUE) ---- Conditionals determine when the rule activates. Can have multiple conditions. '(TRUE)' activates everytime regardless of situation.

then

changeFirstIndicator "852" to "0" --- each line between 'then' and 'end' is an action that will take place in order of appearance while the rule is running.

end

Common Rules

Action Format Comment
Add a field addField "tag.{ind1,ind2}.code. value" Add a new field to the Marc record. Indicators are optional
Add a control field addControlField "tag.value" Adds fields for control fields (e.g. 008, 006, 007)
Add a subfield addSubField "tag.{ind1,ind2}.code.value" Adds a new subfield to an established tag. Indicators are optional.
Remove a field removeField "tag" Remove field from the Marc record.
Remove a control field removeControlField "tag" Remove fields for control fields (e.g. 008, 006, 007)
Remove a subfield removeSubField "tag.code" Remove a subfield to an established tag.
Copy fields copyField "tag" to "new tag" Copy a field into another
Replace Contents replaceContents "tag.code.value" with "new value" Change the contents of a field
Replace Subfield Contents replaceSubFieldContents "tag.code" with "tag.code" Change the contents of a subfield
Add a prefix prefix "tag.code" with "value" Adds contents to the beginning of an established subfield
Add a suffix suffix "tag.code" with "value" Adds contents to the end of an established subfield

Advanced

Action Format Example Comment
Add conditionals to specific actions action "value" if(exists "tag.code") addField "910.a.aspAVN2" if(exists"034.a.*AVN2") Will perform the action only if the conditional exists.
Wildcard * if(exists"035.a.*AVN2) If looking for something specific in a field, this can be used to skip characters that exist before the term.