oai 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
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