blacklight_marc 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (18) hide show
  1. checksums.yaml +4 -4
  2. data/lib/blacklight_marc.rb +0 -1
  3. data/lib/blacklight_marc/version.rb +1 -1
  4. data/lib/generators/blacklight_marc/marc_generator.rb +66 -0
  5. data/lib/generators/blacklight_marc/templates/catalog_controller.rb +180 -0
  6. data/lib/generators/blacklight_marc/templates/config/SolrMarc/config-test.properties +37 -0
  7. data/lib/generators/blacklight_marc/templates/config/SolrMarc/config.properties +37 -0
  8. data/lib/generators/blacklight_marc/templates/config/SolrMarc/index.properties +97 -0
  9. data/lib/generators/blacklight_marc/templates/config/SolrMarc/index_scripts/dewey.bsh +47 -0
  10. data/lib/generators/blacklight_marc/templates/config/SolrMarc/index_scripts/format.bsh +126 -0
  11. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/README_MAPS +1 -0
  12. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/callnumber_map.properties +407 -0
  13. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/composition_era_map.properties +56 -0
  14. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/country_map.properties +379 -0
  15. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/format_map.properties +50 -0
  16. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/instrument_map.properties +101 -0
  17. data/lib/generators/blacklight_marc/templates/config/SolrMarc/translation_maps/language_map.properties +490 -0
  18. metadata +16 -2
