oai 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. data/README +80 -0
  2. data/Rakefile +113 -0
  3. data/bin/oai +68 -0
  4. data/examples/models/file_model.rb +63 -0
  5. data/examples/providers/dublin_core.rb +474 -0
  6. data/lib/oai.rb +7 -13
  7. data/lib/oai/client.rb +133 -83
  8. data/lib/oai/{get_record.rb → client/get_record.rb} +0 -0
  9. data/lib/oai/{header.rb → client/header.rb} +2 -2
  10. data/lib/oai/{identify.rb → client/identify.rb} +0 -0
  11. data/lib/oai/{list_identifiers.rb → client/list_identifiers.rb} +0 -0
  12. data/lib/oai/{list_metadata_formats.rb → client/list_metadata_formats.rb} +0 -0
  13. data/lib/oai/{list_records.rb → client/list_records.rb} +0 -0
  14. data/lib/oai/{list_sets.rb → client/list_sets.rb} +1 -1
  15. data/lib/oai/{metadata_format.rb → client/metadata_format.rb} +0 -0
  16. data/lib/oai/{record.rb → client/record.rb} +0 -0
  17. data/lib/oai/{response.rb → client/response.rb} +1 -1
  18. data/lib/oai/constants.rb +34 -0
  19. data/lib/oai/exception.rb +72 -1
  20. data/lib/oai/harvester.rb +38 -0
  21. data/lib/oai/harvester/config.rb +41 -0
  22. data/lib/oai/harvester/harvest.rb +144 -0
  23. data/lib/oai/harvester/logging.rb +70 -0
  24. data/lib/oai/harvester/mailer.rb +17 -0
  25. data/lib/oai/harvester/shell.rb +334 -0
  26. data/lib/oai/provider.rb +300 -0
  27. data/lib/oai/provider/metadata_format.rb +72 -0
  28. data/lib/oai/provider/metadata_format/oai_dc.rb +29 -0
  29. data/lib/oai/provider/model.rb +71 -0
  30. data/lib/oai/provider/model/activerecord_caching_wrapper.rb +135 -0
  31. data/lib/oai/provider/model/activerecord_wrapper.rb +136 -0
  32. data/lib/oai/provider/partial_result.rb +18 -0
  33. data/lib/oai/provider/response.rb +119 -0
  34. data/lib/oai/provider/response/error.rb +16 -0
  35. data/lib/oai/provider/response/get_record.rb +32 -0
  36. data/lib/oai/provider/response/identify.rb +24 -0
  37. data/lib/oai/provider/response/list_identifiers.rb +29 -0
  38. data/lib/oai/provider/response/list_metadata_formats.rb +21 -0
  39. data/lib/oai/provider/response/list_records.rb +32 -0
  40. data/lib/oai/provider/response/list_sets.rb +23 -0
  41. data/lib/oai/provider/response/record_response.rb +68 -0
  42. data/lib/oai/provider/resumption_token.rb +106 -0
  43. data/lib/oai/set.rb +14 -5
  44. data/test/activerecord_provider/config/connection.rb +5 -0
  45. data/test/activerecord_provider/config/database.yml +6 -0
  46. data/test/activerecord_provider/database/ar_migration.rb +59 -0
  47. data/test/activerecord_provider/database/oaipmhtest +0 -0
  48. data/test/activerecord_provider/fixtures/dc.yml +1501 -0
  49. data/test/activerecord_provider/helpers/providers.rb +44 -0
  50. data/test/activerecord_provider/helpers/set_provider.rb +36 -0
  51. data/test/activerecord_provider/models/dc_field.rb +7 -0
  52. data/test/activerecord_provider/models/dc_set.rb +6 -0
  53. data/test/activerecord_provider/models/oai_token.rb +3 -0
  54. data/test/activerecord_provider/tc_ar_provider.rb +93 -0
  55. data/test/activerecord_provider/tc_ar_sets_provider.rb +66 -0
  56. data/test/activerecord_provider/tc_caching_paging_provider.rb +53 -0
  57. data/test/activerecord_provider/tc_simple_paging_provider.rb +55 -0
  58. data/test/activerecord_provider/test_helper.rb +4 -0
  59. data/test/client/helpers/provider.rb +68 -0
  60. data/test/client/helpers/test_wrapper.rb +11 -0
  61. data/test/client/tc_exception.rb +36 -0
  62. data/test/{tc_get_record.rb → client/tc_get_record.rb} +11 -7
  63. data/test/client/tc_identify.rb +13 -0
  64. data/test/{tc_libxml.rb → client/tc_libxml.rb} +20 -10
  65. data/test/{tc_list_identifiers.rb → client/tc_list_identifiers.rb} +10 -8
  66. data/test/{tc_list_metadata_formats.rb → client/tc_list_metadata_formats.rb} +4 -1
  67. data/test/{tc_list_records.rb → client/tc_list_records.rb} +4 -1
  68. data/test/{tc_list_sets.rb → client/tc_list_sets.rb} +4 -2
  69. data/test/{tc_xpath.rb → client/tc_xpath.rb} +1 -1
  70. data/test/client/test_helper.rb +5 -0
  71. data/test/provider/models.rb +230 -0
  72. data/test/provider/tc_exceptions.rb +63 -0
  73. data/test/provider/tc_functional_tokens.rb +42 -0
  74. data/test/provider/tc_provider.rb +69 -0
  75. data/test/provider/tc_resumption_tokens.rb +46 -0
  76. data/test/provider/tc_simple_provider.rb +85 -0
  77. data/test/provider/test_helper.rb +36 -0
  78. metadata +123 -27
  79. data/test/tc_exception.rb +0 -38
  80. data/test/tc_identify.rb +0 -8
