blacklight 4.9.0 → 5.0.0.pre1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (260) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +0 -1
  3. data/.travis.yml +22 -12
  4. data/Gemfile +3 -40
  5. data/LICENSE +1 -2
  6. data/README.md +1 -2
  7. data/Rakefile +0 -4
  8. data/VERSION +1 -1
  9. data/app/assets/images/blacklight/logo.png +0 -0
  10. data/app/assets/javascripts/blacklight/ajax_modal.js +190 -0
  11. data/app/assets/javascripts/blacklight/blacklight.js +7 -17
  12. data/app/assets/javascripts/blacklight/checkbox_submit.js +1 -1
  13. data/app/assets/stylesheets/blacklight/{_blacklight_base.scss → _blacklight_base.css.scss} +0 -21
  14. data/app/assets/stylesheets/blacklight/_bookmark.css.scss +4 -0
  15. data/app/assets/stylesheets/blacklight/_catalog.css.scss +192 -0
  16. data/app/assets/stylesheets/blacklight/_facets.css.scss +141 -0
  17. data/app/assets/stylesheets/blacklight/{_group.scss → _group.css.scss} +1 -1
  18. data/app/assets/stylesheets/blacklight/_header.css.scss +44 -0
  19. data/app/assets/stylesheets/blacklight/_layout.css.scss +5 -0
  20. data/app/assets/stylesheets/blacklight/{_modal.scss → _modal.css.scss} +7 -7
  21. data/app/assets/stylesheets/blacklight/_search_history.css.scss +20 -0
  22. data/app/assets/stylesheets/blacklight/{blacklight.scss → blacklight.css.scss} +0 -0
  23. data/app/assets/stylesheets/blacklight/blacklight_defaults.css.scss +14 -0
  24. data/app/controllers/bookmarks_controller.rb +0 -4
  25. data/app/controllers/feedback_controller.rb +0 -4
  26. data/app/helpers/blacklight/blacklight_helper_behavior.rb +45 -155
  27. data/app/helpers/blacklight/catalog_helper_behavior.rb +8 -41
  28. data/app/helpers/blacklight/facets_helper_behavior.rb +20 -43
  29. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +2 -9
  30. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +9 -14
  31. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +6 -6
  32. data/app/views/_flash_msg.html.erb +9 -2
  33. data/app/views/_user_util_links.html.erb +29 -15
  34. data/app/views/bookmarks/_tools.html.erb +4 -7
  35. data/app/views/bookmarks/index.html.erb +3 -2
  36. data/app/views/catalog/_citation.html.erb +1 -1
  37. data/app/views/catalog/_constraints.html.erb +1 -1
  38. data/app/views/catalog/_constraints_element.html.erb +12 -8
  39. data/app/views/catalog/_did_you_mean.html.erb +2 -2
  40. data/app/views/catalog/_document_header.html.erb +3 -3
  41. data/app/views/catalog/_email_form.html.erb +10 -10
  42. data/app/views/catalog/_facet_layout.html.erb +11 -3
  43. data/app/views/catalog/_facet_limit.html.erb +7 -7
  44. data/app/views/catalog/_facet_pagination.html.erb +8 -7
  45. data/app/views/catalog/_facet_pivot.html.erb +3 -1
  46. data/app/views/catalog/_facets.html.erb +12 -9
  47. data/app/views/catalog/_paginate_compact.html.erb +1 -7
  48. data/app/views/catalog/_per_page_widget.html.erb +5 -8
  49. data/app/views/catalog/_previous_next_doc.html.erb +11 -9
  50. data/app/views/catalog/_refworks_form.html.erb +3 -4
  51. data/app/views/catalog/_results_pagination.html.erb +1 -1
  52. data/app/views/catalog/_search_form.html.erb +16 -14
  53. data/app/views/catalog/_show_sidebar.html.erb +7 -9
  54. data/app/views/catalog/_show_tools.html.erb +13 -7
  55. data/app/views/catalog/_sms_form.html.erb +8 -8
  56. data/app/views/catalog/_sort_and_per_page.html.erb +4 -6
  57. data/app/views/catalog/_sort_widget.html.erb +5 -6
  58. data/app/views/catalog/email.html.erb +1 -1
  59. data/app/views/catalog/facet.html.erb +2 -8
  60. data/app/views/catalog/index.html.erb +11 -6
  61. data/app/views/catalog/show.html.erb +5 -5
  62. data/app/views/catalog/sms.html.erb +1 -1
  63. data/app/views/catalog/sms_sent.html.erb +1 -1
  64. data/app/views/feedback/complete.html.erb +2 -2
  65. data/app/views/feedback/show.html.erb +1 -1
  66. data/app/views/kaminari/blacklight/_paginator.html.erb +1 -1
  67. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +25 -5
  68. data/app/views/layouts/blacklight.html.erb +23 -23
  69. data/app/views/saved_searches/index.html.erb +2 -2
  70. data/app/views/search_history/index.html.erb +5 -7
  71. data/app/views/shared/_header_navbar.html.erb +23 -23
  72. data/blacklight.gemspec +10 -13
  73. data/config/locales/blacklight.en.yml +1 -12
  74. data/config/locales/blacklight.fr.yml +1 -12
  75. data/gemfiles/rails3.gemfile +21 -0
  76. data/gemfiles/rails4.gemfile +20 -0
  77. data/lib/blacklight.rb +0 -8
  78. data/lib/blacklight/base.rb +0 -2
  79. data/lib/blacklight/catalog.rb +6 -32
  80. data/lib/blacklight/catalog/search_context.rb +8 -48
  81. data/lib/blacklight/configurable.rb +2 -1
  82. data/lib/blacklight/configuration.rb +1 -2
  83. data/lib/blacklight/configuration/facet_field.rb +0 -2
  84. data/lib/blacklight/engine.rb +3 -3
  85. data/lib/blacklight/legacy_controller_methods.rb +1 -64
  86. data/lib/blacklight/rails/routes.rb +17 -0
  87. data/lib/blacklight/routes.rb +46 -40
  88. data/lib/blacklight/solr.rb +1 -0
  89. data/lib/blacklight/solr/document.rb +21 -42
  90. data/lib/blacklight/solr/facet_paginator.rb +30 -54
  91. data/lib/blacklight/solr/request.rb +45 -0
  92. data/lib/blacklight/solr_helper.rb +16 -53
  93. data/lib/blacklight/solr_response.rb +0 -6
  94. data/lib/blacklight/user.rb +2 -7
  95. data/lib/blacklight/utils.rb +1 -9
  96. data/lib/generators/blacklight/assets_generator.rb +0 -14
  97. data/lib/generators/blacklight/blacklight_generator.rb +17 -14
  98. data/lib/generators/blacklight/templates/blacklight.css.scss +3 -0
  99. data/lib/generators/blacklight/templates/catalog_controller.rb +4 -1
  100. data/lib/railties/blacklight.rake +3 -1
  101. data/solr/sample_solr_documents.yml +641 -0
  102. data/spec/controllers/application_controller_spec.rb +5 -21
  103. data/spec/controllers/bookmarks_controller_spec.rb +11 -11
  104. data/spec/controllers/catalog_controller_spec.rb +122 -119
  105. data/spec/controllers/search_history_controller_spec.rb +8 -8
  106. data/spec/features/alternate_controller_spec.rb +5 -5
  107. data/spec/features/facets_spec.rb +9 -0
  108. data/spec/features/record_view_spec.rb +1 -1
  109. data/spec/features/search_filters_spec.rb +97 -41
  110. data/spec/features/search_results_spec.rb +14 -17
  111. data/spec/features/search_sort_spec.rb +1 -1
  112. data/spec/helpers/blacklight_helper_spec.rb +170 -285
  113. data/spec/helpers/catalog_helper_spec.rb +57 -96
  114. data/spec/helpers/facets_helper_spec.rb +130 -152
  115. data/spec/helpers/hash_as_hidden_fields_spec.rb +9 -15
  116. data/spec/helpers/render_constraints_helper_spec.rb +5 -5
  117. data/spec/helpers/search_history_constraints_helper_spec.rb +21 -21
  118. data/spec/lib/blacklight/routes_spec.rb +25 -0
  119. data/spec/lib/blacklight/solr/request_spec.rb +37 -0
  120. data/spec/lib/blacklight/solr_response/group_response_spec.rb +2 -2
  121. data/spec/lib/blacklight_configurable_spec.rb +16 -16
  122. data/spec/lib/blacklight_configuration_spec.rb +132 -132
  123. data/spec/lib/blacklight_email_spec.rb +4 -4
  124. data/spec/lib/blacklight_sms_spec.rb +4 -4
  125. data/spec/lib/blacklight_solr_document_dublin_core_spec.rb +6 -6
  126. data/spec/lib/blacklight_solr_document_more_like_this_spec.rb +4 -4
  127. data/spec/lib/blacklight_solr_document_spec.rb +36 -36
  128. data/spec/lib/blacklight_solr_response_spec.rb +43 -48
  129. data/spec/lib/blacklight_spec.rb +6 -14
  130. data/spec/lib/blacklight_user_spec.rb +5 -9
  131. data/spec/lib/facet_paginator_spec.rb +59 -51
  132. data/spec/lib/search_fields_spec.rb +13 -13
  133. data/spec/lib/solr_helper_spec.rb +258 -304
  134. data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
  135. data/spec/lib/utils_spec.rb +16 -46
  136. data/spec/models/bookmark_spec.rb +6 -7
  137. data/spec/models/record_mailer_spec.rb +16 -16
  138. data/spec/models/search_spec.rb +8 -8
  139. data/spec/models/solr_document_spec.rb +6 -77
  140. data/spec/routing/catalog_routing_spec.rb +16 -10
  141. data/spec/spec_helper.rb +7 -7
  142. data/spec/support/assert_difference.rb +2 -2
  143. data/spec/support/features.rb +0 -11
  144. data/spec/support/features/session_helpers.rb +3 -3
  145. data/spec/support/include_text.rb +2 -2
  146. data/spec/test_app_templates/Gemfile.extra +10 -2
  147. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -18
  148. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +13 -13
  149. data/spec/views/catalog/_document.html.erb_spec.rb +1 -1
  150. data/spec/views/catalog/_document_list.html.erb_spec.rb +1 -1
  151. data/spec/views/catalog/_facets.html.erb_spec.rb +13 -14
  152. data/spec/views/catalog/_index_default.erb_spec.rb +21 -21
  153. data/spec/views/catalog/_search_header.erb_spec.rb +1 -1
  154. data/spec/views/catalog/_show_default.erb_spec.rb +21 -21
  155. data/spec/views/catalog/_show_sidebar.erb_spec.rb +7 -7
  156. data/spec/views/catalog/_thumbnail_default.erb_spec.rb +3 -3
  157. data/spec/views/catalog/index.atom.builder_spec.rb +29 -29
  158. data/spec/views/catalog/index.html.erb_spec.rb +6 -7
  159. data/tasks/blacklight.rake +8 -2
  160. metadata +84 -180
  161. data/app/assets/javascripts/blacklight/css_dropdowns.js +0 -10
  162. data/app/assets/javascripts/blacklight/facet_expand_contract.js +0 -41
  163. data/app/assets/javascripts/blacklight/lightbox_dialog.js +0 -70
  164. data/app/assets/javascripts/blacklight/select_submit.js +0 -27
  165. data/app/assets/javascripts/blacklight/zebra_stripe.js +0 -13
  166. data/app/assets/javascripts/improved-modal/bootstrap-modal.js +0 -355
  167. data/app/assets/javascripts/improved-modal/bootstrap-modalmanager.js +0 -370
  168. data/app/assets/stylesheets/blacklight/_bookmark.scss +0 -33
  169. data/app/assets/stylesheets/blacklight/_catalog.scss +0 -255
  170. data/app/assets/stylesheets/blacklight/_dropdown.scss +0 -57
  171. data/app/assets/stylesheets/blacklight/_facets.scss +0 -197
  172. data/app/assets/stylesheets/blacklight/_footer.scss +0 -0
  173. data/app/assets/stylesheets/blacklight/_header.scss +0 -53
  174. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  175. data/app/assets/stylesheets/blacklight/_mixins.scss +0 -0
  176. data/app/assets/stylesheets/blacklight/_print.scss +0 -0
  177. data/app/assets/stylesheets/blacklight/_responsive.scss +0 -3
  178. data/app/assets/stylesheets/blacklight/_search_history.scss +0 -42
  179. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +0 -49
  180. data/app/assets/stylesheets/blacklight/responsive_partials/_catalog.scss +0 -5
  181. data/app/assets/stylesheets/blacklight/responsive_partials/_facets.scss +0 -37
  182. data/app/assets/stylesheets/blacklight/responsive_partials/_header.scss +0 -30
  183. data/app/assets/stylesheets/improved-modal/bootstrap-modal.css +0 -217
  184. data/app/helpers/blacklight/html_head_helper_behavior.rb +0 -118
  185. data/app/helpers/html_head_helper.rb +0 -3
  186. data/app/views/catalog/_bookmark_form.html.erb +0 -7
  187. data/app/views/catalog/_marc_view.html.erb +0 -32
  188. data/app/views/catalog/librarian_view.html.erb +0 -10
  189. data/config/routes.rb +0 -17
  190. data/doc/Atom-Responses.md +0 -90
  191. data/doc/Blacklight-3.0-Release-Notes-And-Upgrade-Guide.md +0 -107
  192. data/doc/Blacklight-3.2-Release-Notes-and-Upgrade-Guide.md +0 -191
  193. data/doc/Blacklight-3.3-release-notes-and-upgrade-guide.md +0 -37
  194. data/doc/Blacklight-3.4-release-notes-and-upgrade-guide.md +0 -27
  195. data/doc/Blacklight-3.5-release-notes-and-upgrade-guide.md +0 -44
  196. data/doc/Blacklight-3.6-release-notes-and-upgrade-guide.md +0 -25
  197. data/doc/Blacklight-3.7-release-notes-and-upgrade-guide.md +0 -80
  198. data/doc/Blacklight-3.8-release-notes-and-upgrade-guide.md +0 -11
  199. data/doc/Blacklight-4.0-release-notes-and-upgrade-guide.md +0 -135
  200. data/doc/Blacklight-4.1-release-notes-and-upgrade-guide.md +0 -17
  201. data/doc/Blacklight-4.2-release-notes-and-upgrade-guide.md +0 -25
  202. data/doc/Blacklight-4.3-release-notes-and-upgrade-guide.md +0 -21
  203. data/doc/Blacklight-4.4-release-notes-and-upgrade-guide.md +0 -41
  204. data/doc/Blacklight-Add-ons.md +0 -28
  205. data/doc/Blacklight-configuration.md +0 -411
  206. data/doc/Blacklight-on-Heroku.md +0 -135
  207. data/doc/Code4Lib-2014.md +0 -48
  208. data/doc/Community-principles.md +0 -44
  209. data/doc/Configuring-and-Customizing-Blacklight.md +0 -271
  210. data/doc/Configuring-rails-routes.md +0 -13
  211. data/doc/Contributing-to-Blacklight.md +0 -25
  212. data/doc/Examples.md +0 -94
  213. data/doc/Extending-or-Modifying-Blacklight-Search-Behavior.md +0 -141
  214. data/doc/FAQs.md +0 -1
  215. data/doc/Home.md +0 -80
  216. data/doc/How-to-release-a-version.md +0 -29
  217. data/doc/Indexing-your-data-into-solr.md +0 -32
  218. data/doc/Integration-with-Rails-Footnotes.md +0 -20
  219. data/doc/Internationalization.md +0 -32
  220. data/doc/JSON-API.md +0 -17
  221. data/doc/Pagination.md +0 -51
  222. data/doc/Providing-your-own-view-templates.md +0 -109
  223. data/doc/Quickstart.md +0 -115
  224. data/doc/README_SOLR.md +0 -245
  225. data/doc/Release-Notes-And-Upgrade-Guides.md +0 -20
  226. data/doc/Roadmap.md +0 -43
  227. data/doc/Sunspot-for-indexing.md +0 -46
  228. data/doc/Theming.md +0 -64
  229. data/doc/User-Authentication.md +0 -60
  230. data/doc/testing.md +0 -57
  231. data/lib/SolrMarc.jar +0 -0
  232. data/lib/blacklight/mash.rb +0 -19
  233. data/lib/blacklight/solr/document/marc.rb +0 -71
  234. data/lib/blacklight/solr/document/marc_export.rb +0 -590
  235. data/lib/generators/blacklight/marc_generator.rb +0 -66
  236. data/lib/generators/blacklight/templates/blacklight.scss +0 -4
  237. data/lib/generators/blacklight/templates/config/SolrMarc/config-test.properties +0 -37
  238. data/lib/generators/blacklight/templates/config/SolrMarc/config.properties +0 -37
  239. data/lib/generators/blacklight/templates/config/SolrMarc/index.properties +0 -97
  240. data/lib/generators/blacklight/templates/config/SolrMarc/index_scripts/dewey.bsh +0 -47
  241. data/lib/generators/blacklight/templates/config/SolrMarc/index_scripts/format.bsh +0 -126
  242. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/README_MAPS +0 -1
  243. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/callnumber_map.properties +0 -407
  244. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/composition_era_map.properties +0 -56
  245. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/country_map.properties +0 -379
  246. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/format_map.properties +0 -50
  247. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/instrument_map.properties +0 -101
  248. data/lib/generators/blacklight/templates/config/SolrMarc/translation_maps/language_map.properties +0 -490
  249. data/lib/railties/solr_marc.rake +0 -162
  250. data/spec/data/test_data.utf8.mrc +0 -1
  251. data/spec/features/librarian_view_spec.rb +0 -13
  252. data/spec/helpers/html_head_helper_spec.rb +0 -164
  253. data/spec/lib/blacklight_solr_document_marc_spec.rb +0 -89
  254. data/spec/lib/marc_export_spec.rb +0 -746
  255. data/spec/lib/tasks/solr_marc_task_spec.rb +0 -60
  256. data/spec/requests/alternate_controller_spec.rb +0 -16
  257. data/spec/routing/routes_spec.rb +0 -20
  258. data/spec/views/catalog/_constraints.html.erb_spec.rb +0 -33
  259. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +0 -49
  260. data/test_support/data/test_data.utf8.mrc +0 -1
