hydra-pbcore 1.0.0 → 1.1.0
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.
- data/.gitignore +1 -0
- data/Rakefile +6 -0
- data/lib/hydra-pbcore.rb +60 -1
- data/lib/hydra-pbcore/behaviors.rb +4 -2
- data/lib/hydra-pbcore/conversions.rb +88 -0
- data/lib/hydra-pbcore/datastream/{digital_document.rb → deprecated/digital_document.rb} +3 -2
- data/lib/hydra-pbcore/datastream/deprecated/document.rb +310 -0
- data/lib/hydra-pbcore/datastream/deprecated/instantiation.rb +261 -0
- data/lib/hydra-pbcore/datastream/document.rb +37 -139
- data/lib/hydra-pbcore/datastream/instantiation.rb +184 -223
- data/lib/hydra-pbcore/methods.rb +23 -2
- data/lib/hydra-pbcore/templates.rb +116 -0
- data/lib/hydra-pbcore/version.rb +1 -1
- data/spec/{digital_document_spec.rb → deprecated/digital_document_spec.rb} +6 -26
- data/spec/deprecated/document_spec.rb +282 -0
- data/spec/deprecated/instantiation_spec.rb +214 -0
- data/spec/document_spec.rb +71 -194
- data/spec/fixtures/converted_digital_document_rrhof_1904.xml +53 -0
- data/spec/fixtures/converted_digital_document_rrhof_2405.xml +46 -0
- data/spec/fixtures/converted_document_rrhof_2439.xml +19 -0
- data/spec/fixtures/converted_document_rrhof_524.xml +45 -0
- data/spec/fixtures/converted_instantiation_rrhof_1184.xml +39 -0
- data/spec/fixtures/converted_rrhof_524.xml +45 -0
- data/spec/fixtures/converted_rrhof_524_instantiation.xml +18 -0
- data/spec/fixtures/{pbcore_digital_document_template.xml → deprecated/pbcore_digital_document_template.xml} +0 -0
- data/spec/fixtures/{pbcore_document_template.xml → deprecated/pbcore_document_template.xml} +0 -0
- data/spec/fixtures/{pbcore_instantiation_template.xml → deprecated/pbcore_instantiation_template.xml} +0 -0
- data/spec/fixtures/{pbcore_solr_digital_document_template.xml → deprecated/pbcore_solr_digital_document_template.xml} +0 -0
- data/spec/fixtures/{pbcore_solr_document_template.xml → deprecated/pbcore_solr_document_template.xml} +0 -0
- data/spec/fixtures/{pbcore_solr_instantiation_template.xml → deprecated/pbcore_solr_instantiation_template.xml} +0 -0
- data/spec/fixtures/digital_instantiation.xml +56 -0
- data/spec/fixtures/digital_instantiation_solr.xml +1913 -0
- data/spec/fixtures/digital_instantiation_template.xml +33 -0
- data/spec/fixtures/document.xml +72 -0
- data/spec/fixtures/document_solr.xml +582 -0
- data/spec/fixtures/document_template.xml +30 -0
- data/spec/fixtures/integration/digital_document_rrhof_1904.xml +63 -0
- data/spec/fixtures/integration/digital_document_rrhof_2405.xml +62 -0
- data/spec/fixtures/integration/document_rrhof_2439.xml +54 -0
- data/spec/fixtures/integration/document_rrhof_524.xml +80 -0
- data/spec/fixtures/integration/instantiation_rrhof_1184.xml +44 -0
- data/spec/fixtures/physical_instantiation.xml +20 -0
- data/spec/fixtures/physical_instantiation_solr.xml +441 -0
- data/spec/fixtures/physical_instantiation_template.xml +18 -0
- data/spec/instantiation_spec.rb +180 -132
- data/spec/integration/conversions_spec.rb +73 -0
- data/spec/spec_helper.rb +37 -9
- data/spec/templates_spec.rb +31 -0
- metadata +68 -17
@@ -0,0 +1,261 @@
|
|
1
|
+
module HydraPbcore::Datastream::Deprecated
|
2
|
+
class Instantiation < ActiveFedora::NokogiriDatastream
|
3
|
+
|
4
|
+
include HydraPbcore::Methods
|
5
|
+
include HydraPbcore::Templates
|
6
|
+
include HydraPbcore::Conversions
|
7
|
+
|
8
|
+
# Note: this is not a complete PBCore document, just an instantiation node
|
9
|
+
set_terminology do |t|
|
10
|
+
t.root(:path=>"pbcoreDescriptionDocument")
|
11
|
+
|
12
|
+
t.pbcoreInstantiation do
|
13
|
+
|
14
|
+
t.instantiationIdentifier(
|
15
|
+
:attributes=>{
|
16
|
+
:annotation=>"Filename",
|
17
|
+
:source=>"Rock and Roll Hall of Fame and Museum"
|
18
|
+
},
|
19
|
+
:index_as => [:displayable]
|
20
|
+
)
|
21
|
+
t.instantiationDate(:attributes=>{ :dateType=>"created" },
|
22
|
+
:index_as => [:not_searchable, :converted_date, :displayable]
|
23
|
+
)
|
24
|
+
t.instantiationDigital(:attributes=>{ :source=>"EBU file formats" },
|
25
|
+
:index_as => [:searchable, :facetable]
|
26
|
+
)
|
27
|
+
t.instantiationStandard(:index_as => [:displayable])
|
28
|
+
t.instantiationLocation(:index_as => [:displayable])
|
29
|
+
t.instantiationGenerations(:attributes=>{ :source=>"PBCore instantiationGenerations" },
|
30
|
+
:index_as => [:displayable]
|
31
|
+
)
|
32
|
+
t.instantiationFileSize(:index_as => [:displayable]) do
|
33
|
+
t.units(:path=>{:attribute=>"unitsOfMeasure"}, :index_as => [:displayable])
|
34
|
+
end
|
35
|
+
t.instantiationColors(:attributes=>{ :source=>"PBCore instantiationColors" },
|
36
|
+
:index_as => [:displayable]
|
37
|
+
)
|
38
|
+
t.instantiationMediaType(:attributes=>{ :source=>"PBCore instantiationMediaType" },
|
39
|
+
:index_as => [:facetable]
|
40
|
+
)
|
41
|
+
t.instantiationLanguage(
|
42
|
+
:attributes=>{
|
43
|
+
:source=>"ISO 639.2",
|
44
|
+
:ref=>"http://www.loc.gov/standards/iso639-2/php/code_list.php"
|
45
|
+
},
|
46
|
+
:index_as => [:searchable]
|
47
|
+
)
|
48
|
+
t.instantiationDuration(:index_as => [:displayable])
|
49
|
+
|
50
|
+
t.instantiationRights do
|
51
|
+
t.rightsSummary(:index_as => [:displayable])
|
52
|
+
end
|
53
|
+
|
54
|
+
t.instantiationEssenceTrack do
|
55
|
+
t.essenceTrackStandard(:index_as => [:displayable])
|
56
|
+
t.essenceTrackEncoding( :attributes=>{ :source=>"PBCore essenceTrackEncoding" },
|
57
|
+
:index_as => [:displayable]
|
58
|
+
)
|
59
|
+
t.essenceTrackDataRate(:index_as => [:displayable]) do
|
60
|
+
t.units(:path=>{:attribute=>"unitsOfMeasure"}, :index_as => [:displayable])
|
61
|
+
end
|
62
|
+
t.essenceTrackFrameRate(:attributes=>{ :unitsOfMeasure=>"fps" }, :index_as => [:displayable])
|
63
|
+
t.essenceTrackFrameSize(:attributes=>{ :source=>"PBCore essenceTrackFrameSize" }, :index_as => [:displayable])
|
64
|
+
t.essenceTrackBitDepth(:index_as => [:displayable])
|
65
|
+
t.essenceTrackAspectRatio(:attributes=>{ :source=>"PBCore essenceTrackAspectRatio" },
|
66
|
+
:index_as => [:displayable]
|
67
|
+
)
|
68
|
+
t.essenceTrackSamplingRate(:index_as => [:displayable]) do
|
69
|
+
t.units(:path=>{:attribute=>"unitsOfMeasure"}, :index_as => [:displayable])
|
70
|
+
end
|
71
|
+
t.essenceTrackAnnotation( :attributes=>{ :annotationType=>"Number of Audio Channels" },
|
72
|
+
:index_as => [:displayable]
|
73
|
+
)
|
74
|
+
end
|
75
|
+
t.video_essence(:ref => [:pbcoreInstantiation, :instantiationEssenceTrack],
|
76
|
+
:path=>'instantiationEssenceTrack[essenceTrackType="Video"]'
|
77
|
+
)
|
78
|
+
t.audio_essence(:ref => [:pbcoreInstantiation, :instantiationEssenceTrack],
|
79
|
+
:path=>'instantiationEssenceTrack[essenceTrackType="Audio"]'
|
80
|
+
)
|
81
|
+
|
82
|
+
t.instantiationRelation do
|
83
|
+
t.instantiationRelationIdentifier(:attributes=>{ :source=>"Rock and Roll Hall of Fame and Museum" })
|
84
|
+
end
|
85
|
+
# The file we're describing at the root of this document preceeds the file marked "next"
|
86
|
+
t.next_inst(:ref => [:pbcoreInstantiation, :instantiationRelation],
|
87
|
+
:path=>'instantiationRelation[instantiationRelationType="Precedes in Sequence"]'
|
88
|
+
)
|
89
|
+
# The file we're describing at the root of this document comes after the file marked "previous"
|
90
|
+
t.previous_inst(:ref => [:pbcoreInstantiation, :instantiationRelation],
|
91
|
+
:path=>'instantiationRelation[instantiationRelationType="Follows in Sequence"]'
|
92
|
+
)
|
93
|
+
|
94
|
+
# Instantitation annotiations
|
95
|
+
t.inst_chksum_type(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Checksum Type" },
|
96
|
+
:index_as => [:displayable]
|
97
|
+
)
|
98
|
+
t.inst_chksum_value(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Checksum Value" },
|
99
|
+
:index_as => [:displayable]
|
100
|
+
)
|
101
|
+
t.inst_device(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Playback Device" },
|
102
|
+
:index_as => [:displayable]
|
103
|
+
)
|
104
|
+
t.inst_capture_soft(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Capture Software" },
|
105
|
+
:index_as => [:displayable]
|
106
|
+
)
|
107
|
+
t.inst_trans_soft(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Transcoding Software" },
|
108
|
+
:index_as => [:displayable]
|
109
|
+
)
|
110
|
+
t.inst_operator(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Operator" },
|
111
|
+
:index_as => [:displayable]
|
112
|
+
)
|
113
|
+
t.inst_trans_note(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Transfer Notes" },
|
114
|
+
:index_as => [:displayable]
|
115
|
+
)
|
116
|
+
t.inst_vendor(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Vendor Name" },
|
117
|
+
:index_as => [:displayable]
|
118
|
+
)
|
119
|
+
t.inst_cond_note(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Condition Notes" },
|
120
|
+
:index_as => [:displayable]
|
121
|
+
)
|
122
|
+
t.inst_clean_note(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Cleaning Notes" },
|
123
|
+
:index_as => [:displayable]
|
124
|
+
)
|
125
|
+
t.inst_note(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Notes" },
|
126
|
+
:index_as => [:displayable]
|
127
|
+
)
|
128
|
+
t.inst_color_space(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Color Space" },
|
129
|
+
:index_as => [:displayable]
|
130
|
+
)
|
131
|
+
t.inst_chroma(:path=>"instantiationAnnotation", :attributes=>{ :annotationType=>"Chroma" },
|
132
|
+
:index_as => [:displayable]
|
133
|
+
)
|
134
|
+
|
135
|
+
end
|
136
|
+
|
137
|
+
#
|
138
|
+
# Here are the actual references to the fields
|
139
|
+
#
|
140
|
+
t.name(:proxy=>[:pbcoreInstantiation, :instantiationIdentifier])
|
141
|
+
t.location(:proxy=>[:pbcoreInstantiation, :instantiationLocation])
|
142
|
+
t.date(:proxy=>[:pbcoreInstantiation, :instantiationDate])
|
143
|
+
t.generation(:proxy=>[:pbcoreInstantiation, :instantiationGenerations])
|
144
|
+
t.media_type(:proxy=>[:pbcoreInstantiation, :instantiationMediaType])
|
145
|
+
t.file_format(:proxy=>[:pbcoreInstantiation, :instantiationDigital])
|
146
|
+
t.size(:proxy=>[:pbcoreInstantiation, :instantiationFileSize])
|
147
|
+
t.size_units(:proxy=>[:pbcoreInstantiation, :instantiationFileSize, :units])
|
148
|
+
t.colors(:proxy=>[:pbcoreInstantiation, :instantiationColors])
|
149
|
+
t.duration(:proxy=>[:pbcoreInstantiation, :instantiationDuration])
|
150
|
+
t.rights_summary(:proxy=>[:pbcoreInstantiation, :instantiationRights, :rightsSummary])
|
151
|
+
|
152
|
+
# Proxies to annotation fields and other fields that are not in the template
|
153
|
+
t.note(:proxy=>[:pbcoreInstantiation, :inst_note])
|
154
|
+
t.checksum_type(:proxy=>[:pbcoreInstantiation, :inst_chksum_type])
|
155
|
+
t.checksum_value(:proxy=>[:pbcoreInstantiation, :inst_chksum_value])
|
156
|
+
t.device(:proxy=>[:pbcoreInstantiation, :inst_device])
|
157
|
+
t.capture_soft(:proxy=>[:pbcoreInstantiation, :inst_capture_soft])
|
158
|
+
t.trans_soft(:proxy=>[:pbcoreInstantiation, :inst_trans_soft])
|
159
|
+
t.operator(:proxy=>[:pbcoreInstantiation, :inst_operator])
|
160
|
+
t.trans_note(:proxy=>[:pbcoreInstantiation, :inst_trans_note])
|
161
|
+
t.vendor(:proxy=>[:pbcoreInstantiation, :inst_vendor])
|
162
|
+
t.condition(:proxy=>[:pbcoreInstantiation, :inst_cond_note])
|
163
|
+
t.cleaning(:proxy=>[:pbcoreInstantiation, :inst_clean_note])
|
164
|
+
t.color_space(:proxy=>[:pbcoreInstantiation, :inst_color_space])
|
165
|
+
t.chroma(:proxy=>[:pbcoreInstantiation, :inst_chroma])
|
166
|
+
t.standard(:proxy=>[:pbcoreInstantiation, :instantiationStandard])
|
167
|
+
t.language(:proxy=>[:pbcoreInstantiation, :instantiationLanguage])
|
168
|
+
|
169
|
+
# Proxies to video essence fields
|
170
|
+
t.video_standard(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackStandard])
|
171
|
+
t.video_encoding(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackEncoding])
|
172
|
+
t.video_bit_rate(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackDataRate])
|
173
|
+
t.video_bit_rate_units(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackDataRate, :units])
|
174
|
+
t.frame_rate(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackFrameRate])
|
175
|
+
t.frame_size(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackFrameSize])
|
176
|
+
t.video_bit_depth(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackBitDepth])
|
177
|
+
t.aspect_ratio(:proxy=>[:pbcoreInstantiation, :video_essence, :essenceTrackAspectRatio])
|
178
|
+
|
179
|
+
# Proxies to audio essence fields
|
180
|
+
t.audio_standard(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackStandard])
|
181
|
+
t.audio_encoding(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackEncoding])
|
182
|
+
t.audio_bit_rate(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackDataRate])
|
183
|
+
t.audio_bit_rate_units(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackDataRate, :units])
|
184
|
+
t.audio_sample_rate(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackSamplingRate])
|
185
|
+
t.audio_sample_rate_units(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackSamplingRate, :units])
|
186
|
+
t.audio_bit_depth(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackBitDepth])
|
187
|
+
t.audio_channels(:proxy=>[:pbcoreInstantiation, :audio_essence, :essenceTrackAnnotation])
|
188
|
+
|
189
|
+
# Proxies to the relation fields
|
190
|
+
t.next_(:proxy=>[:pbcoreInstantiation, :next_inst, :instantiationRelationIdentifier])
|
191
|
+
t.previous_(:proxy=>[:pbcoreInstantiation, :previous_inst, :instantiationRelationIdentifier])
|
192
|
+
|
193
|
+
end
|
194
|
+
|
195
|
+
def self.xml_template
|
196
|
+
builder = Nokogiri::XML::Builder.new do |xml|
|
197
|
+
|
198
|
+
xml.pbcoreDescriptionDocument("xmlns:xsi"=>"http://www.w3.org/2001/XMLSchema-instance",
|
199
|
+
"xsi:schemaLocation"=>"http://www.pbcore.org/PBCore/PBCoreNamespace.html") {
|
200
|
+
|
201
|
+
# These fields are only added so that this document will be validated. However, they
|
202
|
+
# shouldn't be used for anything else here because they're in the parent Fedora object
|
203
|
+
xml.pbcoreIdentifier(:annotation=>"PID", :source=>"Rock and Roll Hall of Fame and Museum")
|
204
|
+
xml.pbcoreTitle
|
205
|
+
xml.pbcoreDescription
|
206
|
+
|
207
|
+
xml.pbcoreInstantiation {
|
208
|
+
|
209
|
+
xml.instantiationIdentifier(:annotation=>"Filename", :source=>"Rock and Roll Hall of Fame and Museum")
|
210
|
+
xml.instantiationDate(:dateType=>"created")
|
211
|
+
xml.instantiationDigital(:source=>"EBU file formats")
|
212
|
+
xml.instantiationLocation
|
213
|
+
xml.instantiationMediaType(:source=>"PBCore instantiationMediaType") {
|
214
|
+
xml.text "Moving image"
|
215
|
+
}
|
216
|
+
xml.instantiationGenerations(:source=>"PBCore instantiationGenerations")
|
217
|
+
xml.instantiationFileSize(:unitsOfMeasure=>"")
|
218
|
+
xml.instantiationDuration
|
219
|
+
xml.instantiationColors(:source=>"PBCore instantiationColors") {
|
220
|
+
xml.text "Color"
|
221
|
+
}
|
222
|
+
|
223
|
+
xml.instantiationEssenceTrack {
|
224
|
+
xml.essenceTrackType {
|
225
|
+
xml.text "Video"
|
226
|
+
}
|
227
|
+
xml.essenceTrackStandard
|
228
|
+
xml.essenceTrackEncoding(:source=>"PBCore essenceTrackEncoding")
|
229
|
+
xml.essenceTrackDataRate(:unitsOfMeasure=>"")
|
230
|
+
xml.essenceTrackFrameRate(:unitsOfMeasure=>"fps")
|
231
|
+
xml.essenceTrackBitDepth
|
232
|
+
xml.essenceTrackFrameSize(:source=>"PBCore essenceTrackFrameSize")
|
233
|
+
xml.essenceTrackAspectRatio(:source=>"PBCore essenceTrackAspectRatio")
|
234
|
+
}
|
235
|
+
|
236
|
+
xml.instantiationEssenceTrack {
|
237
|
+
xml.essenceTrackType {
|
238
|
+
xml.text "Audio"
|
239
|
+
}
|
240
|
+
xml.essenceTrackStandard
|
241
|
+
xml.essenceTrackEncoding(:source=>"PBCore essenceTrackEncoding")
|
242
|
+
xml.essenceTrackDataRate(:unitsOfMeasure=>"")
|
243
|
+
xml.essenceTrackSamplingRate(:unitsOfMeasure=>"")
|
244
|
+
xml.essenceTrackBitDepth
|
245
|
+
xml.essenceTrackAnnotation(:annotationType=>"Number of Audio Channels")
|
246
|
+
}
|
247
|
+
|
248
|
+
xml.instantiationRights {
|
249
|
+
xml.rightsSummary
|
250
|
+
}
|
251
|
+
|
252
|
+
}
|
253
|
+
|
254
|
+
}
|
255
|
+
|
256
|
+
end
|
257
|
+
return builder.doc
|
258
|
+
end
|
259
|
+
|
260
|
+
end
|
261
|
+
end
|
@@ -7,9 +7,6 @@ class Document < ActiveFedora::NokogiriDatastream
|
|
7
7
|
set_terminology do |t|
|
8
8
|
t.root(:path=>"pbcoreDescriptionDocument")
|
9
9
|
|
10
|
-
#
|
11
|
-
# pbcoreDescription fields
|
12
|
-
#
|
13
10
|
t.pbc_id(:path=>"pbcoreIdentifier",
|
14
11
|
:attributes=>{ :source=>"Rock and Roll Hall of Fame and Museum", :annotation=>"PID" }
|
15
12
|
)
|
@@ -94,13 +91,21 @@ class Document < ActiveFedora::NokogiriDatastream
|
|
94
91
|
:index_as => [:displayable]
|
95
92
|
)
|
96
93
|
|
97
|
-
|
98
|
-
# Series field
|
94
|
+
# PBCore relation fields
|
99
95
|
t.pbcoreRelation do
|
100
|
-
t.
|
96
|
+
t.series(:path=>"pbcoreRelationIdentifier", :attributes=>{ :annotation=>"Event Series" })
|
97
|
+
t.arch_coll(:path=>"pbcoreRelationIdentifier", :attributes=>{ :annotation=>"Archival Collection" })
|
98
|
+
t.arch_ser(:path=>"pbcoreRelationIdentifier", :attributes=>{ :annotation=>"Archival Series" })
|
99
|
+
t.coll_num(:path=>"pbcoreRelationIdentifier", :attributes=>{ :annotation=>"Collection Number" })
|
100
|
+
t.acc_num(:path=>"pbcoreRelationIdentifier", :attributes=>{ :annotation=>"Accession Number" })
|
101
101
|
end
|
102
|
-
t.event_series(:ref=>[:pbcoreRelation, :
|
102
|
+
t.event_series(:ref=>[:pbcoreRelation, :series], :index_as => [:searchable, :displayable])
|
103
|
+
t.archival_collection(:ref=>[:pbcoreRelation, :arch_coll], :index_as => [:searchable, :displayable])
|
104
|
+
t.archival_series(:ref=>[:pbcoreRelation, :arch_ser], :index_as => [:searchable, :displayable])
|
105
|
+
t.collection_number(:ref=>[:pbcoreRelation, :coll_num], :index_as => [:searchable, :displayable])
|
106
|
+
t.accession_number(:ref=>[:pbcoreRelation, :acc_num], :index_as => [:searchable, :displayable])
|
103
107
|
|
108
|
+
t.pbcoreCoverage
|
104
109
|
# Terms for time and place
|
105
110
|
t.event_place(:path=>"pbcoreCoverage/coverage",
|
106
111
|
:attributes => {:annotation=>"Event Place"},
|
@@ -132,78 +137,11 @@ class Document < ActiveFedora::NokogiriDatastream
|
|
132
137
|
|
133
138
|
t.note(:path=>"pbcoreAnnotation", :atttributes=>{ :annotationType=>"Notes" }, :index_as => [:searchable])
|
134
139
|
|
135
|
-
|
136
|
-
|
137
|
-
#
|
138
|
-
t.pbcoreInstantiation do
|
139
|
-
t.instantiationIdentifier(:attributes=>{
|
140
|
-
:annotation=>"Barcode",
|
141
|
-
:source=>"Rock and Roll Hall of Fame and Museum"
|
142
|
-
})
|
143
|
-
t.instantiationDate(:attributes=>{ :dateType=>"created" })
|
144
|
-
t.instantiationPhysical(:attributes=>{ :source=>"PBCore instantiationPhysical" })
|
145
|
-
t.instantiationStandard
|
146
|
-
t.instantiationLocation
|
147
|
-
t.instantiationMediaType(:attributes=>{ :source=>"PBCore instantiationMediaType" })
|
148
|
-
t.instantiationGenerations(:attributes=>{ :source=>"PBCore instantiationGenerations" })
|
149
|
-
t.instantiationColors
|
150
|
-
t.instantiationLanguage(:attributes=>{
|
151
|
-
:source=>"ISO 639.2",
|
152
|
-
:ref=>"http://www.loc.gov/standards/iso639-2/php/code_list.php"
|
153
|
-
})
|
154
|
-
t.instantiationRelation do
|
155
|
-
t.arc_collection(:path=>"instantiationRelationIdentifier",
|
156
|
-
:attributes=>{ :annotation=>"Archival collection" },
|
157
|
-
:index_as => [:searchable, :facetable]
|
158
|
-
)
|
159
|
-
t.arc_series(:path=>"instantiationRelationIdentifier", :attributes=>{ :annotation=>"Archival Series" })
|
160
|
-
t.col_number(:path=>"instantiationRelationIdentifier", :attributes=>{ :annotation=>"Collection Number" })
|
161
|
-
t.acc_number(:path=>"instantiationRelationIdentifier", :attributes=>{ :annotation=>"Accession Number" })
|
162
|
-
end
|
163
|
-
t.instantiationRights do
|
164
|
-
t.rightsSummary
|
165
|
-
end
|
166
|
-
t.inst_cond_note(:path=>"instantiationAnnotation",
|
167
|
-
:attributes=>{ :annotationType=>"Condition Notes"},
|
168
|
-
:index_as => [:searchable, :displayable]
|
169
|
-
)
|
170
|
-
t.inst_clean_note(:path=>"instantiationAnnotation",
|
171
|
-
:attributes=>{ :annotationType=>"Cleaning Notes" },
|
172
|
-
:index_as => [:searchable, :displayable]
|
173
|
-
)
|
140
|
+
t.pbcoreRightsSummary do
|
141
|
+
t.rightsSummary
|
174
142
|
end
|
175
|
-
|
176
|
-
|
177
|
-
t.barcode(:ref=>[:pbcoreInstantiation, :instantiationIdentifier], :index_as => [:searchable, :displayable])
|
178
|
-
t.repository(:ref=>[:pbcoreInstantiation, :instantiationLocation], :index_as => [:searchable, :displayable])
|
179
|
-
t.format(:ref=>[:pbcoreInstantiation, :instantiationPhysical], :index_as => [:searchable, :facetable])
|
180
|
-
t.standard(:ref=>[:pbcoreInstantiation, :instantiationStandard], :index_as => [:searchable, :facetable])
|
181
|
-
t.media_type(:ref=>[:pbcoreInstantiation, :instantiationMediaType], :index_as => [:searchable, :facetable])
|
182
|
-
t.generation(:ref=>[:pbcoreInstantiation, :instantiationGenerations], :index_as => [:searchable, :displayable])
|
183
|
-
t.language(:ref=>[:pbcoreInstantiation, :instantiationLanguage], :index_as => [:searchable, :displayable])
|
184
|
-
t.colors(:ref=>[:pbcoreInstantiation, :instantiationColors], :index_as => [:searchable, :displayable])
|
185
|
-
t.archival_collection(
|
186
|
-
:ref=>[:pbcoreInstantiation, :instantiationRelation, :arc_collection],
|
187
|
-
:index_as => [:searchable, :facetable]
|
188
|
-
)
|
189
|
-
t.archival_series(
|
190
|
-
:ref=>[:pbcoreInstantiation, :instantiationRelation, :arc_series],
|
191
|
-
:index_as => [:searchable, :displayable]
|
192
|
-
)
|
193
|
-
t.collection_number(
|
194
|
-
:ref=>[:pbcoreInstantiation, :instantiationRelation, :col_number],
|
195
|
-
:index_as => [:searchable, :displayable]
|
196
|
-
)
|
197
|
-
t.accession_number(:ref=>[:pbcoreInstantiation, :instantiationRelation, :acc_number],
|
198
|
-
:index_as => [:searchable, :displayable]
|
199
|
-
)
|
200
|
-
t.usage(:ref=>[:pbcoreInstantiation, :instantiationRights, :rightsSummary],
|
201
|
-
:index_as => [:searchable, :displayable]
|
202
|
-
)
|
203
|
-
|
204
|
-
# Inserted terms
|
205
|
-
t.condition_note(:proxy=>[:pbcoreInstantiation, :inst_cond_note])
|
206
|
-
t.cleaning_note(:proxy=>[:pbcoreInstantiation, :inst_clean_note])
|
143
|
+
t.rights_summary(:ref => [:pbcoreRightsSummary, :rightsSummary], :index_as => [:searchable, :displayable])
|
144
|
+
|
207
145
|
end
|
208
146
|
|
209
147
|
def self.xml_template
|
@@ -230,74 +168,34 @@ class Document < ActiveFedora::NokogiriDatastream
|
|
230
168
|
}
|
231
169
|
xml.pbcoreRelationIdentifier(:annotation=>"Event Series")
|
232
170
|
}
|
233
|
-
xml.
|
234
|
-
xml.
|
235
|
-
|
236
|
-
xml.text "Spatial"
|
171
|
+
xml.pbcoreRelation {
|
172
|
+
xml.pbcoreRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
173
|
+
xml.text "Is Part Of"
|
237
174
|
}
|
175
|
+
xml.pbcoreRelationIdentifier(:annotation=>"Archival Collection")
|
238
176
|
}
|
239
|
-
xml.
|
240
|
-
xml.
|
241
|
-
|
242
|
-
xml.text "Temporal"
|
177
|
+
xml.pbcoreRelation {
|
178
|
+
xml.pbcoreRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
179
|
+
xml.text "Is Part Of"
|
243
180
|
}
|
181
|
+
xml.pbcoreRelationIdentifier(:annotation=>"Archival Series")
|
244
182
|
}
|
245
|
-
xml.
|
246
|
-
|
247
|
-
|
248
|
-
# Default physical item
|
249
|
-
#
|
250
|
-
xml.pbcoreInstantiation {
|
251
|
-
|
252
|
-
# Item details
|
253
|
-
xml.instantiationIdentifier(:annotation=>"Barcode", :source=>"Rock and Roll Hall of Fame and Museum")
|
254
|
-
xml.instantiationDate(:dateType=>"created")
|
255
|
-
xml.instantiationPhysical(:source=>"PBCore instantiationPhysical")
|
256
|
-
xml.instantiationStandard
|
257
|
-
xml.instantiationLocation {
|
258
|
-
xml.text "Rock and Roll Hall of Fame and Museum,\n2809 Woodland Ave.,\nCleveland, OH, 44115\n216-515-1956\nlibrary@rockhall.org"
|
259
|
-
}
|
260
|
-
xml.instantiationMediaType(:source=>"PBCore instantiationMediaType") {
|
261
|
-
xml.text "Moving image"
|
262
|
-
}
|
263
|
-
xml.instantiationGenerations(:source=>"PBCore instantiationGenerations") {
|
264
|
-
xml.text "Original"
|
265
|
-
}
|
266
|
-
xml.instantiationColors {
|
267
|
-
xml.text "Color"
|
268
|
-
}
|
269
|
-
xml.instantiationLanguage(:source=>"ISO 639.2", :ref=>"http://www.loc.gov/standards/iso639-2/php/code_list.php") {
|
270
|
-
xml.text "eng"
|
271
|
-
}
|
272
|
-
xml.instantiationRelation {
|
273
|
-
xml.instantiationRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
274
|
-
xml.text "Is Part Of"
|
275
|
-
}
|
276
|
-
xml.instantiationRelationIdentifier(:annotation=>"Archival Collection")
|
277
|
-
}
|
278
|
-
xml.instantiationRelation {
|
279
|
-
xml.instantiationRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
280
|
-
xml.text "Is Part Of"
|
281
|
-
}
|
282
|
-
xml.instantiationRelationIdentifier(:annotation=>"Archival Series")
|
283
|
-
}
|
284
|
-
xml.instantiationRelation {
|
285
|
-
xml.instantiationRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
286
|
-
xml.text "Is Part Of"
|
287
|
-
}
|
288
|
-
xml.instantiationRelationIdentifier(:annotation=>"Collection Number")
|
289
|
-
}
|
290
|
-
xml.instantiationRelation {
|
291
|
-
xml.instantiationRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
292
|
-
xml.text "Is Part Of"
|
293
|
-
}
|
294
|
-
xml.instantiationRelationIdentifier(:annotation=>"Accession Number")
|
183
|
+
xml.pbcoreRelation {
|
184
|
+
xml.pbcoreRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
185
|
+
xml.text "Is Part Of"
|
295
186
|
}
|
296
|
-
xml.
|
297
|
-
|
187
|
+
xml.pbcoreRelationIdentifier(:annotation=>"Collection Number")
|
188
|
+
}
|
189
|
+
xml.pbcoreRelation {
|
190
|
+
xml.pbcoreRelationType(:source=>"PBCore relationType", :ref=>"http://pbcore.org/vocabularies/relationType#is-part-of") {
|
191
|
+
xml.text "Is Part Of"
|
298
192
|
}
|
299
|
-
|
193
|
+
xml.pbcoreRelationIdentifier(:annotation=>"Accession Number")
|
300
194
|
}
|
195
|
+
xml.pbcoreRightsSummary {
|
196
|
+
xml.rightsSummary
|
197
|
+
}
|
198
|
+
xml.pbcoreAnnotation(:annotationType=>"Notes")
|
301
199
|
|
302
200
|
}
|
303
201
|
|