@@ -0,0 +1,24 @@
1
+ module OAI::Provider::Response
2
+
3
+ class Identify < Base
4
+
5
+ def to_xml
6
+ response do |r|
7
+ r.Identify do
8
+ r.repositoryName provider.name
9
+ r.baseURL provider.url
10
+ r.protocolVersion 2.0
11
+ provider.email.each do |address|
12
+ r.adminEmail address
13
+ end if provider.email
14
+ r.earliestDatestamp provider.model.earliest
15
+ r.deleteRecord provider.delete_support.to_s
16
+ r.granularity provider.granularity
17
+ end
18
+ end
19
+ end
20
+
21
+ end
22
+
23
+ end
24
+
@@ -0,0 +1,29 @@
1
+ module OAI::Provider::Response
2
+
3
+ class ListIdentifiers < RecordResponse
4
+
5
+ def to_xml
6
+ result = provider.model.find(:all, options)
7
+
8
+ # result may be an array of records, or a partial result
9
+ records = result.respond_to?(:records) ? result.records : result
10
+
11
+ raise OAI::NoMatchException.new if records.nil? or records.empty?
12
+
13
+ response do |r|
14
+ r.ListIdentifiers do
15
+ records.each do |rec|
16
+ header_for rec
17
+ end
18
+ end
19
+
20
+ # append resumption token for getting next group of records
21
+ if result.respond_to?(:token)
22
+ r.target! << result.token.to_xml
23
+ end
24
+ end
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -0,0 +1,21 @@
1
+ module OAI::Provider::Response
2
+
3
+ class ListMetadataFormats < Base
4
+
5
+ def to_xml
6
+ response do |r|
7
+ r.ListMetadataFormats do
8
+ provider.formats.each do |key, format|
9
+ r.metadataFormat do
10
+ r.metadataPrefix format.prefix
11
+ r.schema format.schema
12
+ r.metadataNamespace format.namespace
13
+ end
14
+ end
15
+ end
16
+ end
17
+ end
18
+
19
+ end
20
+
21
+ end
@@ -0,0 +1,32 @@
1
+ module OAI::Provider::Response
2
+
3
+ class ListRecords < RecordResponse
4
+
5
+ def to_xml
6
+ result = provider.model.find(:all, options)
7
+ # result may be an array of records, or a partial result
8
+ records = result.respond_to?(:records) ? result.records : result
9
+
10
+ raise OAI::NoMatchException.new if records.nil? or records.empty?
11
+
12
+ response do |r|
13
+ r.ListRecords do
14
+ records.each do |rec|
15
+ r.record do
16
+ header_for rec
17
+ data_for rec
18
+ end
19
+ end
20
+ end
21
+
22
+ # append resumption token for getting next group of records
23
+ if result.respond_to?(:token)
24
+ r.target! << result.token.to_xml
25
+ end
26
+ end
27
+ end
28
+
29
+ end
30
+
31
+ end
32
+
@@ -0,0 +1,23 @@
1
+ module OAI::Provider::Response
2
+
3
+ class ListSets < Base
4
+
5
+ def to_xml
6
+ raise OAI::SetException.new unless provider.model.sets
7
+
8
+ response do |r|
9
+ r.ListSets do
10
+ provider.model.sets.each do |set|
11
+ r.set do
12
+ r.setSpec set.spec
13
+ r.setName set.name
14
+ r.setDescription(set.description) if set.respond_to?(:description)
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+
21
+ end
22
+
23
+ end
@@ -0,0 +1,68 @@
1
+ module OAI::Provider::Response
2
+ class RecordResponse < Base
3
+
4
+ def self.inherited(klass)
5
+ klass.valid_parameters :metadata_prefix, :from, :until, :set
6
+ klass.default_parameters :metadata_prefix => "oai_dc",
7
+ :from => Proc.new {|x| Time.parse(x.provider.model.earliest.to_s) },
8
+ :until => Proc.new {|x| Time.parse(x.provider.model.latest.to_s) }
9
+ end
10
+
11
+ # emit record header
12
+ def header_for(record)
13
+ param = Hash.new
14
+ param[:status] = 'deleted' if deleted?(record)
15
+ @builder.header param do
16
+ @builder.identifier identifier_for(record)
17
+ @builder.datestamp timestamp_for(record)
18
+ sets_for(record).each do |set|
19
+ @builder.setSpec set.spec
20
+ end
21
+ end
22
+ end
23
+
24
+ # metadata - core routine for delivering metadata records
25
+ #
26
+ def data_for(record)
27
+ @builder.metadata do
28
+ @builder.target! << provider.format(requested_format).encode(provider.model, record)
29
+ end
30
+ end
31
+
32
+ private
33
+
34
+ def identifier_for(record)
35
+ "#{provider.prefix}/#{record.id}"
36
+ end
37
+
38
+ def timestamp_for(record)
39
+ record.send(provider.model.timestamp_field).utc.xmlschema
40
+ end
41
+
42
+ def sets_for(record)
43
+ return [] unless record.respond_to?(:sets) and record.sets
44
+ record.sets.respond_to?(:each) ? record.sets : [record.sets]
45
+ end
46
+
47
+ def requested_format
48
+ format =
49
+ if options[:metadata_prefix]
50
+ options[:metadata_prefix]
51
+ elsif options[:resumption_token]
52
+ OAI::Provider::ResumptionToken.extract_format(options[:resumption_token])
53
+ end
54
+
55
+ raise OAI::FormatException.new unless provider.format_supported?(format)
56
+
57
+ format
58
+ end
59
+
60
+ def deleted?(record)
61
+ return record.deleted? if record.respond_to?(:deleted?)
62
+ return record.deleted if record.respond_to?(:deleted)
63
+ return record.deleted_at if record.respond_to?(:deleted_at)
64
+ false
65
+ end
66
+
67
+ end
68
+ end
@@ -0,0 +1,106 @@
1
+ require 'time'
2
+ require 'enumerator'
3
+ require File.dirname(__FILE__) + "/partial_result"
4
+
5
+ module OAI::Provider
6
+ # = OAI::Provider::ResumptionToken
7
+ #
8
+ # The ResumptionToken class forms the basis of paging query results. It
9
+ # provides several helper methods for dealing with resumption tokens.
10
+ #
11
+ class ResumptionToken
12
+ attr_reader :prefix, :set, :from, :until, :last, :expiration, :total
13
+
14
+ # parses a token string and returns a ResumptionToken
15
+ def self.parse(token_string)
16
+ begin
17
+ options = {}
18
+ matches = /(.+):(\d+)$/.match(token_string)
19
+ options[:last] = matches.captures[1].to_i
20
+
21
+ parts = matches.captures[0].split('.')
22
+ options[:metadata_prefix] = parts.shift
23
+ parts.each do |part|
24
+ case part
25
+ when /^s/
26
+ options[:set] = part.sub(/^s\(/, '').sub(/\)$/, '')
27
+ when /^f/
28
+ options[:from] = Time.parse(part.sub(/^f\(/, '').sub(/\)$/, '')).localtime
29
+ when /^u/
30
+ options[:until] = Time.parse(part.sub(/^u\(/, '').sub(/\)$/, '')).localtime
31
+ end
32
+ end
33
+ self.new(options)
34
+ rescue => err
35
+ raise ResumptionTokenException.new
36
+ end
37
+ end
38
+
39
+ # extracts the metadata prefix from a token string
40
+ def self.extract_format(token_string)
41
+ return token_string.split('.')[0]
42
+ end
43
+
44
+ def initialize(options, expiration = nil, total = nil)
45
+ @prefix = options[:metadata_prefix]
46
+ @set = options[:set]
47
+ @last = options[:last]
48
+ @from = options[:from] if options[:from]
49
+ @until = options[:until] if options[:until]
50
+ @expiration = expiration if expiration
51
+ @total = total if total
52
+ end
53
+
54
+ # convenience method for setting the offset of the next set of results
55
+ def next(last)
56
+ @last = last
57
+ self
58
+ end
59
+
60
+ def ==(other)
61
+ prefix == other.prefix and set == other.set and from == other.from and
62
+ self.until == other.until and last == other.last and
63
+ expiration == other.expiration and total == other.total
64
+ end
65
+
66
+ # output an xml resumption token
67
+ def to_xml
68
+ xml = Builder::XmlMarkup.new
69
+ xml.resumptionToken(encode_conditions, hash_of_attributes)
70
+ xml.target!
71
+ end
72
+
73
+ # return a hash containing just the model selection parameters
74
+ def to_conditions_hash
75
+ conditions = {:metadata_prefix => self.prefix }
76
+ conditions[:set] = self.set if self.set
77
+ conditions[:from] = self.from if self.from
78
+ conditions[:until] = self.until if self.until
79
+ conditions
80
+ end
81
+
82
+ # return the a string representation of the token minus the offset
83
+ def to_s
84
+ encode_conditions.gsub(/:\w+?$/, '')
85
+ end
86
+
87
+ private
88
+
89
+ def encode_conditions
90
+ encoded_token = @prefix.to_s.dup
91
+ encoded_token << ".s(#{set})" if set
92
+ encoded_token << ".f(#{from.utc.xmlschema})" if from
93
+ encoded_token << ".u(#{self.until.utc.xmlschema})" if self.until
94
+ encoded_token << ":#{last}"
95
+ end
96
+
97
+ def hash_of_attributes
98
+ attributes = {}
99
+ attributes[:completeListSize] = self.total if self.total
100
+ attributes[:expirationDate] = self.expiration.utc.xmlschema if self.expiration
101
+ attributes
102
+ end
103
+
104
+ end
105
+
106
+ end
data/lib/oai/set.rb CHANGED
@@ -7,12 +7,21 @@ module OAI
7
7
  include OAI::XPath
8
8
  attr_accessor :name, :spec, :description
9
9
 