@@ -1,66 +0,0 @@
1
- require 'rails/generators'
2
-
3
- module Blacklight
4
- class MarcGenerator < Rails::Generators::Base
5
-
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- desc """
9
- 1. Adds additional mime types to you application in the file '/config/initializers/mime_types.rb'
10
- 2. Creates config/SolrMarc/... with settings for SolrMarc
11
- 3. Creates a CatalogController with some some demo fields for MARC-like data
12
- 4. Injects MARC-specific behaviors into the SolrDocument
13
- """
14
-
15
- # Content types used by Marc Document extension, possibly among others.
16
- # Registering a unique content type with 'register' (rather than
17
- # register_alias) will allow content-negotiation for the format.
18
- def add_mime_types
19
- puts "Updating Mime Types"
20
- insert_into_file "config/initializers/mime_types.rb", :after => "# Be sure to restart your server when you modify this file.\n" do <<EOF
21
- Mime::Type.register_alias "text/plain", :refworks_marc_txt
22
- Mime::Type.register_alias "text/plain", :openurl_kev
23
- Mime::Type.register "application/x-endnote-refer", :endnote
24
- Mime::Type.register "application/marc", :marc
25
- Mime::Type.register "application/marcxml+xml", :marcxml,
26
- ["application/x-marc+xml", "application/x-marcxml+xml",
27
- "application/marc+xml"]
28
- EOF
29
- end
30
- end
31
-
32
- # Copy all files in templates/config directory to host config
33
- def create_configuration_files
34
- directory("config/SolrMarc")
35
- end
36
-
37
- # Generate blacklight catalog controller
38
- def create_blacklight_catalog
39
- copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb"
40
- end
41
-
42
- # add MARC-specific extensions to the solr document
43
- def add_marc_extension_to_solrdocument
44
-
45
- insert_into_file "app/models/solr_document.rb", :after => "include Blacklight::Solr::Document" do <<EOF
46
-
47
- # The following shows how to setup this blacklight document to display marc documents
48
- extension_parameters[:marc_source_field] = :marc_display
49
- extension_parameters[:marc_format_type] = :marcxml
50
- use_extension( Blacklight::Solr::Document::Marc) do |document|
51
- document.key?( :marc_display )
52
- end
53
-
54
- field_semantics.merge!(
55
- :title => "title_display",
56
- :author => "author_display",
57
- :language => "language_facet",
58
- :format => "format"
59
- )
60
-
61
- EOF
62
- end
63
- end
64
-
65
- end
66
- end
@@ -1,4 +0,0 @@
1
- @import 'bootstrap';
2
- @import 'bootstrap-responsive';
3
-
4
- @import 'blacklight/blacklight';
@@ -1,37 +0,0 @@
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
@@ -1,37 +0,0 @@
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
@@ -1,97 +0,0 @@
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
@@ -1,47 +0,0 @@
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
- }
@@ -1,126 +0,0 @@
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
- }
@@ -1 +0,0 @@
1
- This is the directory in which you should place locally defined translation maps.
@@ -1,407 +0,0 @@
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