@@ -0,0 +1,47 @@
1
+ import org.marc4j.marc.Record;
2
+ import org.solrmarc.tools.Utils;
3
+ import org.solrmarc.tools.CallNumUtils;
4
+
5
+ // define the base level indexer so that its methods can be called from the script.
6
+ // note that the SolrIndexer code will set this value before the script methods are called.
7
+ org.solrmarc.index.SolrIndexer indexer = null;
8
+
9
+ /**
10
+ * returns the facet value for dewey hundreds digits, and dewey tens digits
11
+ * @param record
12
+ * @return Set of Strings containing facet value for dewey hundreds digits, and dewey tens digits
13
+ */
14
+ Set getDeweyFacet(Record record, String propertiesMapName)
15
+ {
16
+ LinkedHashSet resultSet = new LinkedHashSet();
17
+ Set values = indexer.getFieldList(record, "082a");
18
+ String mapName = indexer.loadTranslationMap(propertiesMapName);
19
+
20
+ for (String dewey : values)
21
+ {
22
+ if (! CallNumUtils.isValidDewey(dewey)) continue;
23
+ String hundreds = dewey.substring(0, 1) + "00";
24
+ String tens = dewey.substring(0,2) + "0";
25
+ String hundredsMapped = Utils.remap(hundreds, indexer.findMap(mapName), true);
26
+ String tensMapped = Utils.remap(tens, indexer.findMap(mapName), true);
27
+ if (hundredsMapped != null) resultSet.add(hundredsMapped);
28
+ if (tensMapped != null) resultSet.add(tensMapped);
29
+ }
30
+
31
+ return resultSet;
32
+ }
33
+
34
+ Set getDeweyText(Record record)
35
+ {
36
+ LinkedHashSet resultSet = new LinkedHashSet();
37
+ Set values = indexer.getFieldList(record, "082a");
38
+
39
+ for (String dewey : values)
40
+ {
41
+ if (! CallNumUtils.isValidDewey(dewey)) continue;
42
+ dewey = dewey.replaceAll("/[.]", ".").replaceAll("/", " ");
43
+ resultSet.add(dewey);
44
+ }
45
+
46
+ return resultSet;
47
+ }
@@ -0,0 +1,126 @@
1
+ import org.marc4j.marc.Record;
2
+ import org.solrmarc.tools.Utils;
3
+
4
+ // define the base level indexer so that its methods can be called from the script.
5
+ // note that the SolrIndexer code will set this value before the script methods are called.
6
+ org.solrmarc.index.SolrIndexer indexer = null;
7
+
8
+ /**
9
+ * Determine Record Format(s)
10
+ *
11
+ * @param Record record
12
+ * @return Set format of record
13
+ */
14
+
15
+ public Set getFormat(Record record)
16
+ {
17
+ Set result = new LinkedHashSet();
18
+
19
+ // check if there's an h in the 245
20
+ Set title_245h = indexer.getFieldList(record, "245h");
21
+ if (Utils.setItemContains(title_245h, "electronic resource"))
22
+ {
23
+ result.add("Electronic");
24
+ return result;
25
+ }
26
+ boolean field007hasC = false;
27
+ // check the 007 - this is a repeating field
28
+ // if we find a matching value there, grab it and return.
29
+ Set fields007 = indexer.getFieldList(record, "007[0-1]");
30
+ for (String f_007 : fields007)
31
+ {
32
+ f_007 = f_007.toUpperCase();
33
+ if (f_007.startsWith("A"))
34
+ if (f_007.equals( "AD")) result.add("Atlas");
35
+ else result.add("Map");
36
+ else if (f_007.startsWith("C"))
37
+ if (f_007.equals("CA")) result.add("TapeCartridge");
38
+ else if (f_007.equals("CB")) result.add("ChipCartridge");
39
+ else if (f_007.equals("CC")) result.add("DiscCartridge");
40
+ else if (f_007.equals("CF")) result.add("TapeCassette");
41
+ else if (f_007.equals("CH")) result.add("TapeReel");
42
+ else if (f_007.equals("CJ")) result.add("FloppyDisk");
43
+ else if (f_007.equals("CM")) result.add("CDROM");
44
+ else if (f_007.equals("C0")) result.add("CDROM");
45
+ else if (f_007.equals("CR")) field007hasC = true; // Do not return - this will cause anything with an 856 field to be labeled as "Electronic"
46
+ else result.add("Software");
47
+ else if (f_007.startsWith("D")) result.add("Globe");
48
+ else if (f_007.startsWith("F")) result.add("Braille");
49
+ else if (f_007.startsWith("G"))
50
+ if (f_007.equals("GC")) result.add("Filmstrip");
51
+ else if (f_007.equals("GD")) result.add("Filmstrip");
52
+ else if (f_007.equals("GT")) result.add("Transparency");
53
+ else result.add("Slide");
54
+ else if (f_007.startsWith("H")) result.add("Microfilm");
55
+ else if (f_007.startsWith("K"))
56
+ if (f_007.equals("KC")) result.add("Collage");
57
+ else if (f_007.equals("KD")) result.add("Drawing");
58
+ else if (f_007.equals("KE")) result.add("Painting");
59
+ else if (f_007.equals("KF")) result.add("Print");
60
+ else if (f_007.equals("KG")) result.add("Photonegative");
61
+ else if (f_007.equals("KJ")) result.add("Print");
62
+ else if (f_007.equals("KL")) result.add("Drawing");
63
+ else if (f_007.equals("K0")) result.add("FlashCard");
64
+ else if (f_007.equals("KN")) result.add("Chart");
65
+ else result.add("Photo");
66
+ else if (f_007.startsWith("M"))
67
+ if (f_007.equals("MF")) result.add("VideoCassette");
68
+ else if (f_007.equals("MR")) result.add("Filmstrip");
69
+ else result.add("MotionPicture");
70
+ else if (f_007.startsWith("O")) result.add("Kit");
71
+ else if (f_007.startsWith("Q")) result.add("MusicalScore");
72
+ else if (f_007.startsWith("R")) result.add("SensorImage");
73
+ else if (f_007.startsWith("S"))
74
+ if (f_007.equals("SD")) result.add("SoundDisc");
75
+ else if (f_007.equals("SS")) result.add("SoundCassette");
76
+ else result.add("SoundRecording");
77
+ else if (f_007.startsWith("V"))
78
+ if (f_007.equals("VC")) result.add("VideoCartridge");
79
+ else if (f_007.equals("VD")) result.add("VideoDisc");
80
+ else if (f_007.equals("VF")) result.add("VideoCassette");
81
+ else if (f_007.equals("VR")) result.add("VideoReel");
82
+ else result.add("Video");
83
+
84
+ // if we found a matching value and return it.
85
+ if (!result.isEmpty()) return result;
86
+ }
87
+ // check the Leader - this is NOT a repeating field
88
+ // if we find a matching value there, grab it and return.
89
+ String f_000 = indexer.getFirstFieldVal(record, null, "000[6-7]");
90
+ f_000 = f_000.toUpperCase();
91
+ if (f_000.startsWith("C")) result.add("MusicalScore");
92
+ else if (f_000.startsWith("D")) result.add("MusicalScore");
93
+ else if (f_000.startsWith("E")) result.add("Map");
94
+ else if (f_000.startsWith("F")) result.add("Map");
95
+ else if (f_000.startsWith("G")) result.add("Slide");
96
+ else if (f_000.startsWith("I")) result.add("SoundRecording");
97
+ else if (f_000.startsWith("J")) result.add("MusicRecording");
98
+ else if (f_000.startsWith("K")) result.add("Photo");
99
+ else if (f_000.startsWith("M")) result.add("Electronic");
100
+ else if (f_000.startsWith("O")) result.add("Kit");
101
+ else if (f_000.startsWith("P")) result.add("Kit");
102
+ else if (f_000.startsWith("R")) result.add("PhysicalObject");
103
+ else if (f_000.startsWith("T")) result.add("Manuscript");
104
+ else if (f_000.startsWith("A"))
105
+ {
106
+ if (f_000.equals("AM"))
107
+ {
108
+ if (field007hasC) result.add("eBook");
109
+ else result.add("Book");
110
+ }
111
+ else if (f_000.equals("AS"))
112
+ {
113
+ // Look in 008 to determine what type of Continuing Resource
114
+ String formatCode = indexer.getFirstFieldVal(record, null, "008[21]");
115
+ if (formatCode.equals("N")) result.add("Newspaper");
116
+ else if (formatCode.equals("P")) result.add("Journal");
117
+ else result.add("Serial");
118
+ }
119
+ }
120
+ // Nothing worked!
121
+ if (result.isEmpty()) {
122
+ result.add("Unknown");
123
+ }
124
+
125
+ return result;
126
+ }
@@ -0,0 +1 @@
1
+ This is the directory in which you should place locally defined translation maps.
@@ -0,0 +1,407 @@
1
+ # Map Call Number Classification pieces to User Friendly Description
2
+ displayRawIfMissing = true
3
+
4
+ # note: need more specific call numbers first so first matching is most specific
5
+ AC = AC - Collections Works
6
+ AE = AE - Encyclopedias
7
+ AG = AG - General Reference Works
8
+ AI = AI - Indexes
9
+ AM = AM - Museums
10
+ AN = AN - Newspapers
11
+ AP = AP - Periodicals
12
+ AS = AS - Academies & Learned Societies
13
+ AY = AY - Yearbooks, Almanacs, Directories
14
+ AZ = AZ - History of Scholarship & Learning
15
+ A = A - General Works
16
+ BC = BC - Logic
17
+ BD = BD - Speculative Philosophy
18
+ BF = BF - Psychology
19
+ BH = BH - Aesthetics
20
+ BJ = BJ - Ethics
21
+ BL = BL - Religions (General)
22
+ BM = BM - Judaism
23
+ BP = BP - Islam, Bahaism, Theosophy, etc.
24
+ BQ = BQ - Buddhism
25
+ BR = BR - Christianity
26
+ BS = BS - The Bible
27
+ BT = BT - Doctrinal Theology
28
+ BV = BV - Practical Theology
29
+ BX = BX - Christian Denominations
30
+ B = B - Philosophy, Psychology, Religion
31
+ CB = CB - History of Civilization
32
+ CC = CC - Archaeology
33
+ CD = CD - Diplomatics
34
+ CE = CE - Technical Chronology
35
+ CJ = CJ - Numismatics
36
+ CN = CN - Inscriptions
37
+ CR = CR - Heraldry
38
+ CS = CS - Genealogy
39
+ CT = CT - Biography
40
+ C = C - Historical Sciences (Archaeology, Genealogy)
41
+ DA = DA - Great Britain (History)
42
+ DB = DB - Austria, Liechtenstein, Czech Rep., Hungary, Slovakia (History)
43
+ DC = DC - France (History)
44
+ DD = DD - Germany (History)
45
+ DE = DE - Greco-Roman World (History)
46
+ DF = DF - Greece (History)
47
+ DG = DG - Italy (History)
48
+ DH = DH - Low Countries (History)
49
+ DJK = DJK - Eastern Europe (History)
50
+ DJ = DJ - Netherlands (History)
51
+ DK = DK - Russia. Former Soviet Republics. Poland (History)
52
+ DL = DL - Scandinavia (History)
53
+ DP = DP - Spain. Portugal (History)
54
+ DQ = DQ - Switzerland (History)
55
+ DR = DR - Balkan Peninsula (History)
56
+ DS = DS - Asia (History)
57
+ DT = DT - Africa (History)
58
+ DU = DU - Oceanía (History)
59
+ DX = DX - Gypsies (History)
60
+ D = D - World History
61
+ E = E - History of the Americas (General)
62
+ F = F - History of the Americas (Local)
63
+ GA = GA - Mathematical Geography, Cartography
64
+ GB = GB - Physical Geography
65
+ GC = GC - Oceanography
66
+ GE = GE - Environmental Sciences
67
+ GF = GF - Human Ecology, Anthropogeography
68
+ GN = GN - Anthropology
69
+ GR = GR - Folklore
70
+ GT = GT - Manners & Customs
71
+ GV = GV - Recreation. Leisure
72
+ G = G - Geography, Anthropology, Recreation
73
+ HA = HA - Statistics
74
+ HB = HB - Economic Theory, Demography
75
+ HC = HC - Economic History & Conditions
76
+ HD = HD - Industries, Land use, Labor
77
+ HE = HE - Transportation & Communications
78
+ HF = HF - Commerce
79
+ HG = HG - Finance
80
+ HJ = HJ - Public Finance
81
+ HM = HM - Sociology
82
+ HN = HN - Social History & Conditions
83
+ HQ = HQ - The Family, Marriage, Woman
84
+ HS = HS - Societies
85
+ HT = HT - Communities, Classes, Races
86
+ HV = HV - Social Pathology, Social & Public Welfare, Criminology
87
+ HX = HX - Socialism, Communism, Anarchism
88
+ H = H - Social Sciences
89
+ JA = JA - Political Science
90
+ JC = JC - Political Theory
91
+ JF = JF - Political Institutions
92
+ JK = JK - Political Institutions (U.S.)
93
+ JL = JL - Political Institutions (Canada, Latin America)
94
+ JN = JN - Political Institutions (Europe)
95
+ JQ = JQ - Political Institutions (Asia, Africa, Australia, Pacific Area)
96
+ JS = JS - Local Government
97
+ JV = JV - Colonies & Colonization, Emigration & Immigration
98
+ JX = JX - International Law
99
+ JZ = JZ - International Relations
100
+ J = J - Political Science
101
+ KBM = KBM - Jewish Law
102
+ KBP = KBP - Islamic Law
103
+ KBR = KBR - Canon Law
104
+ KBU = KBU - Law of Roman Catholic Church
105
+ KB = KB - Religious Law (General)
106
+ KDC = KDC - Law of Scotland
107
+ KDE = KDE - Law of Northern Ireland
108
+ KDG = KDG - Law of Isle of Man, Channel Islands
109
+ KDK = KDK - Law of Ireland (EIRE)
110
+ KDZ = KDZ - Law of America, North America
111
+ KD = KD - Law of England & Wales
112
+ KE = KE - Law of Canada
113
+ KF = KF - Law of the U.S.
114
+ KG = KG - Law of Latin America, Mexico, Central America, West Indies, Caribbean
115
+ KH = KH - South America
116
+ KJA = KJA - Roman Law
117
+ KJC = KJC - Regional Comparative & Uniform Law
118
+ KJE = KJE - Regional Organization & Integration
119
+ KJG = KJG - Law of Albania
120
+ KJH = KJH - Law of Andorra
121
+ KJJ = KJJ - Law of Austria
122
+ KJK = KJK - Law of Belgium, Bosnia & Hercegovina (Republic)
123
+ KJM = KJM - Law of Bulgaria, Croatia
124
+ KJN = KJN - Law of Cyprus
125
+ KJP = KJP - Law of Czechoslovakia, Czech Republic
126
+ KJQ = KJQ - Law of Slovakia
127
+ KJR = KJR - Law of Denmark
128
+ KJS = KJS - Law of Estonia
129
+ KJT = KJT - Law of Finland
130
+ KJV = KJV - Law of France
131
+ KJW = KJW - Law of French Regions, Provinces, Departments
132
+ KJ = KJ - Law of Europe
133
+ KKE = KKE - Law of Greece
134
+ KKF = KKF - Law of Hungary
135
+ KKG = KKG - Law of Iceland
136
+ KKH = KKH - Law of Italy
137
+ KKI = KKI - Law of Latvia
138
+ KKJ = KKJ - Law of Lithuania, Liechtenstein
139
+ KKK = KKK - Law of Luxemburg, Malta
140
+ KKL = KKL - Law of Monaco
141
+ KKM = KKM - Law of the Netherlands
142
+ KKN = KKN - Law of Norway
143
+ KKP = KKP - Law of Poland
144
+ KKQ = KKQ - Law of Portugal
145
+ KKR = KKR - Law of Romania
146
+ KKT = KKT - Law of Spain
147
+ KKV = KKV - Law of Sweden
148
+ KKW = KKW - Law of Switzerland
149
+ KKX = KKX - Law of Turkey
150
+ KKY = KKY - Law of Ukraine
151
+ KKZ = KKZ - Law of Yugoslavia
152
+ KK = KK - Law of Germany
153
+ KLA = KLA - Law of Russia, Soviet Union
154
+ KLB = KLB - Law of Russia (Federation)
155
+ KLD = KLD - Law of Armenia (Republic)
156
+ KLE = KLE - Law of Azerbaijan
157
+ KLF = KLF - Law of Belarus
158
+ KLH = KLH - Law of Georgia
159
+ KLM = KLM - Law of Moldova
160
+ KLP = KLP - Law of Ukraine
161
+ KLR = KLR - Law of Kazakhstan
162
+ KLS = KLS - Law of Kyrgyzstan
163
+ KLT = KLT - Law of Tajikistan
164
+ KLV = KLV - Law of Turkmenistan
165
+ KLW = KLW - Law of Uzbekistan
166
+ KL = KL - History of Law, The Ancient Orient
167
+ KMC = KMC - Law of the Middle East, Southwest Asia
168
+ KMH = KMH - Law of Iran
169
+ KMJ = KMJ - Law of Iraq
170
+ KMK = KMK - Law of Israel
171
+ KML = KML - Law of Jerusalem
172
+ KMM = KMM - Law of Jordan
173
+ KMN = KMN - Law of Kuwait
174
+ KMP = KMP - Law of Lebanon
175
+ KMT = KMT - Law of Saudi Arabia
176
+ KMU = KMU - Law of Syria
177
+ KMX = KMX - Law of Yemen
178
+ KM = KM - Law of Asia
179
+ KNC = KNC - Law of South Asia
180
+ KNN = KNN - Law of China
181
+ KNP = KNP - Law of Taiwan
182
+ KNR = KNR - Law of Hong Kong
183
+ KNS = KNS - Law of India
184
+ KNW = KNW - Law of Indonesia
185
+ KNX = KNX - Law of Japan
186
+ KPA = KPA - Law of Korea, South Korea
187
+ KPC = KPC - Law of Korea, North Korea
188
+ KQ = KQ - Law of Africa
189
+ KU = KU - Law of the Pacific Area, Australia, New Zealand
190
+ KWX = KWX - Law of Antarctica
191
+ KZ = KZ - Law of Nations
192
+ K = K - Law
193
+ LA = LA - History of Education
194
+ LB = LB - Theory & Practice of Education
195
+ LC = LC - Special Aspects of Education
196
+ LD = LD - Individual Educational Institutions (U.S.)
197
+ LE = LE - Individual Educational Institutions: America (except U.S.)
198
+ LF = LF - Individual Educational Institutions: Europe
199
+ LG = LG - Individual Educational Institutions: Asia, Africa, Oceania
200
+ LH = LH - College & School Magazines & Papers
201
+ LT = LT - Textbooks
202
+ L = L - Education
203
+ MLCME = Unknown
204
+ MLCSN = Unknown
205
+ ML = ML - Literature on Music
206
+ MT = MT - Musical Instruction & Study
207
+ M = M - Music
208
+ NA = NA - Architecture
209
+ NB = NB - Sculpture
210
+ NC = NC - Drawing, Design, Illustration
211
+ ND = ND - Painting
212
+ NE = NE - Print Media
213
+ NK = NK - Decorative Arts
214
+ NX = NX - Arts in General
215
+ N = N - Fine Arts
216
+ PA = PA - Greek & Latin Language & Literature
217
+ PB = PB - Modern Language, Celtic Languages
218
+ PC = PC - Romanic Languages
219
+ PD = PD - Germanic Languages
220
+ PE = PE - English Languages
221
+ PF = PF - West Germanic Languages
222
+ PG = PG - Slavic, Baltic, Albanian Languages, Russian Language & Literature
223
+ PH = PH - Uralic & Basque Languages
224
+ PJ = PJ - Oriental Languages & Literature
225
+ PK = PK - Indo-Iranian Languages & Literature
226
+ PL = PL - Languages & Literatures of Eastern Asia, Africa, Oceania
227
+ PM = PM - Hyperborean, Indian & Artificial Languages
228
+ PN = PN - Literature (General)
229
+ PQ = PQ - French, Italian, Spanish & Portuguese Literature
230
+ PR = PR - English Literature
231
+ PS = PS - American Literature
232
+ PT = PT - Germanic & Scandinavian Literatures
233
+ PZ = PZ - Children’s Literature
234
+ P = P - Language & Literature
235
+ QA = QA - Mathematics
236
+ QB = QB - Astronomy
237
+ QC = QC - Physics
238
+ QD = QD - Chemistry
239
+ QE = QE - Geology
240
+ QH = QH - Natural History, Biology
241
+ QK = QK - Botany
242
+ QL = QL - Zoology
243
+ QM = QM - Human Anatomy
244
+ QP = QP - Physiology
245
+ QR = QR - Microbiology
246
+ Q = Q - Science
247
+ RA = RA - Public Aspects of Medicine
248
+ RB = RB - Pathology
249
+ RC = RC - Internal Medicine
250
+ RD = RD - Surgery
251
+ RE = RE - Ophthalmology
252
+ RF = RF - Otorhinolaryngology
253
+ RG = RG - Gynecology & Obstetrics
254
+ RJ = RJ - Pediatrics
255
+ RK = RK - Dentistry
256
+ RL = RL - Dermatology
257
+ RM = RM - Therapeutics, Pharmacology
258
+ RS = RS - Pharmacy & Materia Medica
259
+ RT = RT - Nursing
260
+ RV = RV - Botanic, Thomsonian, & Eclectic Medicine
261
+ RX = RX - Homeopathy
262
+ RZ = RZ - Other Systems of Medicine
263
+ R = R - Medicine
264
+ SB = SB - Plant Culture
265
+ SD = SD - Forestry
266
+ SF = SF - Animal Culture
267
+ SH = SH - Aquaculture
268
+ SK = SK - Hunting Sports
269
+ S = S - Agriculture
270
+ TA = TA - Engineering, Civil Engineering
271
+ TC = TC - Hydraulic Engineering
272
+ TD = TD - Environmental Technology
273
+ TE = TE - Highway Engineering
274
+ TF = TF - Railroad Engineering & Operation
275
+ TG = TG - Bridge Engineering
276
+ TH = TH - Building Construction
277
+ TJ = TJ - Mechanical Engineering & Machinery
278
+ TK = TK - Electrical Engineering, Nuclear Engineering
279
+ TL = TL - Motor Vehicles, Aeronautics, Astronautics
280
+ TN = TN - Mining Engineering
281
+ TP = TP - Chemical Technology
282
+ TR = TR - Photography
283
+ TS = TS - Manufactures
284
+ TT = TT - Handicrafts
285
+ TX = TX - Home Economics
286
+ T = T - Technology
287
+ UA = UA - Armies
288
+ UB = UB - Military Administration
289
+ UC = UC - Maintenance & Transportation
290
+ UD = UD - Infantry
291
+ UE = UE - Cavalry, Armor
292
+ UF = UF - Artillery
293
+ UG = UG - Military Engineering, Air Forces, Military Astronautics
294
+ UH = UH - Other Military Services
295
+ U = U - Military Science
296
+ VA = VA - Navies
297
+ VB = VB - Naval Administration
298
+ VC = VC - Naval Maintenance
299
+ VD = VD - Naval Seamen
300
+ VE = VE - Marines
301
+ VF = VF - Naval Ordnance
302
+ VG = VG - Minor Services of Navies
303
+ VK = VK - Navigation, Merchant Marine
304
+ VM = VM - Naval Architecture, Marine Engineering
305
+ V = V - Naval Science
306
+ ZA = ZA - Information Science
307
+ Z = Z - Bibliography, Library Science, Information Resources
308
+
309
+ 000 = 000s - Computer Science, Information & General Works
310
+ 010 = 010s - Bibliography
311
+ 020 = 020s - Library & Information Sciences
312
+ 030 = 030s - General Encyclopedic Works
313
+ 050 = 050s - General Serials & their Indexes
314
+ 060 = 060s - General Organization & Museology
315
+ 070 = 070s - News Media, Journalism, Publishing
316
+ 080 = 080s - General Collections
317
+ 090 = 090s - Manuscripts & Rare Books
318
+ 100 = 100s - Philosophy & Psychology
319
+ 110 = 110s - Metaphysics
320
+ 120 = 120s - Epistemology, Causation, Humankind
321
+ 130 = 130s - Paranormal Phenomena
322
+ 140 = 140s - Specific Philosophical Schools
323
+ 150 = 150s - Psychology
324
+ 160 = 160s - Logic
325
+ 170 = 170s - Ethics (Moral Philosophy)
326
+ 180 = 180s - Ancient, Medieval, Oriental Philosophy
327
+ 190 = 190s - Modern Western Philosophy
328
+ 200 = 200s - Religion
329
+ 210 = 210s - Natural Theology
330
+ 220 = 220s - Bible
331
+ 230 = 230s - Christian Theology
332
+ 240 = 240s - Christian Moral & Devotional Theology
333
+ 250 = 250s - Christian Orders & Local Church
334
+ 260 = 260s - Christian Social Theology
335
+ 270 = 270s - Christian Church History
336
+ 280 = 280s - Christian Denominations & Sects
337
+ 290 = 290s - Other & Comparative Religions
338
+ 300 = 300s - Social Sciences
339
+ 310 = 310s - General Statistics
340
+ 320 = 320s - Political Science
341
+ 330 = 330s - Economics
342
+ 340 = 340s - Law
343
+ 350 = 350s - Public Administration
344
+ 360 = 360s - Social Services; Association
345
+ 370 = 370s - Education
346
+ 380 = 380s - Commerce, Communications, Transport
347
+ 390 = 390s - Customs, Etiquette, Folklore
348
+ 400 = 400s - Language
349
+ 410 = 410s - Linguistics
350
+ 420 = 420s - English & Old English
351
+ 430 = 430s - Germanic Languages German
352
+ 440 = 440s - Romance Languages French
353
+ 450 = 450s - Italian, Romanian, Rhaeto-Romantic
354
+ 460 = 460s - Spanish & Portugese Languages
355
+ 470 = 470s - Italic Latin
356
+ 480 = 480s - Hellenic Languages Classical Greek
357
+ 490 = 490s - Other Languages
358
+ 500 = 500s - Science
359
+ 510 = 510s - Mathematics
360
+ 520 = 520s - Astronomy & Allied Sciences
361
+ 530 = 530s - Physics
362
+ 540 = 540s - Chemistry & Allied Sciences
363
+ 550 = 550s - Earth Sciences
364
+ 560 = 560s - Paleontology Paleozoology
365
+ 570 = 570s - Life Sciences
366
+ 580 = 580s - Botanical Sciences
367
+ 590 = 590s - Zoological Sciences
368
+ 600 = 600s - Technology
369
+ 610 = 610s - Medical Sciences Medicine
370
+ 620 = 620s - Engineering & Allied Operations
371
+ 630 = 630s - Agriculture
372
+ 640 = 640s - Home economics & Family Living
373
+ 650 = 650s - Management & Auxiliary Services
374
+ 660 = 660s - Chemical Engineering
375
+ 670 = 670s - Manufacturing
376
+ 680 = 680s - Manufacture for Specific Uses
377
+ 690 = 690s - Buildings
378
+ 700 = 700s - Arts & Recreation
379
+ 710 = 710s - Civic & Landscape Art
380
+ 720 = 720s - Architecture
381
+ 730 = 730s - Plastic Arts Sculpture
382
+ 740 = 740s - Drawing & Decorative Arts
383
+ 750 = 750s - Painting & Paintings
384
+ 760 = 760s - Graphic Arts Printmaking & Prints
385
+ 770 = 770s - Photography & Photographs
386
+ 780 = 780s - Music
387
+ 790 = 790s - Recreational & Performing Arts
388
+ 800 = 800s - Literature
389
+ 810 = 810s - American Literature in English
390
+ 820 = 820s - English & Old English Literatures
391
+ 830 = 830s - Literatures of Germanic Languages
392
+ 840 = 840s - Literatures of Romance Languages
393
+ 850 = 850s - Italian, Romanian, Rhaeto-Romanic
394
+ 860 = 860s - Spanish & Portuguese Literatures
395
+ 870 = 870s - Italic Literatures Latin
396
+ 880 = 880s - Hellenic Literatures Classical Greek
397
+ 890 = 890s - Literatures of Other Languages
398
+ 900 = 900s - History & Geography
399
+ 910 = 910s - Geography & Travel
400
+ 920 = 920s - Biography, Genealogy, Insignia
401
+ 930 = 930s - History of Ancient World
402
+ 940 = 940s - General History of Europe
403
+ 950 = 950s - General History of Asia Far East
404
+ 960 = 960s - General History of Africa
405
+ 970 = 970s - General History of North America
406
+ 980 = 980s - General History of South America
407
+ 990 = 990s - General History of Other Areas