10
- def initialize(element)
11
- @name = xpath(element, './/setName')
12
- @spec = xpath(element, './/setSpec')
13
- @description = xpath_first(element, './/setDescription')
10
+ def initialize(values = {})
11
+ @name = values.delete(:name)
12
+ @spec = values.delete(:spec)
13
+ @description = values.delete(:description)
14
+ raise ArgumentException, "Invalid options" unless values.empty?
14
15
  end
15
-
16
+
17
+ def self.parse(element)
18
+ set = self.new
19
+ set.name = set.xpath(element, './/setName')
20
+ set.spec = set.xpath(element, './/setSpec')
21
+ set.description = set.xpath_first(element, './/setDescription')
22
+ set
23
+ end
24
+
16
25
  def to_s
17
26
  "#{@name} [#{@spec}]"
18
27
  end
@@ -0,0 +1,5 @@
1
+ # Configure AR connection
2
+ conn_info = YAML.load_file(
3
+ File.join(File.dirname(__FILE__), "database.yml")
4
+ )
5
+ ActiveRecord::Base.establish_connection(conn_info)
@@ -0,0 +1,6 @@
1
+ # Test database connection, this database will be created and
2
+ # dropped by the activerecord units tests.
3
+ adapter: sqlite3
4
+ database: test/activerecord_provider/database/oaipmhtest
5
+ username:
6
+ password:
@@ -0,0 +1,59 @@
1
+ ActiveRecord::Migration.verbose = false
2
+
3
+ class OAIPMHTables < ActiveRecord::Migration
4
+ def self.up
5
+ create_table :oai_tokens, :force => true do |t|
6
+ t.column :token, :string, :null => false
7
+ t.column :created_at, :timestamp
8
+ end
9
+
10
+ create_table :oai_entries, :force => true do |t|
11
+ t.column :record_id, :integer, :null => false
12
+ t.column :oai_token_id, :integer, :null => false
13
+ end
14
+
15
+ create_table :dc_fields, :force => true do |t|
16
+ t.column :title, :string
17
+ t.column :creator, :string
18
+ t.column :subject, :string
19
+ t.column :description, :string
20
+ t.column :contributor, :string
21
+ t.column :publisher, :string
22
+ t.column :date, :string
23
+ t.column :type, :string
24
+ t.column :format, :string
25
+ t.column :source, :string
26
+ t.column :language, :string
27
+ t.column :relation, :string
28
+ t.column :coverage, :string
29
+ t.column :rights, :string
30
+ t.column :updated_at, :datetime
31
+ t.column :created_at, :datetime
32
+ t.column :deleted, :boolean, :default => false
33
+ end
34
+
35
+ create_table :dc_fields_dc_sets, :force => true, :id => false do |t|
36
+ t.column :dc_field_id, :integer
37
+ t.column :dc_set_id, :integer
38
+ end
39
+
40
+ create_table :dc_sets, :force => true do |t|
41
+ t.column :name, :string
42
+ t.column :spec, :string
43
+ t.column :description, :string
44
+ end
45
+
46
+ add_index :oai_tokens, [:token], :uniq => true
47
+ add_index :oai_tokens, :created_at
48
+ add_index :oai_entries, [:oai_token_id]
49
+ add_index :dc_fields, :updated_at
50
+ add_index :dc_fields, :deleted
51
+ add_index :dc_fields_dc_sets, [:dc_field_id, :dc_set_id]
52
+ end
53
+
54
+ def self.down
55
+ drop_table :oai_tokens
56
+ drop_table :dc_fields
57
+ drop_table :dc_sets
58
+ end
59
+ end
@@ -0,0 +1,1501 @@
1
+ ---
2
+ 85:
3
+ coverage: coverage_85
4
+ format: format_85
5
+ creator: creator_85
6
+ language: language_85
7
+ title: title_85
8
+ date: date_85
9
+ type: type_85
10
+ rights: rights_85
11
+ contributor: contributor_85
12
+ subject: subject_85
13
+ relation: relation_85
14
+ publisher: publisher_85
15
+ description: description_85
16
+ source: source_85
17
+ 66:
18
+ coverage: coverage_66
19
+ format: format_66
20
+ creator: creator_66
21
+ language: language_66
22
+ title: title_66
23
+ date: date_66
24
+ type: type_66
25
+ rights: rights_66
26
+ contributor: contributor_66
27
+ subject: subject_66
28
+ relation: relation_66
29
+ publisher: publisher_66
30
+ description: description_66
31
+ source: source_66
32
+ 9:
33
+ coverage: coverage_9
34
+ format: format_9
35
+ creator: creator_9
36
+ language: language_9
37
+ title: title_9
38
+ date: date_9
39
+ type: type_9
40
+ rights: rights_9
41
+ contributor: contributor_9
42
+ subject: subject_9
43
+ relation: relation_9
44
+ publisher: publisher_9
45
+ description: description_9
46
+ source: source_9
47
+ 47:
48
+ coverage: coverage_47
49
+ format: format_47
50
+ creator: creator_47
51
+ language: language_47
52
+ title: title_47
53
+ date: date_47
54
+ type: type_47
55
+ rights: rights_47
56
+ contributor: contributor_47
57
+ subject: subject_47
58
+ relation: relation_47
59
+ publisher: publisher_47
60
+ description: description_47
61
+ source: source_47
62
+ 28:
63
+ coverage: coverage_28
64
+ format: format_28
65
+ creator: creator_28
66
+ language: language_28
67
+ title: title_28
68
+ date: date_28
69
+ type: type_28
70
+ rights: rights_28
71
+ contributor: contributor_28
72
+ subject: subject_28
73
+ relation: relation_28
74
+ publisher: publisher_28
75
+ description: description_28
76
+ source: source_28
77
+ 95:
78
+ coverage: coverage_95
79
+ format: format_95
80
+ creator: creator_95
81
+ language: language_95
82
+ title: title_95
83
+ date: date_95
84
+ type: type_95
85
+ rights: rights_95
86
+ contributor: contributor_95
87
+ subject: subject_95
88
+ relation: relation_95
89
+ publisher: publisher_95
90
+ description: description_95
91
+ source: source_95
92
+ 76:
93
+ coverage: coverage_76
94
+ format: format_76
95
+ creator: creator_76
96
+ language: language_76
97
+ title: title_76
98
+ date: date_76
99
+ type: type_76
100
+ rights: rights_76
101
+ contributor: contributor_76
102
+ subject: subject_76
103
+ relation: relation_76
104
+ publisher: publisher_76
105
+ description: description_76
106
+ source: source_76
107
+ 19:
108
+ coverage: coverage_19
109
+ format: format_19
110
+ creator: creator_19
111
+ language: language_19
112
+ title: title_19
113
+ date: date_19
114
+ type: type_19
115
+ rights: rights_19
116
+ contributor: contributor_19
117
+ subject: subject_19
118
+ relation: relation_19
119
+ publisher: publisher_19
120
+ description: description_19
121
+ source: source_19
122
+ 57:
123
+ coverage: coverage_57
124
+ format: format_57
125
+ creator: creator_57
126
+ language: language_57
127
+ title: title_57
128
+ date: date_57
129
+ type: type_57
130
+ rights: rights_57
131
+ contributor: contributor_57
132
+ subject: subject_57
133
+ relation: relation_57
134
+ publisher: publisher_57
135
+ description: description_57
136
+ source: source_57
137
+ 0:
138
+ coverage: coverage_0
139
+ format: format_0
140
+ creator: creator_0
141
+ language: language_0
142
+ title: title_0
143
+ date: date_0
144
+ type: type_0
145
+ rights: rights_0
146
+ contributor: contributor_0
147
+ subject: subject_0
148
+ relation: relation_0
149
+ publisher: publisher_0
150
+ description: description_0
151
+ source: source_0
152
+ 38:
153
+ coverage: coverage_38
154
+ format: format_38
155
+ creator: creator_38
156
+ language: language_38
157
+ title: title_38
158
+ date: date_38
159
+ type: type_38
160
+ rights: rights_38
161
+ contributor: contributor_38
162
+ subject: subject_38
163
+ relation: relation_38
164
+ publisher: publisher_38
165
+ description: description_38
166
+ source: source_38
167
+ 86:
168
+ coverage: coverage_86
169
+ format: format_86
170
+ creator: creator_86
171
+ language: language_86
172
+ title: title_86
173
+ date: date_86
174
+ type: type_86
175
+ rights: rights_86
176
+ contributor: contributor_86
177
+ subject: subject_86
178
+ relation: relation_86
179
+ publisher: publisher_86
180
+ description: description_86
181
+ source: source_86
182
+ 67:
183
+ coverage: coverage_67
184
+ format: format_67
185
+ creator: creator_67
186
+ language: language_67
187
+ title: title_67
188
+ date: date_67
189
+ type: type_67
190
+ rights: rights_67
191
+ contributor: contributor_67
192
+ subject: subject_67
193
+ relation: relation_67
194
+ publisher: publisher_67
195
+ description: description_67
196
+ source: source_67
197
+ 10:
198
+ coverage: coverage_10
199
+ format: format_10
200
+ creator: creator_10
201
+ language: language_10
202
+ title: title_10
203
+ date: date_10
204
+ type: type_10
205
+ rights: rights_10
206
+ contributor: contributor_10
207
+ subject: subject_10
208
+ relation: relation_10
209
+ publisher: publisher_10
210
+ description: description_10
211
+ source: source_10
212
+ 48:
213
+ coverage: coverage_48
214
+ format: format_48
215
+ creator: creator_48
216
+ language: language_48
217
+ title: title_48
218
+ date: date_48
219
+ type: type_48
220
+ rights: rights_48
221
+ contributor: contributor_48
222
+ subject: subject_48
223
+ relation: relation_48
224
+ publisher: publisher_48
225
+ description: description_48
226
+ source: source_48
227
+ 29:
228
+ coverage: coverage_29
229
+ format: format_29
230
+ creator: creator_29
231
+ language: language_29
232
+ title: title_29
233
+ date: date_29
234
+ type: type_29
235
+ rights: rights_29
236
+ contributor: contributor_29
237
+ subject: subject_29
238
+ relation: relation_29
239
+ publisher: publisher_29
240
+ description: description_29
241
+ source: source_29
242
+ 96:
243
+ coverage: coverage_96
244
+ format: format_96
245
+ creator: creator_96
246
+ language: language_96
247
+ title: title_96
248
+ date: date_96
249
+ type: type_96
250
+ rights: rights_96
251
+ contributor: contributor_96
252
+ subject: subject_96
253
+ relation: relation_96
254
+ publisher: publisher_96
255
+ description: description_96
256
+ source: source_96
257
+ 77:
258
+ coverage: coverage_77
259
+ format: format_77
260
+ creator: creator_77
261
+ language: language_77
262
+ title: title_77
263
+ date: date_77
264
+ type: type_77
265
+ rights: rights_77
266
+ contributor: contributor_77
267
+ subject: subject_77
268
+ relation: relation_77
269
+ publisher: publisher_77
270
+ description: description_77
271
+ source: source_77
272
+ 20:
273
+ coverage: coverage_20
274
+ format: format_20
275
+ creator: creator_20
276
+ language: language_20
277
+ title: title_20
278
+ date: date_20
279
+ type: type_20
280
+ rights: rights_20
281
+ contributor: contributor_20
282
+ subject: subject_20
283
+ relation: relation_20
284
+ publisher: publisher_20
285
+ description: description_20
286
+ source: source_20
287
+ 58:
288
+ coverage: coverage_58
289
+ format: format_58
290
+ creator: creator_58
291
+ language: language_58
292
+ title: title_58
293
+ date: date_58
294
+ type: type_58
295
+ rights: rights_58
296
+ contributor: contributor_58
297
+ subject: subject_58
298
+ relation: relation_58
299
+ publisher: publisher_58
300
+ description: description_58
301
+ source: source_58
302
+ 1:
303
+ coverage: coverage_1
304
+ format: format_1
305
+ creator: creator_1
306
+ language: language_1
307
+ title: title_1
308
+ date: date_1
309
+ type: type_1
310
+ rights: rights_1
311
+ contributor: contributor_1
312
+ subject: subject_1
313
+ relation: relation_1
314
+ publisher: publisher_1
315
+ description: description_1
316
+ source: source_1
317
+ 39:
318
+ coverage: coverage_39
319
+ format: format_39
320
+ creator: creator_39
321
+ language: language_39
322
+ title: title_39
323
+ date: date_39
324
+ type: type_39
325
+ rights: rights_39
326
+ contributor: contributor_39
327
+ subject: subject_39
328
+ relation: relation_39
329
+ publisher: publisher_39
330
+ description: description_39
331
+ source: source_39
332
+ 87:
333
+ coverage: coverage_87
334
+ format: format_87
335
+ creator: creator_87
336
+ language: language_87
337
+ title: title_87
338
+ date: date_87
339
+ type: type_87
340
+ rights: rights_87
341
+ contributor: contributor_87
342
+ subject: subject_87
343
+ relation: relation_87
344
+ publisher: publisher_87
345
+ description: description_87
346
+ source: source_87
347
+ 68:
348
+ coverage: coverage_68
349
+ format: format_68
350
+ creator: creator_68
351
+ language: language_68
352
+ title: title_68
353
+ date: date_68
354
+ type: type_68
355
+ rights: rights_68
356
+ contributor: contributor_68
357
+ subject: subject_68
358
+ relation: relation_68
359
+ publisher: publisher_68
360
+ description: description_68
361
+ source: source_68
362
+ 30:
363
+ coverage: coverage_30
364
+ format: format_30
365
+ creator: creator_30
366
+ language: language_30
367
+ title: title_30
368
+ date: date_30
369
+ type: type_30
370
+ rights: rights_30
371
+ contributor: contributor_30
372
+ subject: subject_30
373
+ relation: relation_30
374
+ publisher: publisher_30
375
+ description: description_30
376
+ source: source_30
377
+ 11:
378
+ coverage: coverage_11
379
+ format: format_11
380
+ creator: creator_11
381
+ language: language_11
382
+ title: title_11
383
+ date: date_11
384
+ type: type_11
385
+ rights: rights_11
386
+ contributor: contributor_11
387
+ subject: subject_11
388
+ relation: relation_11
389
+ publisher: publisher_11
390
+ description: description_11
391
+ source: source_11
392
+ 49:
393
+ coverage: coverage_49
394
+ format: format_49
395
+ creator: creator_49
396
+ language: language_49
397
+ title: title_49
398
+ date: date_49
399
+ type: type_49
400
+ rights: rights_49
401
+ contributor: contributor_49
402
+ subject: subject_49
403
+ relation: relation_49
404
+ publisher: publisher_49
405
+ description: description_49
406
+ source: source_49
407
+ 97:
408
+ coverage: coverage_97
409
+ format: format_97
410
+ creator: creator_97
411
+ language: language_97
412
+ title: title_97
413
+ date: date_97
414
+ type: type_97
415
+ rights: rights_97
416
+ contributor: contributor_97
417
+ subject: subject_97
418
+ relation: relation_97
419
+ publisher: publisher_97
420
+ description: description_97
421
+ source: source_97
422
+ 78:
423
+ coverage: coverage_78
424
+ format: format_78
425
+ creator: creator_78
426
+ language: language_78
427
+ title: title_78
428
+ date: date_78
429
+ type: type_78
430
+ rights: rights_78
431
+ contributor: contributor_78
432
+ subject: subject_78
433
+ relation: relation_78
434
+ publisher: publisher_78
435
+ description: description_78
436
+ source: source_78
437
+ 21:
438
+ coverage: coverage_21
439
+ format: format_21
440
+ creator: creator_21
441
+ language: language_21
442
+ title: title_21
443
+ date: date_21
444
+ type: type_21
445
+ rights: rights_21
446
+ contributor: contributor_21
447
+ subject: subject_21
448
+ relation: relation_21
449
+ publisher: publisher_21
450
+ description: description_21
451
+ source: source_21
452
+ 59:
453
+ coverage: coverage_59
454
+ format: format_59
455
+ creator: creator_59
456
+ language: language_59
457
+ title: title_59
458
+ date: date_59
459
+ type: type_59
460
+ rights: rights_59
461
+ contributor: contributor_59
462
+ subject: subject_59
463
+ relation: relation_59
464
+ publisher: publisher_59
465
+ description: description_59
466
+ source: source_59
467
+ 2:
468
+ coverage: coverage_2
469
+ format: format_2
470
+ creator: creator_2
471
+ language: language_2
472
+ title: title_2
473
+ date: date_2
474
+ type: type_2
475
+ rights: rights_2
476
+ contributor: contributor_2
477
+ subject: subject_2
478
+ relation: relation_2
479
+ publisher: publisher_2
480
+ description: description_2
481
+ source: source_2
482
+ 40:
483
+ coverage: coverage_40
484
+ format: format_40
485
+ creator: creator_40
486
+ language: language_40
487
+ title: title_40
488
+ date: date_40
489
+ type: type_40
490
+ rights: rights_40
491
+ contributor: contributor_40
492
+ subject: subject_40
493
+ relation: relation_40
494
+ publisher: publisher_40
495
+ description: description_40
496
+ source: source_40
497
+ 88:
498
+ coverage: coverage_88
499
+ format: format_88
500
+ creator: creator_88
501
+ language: language_88
502
+ title: title_88
503
+ date: date_88
504
+ type: type_88
505
+ rights: rights_88
506
+ contributor: contributor_88
507
+ subject: subject_88
508
+ relation: relation_88
509
+ publisher: publisher_88
510
+ description: description_88
511
+ source: source_88
512
+ 69:
513
+ coverage: coverage_69
514
+ format: format_69
515
+ creator: creator_69
516
+ language: language_69
517
+ title: title_69
518
+ date: date_69
519
+ type: type_69
520
+ rights: rights_69
521
+ contributor: contributor_69
522
+ subject: subject_69
523
+ relation: relation_69
524
+ publisher: publisher_69
525
+ description: description_69
526
+ source: source_69
527
+ 31:
528
+ coverage: coverage_31
529
+ format: format_31
530
+ creator: creator_31
531
+ language: language_31
532
+ title: title_31
533
+ date: date_31
534
+ type: type_31
535
+ rights: rights_31
536
+ contributor: contributor_31
537
+ subject: subject_31
538
+ relation: relation_31
539
+ publisher: publisher_31
540
+ description: description_31
541
+ source: source_31
542
+ 12:
543
+ coverage: coverage_12
544
+ format: format_12
545
+ creator: creator_12
546
+ language: language_12
547
+ title: title_12
548
+ date: date_12
549
+ type: type_12
550
+ rights: rights_12
551
+ contributor: contributor_12
552
+ subject: subject_12
553
+ relation: relation_12
554
+ publisher: publisher_12
555
+ description: description_12
556
+ source: source_12
557
+ 50:
558
+ coverage: coverage_50
559
+ format: format_50
560
+ creator: creator_50
561
+ language: language_50
562
+ title: title_50
563
+ date: date_50
564
+ type: type_50
565
+ rights: rights_50
566
+ contributor: contributor_50
567
+ subject: subject_50
568
+ relation: relation_50
569
+ publisher: publisher_50
570
+ description: description_50
571
+ source: source_50
572
+ 98:
573
+ coverage: coverage_98
574
+ format: format_98
575
+ creator: creator_98
576
+ language: language_98
577
+ title: title_98
578
+ date: date_98
579
+ type: type_98
580
+ rights: rights_98
581
+ contributor: contributor_98
582
+ subject: subject_98
583
+ relation: relation_98
584
+ publisher: publisher_98
585
+ description: description_98
586
+ source: source_98
587
+ 79:
588
+ coverage: coverage_79
589
+ format: format_79
590
+ creator: creator_79
591
+ language: language_79
592
+ title: title_79
593
+ date: date_79
594
+ type: type_79
595
+ rights: rights_79
596
+ contributor: contributor_79
597
+ subject: subject_79
598
+ relation: relation_79
599
+ publisher: publisher_79
600
+ description: description_79
601
+ source: source_79
602
+ 3:
603
+ coverage: coverage_3
604
+ format: format_3
605
+ creator: creator_3
606
+ language: language_3
607
+ title: title_3
608
+ date: date_3
609
+ type: type_3
610
+ rights: rights_3
611
+ contributor: contributor_3
612
+ subject: subject_3
613
+ relation: relation_3
614
+ publisher: publisher_3
615
+ description: description_3
616
+ source: source_3
617
+ 41:
618
+ coverage: coverage_41
619
+ format: format_41
620
+ creator: creator_41
621
+ language: language_41
622
+ title: title_41
623
+ date: date_41
624
+ type: type_41
625
+ rights: rights_41
626
+ contributor: contributor_41
627
+ subject: subject_41
628
+ relation: relation_41
629
+ publisher: publisher_41
630
+ description: description_41
631
+ source: source_41
632
+ 22:
633
+ coverage: coverage_22
634
+ format: format_22
635
+ creator: creator_22
636
+ language: language_22
637
+ title: title_22
638
+ date: date_22
639
+ type: type_22
640
+ rights: rights_22
641
+ contributor: contributor_22
642
+ subject: subject_22
643
+ relation: relation_22
644
+ publisher: publisher_22
645
+ description: description_22
646
+ source: source_22
647
+ 60:
648
+ coverage: coverage_60
649
+ format: format_60
650
+ creator: creator_60
651
+ language: language_60
652
+ title: title_60
653
+ date: date_60
654
+ type: type_60
655
+ rights: rights_60
656
+ contributor: contributor_60
657
+ subject: subject_60
658
+ relation: relation_60
659
+ publisher: publisher_60
660
+ description: description_60
661
+ source: source_60
662
+ 89:
663
+ coverage: coverage_89
664
+ format: format_89
665
+ creator: creator_89
666
+ language: language_89
667
+ title: title_89
668
+ date: date_89
669
+ type: type_89
670
+ rights: rights_89
671
+ contributor: contributor_89
672
+ subject: subject_89
673
+ relation: relation_89
674
+ publisher: publisher_89
675
+ description: description_89
676
+ source: source_89
677
+ 70:
678
+ coverage: coverage_70
679
+ format: format_70
680
+ creator: creator_70
681
+ language: language_70
682
+ title: title_70
683
+ date: date_70
684
+ type: type_70
685
+ rights: rights_70
686
+ contributor: contributor_70
687
+ subject: subject_70
688
+ relation: relation_70
689
+ publisher: publisher_70
690
+ description: description_70
691
+ source: source_70
692
+ 32:
693
+ coverage: coverage_32
694
+ format: format_32
695
+ creator: creator_32
696
+ language: language_32
697
+ title: title_32
698
+ date: date_32
699
+ type: type_32
700
+ rights: rights_32
701
+ contributor: contributor_32
702
+ subject: subject_32
703
+ relation: relation_32
704
+ publisher: publisher_32
705
+ description: description_32
706
+ source: source_32
707
+ 13:
708
+ coverage: coverage_13
709
+ format: format_13
710
+ creator: creator_13
711
+ language: language_13
712
+ title: title_13
713
+ date: date_13
714
+ type: type_13
715
+ rights: rights_13
716
+ contributor: contributor_13
717
+ subject: subject_13
718
+ relation: relation_13
719
+ publisher: publisher_13
720
+ description: description_13
721
+ source: source_13
722
+ 51:
723
+ coverage: coverage_51
724
+ format: format_51
725
+ creator: creator_51
726
+ language: language_51
727
+ title: title_51
728
+ date: date_51
729
+ type: type_51
730
+ rights: rights_51
731
+ contributor: contributor_51
732
+ subject: subject_51
733
+ relation: relation_51
734
+ publisher: publisher_51
735
+ description: description_51
736
+ source: source_51
737
+ 99:
738
+ coverage: coverage_99
739
+ format: format_99
740
+ creator: creator_99
741
+ language: language_99
742
+ title: title_99
743
+ date: date_99
744
+ type: type_99
745
+ rights: rights_99
746
+ contributor: contributor_99
747
+ subject: subject_99
748
+ relation: relation_99
749
+ publisher: publisher_99
750
+ description: description_99
751
+ source: source_99
752
+ 80:
753
+ coverage: coverage_80
754
+ format: format_80
755
+ creator: creator_80
756
+ language: language_80
757
+ title: title_80
758
+ date: date_80
759
+ type: type_80
760
+ rights: rights_80
761
+ contributor: contributor_80
762
+ subject: subject_80
763
+ relation: relation_80
764
+ publisher: publisher_80
765
+ description: description_80
766
+ source: source_80
767
+ 4:
768
+ coverage: coverage_4
769
+ format: format_4
770
+ creator: creator_4
771
+ language: language_4
772
+ title: title_4
773
+ date: date_4
774
+ type: type_4
775
+ rights: rights_4
776
+ contributor: contributor_4
777
+ subject: subject_4
778
+ relation: relation_4
779
+ publisher: publisher_4
780
+ description: description_4
781
+ source: source_4
782
+ 42:
783
+ coverage: coverage_42
784
+ format: format_42
785
+ creator: creator_42
786
+ language: language_42
787
+ title: title_42
788
+ date: date_42
789
+ type: type_42
790
+ rights: rights_42
791
+ contributor: contributor_42
792
+ subject: subject_42
793
+ relation: relation_42
794
+ publisher: publisher_42
795
+ description: description_42
796
+ source: source_42
797
+ 23:
798
+ coverage: coverage_23
799
+ format: format_23
800
+ creator: creator_23
801
+ language: language_23
802
+ title: title_23
803
+ date: date_23
804
+ type: type_23
805
+ rights: rights_23
806
+ contributor: contributor_23
807
+ subject: subject_23
808
+ relation: relation_23
809
+ publisher: publisher_23
810
+ description: description_23
811
+ source: source_23
812
+ 61:
813
+ coverage: coverage_61
814
+ format: format_61
815
+ creator: creator_61
816
+ language: language_61
817
+ title: title_61
818
+ date: date_61
819
+ type: type_61
820
+ rights: rights_61
821
+ contributor: contributor_61
822
+ subject: subject_61
823
+ relation: relation_61
824
+ publisher: publisher_61
825
+ description: description_61
826
+ source: source_61
827
+ 90:
828
+ coverage: coverage_90
829
+ format: format_90
830
+ creator: creator_90
831
+ language: language_90
832
+ title: title_90
833
+ date: date_90
834
+ type: type_90
835
+ rights: rights_90
836
+ contributor: contributor_90
837
+ subject: subject_90
838
+ relation: relation_90
839
+ publisher: publisher_90
840
+ description: description_90
841
+ source: source_90
842
+ 71:
843
+ coverage: coverage_71
844
+ format: format_71
845
+ creator: creator_71
846
+ language: language_71
847
+ title: title_71
848
+ date: date_71
849
+ type: type_71
850
+ rights: rights_71
851
+ contributor: contributor_71
852
+ subject: subject_71
853
+ relation: relation_71
854
+ publisher: publisher_71
855
+ description: description_71
856
+ source: source_71
857
+ 14:
858
+ coverage: coverage_14
859
+ format: format_14
860
+ creator: creator_14
861
+ language: language_14
862
+ title: title_14
863
+ date: date_14
864
+ type: type_14
865
+ rights: rights_14
866
+ contributor: contributor_14
867
+ subject: subject_14
868
+ relation: relation_14
869
+ publisher: publisher_14
870
+ description: description_14
871
+ source: source_14
872
+ 52:
873
+ coverage: coverage_52
874
+ format: format_52
875
+ creator: creator_52
876
+ language: language_52
877
+ title: title_52
878
+ date: date_52
879
+ type: type_52
880
+ rights: rights_52
881
+ contributor: contributor_52
882
+ subject: subject_52
883
+ relation: relation_52
884
+ publisher: publisher_52
885
+ description: description_52
886
+ source: source_52
887
+ 33:
888
+ coverage: coverage_33
889
+ format: format_33
890
+ creator: creator_33
891
+ language: language_33
892
+ title: title_33
893
+ date: date_33
894
+ type: type_33
895
+ rights: rights_33
896
+ contributor: contributor_33
897
+ subject: subject_33
898
+ relation: relation_33
899
+ publisher: publisher_33
900
+ description: description_33
901
+ source: source_33
902
+ 81:
903
+ coverage: coverage_81
904
+ format: format_81
905
+ creator: creator_81
906
+ language: language_81
907
+ title: title_81
908
+ date: date_81
909
+ type: type_81
910
+ rights: rights_81
911
+ contributor: contributor_81
912
+ subject: subject_81
913
+ relation: relation_81
914
+ publisher: publisher_81
915
+ description: description_81
916
+ source: source_81
917
+ 43:
918
+ coverage: coverage_43
919
+ format: format_43
920
+ creator: creator_43
921
+ language: language_43
922
+ title: title_43
923
+ date: date_43
924
+ type: type_43
925
+ rights: rights_43
926
+ contributor: contributor_43
927
+ subject: subject_43
928
+ relation: relation_43
929
+ publisher: publisher_43
930
+ description: description_43
931
+ source: source_43
932
+ 24:
933
+ coverage: coverage_24
934
+ format: format_24
935
+ creator: creator_24
936
+ language: language_24
937
+ title: title_24
938
+ date: date_24
939
+ type: type_24
940
+ rights: rights_24
941
+ contributor: contributor_24
942
+ subject: subject_24
943
+ relation: relation_24
944
+ publisher: publisher_24
945
+ description: description_24
946
+ source: source_24
947
+ 62:
948
+ coverage: coverage_62
949
+ format: format_62
950
+ creator: creator_62
951
+ language: language_62
952
+ title: title_62
953
+ date: date_62
954
+ type: type_62
955
+ rights: rights_62
956
+ contributor: contributor_62
957
+ subject: subject_62
958
+ relation: relation_62
959
+ publisher: publisher_62
960
+ description: description_62
961
+ source: source_62
962
+ 5:
963
+ coverage: coverage_5
964
+ format: format_5
965
+ creator: creator_5
966
+ language: language_5
967
+ title: title_5
968
+ date: date_5
969
+ type: type_5
970
+ rights: rights_5
971
+ contributor: contributor_5
972
+ subject: subject_5
973
+ relation: relation_5
974
+ publisher: publisher_5
975
+ description: description_5
976
+ source: source_5
977
+ 91:
978
+ coverage: coverage_91
979
+ format: format_91
980
+ creator: creator_91
981
+ language: language_91
982
+ title: title_91
983
+ date: date_91
984
+ type: type_91
985
+ rights: rights_91
986
+ contributor: contributor_91
987
+ subject: subject_91
988
+ relation: relation_91
989
+ publisher: publisher_91
990
+ description: description_91
991
+ source: source_91
992
+ 72:
993
+ coverage: coverage_72
994
+ format: format_72
995
+ creator: creator_72
996
+ language: language_72
997
+ title: title_72
998
+ date: date_72
999
+ type: type_72
1000
+ rights: rights_72
1001
+ contributor: contributor_72
1002
+ subject: subject_72
1003
+ relation: relation_72
1004
+ publisher: publisher_72
1005
+ description: description_72
1006
+ source: source_72
1007
+ 15:
1008
+ coverage: coverage_15
1009
+ format: format_15
1010
+ creator: creator_15
1011
+ language: language_15
1012
+ title: title_15
1013
+ date: date_15
1014
+ type: type_15
1015
+ rights: rights_15
1016
+ contributor: contributor_15
1017
+ subject: subject_15
1018
+ relation: relation_15
1019
+ publisher: publisher_15
1020
+ description: description_15
1021
+ source: source_15
1022
+ 53:
1023
+ coverage: coverage_53
1024
+ format: format_53
1025
+ creator: creator_53
1026
+ language: language_53
1027
+ title: title_53
1028
+ date: date_53
1029
+ type: type_53
1030
+ rights: rights_53
1031
+ contributor: contributor_53
1032
+ subject: subject_53
1033
+ relation: relation_53
1034
+ publisher: publisher_53
1035
+ description: description_53
1036
+ source: source_53
1037
+ 34:
1038
+ coverage: coverage_34
1039
+ format: format_34
1040
+ creator: creator_34
1041
+ language: language_34
1042
+ title: title_34
1043
+ date: date_34
1044
+ type: type_34
1045
+ rights: rights_34
1046
+ contributor: contributor_34
1047
+ subject: subject_34
1048
+ relation: relation_34
1049
+ publisher: publisher_34
1050
+ description: description_34
1051
+ source: source_34
1052
+ 82:
1053
+ coverage: coverage_82
1054
+ format: format_82
1055
+ creator: creator_82
1056
+ language: language_82
1057
+ title: title_82
1058
+ date: date_82
1059
+ type: type_82
1060
+ rights: rights_82
1061
+ contributor: contributor_82
1062
+ subject: subject_82
1063
+ relation: relation_82
1064
+ publisher: publisher_82
1065
+ description: description_82
1066
+ source: source_82
1067
+ 25:
1068
+ coverage: coverage_25
1069
+ format: format_25
1070
+ creator: creator_25
1071
+ language: language_25
1072
+ title: title_25
1073
+ date: date_25
1074
+ type: type_25
1075
+ rights: rights_25
1076
+ contributor: contributor_25
1077
+ subject: subject_25
1078
+ relation: relation_25
1079
+ publisher: publisher_25
1080
+ description: description_25
1081
+ source: source_25
1082
+ 63:
1083
+ coverage: coverage_63
1084
+ format: format_63
1085
+ creator: creator_63
1086
+ language: language_63
1087
+ title: title_63
1088
+ date: date_63
1089
+ type: type_63
1090
+ rights: rights_63
1091
+ contributor: contributor_63
1092
+ subject: subject_63
1093
+ relation: relation_63
1094
+ publisher: publisher_63
1095
+ description: description_63
1096
+ source: source_63
1097
+ 6:
1098
+ coverage: coverage_6
1099
+ format: format_6
1100
+ creator: creator_6
1101
+ language: language_6
1102
+ title: title_6
1103
+ date: date_6
1104
+ type: type_6
1105
+ rights: rights_6
1106
+ contributor: contributor_6
1107
+ subject: subject_6
1108
+ relation: relation_6
1109
+ publisher: publisher_6
1110
+ description: description_6
1111
+ source: source_6
1112
+ 44:
1113
+ coverage: coverage_44
1114
+ format: format_44
1115
+ creator: creator_44
1116
+ language: language_44
1117
+ title: title_44
1118
+ date: date_44
1119
+ type: type_44
1120
+ rights: rights_44
1121
+ contributor: contributor_44
1122
+ subject: subject_44
1123
+ relation: relation_44
1124
+ publisher: publisher_44
1125
+ description: description_44
1126
+ source: source_44
1127
+ 92:
1128
+ coverage: coverage_92
1129
+ format: format_92
1130
+ creator: creator_92
1131
+ language: language_92
1132
+ title: title_92
1133
+ date: date_92
1134
+ type: type_92
1135
+ rights: rights_92
1136
+ contributor: contributor_92
1137
+ subject: subject_92
1138
+ relation: relation_92
1139
+ publisher: publisher_92
1140
+ description: description_92
1141
+ source: source_92
1142
+ 73:
1143
+ coverage: coverage_73
1144
+ format: format_73
1145
+ creator: creator_73
1146
+ language: language_73
1147
+ title: title_73
1148
+ date: date_73
1149
+ type: type_73
1150
+ rights: rights_73
1151
+ contributor: contributor_73
1152
+ subject: subject_73
1153
+ relation: relation_73
1154
+ publisher: publisher_73
1155
+ description: description_73
1156
+ source: source_73
1157
+ 54:
1158
+ coverage: coverage_54
1159
+ format: format_54
1160
+ creator: creator_54
1161
+ language: language_54
1162
+ title: title_54
1163
+ date: date_54
1164
+ type: type_54
1165
+ rights: rights_54
1166
+ contributor: contributor_54
1167
+ subject: subject_54
1168
+ relation: relation_54
1169
+ publisher: publisher_54
1170
+ description: description_54
1171
+ source: source_54
1172
+ 35:
1173
+ coverage: coverage_35
1174
+ format: format_35
1175
+ creator: creator_35
1176
+ language: language_35
1177
+ title: title_35
1178
+ date: date_35
1179
+ type: type_35
1180
+ rights: rights_35
1181
+ contributor: contributor_35
1182
+ subject: subject_35
1183
+ relation: relation_35
1184
+ publisher: publisher_35
1185
+ description: description_35
1186
+ source: source_35
1187
+ 16:
1188
+ coverage: coverage_16
1189
+ format: format_16
1190
+ creator: creator_16
1191
+ language: language_16
1192
+ title: title_16
1193
+ date: date_16
1194
+ type: type_16
1195
+ rights: rights_16
1196
+ contributor: contributor_16
1197
+ subject: subject_16
1198
+ relation: relation_16
1199
+ publisher: publisher_16
1200
+ description: description_16
1201
+ source: source_16
1202
+ 83:
1203
+ coverage: coverage_83
1204
+ format: format_83
1205
+ creator: creator_83
1206
+ language: language_83
1207
+ title: title_83
1208
+ date: date_83
1209
+ type: type_83
1210
+ rights: rights_83
1211
+ contributor: contributor_83
1212
+ subject: subject_83
1213
+ relation: relation_83
1214
+ publisher: publisher_83
1215
+ description: description_83
1216
+ source: source_83
1217
+ 26:
1218
+ coverage: coverage_26
1219
+ format: format_26
1220
+ creator: creator_26
1221
+ language: language_26
1222
+ title: title_26
1223
+ date: date_26
1224
+ type: type_26
1225
+ rights: rights_26
1226
+ contributor: contributor_26
1227
+ subject: subject_26
1228
+ relation: relation_26
1229
+ publisher: publisher_26
1230
+ description: description_26
1231
+ source: source_26
1232
+ 64:
1233
+ coverage: coverage_64
1234
+ format: format_64
1235
+ creator: creator_64
1236
+ language: language_64
1237
+ title: title_64
1238
+ date: date_64
1239
+ type: type_64
1240
+ rights: rights_64
1241
+ contributor: contributor_64
1242
+ subject: subject_64
1243
+ relation: relation_64
1244
+ publisher: publisher_64
1245
+ description: description_64
1246
+ source: source_64
1247
+ 7:
1248
+ coverage: coverage_7
1249
+ format: format_7
1250
+ creator: creator_7
1251
+ language: language_7
1252
+ title: title_7
1253
+ date: date_7
1254
+ type: type_7
1255
+ rights: rights_7
1256
+ contributor: contributor_7
1257
+ subject: subject_7
1258
+ relation: relation_7
1259
+ publisher: publisher_7
1260
+ description: description_7
1261
+ source: source_7
1262
+ 45:
1263
+ coverage: coverage_45
1264
+ format: format_45
1265
+ creator: creator_45
1266
+ language: language_45
1267
+ title: title_45
1268
+ date: date_45
1269
+ type: type_45
1270
+ rights: rights_45
1271
+ contributor: contributor_45
1272
+ subject: subject_45
1273
+ relation: relation_45
1274
+ publisher: publisher_45
1275
+ description: description_45
1276
+ source: source_45
1277
+ 93:
1278
+ coverage: coverage_93
1279
+ format: format_93
1280
+ creator: creator_93
1281
+ language: language_93
1282
+ title: title_93
1283
+ date: date_93
1284
+ type: type_93
1285
+ rights: rights_93
1286
+ contributor: contributor_93
1287
+ subject: subject_93
1288
+ relation: relation_93
1289
+ publisher: publisher_93
1290
+ description: description_93
1291
+ source: source_93
1292
+ 74:
1293
+ coverage: coverage_74
1294
+ format: format_74
1295
+ creator: creator_74
1296
+ language: language_74
1297
+ title: title_74
1298
+ date: date_74
1299
+ type: type_74
1300
+ rights: rights_74
1301
+ contributor: contributor_74
1302
+ subject: subject_74
1303
+ relation: relation_74
1304
+ publisher: publisher_74
1305
+ description: description_74
1306
+ source: source_74
1307
+ 36:
1308
+ coverage: coverage_36
1309
+ format: format_36
1310
+ creator: creator_36
1311
+ language: language_36
1312
+ title: title_36
1313
+ date: date_36
1314
+ type: type_36
1315
+ rights: rights_36
1316
+ contributor: contributor_36
1317
+ subject: subject_36
1318
+ relation: relation_36
1319
+ publisher: publisher_36
1320
+ description: description_36
1321
+ source: source_36
1322
+ 17:
1323
+ coverage: coverage_17
1324
+ format: format_17
1325
+ creator: creator_17
1326
+ language: language_17
1327
+ title: title_17
1328
+ date: date_17
1329
+ type: type_17
1330
+ rights: rights_17
1331
+ contributor: contributor_17
1332
+ subject: subject_17
1333
+ relation: relation_17
1334
+ publisher: publisher_17
1335
+ description: description_17
1336
+ source: source_17
1337
+ 55:
1338
+ coverage: coverage_55
1339
+ format: format_55
1340
+ creator: creator_55
1341
+ language: language_55
1342
+ title: title_55
1343
+ date: date_55
1344
+ type: type_55
1345
+ rights: rights_55
1346
+ contributor: contributor_55
1347
+ subject: subject_55
1348
+ relation: relation_55
1349
+ publisher: publisher_55
1350
+ description: description_55
1351
+ source: source_55
1352
+ 84:
1353
+ coverage: coverage_84
1354
+ format: format_84
1355
+ creator: creator_84
1356
+ language: language_84
1357
+ title: title_84
1358
+ date: date_84
1359
+ type: type_84
1360
+ rights: rights_84
1361
+ contributor: contributor_84
1362
+ subject: subject_84
1363
+ relation: relation_84
1364
+ publisher: publisher_84
1365
+ description: description_84
1366
+ source: source_84
1367
+ 65:
1368
+ coverage: coverage_65
1369
+ format: format_65
1370
+ creator: creator_65
1371
+ language: language_65
1372
+ title: title_65
1373
+ date: date_65
1374
+ type: type_65
1375
+ rights: rights_65
1376
+ contributor: contributor_65
1377
+ subject: subject_65
1378
+ relation: relation_65
1379
+ publisher: publisher_65
1380
+ description: description_65
1381
+ source: source_65
1382
+ 8:
1383
+ coverage: coverage_8
1384
+ format: format_8
1385
+ creator: creator_8
1386
+ language: language_8
1387
+ title: title_8
1388
+ date: date_8
1389
+ type: type_8
1390
+ rights: rights_8
1391
+ contributor: contributor_8
1392
+ subject: subject_8
1393
+ relation: relation_8
1394
+ publisher: publisher_8
1395
+ description: description_8
1396
+ source: source_8
1397
+ 46:
1398
+ coverage: coverage_46
1399
+ format: format_46
1400
+ creator: creator_46
1401
+ language: language_46
1402
+ title: title_46
1403
+ date: date_46
1404
+ type: type_46
1405
+ rights: rights_46
1406
+ contributor: contributor_46
1407
+ subject: subject_46
1408
+ relation: relation_46
1409
+ publisher: publisher_46
1410
+ description: description_46
1411
+ source: source_46
1412
+ 27:
1413
+ coverage: coverage_27
1414
+ format: format_27
1415
+ creator: creator_27
1416
+ language: language_27
1417
+ title: title_27
1418
+ date: date_27
1419
+ type: type_27
1420
+ rights: rights_27
1421
+ contributor: contributor_27
1422
+ subject: subject_27
1423
+ relation: relation_27
1424
+ publisher: publisher_27
1425
+ description: description_27
1426
+ source: source_27
1427
+ 94:
1428
+ coverage: coverage_94
1429
+ format: format_94
1430
+ creator: creator_94
1431
+ language: language_94
1432
+ title: title_94
1433
+ date: date_94
1434
+ type: type_94
1435
+ rights: rights_94
1436
+ contributor: contributor_94
1437
+ subject: subject_94
1438
+ relation: relation_94
1439
+ publisher: publisher_94
1440
+ description: description_94
1441
+ source: source_94
1442
+ 75:
1443
+ coverage: coverage_75
1444
+ format: format_75
1445
+ creator: creator_75
1446
+ language: language_75
1447
+ title: title_75
1448
+ date: date_75
1449
+ type: type_75
1450
+ rights: rights_75
1451
+ contributor: contributor_75
1452
+ subject: subject_75
1453
+ relation: relation_75
1454
+ publisher: publisher_75
1455
+ description: description_75
1456
+ source: source_75
1457
+ 37:
1458
+ coverage: coverage_37
1459
+ format: format_37
1460
+ creator: creator_37
1461
+ language: language_37
1462
+ title: title_37
1463
+ date: date_37
1464
+ type: type_37
1465
+ rights: rights_37
1466
+ contributor: contributor_37
1467
+ subject: subject_37
1468
+ relation: relation_37
1469
+ publisher: publisher_37
1470
+ description: description_37
1471
+ source: source_37
1472
+ 18:
1473
+ coverage: coverage_18
1474
+ format: format_18
1475
+ creator: creator_18
1476
+ language: language_18
1477
+ title: title_18
1478
+ date: date_18
1479
+ type: type_18
1480
+ rights: rights_18
1481
+ contributor: contributor_18
1482
+ subject: subject_18
1483
+ relation: relation_18
1484
+ publisher: publisher_18
1485
+ description: description_18
1486
+ source: source_18
1487
+ 56:
1488
+ coverage: coverage_56
1489
+ format: format_56
1490
+ creator: creator_56
1491
+ language: language_56
1492
+ title: title_56
1493
+ date: date_56
1494
+ type: type_56
1495
+ rights: rights_56
1496
+ contributor: contributor_56
1497
+ subject: subject_56
1498
+ relation: relation_56
1499
+ publisher: publisher_56
1500
+ description: description_56
1501
+ source: source_56