Skip to content

Modify Multiparser Rules to allow categorization of results

Choose a tag to compare

@terrywbrady terrywbrady released this 19 Mar 23:00
· 228 commits to master since this release

image

image

Sample Parser Rule File

[COLS]
ITEM,TAG,NOTE

[PATTERNS]
# Group Marc Notes that Need Attention

[CATEGORY: ERROR: woodstock]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(woodstock).*)"$

[CATEGORY: ERROR: bindery]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(bindery).*)"$

[CATEGORY: ERROR: damaged]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(damaged?|flood).*)"$

[CATEGORY: ERROR: nostorage]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(nostorage).*)"$

[CATEGORY: ERROR: preservation]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(preservation|repair|infirmary|marked|loose|poor condition).*)"$

[CATEGORY: ERROR: may-prob]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(mayprob).*)"$

[CATEGORY: ERROR: durkin]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(durkin).*)"$

# Group marc notes that may be skippable

[CATEGORY: SKIP: initial]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>[a-zA-Z]{1,3})"$

[CATEGORY: SKIP: pamphlet]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>pamphlet.*)"$

[CATEGORY: SKIP: initial-date]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>[a-zA-Z]{1,3}\s*\d{1,2}/\d{2,4})\s*"$
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>[a-zA-Z]{1,3}\s*\d{1,2}/\d{1,2}/\d{2,4})\s*"$
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>\d{1,2}/\d{2,4}\s*[a-zA-Z]{1,3})\s*"$
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>\d{1,2}/\d{1,2}/\d{2,4}\s*[a-zA-Z]{1,3})\s*"$
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>\d{1,2}/\d{2,4})\s*"$
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>\d{1,2}/\d{1,2}/\d{2,4})\s*"$
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","\s*(?<NOTE>(Mon|Tue|Wed|Thu|Fri|Sat|Sun) .*)"$

[CATEGORY: SKIP: cls-dac-ppc]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>\s*(cls nos|dac |ppc).*)"$

[CATEGORY: SKIP: hold]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>\s*(hold in circ).*)"$

[CATEGORY: SKIP: shipment]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(shipi?ment).*)"$

[CATEGORY: SKIP: cancelled]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*(cancelled).*)"$

[CATEGORY: SKIP: header]
^("?)(?<ITEM>(record_num|Short Item ID)*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*)"$

[CATEGORY: SKIP: blank]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>\s*)"$

[CATEGORY: SKIP: lv610]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>lv\s+6/10)"$

# Identify rules that may need attention

[CATEGORY: WARN: cart]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*CART.*)"$

[CATEGORY: WARN: transfer]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*transfer.*)"$

# Default rule for items not previously caught

[CATEGORY: WARN: uncategorized]
^("?)(?<ITEM>[^,]*)\1,"(?<TAG>[^,]*)","(?<NOTE>.*)"$

[CATEGORY: WARN: no-quote]
^("?)(?<ITEM>[^,]*)\1,(?<TAG>[^,]*),(?<NOTE>.*)$