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.
- Open Metadata Editor (MDE)
- Select the Rules tab
- Select the Normalization option
- 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.
- Select New to start a rule from scratch
- Alternatively you can copy an existing rule to have a base to edit from
- Name your rule - YOU CANNOT CHANGE THIS
- Enter a description - in some places this will be used to identify the process rather than the name (I have no idea why)
- Set whether this rule will be placed in the private or shared folder.
- Write your rule
- rule "description of what the rule does"
- conditional
- actions
- end
- You can enter multiple tasks within a single rule.
Example
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. |



