forked from lcnetdev/marc2bibframe2
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathConvSpec-010-048.xspec
273 lines (242 loc) · 29.4 KB
/
ConvSpec-010-048.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
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
<?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="010 - LIBRARY OF CONGRESS CONTROL NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/Lccn property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[1]/bf:Lccn/rdf:value = ' 2004436018'"/>
<x:expect label="$z creates an status/Status property of the Lccn" test="//bf:Instance[1]/bf:identifiedBy[2]/bf:Lccn/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[2]/bf:Lccn/bf:status/bf:Status/rdfs:label = 'invalid'"/>
</x:scenario>
<x:scenario label="015 - NATIONAL BIBLIOGRAPHY NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/Nbn property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[3]/bf:Nbn/rdf:value = '06,A29,1122'"/>
<x:expect label="$a can also include qualifier in parentheses" test="//bf:Instance[1]/bf:identifiedBy[5]/bf:Nbn/bf:qualifier = 'v. 1'"/>
<x:expect label="...which should not be part of the rdf:value" test="//bf:Instance[1]/bf:identifiedBy[5]/bf:Nbn/rdf:value = 'F67-835'"/>
<x:expect label="$q creates a qualifier property of the Nbn" test="//bf:Instance[1]/bf:identifiedBy[3]/bf:Nbn/bf:qualifier = 'pbk'"/>
<x:expect label="$z creates an status/Status property of the Nbn" test="//bf:Instance[1]/bf:identifiedBy[4]/bf:Nbn/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="$z ...with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[4]/bf:Nbn/bf:status/bf:Status/rdfs:label = 'invalid'"/>
<x:expect label="$2 creates a source property of the Nbn" test="//bf:Instance[1]/bf:identifiedBy[4]/bf:Nbn/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/nationalbibschemes/dnb'"/>
</x:scenario>
<x:scenario label="016 - NATIONAL BIBLIOGRAPHIC AGENCY CONTROL NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="ind1=' ' creates a LAC source property of the Local" test="//bf:Instance[1]/bf:identifiedBy[6]/bf:Local/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/authorities/names/no2004037399'"/>
<x:expect label="...with a label" test="//bf:Instance[1]/bf:identifiedBy[6]/bf:Local/bf:source/bf:Source/rdfs:label = 'Library and Archives Canada'"/>
<x:expect label="$a creates an identifiedBy/Local property of the AdminMetadata" test="//bf:Instance[1]/bf:identifiedBy[6]/bf:Local/rdf:value=' 730032015 rev'"/>
<x:expect label="$z creates an status/Status property of the Local" test="//bf:Instance[1]/bf:identifiedBy[7]/bf:Local/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...and with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[7]/bf:Local/bf:status/bf:Status/rdfs:label = 'invalid'"/>
<x:expect label="$2 creates a source property of the Local" test="//bf:Instance[1]/bf:identifiedBy[8]/bf:Local/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/polibn'"/>
</x:scenario>
<x:scenario label="017 - COPYRIGHT OR LEGAL DEPOSIT NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/CopyrightNumber property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[9]/bf:CopyrightNumber/rdf:value='JP732'"/>
<x:expect label="$b creates an assigner property of the CopyrightNumber" test="//bf:Instance[1]/bf:identifiedBy[9]/bf:CopyrightNumber/bf:assigner/bf:Agent/rdfs:label = 'U.S. Copyright Office'"/>
<x:expect label="$d creates a date property of the CopyrightNumber" test="//bf:Instance[1]/bf:identifiedBy[9]/bf:CopyrightNumber/bf:date = '1951-05-04'"/>
<x:expect label="$z creates a status/Status property of the CopyrightNumber" test="//bf:Instance[1]/bf:identifiedBy[11]/bf:CopyrightNumber/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...and with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[11]/bf:CopyrightNumber/bf:status/bf:Status/rdfs:label = 'invalid'"/>
</x:scenario>
<x:scenario label="020 - INTERNATIONAL STANDARD BOOK NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="020 creates identifiedBy/Isbn properties of the Instance" test="count(//bf:Instance[1]/bf:identifiedBy/bf:Isbn) = 3"/>
<x:expect label="$a is the rdf:value of the Isbn (without parenthetical qualifier)" test="//bf:Instance[1]/bf:identifiedBy[12]/bf:Isbn/rdf:value = '0877790086'"/>
<x:expect label="$a can include qualifier in parentheses" test="//bf:Instance[1]/bf:identifiedBy[12]/bf:Isbn/bf:qualifier = 'pbk'"/>
<x:expect label="$c creates an acqusitionTerms property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[12]/bf:Isbn/bf:acquisitionTerms[1] = '$10.00'"/>
<x:expect label="$q creates a qualifier property of the Isbn" test="//bf:Instance[1]/bf:identifiedBy[13]/bf:Isbn/bf:qualifier = 'black leather'"/>
<x:expect label="$z creates a status/Status property of the Isbn" test="//bf:Instance[1]/bf:identifiedBy[14]/bf:Isbn/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[14]/bf:Isbn/bf:status/bf:Status/rdfs:label = 'invalid'"/>
</x:scenario>
<x:scenario label="022 - INTERNATIONAL STANDARD SERIAL NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/Issn property of the Work" test="//bf:Work[1]/bf:identifiedBy[1]/bf:Issn/rdf:value = '1234-1231'"/>
<x:expect label="$l creates an identifiedBy/IssnL property of the Work" test="//bf:Work[1]/bf:identifiedBy[4]/bf:IssnL/rdf:value = '1234-1231'"/>
<x:expect label="$m creates an IssnL with status/Status property" test="//bf:Work[1]/bf:identifiedBy[5]/bf:IssnL/bf:status/bf:Status/@rdf:about='http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...with rdfs:label 'canceled'" test="//bf:Work[1]/bf:identifiedBy[5]/bf:IssnL/bf:status/bf:Status/rdfs:label = 'canceled'"/>
<x:expect label="$y creates a status/Status property of the Issn" test="//bf:Work[1]/bf:identifiedBy[2]/bf:Issn/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/incorrect'"/>
<x:expect label="...with rdfs:label 'incorrect'" test="//bf:Work[1]/bf:identifiedBy[2]/bf:Issn/bf:status/bf:Status/rdfs:label = 'incorrect'"/>
<x:expect label="$z creates a status/Status property of the Issn" test="//bf:Work[1]/bf:identifiedBy[3]/bf:Issn/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...with rdfs:label 'canceled'" test="//bf:Work[1]/bf:identifiedBy[3]/bf:Issn/bf:status/bf:Status/rdfs:label = 'canceled'"/>
<x:expect label="$0 becomes the URI of the Issn/L" test="//bf:Work/bf:identifiedBy[1]/bf:Issn/@rdf:about='http://issn.org/resource/ISSN/1234-1231#ISSN'"/>
<x:expect label="$2 creates an assigner property of the Issn" test="//bf:Work[1]/bf:identifiedBy[1]/bf:Issn/bf:assigner/bf:Agent/bf:code = 'DEU-6'"/>
</x:scenario>
<x:scenario label="023 - INTERNATIONAL STANDARD SERIAL NUMBER, The Return">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$l creates an identifiedBy/IssnL property of the Work" test="//bf:Work[1]/bf:identifiedBy[7]/bf:IssnL/rdf:value = '1234-1231'"/>
<x:expect label="$y creates a status/Status property of the Issn" test="//bf:Work[1]/bf:identifiedBy[8]/bf:IssnL/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/incorrect'"/>
<x:expect label="...with rdfs:label 'incorrect'" test="//bf:Work[1]/bf:identifiedBy[8]/bf:IssnL/bf:status/bf:Status/rdfs:label = 'incorrect'"/>
<x:expect label="$z creates a status/Status property of the Issn" test="//bf:Work[1]/bf:identifiedBy[9]/bf:IssnL/bf:status/bf:Status/@rdf:about = 'http://id.loc.gov/vocabulary/mstatus/cancinv'"/>
<x:expect label="...with rdfs:label 'canceled'" test="//bf:Work[1]/bf:identifiedBy[9]/bf:IssnL/bf:status/bf:Status/rdfs:label = 'canceled'"/>
<x:expect label="$0 becomes the URI of the Issn/L" test="//bf:Work/bf:identifiedBy[8]/bf:IssnL/@rdf:about='http://issn.org/resource/ISSNL/1234-1231#ISSNL'"/>
<x:expect label="$2 creates an assigner property of the Issn" test="//bf:Work[1]/bf:identifiedBy[8]/bf:IssnL/bf:assigner/bf:Agent/bf:code = 'DEU-6'"/>
</x:scenario>
<x:scenario label="024 - OTHER STANDARD IDENTIFIER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="ind 1 determines the class of Identifier for the identifiedBy property" test="count(//bf:Instance[1]/bf:identifiedBy[15]/bf:Isrc) = 1"/>
<x:expect label="...can also come from $2" test="count(//bf:Instance[1]/bf:identifiedBy[20]/bf:Istc) = 1"/>
<x:expect label="$a creates an identifiedBy/Identifier property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[15]/bf:Isrc/rdf:value = 'NLC018413261'"/>
<x:expect label="...except if $2 = 'eidr', then it creates an identifiedBy property on the Work" test="//bf:Work[1]/bf:identifiedBy[6]/bf:Eidr/rdf:value = '10.5240/EA73-79D7-1B2B-B378-3A73-M'"/>
<x:expect label="$a can include qualifier in parentheses" test="//bf:Instance[1]/bf:identifiedBy[21]/bf:Identifier/bf:qualifier = 'v. 1'"/>
<x:expect label="$c creates an acquisitionTerms property of the instance" test="//bf:Instance[1]/bf:identifiedBy[17]/bf:Ismn/bf:acquisitionTerms[1] = 'EUR28.50'"/>
<x:expect label="$d creates a note property of the Identifier" test="//bf:Instance[1]/bf:identifiedBy[18]/bf:Ean/bf:note/bf:Note/rdfs:label = '51000'"/>
<x:expect label="$q creates a qualifier property of the Identifier" test="//bf:Instance[1]/bf:identifiedBy[17]/bf:Ismn/bf:qualifier[2] = 'sewn'"/>
<x:expect label="$z creates a status/Status property of the Identifier with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[16]/bf:Upc/bf:status/bf:Status/rdfs:label = 'invalid'"/>
<x:expect label="$0 becomes the URI of the Identifier (MTA Hub test)" test="//bf:Work[2]/bf:identifiedBy[1]/bf:Identifier/@rdf:about='http://vocab.getty.edu/ulan/500010879'"/>
<x:expect label="$2 creates a source/Source property of the Identifier if the Identifier is not subclassed" test="//bf:Instance[1]/bf:identifiedBy[21]/bf:Identifier/bf:source/bf:Source/bf:code = 'sample'"/>
</x:scenario>
<x:scenario label="025 - OVERSEAS ACQUISITION NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/LcOverseasAcq property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[22]/bf:LcOverseasAcq/rdf:value = 'LACAP72-1719'"/>
</x:scenario>
<x:scenario label="026 - FINGERPRINT IDENTIFIER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a $b $c $d create an identifiedBy/Fingerprint property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[23]/bf:Fingerprint/rdf:value = 'dete nkck vess lodo 3 Anno Domini MDCXXXVI 3'"/>
<x:expect label="$e creates an identifiedBy/Fingerprint property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[24]/bf:Fingerprint/rdf:value = 'dete nkck vess lodo 3 Anno Domini MDCXXXVI 3'"/>
<x:expect label="$2 creates a source property of the Fingerprint" test="//bf:Instance[1]/bf:identifiedBy[23]/bf:Fingerprint/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/fingerprintschemes/fei'"/>
<x:expect label="$5 creates a bflc:applicableInstitution property of the Fingerprint" test="//bf:Instance[1]/bf:identifiedBy[24]/bf:Fingerprint/bflc:applicableInstitution/bf:Agent/bf:code = 'UkCU'"/>
</x:scenario>
<x:scenario label="027 - STANDARD TECHNICAL REPORT NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/Strn property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[25]/bf:Strn/rdf:value = 'METPRO/CB/TR--74/216+PR.ENVR.WI'"/>
<x:expect label="$a can contain a qualifier in parentheses" test="//bf:Instance[1]/bf:identifiedBy[25]/bf:Strn/bf:qualifier[1] = 'vol 1'"/>
<x:expect label="$q creates a qualifier property of the Strn" test="//bf:Instance[1]/bf:identifiedBy[25]/bf:Strn/bf:qualifier[2] = 'pbk'"/>
<x:expect label="$z creates a status/Status property of the Strn with rdfs:label = 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[26]/bf:Strn/bf:status/bf:Status[@rdf:about='http://id.loc.gov/vocabulary/mstatus/cancinv']/rdfs:label = 'invalid'"/>
</x:scenario>
<x:scenario label="028 - PUBLISHER NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="ind1 determines the class of Identifier for the identifiedBy property of the Instance" test="count(//bf:Instance[1]/bf:identifiedBy[27]/bf:AudioIssueNumber) = 1"/>
<x:expect label="$a creates an identifiedBy/Identifier property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[27]/bf:AudioIssueNumber/rdf:value = '440 073 033-9 (compact disc)'"/>
<x:expect label="$b creates an assigner property of the Identifier" test="//bf:Instance[1]/bf:identifiedBy[27]/bf:AudioIssueNumber/bf:assigner/bf:Agent/rdfs:label = 'Deutsche Grammophon'"/>
<x:expect label="$q creates a qualifier property of the Identifier" test="//bf:Instance[1]/bf:identifiedBy[27]/bf:AudioIssueNumber/bf:qualifier[1] = 'disc 1'"/>
</x:scenario>
<x:scenario label="030 - CODEN DESIGNATION">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/Coden property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[28]/bf:Coden/rdf:value = 'ASIRAF'"/>
<x:expect label="$z creates a status/Status property of the Coden with rdfs:label = 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[29]/bf:Coden/bf:status/bf:Status[@rdf:about='http://id.loc.gov/vocabulary/mstatus/cancinv']/rdfs:label = 'invalid'"/>
</x:scenario>
<x:scenario label="032 - POSTAL REGISTRATION NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/PostalRegistration property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[30]/bf:PostalRegistration/rdf:value = '686310'"/>
<x:expect label="$b creates an assigner property of the PostalRegistration" test="//bf:Instance[1]/bf:identifiedBy[30]/bf:PostalRegistration/bf:assigner/bf:Agent/rdfs:label = 'USPS'"/>
</x:scenario>
<x:scenario label="033 - DATE/TIME AND PLACE OF AN EVENT">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="ind1 determines the type of dates represented by $a in the capture/Capture/date property of the Work" test="//bf:Work[1]/bf:capture/bf:Capture/bf:date = '1978-09-10T20:00:00-04:00/1978-09-14T20:00:00-04:00'"/>
<x:expect label="ind2 generates a note property in the Capture" test="//bf:Work[1]/bf:capture/bf:Capture/bf:note/bf:Note/rdfs:label = 'broadcast'"/>
<x:expect label="$b and $c create a place property of the Capture" test="//bf:Work[1]/bf:capture/bf:Capture/bf:place[2]/@rdf:resource = 'http://id.loc.gov/authorities/classification/G6714.V4'"/>
<x:expect label="$p creates a place property of the Capture" test="//bf:Work[1]/bf:capture/bf:Capture/bf:place[3]/bf:Place/rdfs:label = 'Minneapolis City Hall-Hennepin County Courthouse (Minneapolis, Minn.)'"/>
<x:expect label="$2 creates a source property of the place (generated by $p)" test="//bf:Work[1]/bf:capture/bf:Capture/bf:place[3]/bf:Place/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/subjectSchemes/lcsh'"/>
<x:expect label="$3 creates a bflc:appliesTo property of the Capture" test="//bf:Work[1]/bf:capture/bf:Capture/bflc:appliesTo/bflc:AppliesTo/rdfs:label = 'Horse'"/>
</x:scenario>
<x:scenario label="034 - CODED CARTOGRAPHIC MATHEMATICAL DATA">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a = 'a' alone creates a scale property of the Work with a label 'linear scale'" test="//bf:Work[1]/bf:scale[4]/bf:Scale/rdfs:label = 'linear scale'"/>
<x:expect label="$a = 'b' creates a scale/Scale property of the Work with a label 'angular scale'" test="//bf:Work[1]/bf:scale[1]/bf:Scale/rdfs:label = 'angular scale'"/>
<x:expect label="$b creates a scale property of the Work" test="//bf:Work[1]/bf:scale[2]/bf:Scale/rdf:value = '744000'"/>
<x:expect label="...and an additional 'linear horizontal' label" test="//bf:Work[1]/bf:scale[2]/bf:Scale/rdfs:label = 'linear horizontal'"/>
<x:expect label="$c creates a scale property of the Work" test="//bf:Work[1]/bf:scale[3]/bf:Scale/rdf:value = '96000'"/>
<x:expect label="...and an additional 'linear vertical' label" test="//bf:Work[1]/bf:scale[3]/bf:Scale/rdfs:label = 'linear vertical'"/>
<x:expect label="$defg are the coordinates property of the Cartographic entity" test="//bf:Work[1]/bf:cartographicAttributes[1]/bf:Cartographic/bf:coordinates = 'W1800000 E1800000 N0840000 S0700000'"/>
<x:expect label="$3 creates a bf:appliesTo property of the Scale and Cartographic" test="//bf:Work[1]/bf:scale[1]/bf:Scale/bflc:appliesTo/bflc:AppliesTo/rdfs:label = 'map'"/>
</x:scenario>
<x:scenario label="035 - SYSTEM CONTROL NUMBER">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/Local property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[31]/bf:OclcNumber/rdf:value = '814782'"/>
<x:expect label="value in parens creates an assigner property of the Local" test="count(//bf:Instance[1]/bf:identifiedBy[31]/bf:OclcNumber/bf:assigner) = 0"/>
<x:expect label="...final element in URL should be lowercase with hyphens removed" test="//bf:Instance[1]/bf:identifiedBy[33]/bf:Local/bf:assigner/bf:Agent/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/rsbebcd'"/>
<x:expect label="$z creates a status/Status property of the Local with rdfs:label 'invalid'" test="//bf:Instance[1]/bf:identifiedBy[32]/bf:OclcNumber/bf:status/bf:Status[@rdf:about='http://id.loc.gov/vocabulary/mstatus/cancinv']/rdfs:label = 'invalid'"/>
</x:scenario>
<x:scenario label="036 - ORIGINAL STUDY NUMBER FOR COMPUTER DATA FILES">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates an identifiedBy/StudyNumber property of the Instance" test="//bf:Instance[1]/bf:identifiedBy[34]/bf:StudyNumber/rdf:value = 'CNRS 84115'"/>
<x:expect label="$b creates an assigner property of the StudyNumber" test="//bf:Instance[1]/bf:identifiedBy[34]/bf:StudyNumber/bf:assigner/bf:Agent/rdfs:label = 'Centre national de la recherche scientifique'"/>
</x:scenario>
<x:scenario label="037 - SOURCE OF ACQUISITION">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="037 creates an acquisitionSource property of the Instance" test="count(//bf:Instance[1]/bf:acquisitionSource) = 2"/>
<x:expect label="ind1 creates a note on the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bf:note[1]/bf:Note/rdfs:label = 'current source'"/>
<x:expect label="$a creates an identifiedBy/StockNumber property of the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bf:identifiedBy/bf:StockNumber/rdf:value = 'FSWEC-77/0420'"/>
<x:expect label="$b creates a source property of the AcquistionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/rdfs:label = 'National Technical Information Service, Springfield, VA 22161'"/>
<x:expect label="$c creates an acquisitionTerms property of the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bf:acquisitionTerms = '$175.00'"/>
<x:expect label="$f creates a note property of the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[2]/bf:AcquisitionSource/bf:note/bf:Note/rdfs:label = 'Stone tablet'"/>
<x:expect label="$g creates a note on the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bf:note[3]/bf:Note/rdfs:label = 'ASCII recording mode; available with no internal labels or with ANSI standard labels; logical record length is 1024 bytes; block size is a multiple of 1024 up to 31744 bytes; 1600 or 6250 characters per inch'"/>
<x:expect label="$n creates a note on the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bf:note[4]/bf:Note/rdfs:label = 'Available only without color'"/>
<x:expect label="$3 creates a bflc:appliesTo property of the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bflc:appliesTo/bflc:AppliesTo/rdfs:label = '2014'"/>
<x:expect label="$5 creates a bflc:applicableInstitution property of the AcquisitionSource" test="//bf:Instance[1]/bf:acquisitionSource[1]/bf:AcquisitionSource/bflc:applicableInstitution/bf:Agent/bf:code = 'Uk'"/>
</x:scenario>
<x:scenario label="038 - RECORD CONTENT LICENSOR">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="038 creates a bflc:metadataLicensor property of the Work AdminMetadata" test="//bf:Work/bf:adminMetadata/bf:AdminMetadata/bflc:metadataLicensor/bflc:MetadataLicensor/rdfs:label = 'Uk'"/>
</x:scenario>
<x:scenario label="040 - CATALOGING SOURCE">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="040 creates an assigner property of the Work AdminMetadata" test="//bf:Work/bf:adminMetadata[1]/bf:AdminMetadata/bf:agent[1]/bf:Agent/bf:code = 'NBPol-G'"/>
<x:expect label="...and a uri if $a = DLC" test="//bf:Work/bf:adminMetadata[1]/bf:AdminMetadata/bf:agent[1]/bf:Agent/@rdf:about='http://id.loc.gov/vocabulary/organizations/dlc'"/>
<x:expect label="$b creates a descriptionLanguage property of the AdminMetadata" test="//bf:Work/bf:adminMetadata[4]/bf:AdminMetadata/bf:descriptionLanguage/bf:Language/@rdf:about = 'http://id.loc.gov/vocabulary/languages/fre'"/>
<x:expect label="final $d creates a descriptionModifier property of the AdminMetadata" test="//bf:Work/bf:adminMetadata[2]/bf:AdminMetadata/bf:descriptionModifier[1]/bf:Agent/bf:code = 'CtY'"/>
<x:expect label="...with a URI if $d = DLC" test="//bf:Work/bf:adminMetadata[2]/bf:AdminMetadata/bf:descriptionModifier[1]/bf:Agent/@rdf:about = 'http://id.loc.gov/vocabulary/organizations/dlc'"/>
<x:expect label="$e creates a descriptionConventions property of the AdminMetadata" test="//bf:Work/bf:adminMetadata[4]/bf:AdminMetadata/bf:descriptionConventions[1]/bf:DescriptionConventions/bf:code = 'NARS Staff Bulletin No. 16'"/>
<x:expect label="...if it contains a code, the object has a URI" test="//bf:Work/bf:adminMetadata[4]/bf:AdminMetadata/bf:descriptionConventions[2]/bf:DescriptionConventions/@rdf:about = 'http://id.loc.gov/vocabulary/descriptionConventions/appm'"/>
</x:scenario>
<x:scenario label="041 - LANGUAGE CODE">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="041 create language properties of the Work" test="//bf:Work/bf:language[1]/@rdf:resource = 'http://id.loc.gov/vocabulary/languages/eng'"/>
<x:expect label="ind1 creates a note property of the Work" test="//bf:Work/bf:note[1]/bf:Note/rdfs:label = 'Includes translation or is translation'"/>
<x:expect label="ind2 determines the source property of the Language" test="//bf:Work/bf:language[4]/bf:Language/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/languageschemes/iso6391'"/>
<x:expect label="No source property of Language if ind2 = ' '" test="count(//bf:Work/bf:language[1]/bf:Language/bf:source) = 0"/>
<x:expect label="subfields other than $a create a part property of the Language" test="//bf:Work/bf:language[2]/bf:Language/bf:part = 'Resource'"/>
<x:expect label="041 $h creates notes" test="//bf:Work/bf:note[3]/bf:Note/rdf:type/@rdf:resource = 'http://id.loc.gov/vocabulary/resourceComponents/otx'"/>
<x:expect label="041 $h creates notes" test="//bf:Work/bf:note[3]/bf:Note/bf:language/@rdf:resource = 'http://id.loc.gov/vocabulary/languages/swe'"/>
</x:scenario>
<x:scenario label="042 - AUTHENTICATION CODE">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="042 create descriptionAuthentication properties of the Work AdminMetadata" test="//bf:Work/bf:adminMetadata/bf:AdminMetadata/bf:descriptionAuthentication[2]/bf:DescriptionAuthentication/@rdf:about = 'http://id.loc.gov/vocabulary/marcauthen/nsdp'"/>
<x:expect label="...URI-encoded, if necessary" test="//bf:Work/bf:adminMetadata/bf:AdminMetadata/bf:descriptionAuthentication[3]/bf:DescriptionAuthentication/@rdf:about = 'http://id.loc.gov/vocabulary/marcauthen/pcc%20record'"/>
<x:expect label="...with a bf:code property" test="//bf:Work/bf:adminMetadata/bf:AdminMetadata/bf:descriptionAuthentication[2]/bf:DescriptionAuthentication/bf:code = 'nsdp'"/>
</x:scenario>
<x:scenario label="043 - GEOGRAPHIC AREA CODE">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates a geographicCoverage property of the Work" test="//bf:Work/bf:geographicCoverage[1]/@rdf:resource = 'http://id.loc.gov/vocabulary/geographicAreas/s-bl'"/>
<x:expect label="$b creates a geographicCoverage property of the Work" test="//bf:Work/bf:geographicCoverage[2]/bf:GeographicCoverage/rdf:value = 's-bl-ba'"/>
<x:expect label="...with the source of the GeographicCoverage from $2" test="//bf:Work/bf:geographicCoverage[2]/bf:GeographicCoverage/bf:source/bf:Source/bf:code = 'BlRjBN'"/>
<x:expect label="$c creates a geographicCoverage property of the Work" test="//bf:Work/bf:geographicCoverage[3]/bf:GeographicCoverage/rdf:value = 'us'"/>
<x:expect label="...with source labelled 'ISO 3166'" test="//bf:Work/bf:geographicCoverage[3]/bf:GeographicCoverage/bf:source/bf:Source/bf:code = 'ISO 3166'"/>
<x:expect label="$0 creates an identifier property of the GeographicCoverage" test="//bf:Work/bf:geographicCoverage[2]/bf:GeographicCoverage/bf:identifiedBy/bf:Identifier/rdf:value = '310008891'"/>
</x:scenario>
<x:scenario label="045 - TIME PERIOD OF CONTENT">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="$a creates a temporalCoverage property of the Work" test="//bf:Work/bf:temporalCoverage[1] = '-02XX/096X'"/>
<x:expect label="$b creates a temporalCoverage property of the Work" test="//bf:Work/bf:temporalCoverage[2] = '-0221/0960'"/>
</x:scenario>
<x:scenario label="046 - SPECIAL CODED DATES">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="046 $k generates an originDate property of the Work" test="//bf:Work/bf:originDate = '1998-10-22/1999-12-31T23:59:59.0'"/>
<x:expect label="...with EDTF data type" test="//bf:Work/bf:originDate/@rdf:datatype = 'http://id.loc.gov/datatypes/edtf'"/>
</x:scenario>
<x:scenario label="046 - SPECIAL CODED DATES - Vaid Date">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="046 $m generates an validDate property of the Work" test="//bf:Work/bf:validDate = '1928-10-22/1949-12-31T23:59:59.0'"/>
<x:expect label="...with EDTF data type" test="//bf:Work/bf:validDate/@rdf:datatype = 'http://id.loc.gov/datatypes/edtf'"/>
</x:scenario>
<x:scenario label="047 - FORM OF MUSICAL COMPOSITION CODE">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="047 creates a genreForm property of the Work" test="//bf:Work/bf:genreForm[3]/bf:GenreForm/bf:code = 'rgg'"/>
<x:expect label="if ind2 = ' ', use 008/18-19 music conversion on each $a to set URI" test="//bf:Work/bf:genreForm[2]/bf:GenreForm/@rdf:about = 'http://id.loc.gov/authorities/genreForms/gf2014026688'"/>
<x:expect label="...and label" test="//bf:Work/bf:genreForm[1]/bf:GenreForm/rdfs:label = 'Oratorios'"/>
<x:expect label="if ind2 = '7', $2 sets the source of the GenreForm" test="//bf:Work/bf:genreForm[3]/bf:GenreForm/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/musiccompschemes/iamlmf'"/>
</x:scenario>
<x:scenario label="048 - NUMBER OF MUSICAL INSTRUMENTS OR VOICES CODE">
<x:context href="data/ConvSpec-010-048/marc.xml"/>
<x:expect label="048 $a creates an instrument, ensemble, or voice property of the Work" test="//bf:Work/bf:voice[5]/bf:MusicVoice/rdfs:label = 'mixed chorus'"/>
<x:expect label="...with a source URI" test="//bf:Work/bf:voice[5]/bf:MusicVoice/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/musiccodeschemes/marcmusperf'"/>
<x:expect label="048 $b creates an instrument, ensemble, or voice property of the Work" test="//bf:Work/bf:voice[1]/bf:MusicVoice/rdfs:label = 'soprano'"/>
<x:expect label="...with a source URI" test="//bf:Work/bf:voice[1]/bf:MusicVoice/bf:source/bf:Source/@rdf:about = 'http://id.loc.gov/vocabulary/musiccodeschemes/marcmusperf'"/>
<x:expect label="position 2-3 of the subfield create a count property of the MusicInstrument, MusicEnsemble, or MusicVoice" test="//bf:Work/bf:voice[5]/bf:MusicVoice/bf:count = '4'"/>
<x:expect label="048 $b creates an instrumentalType property of the Work for instruments" test="//bf:Work/bf:instrument[1]/bf:MusicInstrument/bf:instrumentalType = 'keyboard'"/>
<x:expect label="only valid codes in 048 $a/$b should create properties" test="count(//bf:Work/bf:instrument|//bf:Work/bf:voice|//bf:Work/bf:ensemble) = 7"/>
</x:scenario>
</x:description>