-
Notifications
You must be signed in to change notification settings - Fork 36
/
ConvSpec-001-007.xspec
244 lines (227 loc) · 32.5 KB
/
ConvSpec-001-007.xspec
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
<?xml version="1.0" encoding="UTF-8"?>
<x:description xmlns:x="http://www.jenitennison.com/xslt/xspec"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:bf="http://id.loc.gov/ontologies/bibframe/"
xmlns:bflc="http://id.loc.gov/ontologies/bflc/"
xmlns:madsrdf="http://www.loc.gov/mads/rdf/v1#"
stylesheet="../xsl/marc2bibframe2.xsl"
xslt-version="1.0">
<x:scenario label="001 - CONTROL NUMBER">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<x:expect label="001 should set the AdminMetadata identifiedBy property for the work" test="//bf:Work[1]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/rdf:value = '13600108'"/>
<!-- to test setting the of the identifier, uncomment this test and set the stylesheet parameter "idsource" -->
<!-- <x:expect label="parameter idsource sets the source property of the Local" test="//bf:Work[1]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/dlc'"/> -->
</x:scenario>
<x:scenario label="003 - CONTROL NUMBER IDENTIFIER">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<x:expect label="003 should set the assigner for the Local identifier" test="//bf:Work[1]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/bf:assigner/bf:Agent/bf:code = 'DE-101'"/>
<x:expect label="... but inject URI if 003 value is DLC" test="//bf:Work[2]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/bf:assigner/bf:Agent/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/dlc'"/>
<x:expect label="... or inject URI if 003 value is empty string" test="//bf:Work[3]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/bf:assigner/bf:Agent/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/dlc'"/>
<x:expect label="... or inject URI if there is no 003" test="//bf:Work[4]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/bf:assigner/bf:Agent/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/dlc'"/>
<x:expect label="...and set the code for DLC" test="//bf:Work[4]/bf:adminMetadata/bf:AdminMetadata/bf:identifiedBy/bf:Local/bf:assigner/bf:Agent/bf:code = 'DLC'"/>
</x:scenario>
<x:scenario label="005 - DATE AND TIME OF LAST CATALOGER EDIT">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<x:expect label="005 should set the AdminMetadata status property to 'changed' for the work" test="//bf:Work[1]/bf:adminMetadata[2]/bf:AdminMetadata/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/c'"/>
<x:expect label="005 AdminMetadata should not have generationProcess" test="not(//bf:Work[1]/bf:adminMetadata[2]/bf:AdminMetadata/bf:generationProcess)"/>
<x:expect label="005 should set the AdminMetadata changeDate property for the work" test="//bf:Work[1]/bf:adminMetadata[2]/bf:AdminMetadata/bf:date[@rdf:datatype='http://www.w3.org/2001/XMLSchema#dateTime'] = '2011-07-13T21:24:05'"/>
<x:expect label="005 with all '0' should not convert" test="count(//bf:Work[1]/bf:adminMetadata[2]/bf:AdminMetadata/bf:date) = 1"/>
</x:scenario>
<x:scenario label="007 - PHYSICAL DESCRIPTION FIXED FIELD">
<x:scenario label="Duplicate properties">
<x:context href="data/ConvSpec-001-007/dup-properties.xml"/>
<x:expect label="Only generate a single carrier property of the Instance if duplicate URIs from 338/008" test="count(//bf:Instance[1]/bf:carrier) = 1"/>
<x:expect label="One genreForm property when multiple, equal 655s present" test="count(//bf:Work[2]/bf:genreForm/bf:GenreForm/rdfs:label[. = 'Graphs']) = 1"/>
<x:expect label="Electronic resource pos 4 sets the dimensions property of the Instance - 300 override of 007" test="//bf:Instance[3]/bf:dimensions = '9.8 x 6.3 cm'"/>
<x:expect label="One genreForm property when multiple, equal 655s present (Globes)" test="count(//bf:Work[4]/bf:genreForm/bf:GenreForm/rdfs:label[. = 'Globes']) = 1"/>
<x:expect label="(Projected Graphic) pos 7 creates a dimensions property of the Instance - 300/c override" test="//bf:Instance[5]/bf:dimensions = '1 2/5 in'"/>
<x:expect label="One soundCharacteristic present when duplicate value found in 344" test="count(//bf:Instance[6]/bf:soundCharacteristic/bf:RecordingMedium/rdfs:label[. = 'magneto-optical']) = 1"/>
<x:expect label="(Microform) pos 4 creates a dimensions property of the Instance - 300/c override" test="//bf:Instance[7]/bf:dimensions = '1 2/5 in'"/>
<x:expect label="(Nonprojected Graphic) One genreForm property when multiple, equal 655s present" test="count(//bf:Work[8]/bf:genreForm/bf:GenreForm/rdfs:label[. = 'Photographic prints']) = 1"/>
<x:expect label="(Motion Picture) Only 1 projectionCharacteritic present when duplicate value found in 345" test="count(//bf:Instance[9]/bf:projectionCharacteristic/bf:PresentationFormat/rdfs:label[. = '3D']) = 1"/>
<x:expect label="(Motion Picture) Only 1 soundCharacteristic/RecordingMedium present when duplicate value found in 344" test="count(//bf:Instance[9]/bf:soundCharacteristic/bf:RecordingMedium/rdfs:label[. = 'magnetic']) = 1"/>
<x:expect label="(Motion Picture) Only 1 soundCharacteristic/PlaybackChannels present when duplicate value found in 344" test="count(//bf:Instance[9]/bf:soundCharacteristic/bf:PlaybackChannels/rdfs:label[. = 'stereo']) = 1"/>
<x:expect label="(Motion Picture) pos 7 creates a dimensions property of the Instance - 300/c override" test="//bf:Instance[10]/bf:dimensions = '1 2/5 in'"/>
<x:expect label="(Motion Picture) Only 1 genreForm present when duplicate value found in 655" test="count(//bf:Work[11]/bf:genreForm/bf:GenreForm/rdfs:label[. = 'Outtakes']) = 1"/>
<x:expect label="(Sound Recording) Only 1 soundCharacteristic/GrooveCharacteristic present when a duplicate value found in 344" test="count(//bf:Instance[12]/bf:soundCharacteristic/bf:GrooveCharacteristic/rdfs:label[. = 'microgroove']) = 1"/>
<x:expect label="(Sound Recording) pos 6, 7 creates a dimensions property of the Instance - 300/c override" test="//bf:Instance[13]/bf:dimensions[1] = '2 in'"/>
<x:expect label="(Sound Recording) Only 1 soundCharacteristic/PlaybackChannels present when duplicate value found in 344" test="count(//bf:Instance[12]/bf:soundCharacteristic/bf:PlaybackChannels/rdfs:label[. = 'stereo']) = 1"/>
<x:expect label="(Sound Recording) Only 1 soundCharacteristic/PlaybackCharacteristic present when a duplicate value found in 344" test="count(//bf:Instance[12]/bf:soundCharacteristic/bf:PlaybackCharacteristic/rdfs:label[. = 'Dolby-A encoded']) = 1"/>
<x:expect label="(Sound Recording) Only 1 soundCharacteristic/RecordingMethod present when a duplicate value found in 344" test="count(//bf:Instance[14]/bf:soundCharacteristic/bf:RecordingMethod/rdfs:label[. = 'digital']) = 1"/>
<x:expect label="(Videorecording) Only 1 videoCharacteristic/VideoFormat present when duplicate value found in 346" test="count(//bf:Instance[15]/bf:videoCharacteristic/bf:VideoFormat/rdfs:label[. = 'VHS']) = 1"/>
<x:expect label="(Videorecording) Only 1 digitalCharacteristic/EncodingFormat present when duplicate value found in 347" test="count(//bf:Instance[16]/bf:digitalCharacteristic/bf:EncodingFormat/rdfs:label[. = 'DVD video']) = 1"/>
<x:expect label="(Videorecording) Only 1 soundCharacteristic/RecordingMedium present when duplicate value found in 344" test="count(//bf:Instance[15]/bf:soundCharacteristic/bf:RecordingMedium/rdfs:label[. = 'magnetic']) = 1"/>
<x:expect label="(Videorecording) pos 7 creates a dimensions property of the Instance - 300/c override" test="//bf:Instance[17]/bf:dimensions = '25.4 mm.'"/>
<x:expect label="(Videorecording) Only 1 soundCharacteristic/PlaybackChannels present when duplicate value found in 344" test="count(//bf:Instance[15]/bf:soundCharacteristic/bf:PlaybackChannels/rdfs:label[. = 'mono']) = 1"/>
</x:scenario>
<x:scenario label="MAP">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!-- <x:expect label="pos 0 = 'a' sets Work rdf:type to Cartography" test="count(//bf:Work[1]/rdf:type/@rdf:resource[contains(.,'Cartography')]) = 1"/> -->
<x:expect label="...and creates a bf:content property" test="//bf:Work[1]/bf:content/bf:Content/rdfs:label = 'cartographic image'"/>
<x:expect label="...if no 337, creates media property of the Instance" test="//bf:Instance[1]/bf:media/bf:Media/rdfs:label = 'unmediated'"/>
<x:expect label="pos 1 sets a genreForm/GenreForm property of the Instance" test="//bf:Instance[1]/bf:genreForm/bf:GenreForm/@rdf:about = 'http://id.loc.gov/authorities/genreForms/gf2018026045'"/>
<x:expect label="...with a label" test="//bf:Instance[1]/bf:genreForm/bf:GenreForm/rdfs:label = 'Views'"/>
<x:expect label="...if no 336, creates a content property of the Work" test="//bf:Work[1]/bf:content/bf:Content/@rdf:about='http://id.loc.gov/vocabulary/contentTypes/cri'"/>
<x:expect label="...with a label" test="//bf:Work[1]/bf:content/bf:Content/rdfs:label = 'cartographic image'"/>
<x:expect label="...if no duplicate property from 338/008, creates a carrier property of the Instance" test="//bf:Instance[1]/bf:carrier[1]/bf:Carrier/@rdf:about='http://id.loc.gov/vocabulary/carriers/nb'"/>
<x:expect label="...with a label" test="//bf:Instance[1]/bf:carrier[1]/bf:Carrier[1]/rdfs:label = 'sheet'"/>
<x:expect label="pos 3 sets the colorContent property of the Instance" test="//bf:Instance[1]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 sets the baseMaterial property of the Instance" test="//bf:Instance[1]/bf:baseMaterial/bf:BaseMaterial/rdfs:label = 'paper'"/>
<x:expect label="pos 5 sets the generation property of the Instance - label check" test="//bf:Instance[1]/bf:generation[1]/bf:Generation/rdfs:label = 'facsimile'"/>
<x:expect label="pos 5 sets the generation property of the Instance - uri check" test="//bf:Instance[1]/bf:generation[1]/bf:Generation/@rdf:about = 'http://id.loc.gov/vocabulary/mgeneration/facsimile'"/>
<x:expect label="pos 6 sets a productionMethod/ProductionMethod property of the Instance" test="//bf:Instance[1]/bf:productionMethod[1]/bf:ProductionMethod/@rdf:about = 'http://id.loc.gov/vocabulary/mproduction/photocopy'"/>
<x:expect label="...with a label" test="//bf:Instance[1]/bf:productionMethod[1]/bf:ProductionMethod/rdfs:label = 'photocopying'"/>
<x:expect label="pos 7 sets the polarity property of the Instance" test="//bf:Instance[1]/bf:polarity/bf:Polarity/rdfs:label = 'mixed'"/>
</x:scenario>
<x:scenario label="ELECTRONIC RESOURCE">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'c' sets Work rdf:type to 'Multimedia'" test="count(//bf:Work[2]/rdf:type/@rdf:resource[contains(.,'Multimedia')]) = 1"/>-->
<x:expect label="...and sets the media property of the Instance if no 337" test="//bf:Instance[2]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/c'"/>
<x:expect label="...and sets the rdfs:label property of the Media" test="//bf:Instance[2]/bf:media/bf:Media/rdfs:label = 'computer'"/>
<x:expect label="pos 1 sets the carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[2]/bf:carrier/bf:Carrier/rdfs:label = 'computer disc'"/>
<x:expect label="pos 3 sets the colorContent property of the Instance" test="//bf:Instance[2]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 sets the dimensions property of the Instance - from 007" test="//bf:Instance[2]/bf:dimensions = '4 3/4 in.'"/>
<x:expect label="pos 5 sets a soundContent/SoundContent/@rdf:about of the Instance" test="//bf:Instance[2]/bf:soundContent/bf:SoundContent/@rdf:about = 'http://id.loc.gov/vocabulary/msoundcontent/sound'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[2]/bf:soundContent/bf:SoundContent/rdfs:label = 'sound'"/>
</x:scenario>
<x:scenario label="GLOBE">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'd' sets Work rdf:type to 'Cartography'" test="count(//bf:Work[3]/rdf:type/@rdf:resource[contains(.,'Cartography')]) = 1"/>-->
<x:expect label="...and creates a bf:content property of the Work if no 336" test="//bf:Work[3]/bf:content/bf:Content/@rdf:about='http://id.loc.gov/vocabulary/contentTypes/crf'"/>
<x:expect label="...with a label" test="//bf:Work[3]/bf:content/bf:Content/rdfs:label = 'cartographic three-dimensional form'"/>
<x:expect label="...and creates a bf:media property of the Instance if no 337" test="//bf:Instance[3]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/n'"/>
<x:expect label="...with a label" test="//bf:Instance[3]/bf:media/bf:Media/rdfs:label = 'unmediated'"/>
<x:expect label="pos 1 creates a genreForm/GenreForm property of the Instance" test="//bf:Instance[3]/bf:genreForm[1]/bf:GenreForm/@rdf:about = 'http://id.loc.gov/authorities/genreForms/gf2011026300'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[3]/bf:genreForm[1]/bf:GenreForm/rdfs:label = 'Globes'"/>
<x:expect label="pos 1 creates a bf:carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[3]/bf:carrier/bf:Carrier/@rdf:about='http://id.loc.gov/vocabulary/carriers/nr'"/>
<x:expect label="pos 3 creates a colorContent property of the Instance" test="//bf:Instance[3]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 creates a baseMaterial property of the Instance" test="//bf:Instance[3]/bf:baseMaterial/bf:BaseMaterial/rdfs:label = 'synthetic'"/>
<x:expect label="pos 5 creates a generation property of the Instance - label check" test="//bf:Instance[3]/bf:generation/bf:Generation/rdfs:label = 'facsimile'"/>
<x:expect label="pos 5 creates a generation property of the Instance - uri check" test="//bf:Instance[3]/bf:generation/bf:Generation/@rdf:about = 'http://id.loc.gov/vocabulary/mgeneration/facsimile'"/>
</x:scenario>
<x:scenario label="PROJECTED GRAPHIC">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'g' sets Work rdf:type to 'StillImage'" test="//bf:Work[4]/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bibframe/StillImage'"/>-->
<x:expect label="...and creates a bf:content property" test="//bf:Work[4]/bf:content/bf:Content/@rdf:about = 'http://id.loc.gov/vocabulary/contentTypes/sti'"/>
<x:expect label="...with a label" test="//bf:Work[4]/bf:content/bf:Content/rdfs:label = 'still image'"/>
<x:expect label="...and creates a media property of the Instance if no 337" test="//bf:Instance[4]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/g'"/>
<x:expect label="...and sets the rdfs:label property of the Media" test="//bf:Instance[4]/bf:media/bf:Media/rdfs:label = 'projected'"/>
<x:expect label="pos 1 creates a carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[4]/bf:carrier/bf:Carrier/rdfs:label = 'slide'"/>
<x:expect label="pos 3 creates a colorContent property of the Instance" test="//bf:Instance[4]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 creates a baseMaterial property of the Instance" test="//bf:Instance[4]/bf:baseMaterial/bf:BaseMaterial/rdfs:label = 'safety base'"/>
<x:expect label="pos 5 creates a soundContent/SoundContent property of the Instance with @rdf:about" test="//bf:Instance[4]/bf:soundContent/bf:SoundContent/@rdf:about = 'http://id.loc.gov/vocabulary/msoundcontent/sound'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[4]/bf:soundContent/bf:SoundContent/rdfs:label = 'sound'"/>
<x:expect label="pos 6 creates a soundCharacteristic/RecordingMedium property of the Instance" test="//bf:Instance[4]/bf:soundCharacteristic/bf:RecordingMedium/@rdf:about = 'http://id.loc.gov/vocabulary/mrecmedium/magopt'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[4]/bf:soundCharacteristic/bf:RecordingMedium/rdfs:label = 'magneto-optical'"/>
<x:expect label="pos 7 creates a dimensions property of the Instance - 007" test="//bf:Instance[4]/bf:dimensions = '2x2 in. or 5x5 cm.'"/>
<x:expect label="pos 8 creates a mount property of the Instance" test="//bf:Instance[4]/bf:mount/bf:Mount/rdfs:label = 'glass'"/>
</x:scenario>
<x:scenario label="MICROFORM">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'h' sets Work rdf:type to 'Text'" test="//bf:Work[5]/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bibframe/Text'"/>-->
<x:expect label="...and creates a media property of the Instance if no 337" test="//bf:Instance[5]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/h'"/>
<x:expect label="...and sets the rdfs:label property of the Media" test="//bf:Instance[5]/bf:media/bf:Media/rdfs:label = 'microform'"/>
<x:expect label="pos 1 creates a carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[5]/bf:carrier/bf:Carrier/@rdf:about = 'http://id.loc.gov/vocabulary/carriers/he'"/>
<x:expect label="pos 3 creates a polarity property of the Instance" test="//bf:Instance[5]/bf:polarity/bf:Polarity/rdfs:label = 'negative'"/>
<x:expect label="pos 4 creates a dimensions property of the Instance - 007 value" test="//bf:Instance[5]/bf:dimensions = '4x6 in. or 11x15 cm.'"/>
<x:expect label="pos 5 create a reductionRatio property of the Instance" test="//bf:Instance[5]/bf:reductionRatio[1]/bf:ReductionRatio/rdfs:label = 'normal reduction' and //bf:Instance[5]/bf:reductionRatio[1]/bf:ReductionRatio/@rdf:about = 'http://id.loc.gov/vocabulary/mreductionratio/normal'"/>
<x:expect label="pos 6-8 create a reductionRatio property of the Instance" test="//bf:Instance[5]/bf:reductionRatio[2]/bf:ReductionRatio/rdfs:label = '024'"/>
<x:expect label="pos 9 creates a colorContent property of the Instance" test="//bf:Instance[5]/bf:colorContent/bf:ColorContent/rdfs:label = 'black and white'"/>
<x:expect label="pos 10 creates an emulsion property of the Instance" test="//bf:Instance[5]/bf:emulsion/bf:Emulsion/rdfs:label = 'silver halide emulsion'"/>
<x:expect label="pos 11 creates a generation property of the Instance" test="//bf:Instance[5]/bf:generation/bf:Generation/@rdf:about = 'http://id.loc.gov/vocabulary/mgeneration/servcopy'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[5]/bf:generation/bf:Generation/rdfs:label = 'service copy'"/>
<x:expect label="pos 12 creates a baseMaterial property of the Instance" test="//bf:Instance[5]/bf:baseMaterial/bf:BaseMaterial/rdfs:label = 'safety base'"/>
</x:scenario>
<x:scenario label="NONPROJECTED GRAPHIC">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'k' sets Work rdf:type to 'StillImage'" test="//bf:Work[6]/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bibframe/StillImage'"/>-->
<x:expect label="...and creates a bf:content property if no 336" test="//bf:Work[6]/bf:content/bf:Content/@rdf:about = 'http://id.loc.gov/vocabulary/contentTypes/sti'"/>
<x:expect label="...with a label" test="//bf:Work[6]/bf:content/bf:Content/rdfs:label = 'still image'"/>
<x:expect label="...and creates a media property of the Instance if no 337" test="//bf:Instance[6]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/n'"/>
<x:expect label="pos 1 creates a genreForm/GenreForm property of the Instance" test="//bf:Instance[6]/bf:genreForm/bf:GenreForm/@rdf:about = 'http://id.loc.gov/vocabulary/graphicMaterials/tgm007718'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[6]/bf:genreForm/bf:GenreForm/rdfs:label = 'Photographic prints'"/>
<x:expect label="pos 1 creates a bf:carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[6]/bf:carrier/bf:Carrier/@rdf:about='http://id.loc.gov/vocabulary/carriers/nb'"/>
<x:expect label="pos 3 creates a colorContent property of the Instance" test="//bf:Instance[6]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 creates a baseMaterial property of the Instance" test="//bf:Instance[6]/bf:baseMaterial/bf:BaseMaterial/rdfs:label = 'paper'"/>
<x:expect label="pos 5 creates a mount property of the Instance" test="//bf:Instance[6]/bf:mount/bf:Mount/rdfs:label = 'paper'"/>
</x:scenario>
<x:scenario label="MOTION PICTURE">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'm' sets Work rdf:type to 'MovingImage'" test="//bf:Work[7]/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bibframe/MovingImage'"/>-->
<x:expect label="...and creates a bf:content property if no 336" test="//bf:Work[7]/bf:content/bf:Content/@rdf:about = 'http://id.loc.gov/vocabulary/contentTypes/tdi'"/>
<x:expect label="...with a label" test="//bf:Work[7]/bf:content/bf:Content/rdfs:label = 'two-dimensional moving image'"/>
<x:expect label="...and creates a media property of the Instance if no 337" test="//bf:Instance[7]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/g'"/>
<x:expect label="...and sets the rdfs:label property of the Media" test="//bf:Instance[7]/bf:media/bf:Media/rdfs:label = 'projected'"/>
<x:expect label="pos 1 creates a carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[7]/bf:carrier/bf:Carrier/rdfs:label = 'film reel'"/>
<x:expect label="pos 3 creates a colorContent property of the Instance" test="//bf:Instance[7]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 may create a projectionCharacteristic/PresentationFormat property of the Instance" test="//bf:Instance[7]/bf:projectionCharacteristic/bf:PresentationFormat/@rdf:about='http://id.loc.gov/vocabulary/mpresformat/sound'"/>
<x:expect label="...with an rdfs:label " test="//bf:Instance[7]/bf:projectionCharacteristic/bf:PresentationFormat/rdfs:label = 'standard sound aperture'"/>
<x:expect label="...or an aspectRatio/AspectRatio property of the Instance" test="//bf:Instance[8]/bf:aspectRatio/bf:AspectRatio[1]/@rdf:about = 'http://id.loc.gov/vocabulary/maspect/nonana'"/>
<x:expect label="...and a second" test="//bf:Instance[8]/bf:aspectRatio[2]/bf:AspectRatio/rdfs:label = 'wide-screen'"/>
<x:expect label="...and a third with a note" test="//bf:Instance[8]/bf:aspectRatio[3]/bf:AspectRatio/bf:note/bf:Note/rdfs:label = 'non-anamorphic (wide-screen)'"/>
<x:expect label="pos 5 creates a soundContent/SoundContent property of the Instance" test="//bf:Instance[7]/bf:soundContent/bf:SoundContent/@rdf:about = 'http://id.loc.gov/vocabulary/msoundcontent/sound'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[7]/bf:soundContent/bf:SoundContent/rdfs:label = 'sound'"/>
<x:expect label="pos 6 creates a soundCharacteristic/RecordingMedium property of the Instance" test="//bf:Instance[7]/bf:soundCharacteristic[1]/bf:RecordingMedium/@rdf:about = 'http://id.loc.gov/vocabulary/mrecmedium/opt'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[7]/bf:soundCharacteristic[1]/bf:RecordingMedium/rdfs:label = 'optical'"/>
<x:expect label="pos 7 creates a dimensions property of the Instance - 007" test="//bf:Instance[7]/bf:dimensions = '16 mm.'"/>
<x:expect label="pos 8 creates a soundCharacteristic/PlaybackChannels property of the Instance" test="//bf:Instance[7]/bf:soundCharacteristic[2]/bf:PlaybackChannels/@rdf:about = 'http://id.loc.gov/vocabulary/mplayback/mon'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[7]/bf:soundCharacteristic[2]/bf:PlaybackChannels/rdfs:label = 'mono'"/>
<x:expect label="pos 9 creates a genreForm property of the Instance" test="//bf:Instance[7]/bf:genreForm/bf:GenreForm/@rdf:about = 'http://id.loc.gov/authorities/genreForms/gf2011026435'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[7]/bf:genreForm/bf:GenreForm/rdfs:label = 'Outtakes'"/>
<x:expect label="pos 10 creates a polarity property of the Instance" test="//bf:Instance[7]/bf:polarity/bf:Polarity/rdfs:label = 'positive'"/>
<x:expect label="pos 11 creates a generation/Generation property of the Instance" test="//bf:Instance[7]/bf:generation/bf:Generation/@rdf:about = 'http://id.loc.gov/vocabulary/mgeneration/viewcopy'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[7]/bf:generation/bf:Generation/rdfs:label = 'viewing copy'"/>
<x:expect label="pos 12 creates a baseMaterial property of the Instance" test="//bf:Instance[7]/bf:baseMaterial/bf:BaseMaterial/rdfs:label = 'triacetate'"/>
</x:scenario>
<x:scenario label="SOUND RECORDING">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 's' sets Work rdf:type to 'Audio'" test="//bf:Work[9]/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bibframe/Audio'"/>-->
<x:expect label="...and creates a media property of the Instance if no 337" test="//bf:Instance[9]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/s'"/>
<x:expect label="...and sets the rdfs:label property of the Media" test="//bf:Instance[9]/bf:media/bf:Media/rdfs:label = 'audio'"/>
<x:expect label="pos 1 creates a carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[9]/bf:carrier/bf:Carrier/rdfs:label = 'audio disc'"/>
<x:expect label="pos 3 creates a soundCharacteristic/PlayingSpeed property of the Instance - label check" test="//bf:Instance[9]/bf:soundCharacteristic[1]/bf:PlayingSpeed/rdfs:label = '7 1/2 ips'"/>
<x:expect label="pos 3 creates a soundCharacteristic/PlayingSpeed property of the Instance - uri check" test="//bf:Instance[9]/bf:soundCharacteristic[1]/bf:PlayingSpeed/@rdf:about = 'http://id.loc.gov/vocabulary/mplayspeed/o'"/>
<x:expect label="pos 4 creates a soundCharacteristic/PlaybackChannels property of the Instance" test="//bf:Instance[9]/bf:soundCharacteristic[2]/bf:PlaybackChannels/@rdf:about = 'http://id.loc.gov/vocabulary/mplayback/ste'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[9]/bf:soundCharacteristic[2]/bf:PlaybackChannels/rdfs:label = 'stereo'"/>
<x:expect label="pos 5 creates a soundCharacteristic/GrooveCharacteristic property of the Instance" test="//bf:Instance[10]/bf:soundCharacteristic[3]/bf:GrooveCharacteristic/@rdf:about = 'http://id.loc.gov/vocabulary/mgroove/finepitch'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[9]/bf:soundCharacteristic[3]/bf:GrooveCharacteristic/rdfs:label = 'coarse groove'"/>
<x:expect label="pos 6 creates a dimensions property of the Instance" test="//bf:Instance[9]/bf:dimensions[1] = '7 in.'"/>
<x:expect label="pos 7 creates a dimensions property of the Instance (tape width)" test="//bf:Instance[9]/bf:dimensions[2] = '1/4 in. tape width'"/>
<x:expect label="pos 8 creates a soundCharacteristic/TapeConfig property of the Instance - label check" test="//bf:Instance[9]/bf:soundCharacteristic[4]/bf:TapeConfig/rdfs:label = 'quarter track'"/>
<x:expect label="pos 8 creates a soundCharacteristic/TapeConfig property of the Instance - uri check" test="//bf:Instance[9]/bf:soundCharacteristic[4]/bf:TapeConfig/@rdf:about = 'http://id.loc.gov/vocabulary/mtapeconfig/quarter'"/>
<x:expect label="pos 9 creates a generation/Generation property of the Instance" test="//bf:Instance[9]/bf:generation/bf:Generation/@rdf:about = 'http://id.loc.gov/vocabulary/mgeneration/master'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[9]/bf:generation/bf:Generation/rdfs:label = 'master tape'"/>
<x:expect label="pos 10 creates a baseMaterial property of the Instance" test="//bf:Instance[9]/bf:baseMaterial[1]/bf:BaseMaterial/rdfs:label = 'glass'"/>
<x:expect label="...and can create a second baseMaterial property" test="//bf:Instance[9]/bf:baseMaterial[2]/bf:BaseMaterial/rdfs:label = 'lacquer'"/>
<x:expect label="pos 11 creates a soundCharacteristic/GrooveCharacteristic property of the Instance" test="//bf:Instance[9]/bf:soundCharacteristic[5]/bf:GrooveCharacteristic/@rdf:about = 'http://id.loc.gov/vocabulary/mgroove/lateral'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[9]/bf:soundCharacteristic[5]/bf:GrooveCharacteristic/rdfs:label = 'lateral or combined cutting'"/>
<x:expect label="pos 12 creates a soundCharacteristic/PlaybackCharacteristic property of the Instance" test="//bf:Instance[9]/bf:soundCharacteristic[6]/bf:PlaybackCharacteristic/@rdf:about = 'http://id.loc.gov/vocabulary/mspecplayback/dolbyb'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[9]/bf:soundCharacteristic[6]/bf:PlaybackCharacteristic/rdfs:label = 'Dolby-B encoded'"/>
<x:expect label="...or it may create a soundCharacteristic/RecordingMethod property" test="//bf:Instance[11]/bf:soundCharacteristic/bf:RecordingMethod/@rdf:about = 'http://id.loc.gov/vocabulary/mrectype/digital'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[11]/bf:soundCharacteristic/bf:RecordingMethod/rdfs:label = 'digital'"/>
<x:expect label="pos 13 creates a soundCharacteristic/bf:CaptureStorage property of the Instance" test="//bf:Instance[9]/bf:soundCharacteristic/bf:CaptureStorage/@rdf:about = 'http://id.loc.gov/vocabulary/mcapturestorage/aes'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[9]/bf:soundCharacteristic/bf:CaptureStorage/rdfs:label = 'Electrical capture, Analog electrical storage'"/>
</x:scenario>
<x:scenario label="VIDEORECORDING">
<x:context href="data/ConvSpec-001-007/marc.xml"/>
<!--<x:expect label="pos 0 = 'v' sets rdf:type of Work to bf:MovingImage" test="//bf:Work[12]/rdf:type/@rdf:resource = 'http://id.loc.gov/ontologies/bibframe/MovingImage'"/>-->
<x:expect label="...and creates a bf:content property if no 336" test="//bf:Work[12]/bf:content/bf:Content/@rdf:about = 'http://id.loc.gov/vocabulary/contentTypes/tdi'"/>
<x:expect label="...with a label" test="//bf:Work[12]/bf:content/bf:Content/rdfs:label = 'two-dimensional moving image'"/>
<x:expect label="...and creates a media property of the Instance if no 337" test="//bf:Instance[12]/bf:media/bf:Media/@rdf:about = 'http://id.loc.gov/vocabulary/mediaTypes/v'"/>
<x:expect label="pos 1 creates a carrier property of the Instance if no duplicate property from 338/008" test="//bf:Instance[12]/bf:carrier/bf:Carrier/rdfs:label = 'videocassette'"/>
<x:expect label="pos 3 creates a colorContent property of the Instance" test="//bf:Instance[13]/bf:colorContent/bf:ColorContent/rdfs:label = 'color'"/>
<x:expect label="pos 4 creates a videoCharacteristic/VideoFormat property of the Instance" test="//bf:Instance[14]/bf:videoCharacteristic/bf:VideoFormat/@rdf:about = 'http://id.loc.gov/vocabulary/mvidformat/vhs'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[14]/bf:videoCharacteristic/bf:VideoFormat/rdfs:label = 'VHS'"/>
<x:expect label="...or a digitalCharacteristic/EncodingFormat property of the Instance" test="//bf:Instance[13]/bf:digitalCharacteristic/bf:EncodingFormat/@rdf:about = 'http://id.loc.gov/vocabulary/mencformat/dvdv'"/>
<x:expect label="pos 5 creates a soundContent/SoundContent property of the Instance" test="//bf:Instance[12]/bf:soundContent/bf:SoundContent/@rdf:about = 'http://id.loc.gov/vocabulary/msoundcontent/sound'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[12]/bf:soundContent/bf:SoundContent/rdfs:label = 'sound'"/>
<x:expect label="pos 6 creates a soundCharacteristic/RecordingMedium property of the Instance" test="//bf:Instance[12]/bf:soundCharacteristic[1]/bf:RecordingMedium/@rdf:about = 'http://id.loc.gov/vocabulary/mrecmedium/mag'"/>
<x:expect label="...with an rdfs:label" test="//bf:Instance[12]/bf:soundCharacteristic[1]/bf:RecordingMedium/rdfs:label = 'magnetic'"/>
<x:expect label="pos 7 creates a dimensions property of the Instance" test="//bf:Instance[12]/bf:dimensions = '1/2 in.'"/>
<x:expect label="pos 8 creates a soundCharacteristic/PlaybackChannels property of the Instance" test="//bf:Instance[12]/bf:soundCharacteristic[2]/bf:PlaybackChannels/@rdf:about = 'http://id.loc.gov/vocabulary/mplayback/ste'"/>
<x:expect label="...and an rdfs:label" test="//bf:Instance[12]/bf:soundCharacteristic[2]/bf:PlaybackChannels/rdfs:label = 'stereo'"/>
</x:scenario>
</x:scenario>
</x:description>