Skip to Main Content

WACTCLC

Documentation

How-to modify the display of specific subject headings in Primo VE Full Record Display

NOTES:

  • You must have "Discovery - Admin" Role in Alma to perform this task
  • This modification only affects the display of subject headings in the Primo VE full record display; it does *NOT* affect search or the subjects as displayed in the subject facet. 
  • In the subject display rules below, the changes from the default, out-of-the-box display rule are highlighted in bold.
  • For more general info on Primo VE display rules, visit Configuring Normalization Rules for Display and Local Fields.

Step-by-Step:

  1. Go to Alma / Discovery / Display Configuration / Manage display and local fields
  2. Click "Add field", then "Add display field"
  3. Under "Fields to Edit", select "Subject"
  4. Click the ellipsis (...) on the "MARC21 normalization rule for display" line, and then click "edit", to edit the display normalization rule for subject.
  5. In the "Normalization rule for Subject" edit box, select and then delete *all* existing text.
  6. Again in the "Normalization rule for Subject" edit box, paste the shaded text below, in its entirety.
  7. Click "Save".
  8. Click "Back".
  9. Click "Apply rules".

You can now launch a fresh Primo VE session to confirm the changes are it place.

 

rule "Primo VE Display - Subject 600"
    when
        MARC."600" has any "a-u,w-z" AND NOT
        MARC."600".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."600" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."600" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "600" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
replace string by string (TEMP"1","Illegal alien","Undocumented immigrant")
replace string by string (TEMP"1","illegal alien","undocumented immigrant")
replace string by string (TEMP"1","Illegal immigrants","Undocumented immigrants")
replace string by string (TEMP"1","Relations with aliens","Relations with immigrants")
replace string by string (TEMP"1","Taxation of aliens","Taxation of immigrants")
replace string by string (TEMP"1","Church work with aliens","Church work with immigrants")
replace string by string (TEMP"1","Deportation of aliens","Deportation of immigrants")
replace string by string (TEMP"1","Alien detention centers","Immigrant detention centers")
replace string by string (TEMP"1","Alien criminal","Criminal")
replace string by string (TEMP"1","Alien labor","Foreign labor")
replace string by string (TEMP"1","Alien property","Foreign-owned property")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 610"
    when
        MARC."610" has any "a-u,w-z" AND NOT
        MARC."610".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."610" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."610" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "610" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 611"
    when
        MARC."611" has any "a-u,w-z" AND NOT
        MARC."611".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."611" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."611" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "611" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 630"
    when
        MARC."630" has any "a-u,w-z" AND NOT
        MARC."630".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."630" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."630" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        kormarc remove nonfiling brackets MARC."630" sourcetag "630" from TEMP"1"
        set TEMP"3" to multilingual by "630" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","") 
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 648"
    when
        MARC."648" has any "a-u,w-z" AND NOT
        MARC."648".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."648" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."648" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "648" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 650"
    when
        MARC."650" has any "a-u,w-z" AND NOT
        MARC."650".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."650" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."650" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "650" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
replace string by string (TEMP"1","Illegal alien","Undocumented immigrant")
replace string by string (TEMP"1","illegal alien","undocumented immigrant")
replace string by string (TEMP"1","Illegal immigrants","Undocumented immigrants")
replace string by string (TEMP"1","Relations with aliens","Relations with immigrants")
replace string by string (TEMP"1","Taxation of aliens","Taxation of immigrants")
replace string by string (TEMP"1","Church work with aliens","Church work with immigrants")
replace string by string (TEMP"1","Deportation of aliens","Deportation of immigrants")
replace string by string (TEMP"1","Alien detention centers","Immigrant detention centers")
replace string by string (TEMP"1","Alien criminal","Criminal")
replace string by string (TEMP"1","Alien labor","Foreign labor")
replace string by string (TEMP"1","Alien property","Foreign-owned property")
        create pnx."display"."subject" with TEMP"1"
end

rule "Prima_Display - Subject 651"
    when
        MARC."651" has any "a-u,w-z" AND NOT
        MARC."651".ind"2"  equals "2"  
    then
        set TEMP"1" to MARC."651" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."651" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "651" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create operational."prima_display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 653"
    when
        MARC."653" has any "a-u,w"
    then
        set TEMP"1" to MARC."653" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to multilingual by "653" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"2","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 654"
    when
        MARC."654" has any "a-u,w-z"
    then
        set TEMP"1" to MARC."654" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."654" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "654" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 655"
    when
        MARC."655" has any "a-u,w-z" AND NOT
        MARC."655".ind"2"  equals "2"
    then
        set TEMP"1" to MARC."655" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."655" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "655" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 656"
    when
        MARC."656" has any "a-u,w-z"
    then
        set TEMP"1" to MARC."656" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."656" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "656" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 657"
    when
        MARC."657" has any "a-u,w-z"
    then
        set TEMP"1" to MARC."657" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."657" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "657" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 658"
    when
        MARC."658" has any "a-u,w"
    then
        set TEMP"1" to MARC."658" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to multilingual by "658" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"2","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 662"
    when
        MARC."662" has any "a-u,w"
    then
        set TEMP"1" to MARC."662" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to multilingual by "662" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"2","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-600"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "600-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-610"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "610-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-611"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "611-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-630"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "630-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-648"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "648-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-650"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "650-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-651"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "651-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-653"
    when
        MARC."880" has any "a-u,w" AND
        MARC."880"."6" match "653-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"2","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-654"
    when
        MARC."880" has any "a-u,w-z" AND
        MARC."880"."6" match "654-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-655"
    when
        MARC."880" has any "a-u,w-z" AND NOT
        MARC."880".ind"2"  equals "2" AND
        MARC."880"."6" match "655-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-656"
    when
        MARC."880" has any "a-u,w-z" AND
        MARC."880"."6" match "656-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-657"
    when
        MARC."880" has any "a-u,w-z" AND
        MARC."880"."6" match "657-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to MARC."880" sub without sorting "x-z" delimited by " -- "
        remove substring using regex (TEMP"2","\\.+$")        
        concatenate with delimiter (TEMP"1",TEMP"2"," -- ")
        set TEMP"3" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"3","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-658"
    when
        MARC."880" has any "a-u,w" AND
        MARC."880"."6" match "658-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"2","")
        create pnx."display"."subject" with TEMP"1"
end

rule "Primo VE Display- Subject 880-662"
    when
        MARC."880" has any "a-u,w" AND
        MARC."880"."6" match "662-.*"
    then
        set TEMP"1" to MARC."880" subfields "a-u,w" delimited by " " remove substring using regex "\\.+$"
        set TEMP"2" to multilingual by "880" "Subject" "display"
        concatenate with delimiter (TEMP"1",TEMP"2","")
        create pnx."display"."subject" with TEMP"1"
end