marcspec 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.document +5 -0
- data/.gitignore +21 -0
- data/LICENSE +20 -0
- data/README.rdoc +59 -0
- data/Rakefile +58 -0
- data/VERSION +1 -0
- data/lib/marcspec/customspec.rb +97 -0
- data/lib/marcspec/kvmap.rb +79 -0
- data/lib/marcspec/map.rb +67 -0
- data/lib/marcspec/marcfieldspec.rb +205 -0
- data/lib/marcspec/multivaluemap.rb +62 -0
- data/lib/marcspec/solrfieldspec.rb +123 -0
- data/lib/marcspec/specset.rb +58 -0
- data/lib/marcspec.rb +11 -0
- data/lib/orig.rb +288 -0
- data/spec/data/batch.dat +1 -0
- data/spec/data/one.dat +1 -0
- data/spec/data/umich/translation_maps/area_map.properties +1039 -0
- data/spec/data/umich/translation_maps/availability_map_ht.properties +9 -0
- data/spec/data/umich/translation_maps/availability_map_umich.properties +6 -0
- data/spec/data/umich/translation_maps/callnumber_map.properties +21 -0
- data/spec/data/umich/translation_maps/callnumber_subject_map.properties +214 -0
- data/spec/data/umich/translation_maps/country_map.properties +320 -0
- data/spec/data/umich/translation_maps/format_map.properties +47 -0
- data/spec/data/umich/translation_maps/format_map_umich.properties +35 -0
- data/spec/data/umich/translation_maps/ht_namespace_map.properties +10 -0
- data/spec/data/umich/translation_maps/institution_map.properties +11 -0
- data/spec/data/umich/translation_maps/language_map.properties +489 -0
- data/spec/data/umich/translation_maps/library_map.properties +48 -0
- data/spec/data/umich/translation_maps/location_map.properties +345 -0
- data/spec/data/umich/umich_index.properties +130 -0
- data/spec/maps_spec.rb +91 -0
- data/spec/marcfieldspecs_spec.rb +109 -0
- data/spec/marcspec_spec.rb +10 -0
- data/spec/solrfieldspec_spec.rb +177 -0
- data/spec/spec_helper.rb +16 -0
- metadata +166 -0
@@ -0,0 +1,345 @@
|
|
1
|
+
MiAaUTR = UMTRI
|
2
|
+
MiFliC = FLINT
|
3
|
+
MiU-C = CLEM
|
4
|
+
MiU-H = BENT
|
5
|
+
AAEL = AAEL
|
6
|
+
BENT = BENT
|
7
|
+
BSTA = BSTA
|
8
|
+
BUHR = BUHR
|
9
|
+
CLEM = CLEM
|
10
|
+
CSCAR = CSCAR
|
11
|
+
ELEC = ELEC
|
12
|
+
FINE = FINE
|
13
|
+
FLINT = FLINT
|
14
|
+
FVL = FVL
|
15
|
+
HATCH = HATCH
|
16
|
+
HERB = HERB
|
17
|
+
TAUB = TAUB
|
18
|
+
MUSM = MUSM
|
19
|
+
MUSIC = MUSIC
|
20
|
+
PUB = PUB
|
21
|
+
SCI = SCI
|
22
|
+
SOC = SOC
|
23
|
+
SPEC = SPEC
|
24
|
+
UGL = UGL
|
25
|
+
UMTRI = UMTRI
|
26
|
+
SDR = SDR
|
27
|
+
UNION = UNION
|
28
|
+
AAEL\ BKS = AAEL BKS
|
29
|
+
AAEL\ BSMT = AAEL BSMT
|
30
|
+
AAEL\ CAR = AAEL CAR
|
31
|
+
AAEL\ DISS = AAEL DISS
|
32
|
+
AAEL\ ERES = AAEL ERES
|
33
|
+
AAEL\ FUN = AAEL FUN
|
34
|
+
AAEL\ GAME = AAEL GAME
|
35
|
+
AAEL\ IEEE = AAEL IEEE
|
36
|
+
AAEL\ MICE = AAEL MICE
|
37
|
+
AAEL\ MICM = AAEL MICM
|
38
|
+
AAEL\ OPEN = AAEL OPEN
|
39
|
+
AAEL\ OVR = AAEL OVR
|
40
|
+
AAEL\ PER = AAEL PER
|
41
|
+
AAEL\ PERU = AAEL PERU
|
42
|
+
AAEL\ RAR = AAEL RAR
|
43
|
+
AAEL\ REF = AAEL REF
|
44
|
+
AAEL\ RESC = AAEL RESC
|
45
|
+
AAEL\ RESI = AAEL RESI
|
46
|
+
AAEL\ RESP = AAEL RESP
|
47
|
+
AAEL\ SECD = AAEL SECD
|
48
|
+
AAEL\ SLD = AAEL SLD
|
49
|
+
AAEL\ STO = AAEL STO
|
50
|
+
AAEL\ STOF = AAEL STOF
|
51
|
+
AAEL\ XOVR = AAEL XOVR
|
52
|
+
BENT\ RR = BENT RR
|
53
|
+
BENT\ SF = BENT SF
|
54
|
+
BENT\ STOR = BENT STOR
|
55
|
+
BENT\ ELEC = BENT ELEC
|
56
|
+
BSTA\ CAGE = BSTA CAGE
|
57
|
+
BSTA\ ERES = BSTA ERES
|
58
|
+
BSTA\ OVR = BSTA OVR
|
59
|
+
BSTA\ REF = BSTA REF
|
60
|
+
BSTA\ RESC = BSTA RESC
|
61
|
+
BUHR\ AAEL = BUHR
|
62
|
+
BUHR\ ASIA = BUHR
|
63
|
+
BUHR\ CHEM = BUHR
|
64
|
+
BUHR\ DENT = BUHR
|
65
|
+
BUHR\ FINE = BUHR
|
66
|
+
BUHR\ GLMR = BUHR
|
67
|
+
BUHR\ GRAD = BUHR
|
68
|
+
BUHR\ JUV = BUHR
|
69
|
+
BUHR\ MAP = BUHR
|
70
|
+
BUHR\ MUSI = BUHR
|
71
|
+
BUHR\ MUSM = BUHR
|
72
|
+
BUHR\ PAPY = BUHR
|
73
|
+
BUHR\ PUB = BUHR
|
74
|
+
BUHR\ SCI = BUHR
|
75
|
+
BUHR\ SOC = BUHR
|
76
|
+
BUHR\ SSBU = BUHR
|
77
|
+
BUHR\ TAUB = BUHR
|
78
|
+
CLEM\ OVFL = CLEM OVFL
|
79
|
+
CLEM\ RSTO = CLEM RSTO
|
80
|
+
FINE\ ADM = FINE ADM
|
81
|
+
FINE\ ERES = FINE ERES
|
82
|
+
FINE\ FOL = FINE FOL
|
83
|
+
FINE\ OSFF = FINE OSFF
|
84
|
+
FINE\ OSR = FINE OSR
|
85
|
+
FINE\ OSRF = FINE OSRF
|
86
|
+
FINE\ OSRJ = FINE OSRJ
|
87
|
+
FINE\ OSRR = FINE OSRR
|
88
|
+
FINE\ OVR = FINE OVR
|
89
|
+
FINE\ OVR2 = FINE OVR2
|
90
|
+
FINE\ PER = FINE PER
|
91
|
+
FINE\ PERC = FINE PERC
|
92
|
+
FINE\ REF = FINE REF
|
93
|
+
FINE\ RESC = FINE RESC
|
94
|
+
FINE\ RESP = FINE RESP
|
95
|
+
FINE\ SPE = FINE SPE
|
96
|
+
FINE\ SPO = FINE SPO
|
97
|
+
FVL\ H1 = FVL H1
|
98
|
+
FVL\ H3 = FVL H3
|
99
|
+
FVL\ F1 = FVL F1
|
100
|
+
FVL\ F2 = FVL F2
|
101
|
+
HATCH\ ACQ = HATCH ACQ
|
102
|
+
HATCH\ AMIC = HATCH ASIA
|
103
|
+
HATCH\ AOFF = HATCH ASIA
|
104
|
+
HATCH\ AOVR = HATCH ASIA
|
105
|
+
HATCH\ AREF = HATCH ASIA
|
106
|
+
HATCH\ ARGM = HATCH ARGM
|
107
|
+
HATCH\ ASIA = HATCH ASIA
|
108
|
+
HATCH\ BACK = HATCH BACK
|
109
|
+
HATCH\ DFILE = HATCH DOCS
|
110
|
+
HATCH\ DMIC = HATCH DOCS
|
111
|
+
HATCH\ DOCS = HATCH DOCS
|
112
|
+
HATCH\ DREF = HATCH DOCS
|
113
|
+
HATCH\ DSOFT = HATCH DOCS
|
114
|
+
HATCH\ GDESK = HATCH REF
|
115
|
+
HATCH\ GFOL = HATCH GFOL
|
116
|
+
HATCH\ GLMR = HATCH GLMR
|
117
|
+
HATCH\ GLRF = HATCH REF
|
118
|
+
HATCH\ GRAD = HATCH GRAD
|
119
|
+
HATCH\ GRNT = HATCH REF
|
120
|
+
HATCH\ ICPSR = HATCH ICPSR
|
121
|
+
HATCH\ JUV = HATCH JUV
|
122
|
+
HATCH\ MAP = HATCH MAP
|
123
|
+
HATCH\ MATL = HATCH BKS
|
124
|
+
HATCH\ MFILE = HATCH MAP
|
125
|
+
HATCH\ MFILR = HATCH MRAR
|
126
|
+
HATCH\ MFOL = HATCH MRAR
|
127
|
+
HATCH\ MIXM = HATCH MIXM
|
128
|
+
HATCH\ MMIC = HATCH MAP
|
129
|
+
HATCH\ MOFF = HATCH MOFF
|
130
|
+
HATCH\ MONO = HATCH MONO
|
131
|
+
HATCH\ MOVR = HATCH BKS
|
132
|
+
HATCH\ MOVRD = HATCH MAP
|
133
|
+
HATCH\ MRAR = HATCH MRAR
|
134
|
+
HATCH\ MREF = HATCH BKS
|
135
|
+
HATCH\ MSHLV = HATCH BKS
|
136
|
+
HATCH\ MSOFT = HATCH MSOFT
|
137
|
+
HATCH\ NER = HATCH NER
|
138
|
+
HATCH\ SAR = HATCH SAR
|
139
|
+
HATCH\ SEAR = HATCH SEAR
|
140
|
+
HATCH\ SEM = HATCH NER
|
141
|
+
HATCH\ SLVR = HATCH SLVR
|
142
|
+
HATCH\ SSBU = HATCH SSBU
|
143
|
+
HATCH\ TECH = HATCH TECH
|
144
|
+
HERB\ HEBC = HERB HEBC
|
145
|
+
HERB\ HEBO = HERB HEBO
|
146
|
+
HERB\ HEBR = HERB HEBR
|
147
|
+
MUSIC\ ADM = MUSIC ADM
|
148
|
+
MUSIC\ DIC = MUSIC DIC
|
149
|
+
MUSIC\ DIS = MUSIC DIS
|
150
|
+
MUSIC\ DVD = MUSIC DVD
|
151
|
+
MUSIC\ EDIS = MUSIC EDIS
|
152
|
+
MUSIC\ ERES = MUSIC ERES
|
153
|
+
MUSIC\ FOLIO = MUSIC FOLIO
|
154
|
+
MUSIC\ MIC = MUSIC MIC
|
155
|
+
MUSIC\ MINI = MUSIC MINI
|
156
|
+
MUSIC\ PER = MUSIC PER
|
157
|
+
MUSIC\ OVCD = MUSIC OVCD
|
158
|
+
MUSIC\ OVR = MUSIC OVR
|
159
|
+
MUSIC\ RAR = MUSIC RAR
|
160
|
+
MUSIC\ RARW = MUSIC RARW
|
161
|
+
MUSIC\ REC = MUSIC REC
|
162
|
+
MUSIC\ REF = MUSIC REF
|
163
|
+
MUSIC\ REF2 = MUSIC REF2
|
164
|
+
MUSIC\ RESC = MUSIC RESC
|
165
|
+
MUSIC\ SOFT = MUSIC SOFT
|
166
|
+
MUSIC\ VID = MUSIC VID
|
167
|
+
MUSM\ ANT = MUSM ANT
|
168
|
+
MUSM\ ANTE = MUSM ANTE
|
169
|
+
MUSM\ ANTO = MUSM ANTO
|
170
|
+
MUSM\ BIR = MUSM BIR
|
171
|
+
MUSM\ BIRC = MUSM BIRC
|
172
|
+
MUSM\ CAGE = MUSM CAGE
|
173
|
+
MUSM\ ERES = MUSM ERES
|
174
|
+
MUSM\ FIS = MUSM FIS
|
175
|
+
MUSM\ FISO = MUSM FISO
|
176
|
+
MUSM\ HEP = MUSM HEP
|
177
|
+
MUSM\ HEPO = MUSM HEPO
|
178
|
+
MUSM\ INS = MUSM INS
|
179
|
+
MUSM\ INSO = MUSM INSO
|
180
|
+
MUSM\ INST = MUSM INST
|
181
|
+
MUSM\ MAIN = MUSM MAIN
|
182
|
+
MUSM\ MAM = MUSM MAM
|
183
|
+
MUSM\ MAMO = MUSM MAMO
|
184
|
+
MUSM\ MIC = MUSM MIC
|
185
|
+
MUSM\ MOL = MUSM MOL
|
186
|
+
MUSM\ MOLO = MUSM MOLO
|
187
|
+
MUSM\ OVR = MUSM OVR
|
188
|
+
MUSM\ PAL = MUSM PAL
|
189
|
+
MUSM\ PALO = MUSM PALO
|
190
|
+
MUSM\ PALR = MUSM PALR
|
191
|
+
MUSM\ PER = MUSM PER
|
192
|
+
MUSM\ REF = MUSM REF
|
193
|
+
MUSM\ RESC = MUSM RESC
|
194
|
+
MUSM\ RESP = MUSM RESP
|
195
|
+
MUSM\ SPE = MUSM SPE
|
196
|
+
PUB\ CDR = PUB CDR
|
197
|
+
PUB\ ERES = PUB ERES
|
198
|
+
PUB\ IND = PUB IND
|
199
|
+
PUB\ OVR = PUB OVR
|
200
|
+
PUB\ PER = PUB PER
|
201
|
+
PUB\ RAR = PUB RAR
|
202
|
+
PUB\ REF = PUB REF
|
203
|
+
PUB\ RESC = PUB RESC
|
204
|
+
PUB\ RESP = PUB RESP
|
205
|
+
PUB\ RREF = PUB RREF
|
206
|
+
PUB\ SOFT = PUB SOFT
|
207
|
+
SCI\ ATL = SCI ATL
|
208
|
+
SCI\ DIS = SCI DIS
|
209
|
+
SCI\ BKS = SCI BKS
|
210
|
+
SCI\ ERES = SCI ERES
|
211
|
+
SCI\ IND = SCI IND
|
212
|
+
SCI\ INDT = SCI INDT
|
213
|
+
SCI\ MAS = SCI MAS
|
214
|
+
SCI\ OVR = SCI OVR
|
215
|
+
SCI\ REF = SCI REF
|
216
|
+
SCI\ RESC = SCI RESC
|
217
|
+
SCI\ RESP = SCI RESP
|
218
|
+
SCI\ SER = SCI SER
|
219
|
+
SOC\ AV = SOC AV
|
220
|
+
SOC\ DIS = SOC DIS
|
221
|
+
SOC\ ERES = SOC ERES
|
222
|
+
SOC\ FAC = SOC FAC
|
223
|
+
SOC\ PER = SOC PER
|
224
|
+
SOC\ PER2 = SOC PER2
|
225
|
+
SOC\ REF = SOC REF
|
226
|
+
SOC\ RESC = SOC RESC
|
227
|
+
SPEC\ ASA = SPEC ASA
|
228
|
+
SPEC\ ASG = SPEC ASG
|
229
|
+
SPEC\ ATL1 = SPEC ATL1
|
230
|
+
SPEC\ ATL2 = SPEC ATL2
|
231
|
+
SPEC\ BIND = SPEC BIND
|
232
|
+
SPEC\ CASE = SPEC CASE
|
233
|
+
SPEC\ CHIL = SPEC CHIL
|
234
|
+
SPEC\ FAUL = SPEC FAUL
|
235
|
+
SPEC\ FILE = SPEC FILE
|
236
|
+
SPEC\ FOL = SPEC FOL
|
237
|
+
SPEC\ GOSL = SPEC GOSL
|
238
|
+
SPEC\ HUB = SPEC HUB
|
239
|
+
SPEC\ ISLM = SPEC ISLM
|
240
|
+
SPEC\ JHC = SPEC JHC
|
241
|
+
SPEC\ LABD = SPEC LABD
|
242
|
+
SPEC\ LAFI = SPEC LAFI
|
243
|
+
SPEC\ LAFO = SPEC LAFO
|
244
|
+
SPEC\ LAFP = SPEC LAFP
|
245
|
+
SPEC\ LAMI = SPEC LAMI
|
246
|
+
SPEC\ LAMS = SPEC LAMS
|
247
|
+
SPEC\ LAOF = SPEC LAOF
|
248
|
+
SPEC\ LAOV = SPEC LAOV
|
249
|
+
SPEC\ LAPA = SPEC LAPA
|
250
|
+
SPEC\ LARC = SPEC LARC
|
251
|
+
SPEC\ LARF = SPEC LARF
|
252
|
+
SPEC\ LAST = SPEC LAST
|
253
|
+
SPEC\ MIC = SPEC MIC
|
254
|
+
SPEC\ MICH = SPEC MICH
|
255
|
+
SPEC\ MSS = SPEC MSS
|
256
|
+
SPEC\ OFF = SPEC OFF
|
257
|
+
SPEC\ OVR = SPEC OVR
|
258
|
+
SPEC\ PAPY = SPEC PAPY
|
259
|
+
SPEC\ PARS = SPEC PARS
|
260
|
+
SPEC\ REC = SPEC REC
|
261
|
+
SPEC\ REF = SPEC REF
|
262
|
+
SPEC\ RCLC = SPEC RCLC
|
263
|
+
SPEC\ RTHC = SPEC RTHC
|
264
|
+
SPEC\ SCFI = SPEC SCFI
|
265
|
+
SPEC\ SCI = SPEC SCI
|
266
|
+
SPEC\ SHA = SPEC SHA
|
267
|
+
SPEC\ STO = SPEC STO
|
268
|
+
SPEC\ THC = SPEC THC
|
269
|
+
SPEC\ WALP = SPEC WALP
|
270
|
+
SPEC\ WLPR = SPEC WLPR
|
271
|
+
SPEC\ WOR = SPEC WOR
|
272
|
+
TAUB\ ERES = TAUB ERES
|
273
|
+
TAUB\ ILL = TAUB ILL
|
274
|
+
TAUB\ IND = TAUB IND
|
275
|
+
TAUB\ INDA = TAUB INDA
|
276
|
+
TAUB\ MIC = TAUB MIC
|
277
|
+
TAUB\ OVR = TAUB OVR
|
278
|
+
TAUB\ PER = TAUB PER
|
279
|
+
TAUB\ RAR = TAUB RAR
|
280
|
+
TAUB\ RARA = TAUB RARA
|
281
|
+
TAUB\ RARC = TAUB RARC
|
282
|
+
TAUB\ RARD = TAUB RARD
|
283
|
+
TAUB\ RARF = TAUB RARF
|
284
|
+
TAUB\ RARH = TAUB RARH
|
285
|
+
TAUB\ RARI = TAUB RARI
|
286
|
+
TAUB\ RARJ = TAUB RARJ
|
287
|
+
TAUB\ RARL = TAUB RARL
|
288
|
+
TAUB\ RARM = TAUB RARM
|
289
|
+
TAUB\ RARO = TAUB RARO
|
290
|
+
TAUB\ RARP = TAUB RARP
|
291
|
+
TAUB\ RARR = TAUB RARR
|
292
|
+
TAUB\ RARW = TAUB RARW
|
293
|
+
TAUB\ REF = TAUB REF
|
294
|
+
TAUB\ RESC = TAUB RESC
|
295
|
+
TAUB\ STOR = TAUB STOR
|
296
|
+
UGL\ ATL = UGL ATL
|
297
|
+
UGL\ CLC = UGL CLC
|
298
|
+
UGL\ ERES = UGL ERES
|
299
|
+
UGL\ IND = UGL IND
|
300
|
+
UGL\ OFF = UGL OFF
|
301
|
+
UGL\ OVR = UGL OVR
|
302
|
+
UGL\ PER = UGL PER
|
303
|
+
UGL\ PRON = UGL PRON
|
304
|
+
UGL\ REF = UGL REF
|
305
|
+
UGL\ RESC = UGL RESC
|
306
|
+
FLINT\ ABST = FLINT ABST
|
307
|
+
FLINT\ ARCH = FLINT ARCH
|
308
|
+
FLINT\ ATLAS = FLINT REF
|
309
|
+
FLINT\ BUSB = FLINT MAIN
|
310
|
+
FLINT\ BUSP = FLINT PERI
|
311
|
+
FLINT\ CHILD = FLINT CHILD
|
312
|
+
FLINT\ ELEC = FLINT ELEC
|
313
|
+
FLINT\ ERES = FLINT ERES
|
314
|
+
FLINT\ FSPAM = FLINT MAIN
|
315
|
+
FLINT\ ILL = FLINT ILL
|
316
|
+
FLINT\ MAIN = FLINT MAIN
|
317
|
+
FLINT\ MCARD = FLINT MICRO
|
318
|
+
FLINT\ MEDIA = FLINT MEDIA
|
319
|
+
FLINT\ MFICH = FLINT MICRO
|
320
|
+
FLINT\ MFILM = FLINT MICRO
|
321
|
+
FLINT\ MOVRZ = FLINT MEDIA
|
322
|
+
FLINT\ MSTR = FLINT MAIN
|
323
|
+
FLINT\ OVERZ = FLINT MAIN
|
324
|
+
FLINT\ PERI = FLINT PERI
|
325
|
+
FLINT\ REF = FLINT REF
|
326
|
+
FLINT\ REFD = FLINT REF
|
327
|
+
FLINT\ RESV = FLINT RESV
|
328
|
+
FLINT\ SPEC = FLINT ARCH
|
329
|
+
FLINT\ TECH = FLINT REF
|
330
|
+
UMTRI\ INTER = UMTRI INTER
|
331
|
+
UMTRI\ STAPP = UMTRI STAPP
|
332
|
+
SDR\ MIU = SDR MIU
|
333
|
+
SDR\ UMDL = SDR UMDL
|
334
|
+
SDR\ UMLAW = SDR UMLAW
|
335
|
+
SDR\ GWLA = SDR GWLA
|
336
|
+
SDR\ WU = SDR WU
|
337
|
+
SDR\ INU = SDR INU
|
338
|
+
SDR\ NRLF = SDR NRLF
|
339
|
+
SDR\ UCSC = SDR UCSC
|
340
|
+
SDR\ UCSD = SDR UCSD
|
341
|
+
SDR\ ISRLF = SDR ISRLF
|
342
|
+
SDR\ PST = SDR PST
|
343
|
+
SDR\ UMN = SDR UMN
|
344
|
+
UNION\ TOY = UNION TOY
|
345
|
+
UNION\ CHES = UNION CHES
|
@@ -0,0 +1,130 @@
|
|
1
|
+
##############################################################################################
|
2
|
+
# This file has been reorganized to reflect the order of field declarations in schema.xml. #
|
3
|
+
# Where existing VuFind fields overlapped with those defined by the CEILIDH metadata group, #
|
4
|
+
# the stock VuFind definition has been commented out and the CEILIDH definition substituted. #
|
5
|
+
# Additional CEILIDH-defined fields are included at the end of this file. --JKG #
|
6
|
+
##############################################################################################
|
7
|
+
|
8
|
+
#### VUFIND CORE FIELDS ####
|
9
|
+
|
10
|
+
id = 001, first
|
11
|
+
#fullrecord = FullRecordAsMarc
|
12
|
+
fullrecord = FullRecordAsXML
|
13
|
+
allfields = custom, getAllSearchableFields(100, 999)
|
14
|
+
|
15
|
+
#### VUFIND INSTITUTIONAL FIELDS ####
|
16
|
+
|
17
|
+
institution = 971a, institution_map.properties
|
18
|
+
collection = "Catalog"
|
19
|
+
building = 852bc:971a, library_map.properties
|
20
|
+
location = 971a:852b:852bc, location_map.properties
|
21
|
+
|
22
|
+
######## IDENTIFIERS ###########
|
23
|
+
|
24
|
+
htsource = custom, getHTNameSpace, ht_namespace_map.properties
|
25
|
+
|
26
|
+
lccn = 010a
|
27
|
+
#ctrlnum = 035a
|
28
|
+
oclc = custom, getOclcNum
|
29
|
+
sdrnum = custom, getSDRNum
|
30
|
+
rptnum = 088a
|
31
|
+
isbn = 020a:020z
|
32
|
+
issn = 022a:022l:022m:022y:022z:247x
|
33
|
+
isn_related = 400x:410x:411x:440x:490x:500x:510x:534xz:556z:581z:700x:710x:711x:730x:760x:762x:765xz:767xz:770xz:772x:773xz:774xz:775xz:776xz:777x:780xz:785xz:786xz:787xz
|
34
|
+
|
35
|
+
|
36
|
+
callnumber = 852hij
|
37
|
+
sudoc = 086a:086z
|
38
|
+
|
39
|
+
#### MISC ####
|
40
|
+
|
41
|
+
#language = 008[35-37]:041a[0-2]:041d[0-2]:041e[0-2]:041j[0-2], language_map.properties
|
42
|
+
language = custom, getLanguage, language_map.properties
|
43
|
+
#format = 600v:610v:611v:630v:648v:650v:651v:653v:654v:655v:690v:691v:655a:970a, format_map_umich.properties
|
44
|
+
format = 970a, format_map_umich.properties
|
45
|
+
availability = 973b, availability_map_umich.properties
|
46
|
+
ht_availability = 974r, availability_map_ht.properties
|
47
|
+
cat_date = 972c
|
48
|
+
#physical = 300abc
|
49
|
+
publisher = 260b:533c
|
50
|
+
edition = 250a
|
51
|
+
#contents = 505atr
|
52
|
+
#url = 856u
|
53
|
+
ht_id = 974u
|
54
|
+
ht_id_update = custom, getHathiUpdate
|
55
|
+
ht_id_display = custom, getHathiData
|
56
|
+
ht_json = custom, getHathiDataJSON
|
57
|
+
|
58
|
+
########## AUTHOR ############
|
59
|
+
|
60
|
+
author = 100abcd:110abcd:111abc
|
61
|
+
author2 = 110ab:111ab:700abcd:710ab:711ab
|
62
|
+
|
63
|
+
author_top = 100abcdefgjklnpqtu0:110abcdefgklnptu04:111acdefgjklnpqtu04:700abcdejqux034:710abcdeux034:711acdegjnqux034:720a:765a:767a:770a:772a:774a:775a:776a:777a:780a:785a:786a:787a:245c
|
64
|
+
author_rest = 505r
|
65
|
+
|
66
|
+
#author_1xx = 100abcdefgjklnpqtu0:110abcdefgklnptu04:111acdefgjklnpqtu04
|
67
|
+
#author_2xx = 245c
|
68
|
+
#author_4xx = 400abcdn:411abcdn
|
69
|
+
#author_5xx = 505r:508a:511a
|
70
|
+
#author_7xx = 700abcdejqux034:710abcdeux034:711acdegjnqux034:720a:765a:767a:770a:772a:774a:775a:776a:777a:780a:785a:786a:787a
|
71
|
+
#author_8xx = 800abcdeqwx034:810abcdewx034:811acdejnwx034:505ar
|
72
|
+
|
73
|
+
|
74
|
+
#auth_author = 100abcd
|
75
|
+
#author2-role = 700e
|
76
|
+
#auth_author2 = 700abcd
|
77
|
+
|
78
|
+
######### TITLE ############
|
79
|
+
|
80
|
+
title = custom, getTitle(abdefghknp)
|
81
|
+
title_ab = custom, getTitle(akb)
|
82
|
+
title_a = custom, getTitle(ak)
|
83
|
+
titleSort = custom, getTitle_sort
|
84
|
+
title_top = 240adfghklmnoprs0:245abfghknps:111acdefgjklnpqtu04:130adfghklmnoprst0
|
85
|
+
title_rest = 210ab:222ab:242abhnpy:243adfghklmnoprs:246abdenp:247abdenp:700fghjklmnoprstx03:710fghklmnoprstx03:711acdefghjklnpqstux034:730adfghklmnoprstx03:740ahnp:765st:767st:770st:772st:773st:775st:776st:777st:780st:785st:786st:787st:830adfghklmnoprstv:440anpvx:490avx:505t
|
86
|
+
series = 440ap:800abcdfpqt:830ap
|
87
|
+
series2 = 490a
|
88
|
+
|
89
|
+
serialTitle = custom, getSerialTitle(abdefghknp)
|
90
|
+
serialTitle_ab = custom, getSerialTitle(ab)
|
91
|
+
serialTitle_a = custom, getSerialTitle(a)
|
92
|
+
serialTitle_rest = custom, getDataForFormat(130adfgklmnoprst:210ab:222ab:240adfgklmnprs:246abdenp:247abdenp:730anp:740anp:765st:767st:770st:772st:775st:776st:777st:780st:785st:786st:787st,SE)
|
93
|
+
|
94
|
+
#### CATEGORIZATION #########
|
95
|
+
|
96
|
+
#fulltopic = custom, getFullTopic
|
97
|
+
topic = 600abcdefghjklmnopqrstuvxyz:600a:610abcdefghklmnoprstuvxyz:610a:611acdefghjklnpqstuvxyz:611a:630adefghklmnoprstvxyz:630a:648avxyz:648a:650abcdevxyz:600a:651aevxyz:651a:653a:654abevyz:654a:655abvxyz:655a:656akvxyz:656a:657avxyz:657a:658ab:658a:662abcdefgh:662a:
|
98
|
+
#subtopic = 600x:610x:611x:630x:648x:650x:651x:653x:654x:655x:656x:657x:658x:662x:690x:691x:692x:693x:694x:695x:696x:697x:698x:699x
|
99
|
+
#fullgenre = custom, getFullGenre
|
100
|
+
genre = 655ab
|
101
|
+
#subgenre = 655v:655x:655y:655z
|
102
|
+
#hlb_a = 975a
|
103
|
+
#hlb_b = 975b
|
104
|
+
#hlb_both: 975a:975b
|
105
|
+
#hlb_ab = 975ab
|
106
|
+
#hlb_full = 975c
|
107
|
+
|
108
|
+
|
109
|
+
#hlb3: 976a:976b:976c
|
110
|
+
|
111
|
+
|
112
|
+
hlb3 = custom, getHLB3
|
113
|
+
hlb3Delimited = custom, getHLB3Delimited
|
114
|
+
|
115
|
+
####### TIME AND PLACE #######
|
116
|
+
|
117
|
+
#dateSpan = 362a
|
118
|
+
#fullgeographic = custom, getFullGeographic
|
119
|
+
geographic = 043a, area_map.properties
|
120
|
+
#subgeographic = 651v:651x:651y:651z
|
121
|
+
era = 600y:610y:611y:630y:650y:651y:654y:655y:656y:657y:690z:691y:692z:694z:695z:696z:697z:698z:699z
|
122
|
+
country_of_pub = 008[15-17]:008[17]:752ab, country_map.properties
|
123
|
+
publishDate = DateOfPublication
|
124
|
+
#publishDate = 008[7-10]
|
125
|
+
publishDateRange = custom, getPublishDateRange
|
126
|
+
|
127
|
+
#### ADDITIONAL CEILIDH-DEFINED FIELDS ####
|
128
|
+
|
129
|
+
# full spec for format facet, will require custom indexing code (currently unused)
|
130
|
+
# format_facet = 600xv:610xv:611xv:630xv:648xv:650xv:651xv:653xv:654xv:655xv:656xv:657xv:658xv:662xv:690xv:691xv:692xv:693xv:694xv:695xv:696xv:697xv:698xv:699xv
|
data/spec/maps_spec.rb
ADDED
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe "Maps" do
|
4
|
+
before do
|
5
|
+
@kvmap = MARCSpec::KVMap.new('kvmap', {'one' => '1', 'two' => ['2', 'zwei']})
|
6
|
+
@mvmap = MARCSpec::MultiValueMap.new('mvmap', [[/bi/, 'Bill'], [/mo/i, 'Molly'], [/ll/, 'Bill'], [/lly/i, ['One', 'Two']]])
|
7
|
+
end
|
8
|
+
|
9
|
+
it "knows its name" do
|
10
|
+
@kvmap.mapname.should.equal 'kvmap'
|
11
|
+
@mvmap.mapname.should.equal 'mvmap'
|
12
|
+
end
|
13
|
+
|
14
|
+
it "gets simple value from a kv map" do
|
15
|
+
@kvmap['one'].should.equal '1'
|
16
|
+
end
|
17
|
+
|
18
|
+
it "gets a list value from a kv map" do
|
19
|
+
@kvmap['two'].should.equal ['2', 'zwei']
|
20
|
+
end
|
21
|
+
|
22
|
+
it "gets nothing on nonmatches" do
|
23
|
+
@kvmap['ddd'].should.equal nil
|
24
|
+
@mvmap['ddd'].should.equal [nil]
|
25
|
+
end
|
26
|
+
|
27
|
+
it "gets correct values from multivaluemap" do
|
28
|
+
@mvmap['bi'].should.equal ['Bill']
|
29
|
+
@mvmap['bill'].should.equal ['Bill']
|
30
|
+
@mvmap['mobi'].sort.should.equal ['Bill', 'Molly'].sort
|
31
|
+
@mvmap['Molly'].sort.should.equal ['Molly', 'Bill', 'One', 'Two'].sort
|
32
|
+
end
|
33
|
+
|
34
|
+
it "correctly uses default value" do
|
35
|
+
@mvmap['bi', 'default'].should.equal ['Bill']
|
36
|
+
@mvmap['ddd', 'default'].should.equal ['default']
|
37
|
+
@kvmap['ddd', 'default'].should.equal 'default'
|
38
|
+
@kvmap['one', 'default'].should.equal '1'
|
39
|
+
end
|
40
|
+
|
41
|
+
it "should round-trip a kvmap" do
|
42
|
+
s = @kvmap.asPPString
|
43
|
+
newkvmap = MARCSpec::KVMap.fromPPString s
|
44
|
+
newkvmap.should.equal @kvmap
|
45
|
+
end
|
46
|
+
|
47
|
+
it "should round trip a multivaluemap" do
|
48
|
+
s = @mvmap.asPPString
|
49
|
+
newmvmap = MARCSpec::MultiValueMap.fromPPString s
|
50
|
+
newmvmap.should.equal @mvmap
|
51
|
+
end
|
52
|
+
|
53
|
+
it "should read a kv solrmarc file" do
|
54
|
+
map = MARCSpec::KVMap.from_solrmarc_file "#{DIR}/data/umich/translation_maps/country_map.properties"
|
55
|
+
map.mapname.should.equal 'country_map'
|
56
|
+
map["nl"].should.equal "New Caledonia"
|
57
|
+
end
|
58
|
+
|
59
|
+
it "should read a pattern solrmarc file" do
|
60
|
+
map = MARCSpec::MultiValueMap.from_solrmarc_file "#{DIR}/data/umich/translation_maps/library_map.properties"
|
61
|
+
map.mapname.should.equal 'library_map'
|
62
|
+
map['UMTRI Stuff'].should.equal ['Transportation Research Institute Library (UMTRI)']
|
63
|
+
map['HATCH DOCS'].should.equal ['Hatcher Graduate', 'Hatcher Graduate Documents Center']
|
64
|
+
end
|
65
|
+
|
66
|
+
it "can dump/load a kv map via generic map interface" do
|
67
|
+
map = MARCSpec::KVMap.from_solrmarc_file "#{DIR}/data/umich/translation_maps/country_map.properties"
|
68
|
+
f = Tempfile.new('kvmap')
|
69
|
+
f.puts map.asPPString
|
70
|
+
path = f.path
|
71
|
+
f.close
|
72
|
+
map2 = MARCSpec::Map.fromFile(path)
|
73
|
+
f.unlink
|
74
|
+
map.class.should.equal MARCSpec::KVMap
|
75
|
+
map.should.equal map2
|
76
|
+
end
|
77
|
+
|
78
|
+
it "can dump/load a multivalue map via generic map interface" do
|
79
|
+
map = MARCSpec::MultiValueMap.from_solrmarc_file "#{DIR}/data/umich/translation_maps/library_map.properties"
|
80
|
+
f = Tempfile.new('mvmap')
|
81
|
+
f.puts map.asPPString
|
82
|
+
path = f.path
|
83
|
+
f.close
|
84
|
+
map2 = MARCSpec::Map.fromFile(path)
|
85
|
+
f.unlink
|
86
|
+
map.class.should.equal MARCSpec::MultiValueMap
|
87
|
+
map.should.equal map2
|
88
|
+
end
|
89
|
+
|
90
|
+
|
91
|
+
end
|
@@ -0,0 +1,109 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
# LEADER 00734njm a2200217uu 4500
|
4
|
+
# 001 afc99990058366
|
5
|
+
# 003 DLC
|
6
|
+
# 005 20071104155141.9
|
7
|
+
# 007 sd ummunniauub
|
8
|
+
# 008 071103s1939 xxufmnne||||||||| u eng||
|
9
|
+
# 010 $a afc99990058366
|
10
|
+
# 040 $a DLC $c DLC
|
11
|
+
# 245 04 $a The Texas ranger $h [sound recording] / $c Sung by Beale D. Taylor.
|
12
|
+
# 260 $a Medina, Texas, $c 1939.
|
13
|
+
# 300 $a 1 sound disc : $b analog, 33 1/3 rpm, mono. ; $c 12 in.
|
14
|
+
# 651 0 $a Medina $z Texas $z United States of America.
|
15
|
+
# 700 1 $a Lomax, John Avery, 1867-1948 $e Recording engineer.
|
16
|
+
# 700 1 $a Lomax, Ruby T. (Ruby Terrill) $e Recording engineer.
|
17
|
+
# 700 1 $a Taylor, Beale D. $e Singer.
|
18
|
+
# 852 $a American Folklife Center, Library of Congress
|
19
|
+
# 852 $a DLC
|
20
|
+
|
21
|
+
describe "ControlFieldSpec" do
|
22
|
+
|
23
|
+
before do
|
24
|
+
@one = MARC4J4R::Reader.new("#{DIR}/data/one.dat").first
|
25
|
+
# @batch = MARC4J4R::Reader.new("#{DIR}/batch.dat").collect
|
26
|
+
end
|
27
|
+
|
28
|
+
# afc99990058366 # data
|
29
|
+
# 01234567890123 # index
|
30
|
+
it "gets a single full value" do
|
31
|
+
cfs = MARCSpec::ControlFieldSpec.new('001')
|
32
|
+
cfs.marc_values(@one).should.equal ["afc99990058366"]
|
33
|
+
end
|
34
|
+
|
35
|
+
it "gets a single character" do
|
36
|
+
cfs = MARCSpec::ControlFieldSpec.new('001', 10 )
|
37
|
+
cfs.marc_values(@one).should.equal ['8']
|
38
|
+
end
|
39
|
+
|
40
|
+
it "gets a range of characters" do
|
41
|
+
cfs = MARCSpec::ControlFieldSpec.new('001', 6..10 )
|
42
|
+
cfs.marc_values(@one).should.equal ['90058']
|
43
|
+
end
|
44
|
+
|
45
|
+
it "should round trip" do
|
46
|
+
cfs = MARCSpec::ControlFieldSpec.new('001', 6..10 )
|
47
|
+
cfs2 = MARCSpec::ControlFieldSpec.fromPPString(cfs.asPPString)
|
48
|
+
cfs.should.equal cfs2
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
|
53
|
+
describe "LeaderSpec" do
|
54
|
+
before do
|
55
|
+
@one = MARC4J4R::Reader.new("#{DIR}/data/one.dat").first
|
56
|
+
end
|
57
|
+
|
58
|
+
it "Works with full leader" do
|
59
|
+
cfs = MARCSpec::LeaderSpec.new('LDR')
|
60
|
+
cfs.marc_values(@one).should.equal @one.leader
|
61
|
+
end
|
62
|
+
|
63
|
+
it "Works with substring of leader" do
|
64
|
+
cfs = MARCSpec::LeaderSpec.new('LDR', 3..5)
|
65
|
+
cfs.marc_values(@one).should.equal @one.leader[3..5]
|
66
|
+
end
|
67
|
+
end
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
describe "VariableFieldSpec" do
|
72
|
+
before do
|
73
|
+
@one = MARC4J4R::Reader.new("#{DIR}/data/one.dat").first
|
74
|
+
# @batch = MARC4J4R::Reader.new("#{DIR}/batch.dat").collect
|
75
|
+
end
|
76
|
+
|
77
|
+
it "Should get a whole field separated by spaces" do
|
78
|
+
dfs = MARCSpec::VariableFieldSpec.new('260')
|
79
|
+
dfs.marc_values(@one).should.equal ["Medina, Texas, 1939."]
|
80
|
+
end
|
81
|
+
|
82
|
+
it "Should get just the $a" do
|
83
|
+
dfs = MARCSpec::VariableFieldSpec.new('260', 'a')
|
84
|
+
dfs.marc_values(@one).should.equal ["Medina, Texas,"]
|
85
|
+
end
|
86
|
+
|
87
|
+
it "Should get all fields via several equal routes" do
|
88
|
+
a = MARCSpec::VariableFieldSpec.new('260').marc_values(@one)
|
89
|
+
ac = MARCSpec::VariableFieldSpec.new('260', ['a', 'c']).marc_values(@one)
|
90
|
+
ca = MARCSpec::VariableFieldSpec.new('260', ['c', 'a']).marc_values(@one)
|
91
|
+
ca2 = MARCSpec::VariableFieldSpec.new('260', 'ca').marc_values(@one)
|
92
|
+
allrange = MARCSpec::VariableFieldSpec.new('260', 'a'..'z').marc_values(@one)
|
93
|
+
a.should.equal ac
|
94
|
+
ac.should.equal ca
|
95
|
+
ca.should.equal allrange
|
96
|
+
end
|
97
|
+
|
98
|
+
it "should get all three 700a's" do
|
99
|
+
a = MARCSpec::VariableFieldSpec.new('700', 'a').marc_values(@one)
|
100
|
+
a.should.equal ["Lomax, John Avery, 1867-1948", "Lomax, Ruby T. (Ruby Terrill)", "Taylor, Beale D."]
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should round trip" do
|
104
|
+
ac = MARCSpec::VariableFieldSpec.new('260', ['a', 'c'])
|
105
|
+
ac2 = MARCSpec::VariableFieldSpec.fromPPString(ac.asPPString)
|
106
|
+
ac.should.equal ac2
|
107
|
+
end
|
108
|
+
|
109
|
+
end
|