hydra-pbcore 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (49) hide show
  1. data/.gitignore +1 -0
  2. data/Rakefile +6 -0
  3. data/lib/hydra-pbcore.rb +60 -1
  4. data/lib/hydra-pbcore/behaviors.rb +4 -2
  5. data/lib/hydra-pbcore/conversions.rb +88 -0
  6. data/lib/hydra-pbcore/datastream/{digital_document.rb → deprecated/digital_document.rb} +3 -2
  7. data/lib/hydra-pbcore/datastream/deprecated/document.rb +310 -0
  8. data/lib/hydra-pbcore/datastream/deprecated/instantiation.rb +261 -0
  9. data/lib/hydra-pbcore/datastream/document.rb +37 -139
  10. data/lib/hydra-pbcore/datastream/instantiation.rb +184 -223
  11. data/lib/hydra-pbcore/methods.rb +23 -2
  12. data/lib/hydra-pbcore/templates.rb +116 -0
  13. data/lib/hydra-pbcore/version.rb +1 -1
  14. data/spec/{digital_document_spec.rb → deprecated/digital_document_spec.rb} +6 -26
  15. data/spec/deprecated/document_spec.rb +282 -0
  16. data/spec/deprecated/instantiation_spec.rb +214 -0
  17. data/spec/document_spec.rb +71 -194
  18. data/spec/fixtures/converted_digital_document_rrhof_1904.xml +53 -0
  19. data/spec/fixtures/converted_digital_document_rrhof_2405.xml +46 -0
  20. data/spec/fixtures/converted_document_rrhof_2439.xml +19 -0
  21. data/spec/fixtures/converted_document_rrhof_524.xml +45 -0
  22. data/spec/fixtures/converted_instantiation_rrhof_1184.xml +39 -0
  23. data/spec/fixtures/converted_rrhof_524.xml +45 -0
  24. data/spec/fixtures/converted_rrhof_524_instantiation.xml +18 -0
  25. data/spec/fixtures/{pbcore_digital_document_template.xml → deprecated/pbcore_digital_document_template.xml} +0 -0
  26. data/spec/fixtures/{pbcore_document_template.xml → deprecated/pbcore_document_template.xml} +0 -0
  27. data/spec/fixtures/{pbcore_instantiation_template.xml → deprecated/pbcore_instantiation_template.xml} +0 -0
  28. data/spec/fixtures/{pbcore_solr_digital_document_template.xml → deprecated/pbcore_solr_digital_document_template.xml} +0 -0
  29. data/spec/fixtures/{pbcore_solr_document_template.xml → deprecated/pbcore_solr_document_template.xml} +0 -0
  30. data/spec/fixtures/{pbcore_solr_instantiation_template.xml → deprecated/pbcore_solr_instantiation_template.xml} +0 -0
  31. data/spec/fixtures/digital_instantiation.xml +56 -0
  32. data/spec/fixtures/digital_instantiation_solr.xml +1913 -0
  33. data/spec/fixtures/digital_instantiation_template.xml +33 -0
  34. data/spec/fixtures/document.xml +72 -0
  35. data/spec/fixtures/document_solr.xml +582 -0
  36. data/spec/fixtures/document_template.xml +30 -0
  37. data/spec/fixtures/integration/digital_document_rrhof_1904.xml +63 -0
  38. data/spec/fixtures/integration/digital_document_rrhof_2405.xml +62 -0
  39. data/spec/fixtures/integration/document_rrhof_2439.xml +54 -0
  40. data/spec/fixtures/integration/document_rrhof_524.xml +80 -0
  41. data/spec/fixtures/integration/instantiation_rrhof_1184.xml +44 -0
  42. data/spec/fixtures/physical_instantiation.xml +20 -0
  43. data/spec/fixtures/physical_instantiation_solr.xml +441 -0
  44. data/spec/fixtures/physical_instantiation_template.xml +18 -0
  45. data/spec/instantiation_spec.rb +180 -132
  46. data/spec/integration/conversions_spec.rb +73 -0
  47. data/spec/spec_helper.rb +37 -9
  48. data/spec/templates_spec.rb +31 -0
  49. 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.pbcoreRelationIdentifier(:attributes=>{ :annotation=>"Event Series" })
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, :pbcoreRelationIdentifier], :index_as => [:searchable, :displayable])
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
- # pbcoreInstantiation fields for the physical item
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
- # Individual field names:
176
- t.creation_date(:ref=>[:pbcoreInstantiation, :instantiationDate], :index_as => [:not_searchable, :converted_date, :displayable])
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.pbcoreCoverage {
234
- xml.coverage(:annotation=>"Event Place")
235
- xml.coverageType {
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.pbcoreCoverage {
240
- xml.coverage(:annotation=>"Event Date")
241
- xml.coverageType {
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.pbcoreAnnotation(:annotationType=>"Notes")
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.instantiationRights {
297
- xml.rightsSummary
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