hydra-editor 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/README.md +51 -0
- data/Rakefile +57 -0
- data/app/assets/javascripts/hydra-editor/editMetadata.js +4 -0
- data/app/assets/javascripts/hydra-editor/hydra-editor.js +2 -0
- data/app/assets/javascripts/hydra-editor/multiForm.js +58 -0
- data/app/assets/stylesheets/hydra-editor/application.css +13 -0
- data/app/assets/stylesheets/hydra-editor/hydra-editor.css +6 -0
- data/app/controllers/concerns/records_controller_behavior.rb +75 -0
- data/app/controllers/records_controller.rb +3 -0
- data/app/helpers/concerns/records_helper_behavior.rb +59 -0
- data/app/helpers/records_helper.rb +3 -0
- data/app/views/records/_edit_field.html.erb +15 -0
- data/app/views/records/_form.html.erb +16 -0
- data/app/views/records/choose_type.html.erb +8 -0
- data/app/views/records/edit.html.erb +3 -0
- data/app/views/records/edit_fields/_default.html.erb +10 -0
- data/app/views/records/edit_fields/_suffix.html.erb +6 -0
- data/app/views/records/new.html.erb +2 -0
- data/config/routes.rb +4 -0
- data/lib/hydra-editor.rb +12 -0
- data/lib/hydra_editor/engine.rb +8 -0
- data/lib/hydra_editor/version.rb +3 -0
- data/lib/tasks/hydra-editor_tasks.rake +4 -0
- data/spec/controllers/records_controller_spec.rb +101 -0
- data/spec/dummy/Gemfile +16 -0
- data/spec/dummy/Gemfile.lock +246 -0
- data/spec/dummy/README.rdoc +261 -0
- data/spec/dummy/Rakefile +7 -0
- data/spec/dummy/app/assets/images/blacklight/bg.png +0 -0
- data/spec/dummy/app/assets/images/blacklight/border.png +0 -0
- data/spec/dummy/app/assets/images/blacklight/bul_sq_gry.gif +0 -0
- data/spec/dummy/app/assets/images/blacklight/checkmark.gif +0 -0
- data/spec/dummy/app/assets/images/blacklight/logo.png +0 -0
- data/spec/dummy/app/assets/images/blacklight/magnifying_glass.gif +0 -0
- data/spec/dummy/app/assets/images/blacklight/remove.gif +0 -0
- data/spec/dummy/app/assets/images/blacklight/separator.gif +0 -0
- data/spec/dummy/app/assets/images/blacklight/start_over.gif +0 -0
- data/spec/dummy/app/assets/images/rails.png +0 -0
- data/spec/dummy/app/assets/javascripts/application.js +18 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/assets/stylesheets/blacklight.css.scss +4 -0
- data/spec/dummy/app/controllers/application_controller.rb +10 -0
- data/spec/dummy/app/controllers/catalog_controller.rb +170 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/models/solr_document.rb +33 -0
- data/spec/dummy/app/models/user.rb +22 -0
- data/spec/dummy/app/views/devise/confirmations/new.html.erb +12 -0
- data/spec/dummy/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/spec/dummy/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/spec/dummy/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/spec/dummy/app/views/devise/passwords/edit.html.erb +16 -0
- data/spec/dummy/app/views/devise/passwords/new.html.erb +12 -0
- data/spec/dummy/app/views/devise/registrations/edit.html.erb +29 -0
- data/spec/dummy/app/views/devise/registrations/new.html.erb +18 -0
- data/spec/dummy/app/views/devise/sessions/new.html.erb +17 -0
- data/spec/dummy/app/views/devise/shared/_links.erb +25 -0
- data/spec/dummy/app/views/devise/unlocks/new.html.erb +12 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/SolrMarc/config-test.properties +37 -0
- data/spec/dummy/config/SolrMarc/config.properties +37 -0
- data/spec/dummy/config/SolrMarc/index.properties +97 -0
- data/spec/dummy/config/SolrMarc/index_scripts/dewey.bsh +47 -0
- data/spec/dummy/config/SolrMarc/index_scripts/format.bsh +126 -0
- data/spec/dummy/config/SolrMarc/translation_maps/README_MAPS +1 -0
- data/spec/dummy/config/SolrMarc/translation_maps/callnumber_map.properties +407 -0
- data/spec/dummy/config/SolrMarc/translation_maps/composition_era_map.properties +56 -0
- data/spec/dummy/config/SolrMarc/translation_maps/country_map.properties +379 -0
- data/spec/dummy/config/SolrMarc/translation_maps/format_map.properties +50 -0
- data/spec/dummy/config/SolrMarc/translation_maps/instrument_map.properties +101 -0
- data/spec/dummy/config/SolrMarc/translation_maps/language_map.properties +490 -0
- data/spec/dummy/config/application.rb +66 -0
- data/spec/dummy/config/boot.rb +6 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +37 -0
- data/spec/dummy/config/environments/production.rb +67 -0
- data/spec/dummy/config/environments/test.rb +37 -0
- data/spec/dummy/config/fedora.yml +14 -0
- data/spec/dummy/config/initializers/action_dispatch_http_upload_monkey_patch.rb +12 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/devise.rb +240 -0
- data/spec/dummy/config/initializers/hydra_config.rb +28 -0
- data/spec/dummy/config/initializers/inflections.rb +15 -0
- data/spec/dummy/config/initializers/mime_types.rb +12 -0
- data/spec/dummy/config/initializers/secret_token.rb +7 -0
- data/spec/dummy/config/initializers/session_store.rb +8 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/jetty.yml +5 -0
- data/spec/dummy/config/locales/devise.en.yml +59 -0
- data/spec/dummy/config/locales/en.yml +5 -0
- data/spec/dummy/config/role_map_cucumber.yml +10 -0
- data/spec/dummy/config/role_map_development.yml +12 -0
- data/spec/dummy/config/role_map_production.yml +2 -0
- data/spec/dummy/config/role_map_test.yml +15 -0
- data/spec/dummy/config/routes.rb +66 -0
- data/spec/dummy/config/solr.yml +10 -0
- data/spec/dummy/db/development.sqlite3 +0 -0
- data/spec/dummy/db/migrate/20130415215624_devise_create_users.rb +46 -0
- data/spec/dummy/db/migrate/20130415215633_create_searches.rb +16 -0
- data/spec/dummy/db/migrate/20130415215634_create_bookmarks.rb +18 -0
- data/spec/dummy/db/migrate/20130415215635_remove_editable_fields_from_bookmarks.rb +12 -0
- data/spec/dummy/db/migrate/20130415215636_add_user_types_to_bookmarks_searches.rb +16 -0
- data/spec/dummy/db/schema.rb +53 -0
- data/spec/dummy/db/seeds.rb +7 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/doc/README_FOR_APP +2 -0
- data/spec/dummy/fedora_conf/conf/development/fedora.fcfg +953 -0
- data/spec/dummy/fedora_conf/conf/test/fedora.fcfg +953 -0
- data/spec/dummy/lib/generators/test_app_generator.rb +26 -0
- data/spec/dummy/log/development.log +78 -0
- data/spec/dummy/log/test.log +2372 -0
- data/spec/dummy/public/404.html +26 -0
- data/spec/dummy/public/422.html +26 -0
- data/spec/dummy/public/500.html +25 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/public/index.html +241 -0
- data/spec/dummy/public/robots.txt +5 -0
- data/spec/dummy/script/rails +6 -0
- data/spec/dummy/solr_conf/conf/schema.xml +433 -0
- data/spec/dummy/solr_conf/conf/solrconfig.xml +158 -0
- data/spec/dummy/solr_conf/solr.xml +35 -0
- data/spec/dummy/test/performance/browsing_test.rb +12 -0
- data/spec/dummy/test/test_helper.rb +13 -0
- data/spec/factories/users.rb +13 -0
- data/spec/helpers/records_helper_spec.rb +20 -0
- data/spec/models/bookmark_spec.rb +7 -0
- data/spec/spec_helper.rb +23 -0
- data/spec/support/Gemfile +12 -0
- data/spec/support/audio.rb +18 -0
- data/spec/support/dummy_generator.rb +26 -0
- data/spec/support/lib/generators/test_app_generator.rb +26 -0
- metadata +410 -0
@@ -0,0 +1,25 @@
|
|
1
|
+
<%- if controller_name != 'sessions' %>
|
2
|
+
<%= link_to "Sign in", new_session_path(resource_name) %><br />
|
3
|
+
<% end -%>
|
4
|
+
|
5
|
+
<%- if devise_mapping.registerable? && controller_name != 'registrations' %>
|
6
|
+
<%= link_to "Sign up", new_registration_path(resource_name) %><br />
|
7
|
+
<% end -%>
|
8
|
+
|
9
|
+
<%- if devise_mapping.recoverable? && controller_name != 'passwords' %>
|
10
|
+
<%= link_to "Forgot your password?", new_password_path(resource_name) %><br />
|
11
|
+
<% end -%>
|
12
|
+
|
13
|
+
<%- if devise_mapping.confirmable? && controller_name != 'confirmations' %>
|
14
|
+
<%= link_to "Didn't receive confirmation instructions?", new_confirmation_path(resource_name) %><br />
|
15
|
+
<% end -%>
|
16
|
+
|
17
|
+
<%- if devise_mapping.lockable? && resource_class.unlock_strategy_enabled?(:email) && controller_name != 'unlocks' %>
|
18
|
+
<%= link_to "Didn't receive unlock instructions?", new_unlock_path(resource_name) %><br />
|
19
|
+
<% end -%>
|
20
|
+
|
21
|
+
<%- if devise_mapping.omniauthable? %>
|
22
|
+
<%- resource_class.omniauth_providers.each do |provider| %>
|
23
|
+
<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %><br />
|
24
|
+
<% end -%>
|
25
|
+
<% end -%>
|
@@ -0,0 +1,12 @@
|
|
1
|
+
<h2>Resend unlock instructions</h2>
|
2
|
+
|
3
|
+
<%= form_for(resource, :as => resource_name, :url => unlock_path(resource_name), :html => { :method => :post }) do |f| %>
|
4
|
+
<%= devise_error_messages! %>
|
5
|
+
|
6
|
+
<div><%= f.label :email %><br />
|
7
|
+
<%= f.email_field :email, :autofocus => true %></div>
|
8
|
+
|
9
|
+
<div><%= f.submit "Resend unlock instructions" %></div>
|
10
|
+
<% end %>
|
11
|
+
|
12
|
+
<%= render "devise/shared/links" %>
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# If using the solr:marc:index task, you can define environment-specific
|
2
|
+
# config files that will be used instead of 'config.properties' for
|
3
|
+
# a specific environment. config-development.properties,
|
4
|
+
# config-production.properties, etc.
|
5
|
+
|
6
|
+
# Relative paths for solrmarc.solr.war.path and solr.path are relative
|
7
|
+
# to the location of SolrMarc.jar, which for blacklight is by default
|
8
|
+
# in blacklight/config/solr_marc.
|
9
|
+
|
10
|
+
# solrmarc.solr.war.path - must point to either a war file for the version of
|
11
|
+
# Solr that you want to use, or to a directory of jar files extracted from a
|
12
|
+
# Solr war files. If this is not provided, SolrMarc can only work by
|
13
|
+
# communicating with a running Solr server.
|
14
|
+
#solrmarc.solr.war.path=../jetty/webapps/solr.war
|
15
|
+
# Path to your solr instance
|
16
|
+
#solr.path = ../jetty/solr
|
17
|
+
|
18
|
+
# Relative paths for solr.indexer can be relative to the location of
|
19
|
+
# this config.properties file.
|
20
|
+
solr.indexer = org.solrmarc.index.SolrIndexer
|
21
|
+
solr.indexer.properties = index.properties
|
22
|
+
|
23
|
+
# URL of running solr search engine to cause updates to be recognized.
|
24
|
+
# * When solr.path and solrmarc.solr.war.path are defined, this is optional,
|
25
|
+
# but if defined SolrMarc will issue a 'commit' after it's done indexing.
|
26
|
+
# * Alternately, do not define solr.path or solrmarc.solr.war.path to have
|
27
|
+
# SolrMarc use HTTP Post to add documents.
|
28
|
+
# NOTE:
|
29
|
+
# When using the solr:marc:index rake task, this value will be automatically
|
30
|
+
# looked up from your solr.yml, and the value here will NOT be used.
|
31
|
+
solr.hosturl = http://localhost:8888/solr/update
|
32
|
+
|
33
|
+
# MARC handling parameters
|
34
|
+
marc.to_utf_8 = true
|
35
|
+
marc.permissive = true
|
36
|
+
marc.default_encoding = MARC8
|
37
|
+
marc.include_errors = false
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# If using the solr:marc:index task, you can define environment-specific
|
2
|
+
# config files that will be used instead of 'config.properties' for
|
3
|
+
# a specific environment. config-development.properties,
|
4
|
+
# config-production.properties, etc.
|
5
|
+
|
6
|
+
# Relative paths for solrmarc.solr.war.path and solr.path are relative
|
7
|
+
# to the location of SolrMarc.jar, which for blacklight is by default
|
8
|
+
# in blacklight/config/solr_marc.
|
9
|
+
|
10
|
+
# solrmarc.solr.war.path - must point to either a war file for the version of
|
11
|
+
# Solr that you want to use, or to a directory of jar files extracted from a
|
12
|
+
# Solr war files. If this is not provided, SolrMarc can only work by
|
13
|
+
# communicating with a running Solr server.
|
14
|
+
# solrmarc.solr.war.path= ../../../../jetty/webapps/solr.war
|
15
|
+
# Path to your solr instance
|
16
|
+
# solr.path = ../../../../jetty/solr
|
17
|
+
|
18
|
+
# Relative paths for solr.indexer can be relative to the location of
|
19
|
+
# this config.properties file.
|
20
|
+
solr.indexer = org.solrmarc.index.SolrIndexer
|
21
|
+
solr.indexer.properties = index.properties
|
22
|
+
|
23
|
+
# URL of running solr search engine to cause updates to be recognized.
|
24
|
+
# * When solr.path and solrmarc.solr.war.path are defined, this is optional,
|
25
|
+
# but if defined SolrMarc will issue a 'commit' after it's done indexing.
|
26
|
+
# * Alternately, do not define solr.path or solrmarc.solr.war.path to have
|
27
|
+
# SolrMarc use HTTP Post to add documents.
|
28
|
+
# NOTE:
|
29
|
+
# When using the solr:marc:index rake task, this value will be automatically
|
30
|
+
# looked up from your solr.yml, and the value here will NOT be used.
|
31
|
+
solr.hosturl = http://localhost:8983/solr/update
|
32
|
+
|
33
|
+
# MARC handling parameters
|
34
|
+
marc.to_utf_8 = true
|
35
|
+
marc.permissive = true
|
36
|
+
marc.default_encoding = MARC8
|
37
|
+
marc.include_errors = false
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# for more information on solrmarc mappings,
|
2
|
+
# see http://code.google.com/p/solrmarc/w/list
|
3
|
+
#
|
4
|
+
# GenericBlacklight uses these conventions, mostly.
|
5
|
+
# _t for indexed fields (for searching)
|
6
|
+
# _display for stored fields (for display in UI)
|
7
|
+
# _facet for facet fields
|
8
|
+
# _sort for sorting fields (fields used to sort results)
|
9
|
+
#
|
10
|
+
# see jetty/solr/conf/schema.xml in Blacklight demo project
|
11
|
+
# see http://blacklight.rubyforge.org/ DEMO_README file
|
12
|
+
|
13
|
+
id = 001, first
|
14
|
+
marc_display = FullRecordAsXML
|
15
|
+
text = custom, getAllSearchableFields(100, 900)
|
16
|
+
|
17
|
+
language_facet = 008[35-37]:041a:041d, language_map.properties
|
18
|
+
# format is for facet, display, and selecting partial for display in show view
|
19
|
+
format = 007[0-1]:000[6-7]:000[6], (map.format), first
|
20
|
+
isbn_t = 020a, (pattern_map.isbn_clean)
|
21
|
+
material_type_display = custom, removeTrailingPunct(300aa)
|
22
|
+
|
23
|
+
# Title fields
|
24
|
+
# primary title
|
25
|
+
title_t = custom, getLinkedFieldCombined(245a)
|
26
|
+
title_display = custom, removeTrailingPunct(245a)
|
27
|
+
title_vern_display = custom, getLinkedField(245a)
|
28
|
+
# subtitle
|
29
|
+
subtitle_t = custom, getLinkedFieldCombined(245b)
|
30
|
+
subtitle_display = custom, removeTrailingPunct(245b)
|
31
|
+
subtitle_vern_display = custom, getLinkedField(245b)
|
32
|
+
# additional title fields
|
33
|
+
title_addl_t = custom, getLinkedFieldCombined(245abnps:130[a-z]:240[a-gk-s]:210ab:222ab:242abnp:243[a-gk-s]:246[a-gnp]:247[a-gnp])
|
34
|
+
title_added_entry_t = custom, getLinkedFieldCombined(700[gk-pr-t]:710[fgk-t]:711fgklnpst:730[a-gk-t]:740anp)
|
35
|
+
title_series_t = custom, getLinkedFieldCombined(440anpv:490av)
|
36
|
+
title_sort = custom, getSortableTitle
|
37
|
+
|
38
|
+
# Author fields
|
39
|
+
author_t = custom, getLinkedFieldCombined(100abcegqu:110abcdegnu:111acdegjnqu)
|
40
|
+
author_addl_t = custom, getLinkedFieldCombined(700abcegqu:710abcdegnu:711acdegjnqu)
|
41
|
+
author_display = custom, removeTrailingPunct(100abcdq:110[a-z]:111[a-z])
|
42
|
+
author_vern_display = custom, getLinkedField(100abcdq:110[a-z]:111[a-z])
|
43
|
+
author_sort = custom, getSortableAuthor
|
44
|
+
|
45
|
+
# Subject fields
|
46
|
+
subject_t = custom, getLinkedFieldCombined(600[a-u]:610[a-u]:611[a-u]:630[a-t]:650[a-e]:651ae:653aa:654[a-e]:655[a-c])
|
47
|
+
subject_addl_t = custom, getLinkedFieldCombined(600[v-z]:610[v-z]:611[v-z]:630[v-z]:650[v-z]:651[v-z]:654[v-z]:655[v-z])
|
48
|
+
subject_topic_facet = custom, removeTrailingPunct(600abcdq:610ab:611ab:630aa:650aa:653aa:654ab:655ab)
|
49
|
+
subject_era_facet = custom, removeTrailingPunct(650y:651y:654y:655y)
|
50
|
+
subject_geo_facet = custom, removeTrailingPunct(651a:650z)
|
51
|
+
|
52
|
+
# Publication fields
|
53
|
+
published_display = custom, removeTrailingPunct(260a)
|
54
|
+
published_vern_display = custom, getLinkedField(260a)
|
55
|
+
# used for facet and display, and copied for sort
|
56
|
+
pub_date = custom, getDate
|
57
|
+
|
58
|
+
# Call Number fields
|
59
|
+
lc_callnum_display = 050ab, first
|
60
|
+
lc_1letter_facet = 050a[0], callnumber_map.properties, first
|
61
|
+
lc_alpha_facet = 050a, (pattern_map.lc_alpha), first
|
62
|
+
lc_b4cutter_facet = 050a, first
|
63
|
+
|
64
|
+
# URL Fields
|
65
|
+
url_fulltext_display = custom, getFullTextUrls
|
66
|
+
url_suppl_display = custom, getSupplUrls
|
67
|
+
|
68
|
+
|
69
|
+
# MAPPINGS
|
70
|
+
|
71
|
+
# format mapping
|
72
|
+
# leader 06-07
|
73
|
+
map.format.aa = Book
|
74
|
+
map.format.ab = Serial
|
75
|
+
map.format.am = Book
|
76
|
+
map.format.as = Serial
|
77
|
+
map.format.ta = Book
|
78
|
+
map.format.tm = Book
|
79
|
+
# leader 06
|
80
|
+
map.format.c = Musical Score
|
81
|
+
map.format.d = Musical Score
|
82
|
+
map.format.e = Map or Globe
|
83
|
+
map.format.f = Map or Globe
|
84
|
+
map.format.i = Non-musical Recording
|
85
|
+
map.format.j = Musical Recording
|
86
|
+
map.format.k = Image
|
87
|
+
map.format.m = Computer File
|
88
|
+
# 007[0] when it doesn't clash with above
|
89
|
+
map.format.h = Microform
|
90
|
+
map.format.q = Musical Score
|
91
|
+
map.format.v = Video
|
92
|
+
# none of the above
|
93
|
+
map.format = Unknown
|
94
|
+
|
95
|
+
pattern_map.lc_alpha.pattern_0 = ^([A-Z]{1,3})\\d+.*=>$1
|
96
|
+
|
97
|
+
pattern_map.isbn_clean.pattern_0 = ([- 0-9]*[0-9]).*=>$1
|
@@ -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
|