ld4l-works_rdf 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (88) hide show
  1. checksums.yaml +7 -0
  2. data/.coveralls.yml +1 -0
  3. data/.gitignore +25 -0
  4. data/.travis.yml +14 -0
  5. data/CHANGES.md +3 -0
  6. data/Gemfile +4 -0
  7. data/LICENSE.txt +22 -0
  8. data/README.md +170 -0
  9. data/Rakefile +2 -0
  10. data/ld4l-works_rdf.gemspec +42 -0
  11. data/lib/ld4l/works_rdf.rb +131 -0
  12. data/lib/ld4l/works_rdf/configuration.rb +41 -0
  13. data/lib/ld4l/works_rdf/models/bibframe/bibframe_identifier.rb +17 -0
  14. data/lib/ld4l/works_rdf/models/bibframe/bibframe_instance.rb +23 -0
  15. data/lib/ld4l/works_rdf/models/bibframe/bibframe_organization.rb +16 -0
  16. data/lib/ld4l/works_rdf/models/bibframe/bibframe_person.rb +16 -0
  17. data/lib/ld4l/works_rdf/models/bibframe/bibframe_place.rb +16 -0
  18. data/lib/ld4l/works_rdf/models/bibframe/bibframe_provider.rb +18 -0
  19. data/lib/ld4l/works_rdf/models/bibframe/bibframe_title.rb +18 -0
  20. data/lib/ld4l/works_rdf/models/bibframe/bibframe_work.rb +16 -0
  21. data/lib/ld4l/works_rdf/models/bibo/bibo_book.rb +19 -0
  22. data/lib/ld4l/works_rdf/models/bibo/bibo_document.rb +14 -0
  23. data/lib/ld4l/works_rdf/models/bibo/vivo_authorship.rb +15 -0
  24. data/lib/ld4l/works_rdf/models/bibo/vivo_book.rb +18 -0
  25. data/lib/ld4l/works_rdf/models/generic_work.rb +13 -0
  26. data/lib/ld4l/works_rdf/models/schema/oclc_schema_book.rb +16 -0
  27. data/lib/ld4l/works_rdf/models/schema/schema_book.rb +23 -0
  28. data/lib/ld4l/works_rdf/models/schema/schema_person.rb +17 -0
  29. data/lib/ld4l/works_rdf/models/schema/schema_publisher.rb +15 -0
  30. data/lib/ld4l/works_rdf/models/work_metadata.rb +212 -0
  31. data/lib/ld4l/works_rdf/services/attempt_generic_metadata_extraction.rb +41 -0
  32. data/lib/ld4l/works_rdf/services/conversion_services/get_rdfxml_from_marcxml.rb +44 -0
  33. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.ErrorCodes.xqy +56 -0
  34. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MARCXML-2-MADSRDF.xqy +1702 -0
  35. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MARCXML-2-RecordInfoRDF.xqy +216 -0
  36. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MARCXMLBIB-2-BIBFRAME.xqy +140 -0
  37. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MARCXMLBIB-BFUtils.xqy +3287 -0
  38. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MBIB-2-BIBFRAME-Shared.xqy +4112 -0
  39. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MBIB-Default-2-BF.xqy +61 -0
  40. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.MBIB-NotatedMusic-2-BF.xqy +105 -0
  41. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.RDFXML-2-ExhibitJSON.xqy +119 -0
  42. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.RDFXML-2-JSON.xqy +193 -0
  43. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.RDFXML-2-Ntriples.xqy +276 -0
  44. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/modules/module.RDFXMLnested-2-flat.xqy +380 -0
  45. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/xbin/ml.xqy +239 -0
  46. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/xbin/saxon.xqy +134 -0
  47. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/xbin/zorba.xqy +359 -0
  48. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/xbin/zorba2-0.xqy +249 -0
  49. data/lib/ld4l/works_rdf/services/conversion_services/marc2bibframe/xbin/zorba3-0.xqy +362 -0
  50. data/lib/ld4l/works_rdf/services/conversion_services/saxon/saxon9he.jar +0 -0
  51. data/lib/ld4l/works_rdf/services/get_metadata_from_marcxml_uri.rb +43 -0
  52. data/lib/ld4l/works_rdf/services/get_metadata_from_oclc_uri.rb +25 -0
  53. data/lib/ld4l/works_rdf/services/get_metadata_from_solr_query.rb +29 -0
  54. data/lib/ld4l/works_rdf/services/get_metadata_from_vivo_uri.rb +25 -0
  55. data/lib/ld4l/works_rdf/services/get_model_from_uri.rb +62 -0
  56. data/lib/ld4l/works_rdf/services/metadata_services/get_metadata_from_bibframe_models.rb +60 -0
  57. data/lib/ld4l/works_rdf/services/metadata_services/get_metadata_from_bibo_model.rb +42 -0
  58. data/lib/ld4l/works_rdf/services/metadata_services/get_metadata_from_generic_model.rb +41 -0
  59. data/lib/ld4l/works_rdf/services/metadata_services/get_metadata_from_oclc_model.rb +42 -0
  60. data/lib/ld4l/works_rdf/services/metadata_services/get_metadata_from_solr_doc.rb +67 -0
  61. data/lib/ld4l/works_rdf/services/metadata_services/get_metadata_from_vivo_model.rb +45 -0
  62. data/lib/ld4l/works_rdf/services/metadata_services/set_error_in_metadata.rb +27 -0
  63. data/lib/ld4l/works_rdf/services/model_services/populate_bibframe_models_from_repository.rb +46 -0
  64. data/lib/ld4l/works_rdf/services/model_services/populate_generic_model_from_repository.rb +30 -0
  65. data/lib/ld4l/works_rdf/services/model_services/populate_oclc_model_from_repository.rb +27 -0
  66. data/lib/ld4l/works_rdf/services/model_services/populate_vivo_model_from_repository.rb +27 -0
  67. data/lib/ld4l/works_rdf/services/negotiation_services/get_marcxml_from_uri.rb +35 -0
  68. data/lib/ld4l/works_rdf/services/negotiation_services/get_rdfxml_from_uri.rb +37 -0
  69. data/lib/ld4l/works_rdf/services/negotiation_services/get_solr_results_from_solr_query.rb +35 -0
  70. data/lib/ld4l/works_rdf/services/negotiation_services/get_turtle_from_uri.rb +37 -0
  71. data/lib/ld4l/works_rdf/services/negotiation_services/response_header.rb +51 -0
  72. data/lib/ld4l/works_rdf/services/repository_services/populate_graph_from_rdfxml.rb +22 -0
  73. data/lib/ld4l/works_rdf/services/repository_services/populate_graph_from_turtle.rb +21 -0
  74. data/lib/ld4l/works_rdf/services/repository_services/populate_repository_from_graph.rb +25 -0
  75. data/lib/ld4l/works_rdf/version.rb +5 -0
  76. data/lib/ld4l/works_rdf/vocab/bf.rb +29 -0
  77. data/lib/ld4l/works_rdf/vocab/bgn.rb +5 -0
  78. data/lib/ld4l/works_rdf/vocab/bibo.rb +10 -0
  79. data/lib/ld4l/works_rdf/vocab/library.rb +6 -0
  80. data/lib/ld4l/works_rdf/vocab/vitro.rb +5 -0
  81. data/lib/ld4l/works_rdf/vocab/vivo.rb +11 -0
  82. data/spec/ld4l/works_rdf/configuration_spec.rb +166 -0
  83. data/spec/ld4l/works_rdf/models/books/vivo_book_rdf_spec.rb +267 -0
  84. data/spec/ld4l/works_rdf/services/get_metadata_from_uri_spec.rb +39 -0
  85. data/spec/ld4l/works_rdf/services/get_model_from_uri_spec.rb +34 -0
  86. data/spec/ld4l/works_rdf_spec.rb +53 -0
  87. data/spec/spec_helper.rb +26 -0
  88. metadata +321 -0
@@ -0,0 +1,216 @@
1
+ xquery version "1.0";
2
+
3
+ (:
4
+ : Module Name: MADSRDF For Triplestore
5
+ :
6
+ : Module Version: 1.0
7
+ :
8
+ : Date: 2010 Feb 17
9
+ :
10
+ : Copyright: Public Domain
11
+ :
12
+ : Proprietary XQuery Extensions Used: none
13
+ :
14
+ : Xquery Specification: January 2007
15
+ :
16
+ : Module Overview: Primary purpose is to derive
17
+ : administrative metadata from MARCXML for RDF.
18
+ :
19
+ :)
20
+
21
+ (:~
22
+ : Primary purpose is to derive
23
+ : administrative metadata from MARCXML for RDF.
24
+ :
25
+ : @author Kevin Ford (kefo@loc.gov)
26
+ : @since February 14, 2011
27
+ : @version 1.0
28
+ :)
29
+
30
+
31
+ (: NAMESPACES :)
32
+ module namespace marcxml2recordinfo = "info:lc/id-modules/recordInfoRDF#";
33
+ declare namespace marcxml = "http://www.loc.gov/MARC21/slim";
34
+ declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
35
+ declare namespace ri = "http://id.loc.gov/ontologies/RecordInfo#";
36
+
37
+
38
+ (: FUNCTIONS :)
39
+ (:
40
+ -------------------------
41
+
42
+ Dervives admin metadata from MARCXML, returns RecordInfo RDF:
43
+
44
+ $marcxml as element() is the MARCXML
45
+ 100630|| anannbabn |n ana </marcxml:controlfield>
46
+ 00390nz a2200133n 4500
47
+
48
+ -------------------------
49
+ :)
50
+
51
+ (:~
52
+ : This is the main function, which expects a boolean
53
+ : parameter set. It takes MARCXML and
54
+ : generates RecordInfo RDF.
55
+ :
56
+ : @param $marcxml element is the MARCXML
57
+ : @return ri:RecordInfo node
58
+ :)
59
+ declare function marcxml2recordinfo:recordInfoFromMARCXML(
60
+ $marcxml as element(marcxml:record),
61
+ $all as xs:boolean
62
+ ) as element(ri:RecordInfo)* {
63
+ marcxml2recordinfo:marcxml2ri($marcxml, $all)
64
+ };
65
+
66
+ (:~
67
+ : This is the alternate main function, without
68
+ : a boolean parameter set. It defaults to "true."
69
+ : It will output a RecordInfo block for every administrative
70
+ : date present in the MARCXMLfor "all".
71
+ :
72
+ : @param $marcxml element is the MARCXML
73
+ : @return ri:RecordInfo node
74
+ :)
75
+ declare function marcxml2recordinfo:recordInfoFromMARCXML(
76
+ $marcxml as element(marcxml:record)
77
+ ) as element(ri:RecordInfo)* {
78
+ marcxml2recordinfo:marcxml2ri($marcxml, fn:true())
79
+ };
80
+
81
+
82
+ declare function marcxml2recordinfo:marcxml2ri(
83
+ $marcxml as element(marcxml:record),
84
+ $all as xs:boolean
85
+ ) as element(ri:RecordInfo)* {
86
+
87
+ let $marc001 := fn:replace( $marcxml/marcxml:controlfield[@tag='001'] , ' ', '')
88
+
89
+ let $marc005 := $marcxml/marcxml:controlfield[@tag='005']
90
+ let $modifiedDT := fn:concat(
91
+ fn:substring($marc005, 1 , 4),"-",
92
+ fn:substring($marc005, 5 , 2),"-",
93
+ fn:substring($marc005, 7 , 2),
94
+ "T",
95
+ fn:substring($marc005, 9 , 2),":",
96
+ fn:substring($marc005, 11 , 2),":",
97
+ fn:substring($marc005, 13 , 2),""
98
+ )
99
+ (:
100
+ altering the xquery type to "1.0-ml" and performing a try/catch
101
+ will catch an invalid date. But, what does that do for us? It's not
102
+ reported.
103
+ For the time being, I want to catch the errors. Perhaps the validation is performed
104
+ *before* it gets to this point, but I want to know how common this is.
105
+ Of 8M records, there was only 1 invalid date.
106
+ :)
107
+ (:
108
+ let $modifiedDT :=
109
+ try {
110
+ xs:dateTime($modifiedDT)
111
+ } catch ($e) {
112
+ $modifiedDT
113
+ }
114
+ :)
115
+ let $modifiedDT_element :=
116
+ element ri:recordChangeDate {
117
+ attribute rdf:datatype {'http://www.w3.org/2001/XMLSchema#dateTime'},
118
+ text {$modifiedDT}
119
+ }
120
+
121
+ let $marc008 := $marcxml/marcxml:controlfield[@tag='008']
122
+ let $first2digits := fn:substring($marc008 , 1 , 2)
123
+ let $createdYear :=
124
+ if (xs:integer($first2digits) gt 20) then
125
+ fn:concat('19' , $first2digits)
126
+ else
127
+ fn:concat('20' , $first2digits)
128
+ let $createdDT := fn:concat(
129
+ $createdYear,"-",
130
+ fn:substring($marc008, 3 , 2),"-",
131
+ fn:substring($marc008, 5 , 2),
132
+ "T00:00:00"
133
+ )
134
+ (: changing the property here from ri:recordCreationDate
135
+ to ri:recordChangeDate. The recordStatus will indicate
136
+ the type of date
137
+ :)
138
+ let $createdDT_element :=
139
+ element ri:recordChangeDate {
140
+ attribute rdf:datatype {'http://www.w3.org/2001/XMLSchema#dateTime'},
141
+ text {$createdDT}
142
+ }
143
+
144
+ let $createdRecordStatus := "new"
145
+ let $createdRSElement :=
146
+ element ri:recordStatus {
147
+ attribute rdf:datatype {'http://www.w3.org/2001/XMLSchema#string'},
148
+ text {$createdRecordStatus}
149
+ }
150
+
151
+ let $leader_pos5 := fn:substring($marcxml/marcxml:leader, 6 , 1)
152
+ let $record_status :=
153
+ if ($leader_pos5 eq 'd') then
154
+ "deprecated" (: was "deleted" :)
155
+ else if ($leader_pos5 eq 'c') then
156
+ "revised"
157
+ else if ($leader_pos5 eq 'n') then
158
+ "new"
159
+ else if ($leader_pos5 eq 'o') then
160
+ "obsolete"
161
+ else if ($leader_pos5 eq 's') then
162
+ "deleted, replaced by two or more headings"
163
+ else if ($leader_pos5 eq 'x') then
164
+ "deleted, replaced by another"
165
+ else ()
166
+ let $rs_element :=
167
+ element ri:recordStatus {
168
+ attribute rdf:datatype {'http://www.w3.org/2001/XMLSchema#string'},
169
+ text {$record_status}
170
+ }
171
+
172
+ let $marc040a := $marcxml/marcxml:datafield[@tag='040']/marcxml:subfield[@code='a']
173
+ let $content_source :=
174
+ if ($marc040a) then
175
+ element ri:recordContentSource {
176
+ attribute rdf:resource {fn:concat('http://id.loc.gov/vocabulary/organizations/' , fn:lower-case($marc040a))}
177
+ }
178
+ else ()
179
+
180
+ let $marc040b := $marcxml/marcxml:datafield[@tag='040']/marcxml:subfield[@code='b']
181
+ let $language_of_cataloging :=
182
+ if ($marc040b) then
183
+ element ri:languageOfCataloging {
184
+ attribute rdf:resource {fn:concat('http://id.loc.gov/vocabulary/iso639-2/' , fn:lower-case($marc040b))}
185
+ }
186
+ else ()
187
+
188
+ (: let $lf := fn:codepoints-to-string(10) :)
189
+ (:
190
+ The line feeds make validation work.
191
+ There's got to be a better way.
192
+ :)
193
+ let $rdf :=
194
+ (
195
+ if ($all) then
196
+ element ri:RecordInfo {
197
+ $createdDT_element,
198
+ $createdRSElement,
199
+ $content_source,
200
+ $language_of_cataloging
201
+ }
202
+ else (),
203
+ if ($record_status ne "new") then
204
+ element ri:RecordInfo {
205
+ $modifiedDT_element,
206
+ $rs_element,
207
+ $content_source,
208
+ $language_of_cataloging
209
+ }
210
+ else ()
211
+ )
212
+
213
+ return $rdf
214
+
215
+ };
216
+
@@ -0,0 +1,140 @@
1
+ xquery version "1.0";
2
+ (:
3
+ : Module Name: MARCXML BIB to bibframe
4
+ :
5
+ : Module Version: 1.0
6
+ :
7
+ : Date: 2012 Sept 13
8
+ :
9
+ : Copyright: Public Domain
10
+ :
11
+ : Proprietary XQuery Extensions Used: None
12
+ :
13
+ : Xquery Specification: January 2007
14
+ :
15
+ : Module Overview: Transforms a MARC Bib record
16
+ : into its bibframe parts.
17
+ :
18
+ :)
19
+
20
+ (:~
21
+ : Transforms a MARC Bib record
22
+ : into its bibframe parts. This is a *raw*
23
+ : transform, meaning that it takes what it
24
+ : can see and does what it can. To really make this
25
+ : useable, additional work and modules will be necessary
26
+ :
27
+ : For examples of individual marc tags and subfield codes, look here:
28
+ : http://lcweb2.loc.gov/natlib/util/natlib/marctags-nojs.html#[tag number]
29
+ :
30
+ : @author Kevin Ford (kefo@loc.gov)
31
+ : @author Nate Trail (ntra@loc.gov)
32
+ : @since January 30, 2014
33
+ : @version 1.0
34
+ :)
35
+
36
+ module namespace marcbib2bibframe = 'info:lc/id-modules/marcbib2bibframe#';
37
+
38
+ (: MODULES :)
39
+ import module namespace marcxml2madsrdf = "info:lc/id-modules/marcxml2madsrdf#" at "module.MARCXML-2-MADSRDF.xqy";
40
+
41
+ import module namespace music = "info:lc/id-modules/marcnotatedmusic2bf#" at "module.MBIB-NotatedMusic-2-BF.xqy";
42
+ import module namespace bfdefault = "info:lc/id-modules/marcdefault2bf#" at "module.MBIB-Default-2-BF.xqy";
43
+
44
+ import module namespace marcerrors = 'info:lc/id-modules/marcerrors#' at "module.ErrorCodes.xqy";
45
+
46
+ (: NAMESPACES :)
47
+ declare namespace marcxml = "http://www.loc.gov/MARC21/slim";
48
+ declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
49
+ declare namespace rdfs = "http://www.w3.org/2000/01/rdf-schema#";
50
+
51
+ declare namespace bf = "http://bibframe.org/vocab/";
52
+ declare namespace madsrdf = "http://www.loc.gov/mads/rdf/v1#";
53
+ declare namespace relators = "http://id.loc.gov/vocabulary/relators/";
54
+ declare namespace hld = "http://www.loc.gov/opacxml/holdings/" ;
55
+
56
+ (: VARIABLES :)
57
+
58
+ (:~
59
+ : This is the main function. It expects a MARCXML record (with embedded hld:holdings optionally) as input.
60
+ :
61
+ : It generates bibframe RDF data as output.
62
+ :
63
+ : Modified to allow marcxml:collection with multiple marcxml:records of type bib and holdings as an alternate holdings package
64
+ : calling program (ml.xqy, zorba, saxon) makes a package of each bib record plus it's holdings, so there's only one bib.
65
+ : @param $collection element is the top level (may include marcxml and opac holdings)
66
+ : @return rdf:RDF as element()
67
+ :)
68
+ declare function marcbib2bibframe:marcbib2bibframe(
69
+ $collection as element(marcxml:collection),
70
+ $identifier as xs:string
71
+ ) as element(rdf:RDF)
72
+ {
73
+ for $marcxml in $collection/marcxml:record[fn:not(@type) or @type="Bibliographic"]
74
+ let $error := marcerrors:check($marcxml)
75
+ let $out :=
76
+ if ($error) then
77
+ $error
78
+ else
79
+ let $about :=
80
+ if ($identifier eq "") then
81
+ ()
82
+ else if ( fn:not( fn:starts-with($identifier, "http://") ) ) then
83
+ attribute rdf:about { fn:concat("http://id.loc.gov/" , $identifier) }
84
+ else
85
+ attribute rdf:about { $identifier }
86
+
87
+ let $leader:=$marcxml/marcxml:leader
88
+ let $leader6:=fn:substring($leader,7,1)
89
+ let $leader7:=fn:substring($leader,8,1)
90
+
91
+ let $leader67type:=
92
+ if ($leader6="a") then
93
+ if (fn:matches($leader7,"(a|c|d|m)")) then
94
+ "BK"
95
+ else if (fn:matches($leader7,"(b|i|s)")) then
96
+ "SE"
97
+ else ()
98
+ else
99
+ if ($leader6="t") then "BK"
100
+ else if ($leader6="p") then "MM"
101
+ else if ($leader6="m") then "CF"
102
+ else if (fn:matches($leader6,"(e|f|s)")) then "MP"
103
+ else if (fn:matches($leader6,"(g|k|o|r)")) then "VM"
104
+ else if (fn:matches($leader6,"(c|d|i|j)")) then "MU"
105
+ else ()
106
+
107
+ let $musictype:=
108
+ if ($leader67type="MU" and fn:matches($leader6,"(c|d)") ) then "notation"
109
+ else if (fn:matches($leader6,"(i|j)")) then "audio"
110
+ else ()
111
+
112
+ let $work :=
113
+ if ($musictype = "notation") then
114
+ music:generate-notatedmusic-work($collection, $about)
115
+ else
116
+ bfdefault:generate-default-work($collection, $about)
117
+
118
+ return
119
+ <rdf:RDF
120
+ xmlns:rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#"
121
+ xmlns:rdfs = "http://www.w3.org/2000/01/rdf-schema#"
122
+ xmlns:bf = "http://bibframe.org/vocab/"
123
+ xmlns:madsrdf = "http://www.loc.gov/mads/rdf/v1#"
124
+ xmlns:relators = "http://id.loc.gov/vocabulary/relators/"
125
+ >
126
+ {
127
+ $work
128
+ }
129
+ </rdf:RDF>
130
+ return $out
131
+ };
132
+
133
+ declare function marcbib2bibframe:marcbib2bibframe(
134
+ $collection as element(marcxml:collection)
135
+ ) as element(rdf:RDF)
136
+ {
137
+ let $identifier := fn:string(fn:current-time())
138
+ let $identifier := fn:replace($identifier, "([:\-]+)", "")
139
+ return marcbib2bibframe:marcbib2bibframe($collection,$identifier)
140
+ };
@@ -0,0 +1,3287 @@
1
+ xquery version "1.0";
2
+ (:
3
+ : Module Name: MARCXML BIB-BF Utils
4
+ :
5
+ : Module Version: 1.0
6
+ :
7
+ : Date: 2013 August 1
8
+ :
9
+ : Copyright: Public Domain
10
+ :
11
+ : Proprietary XQuery Extensions Used: None
12
+ :
13
+ : Xquery Specification: January 2007
14
+ :
15
+ : Module Overview: Utilities for standard functions used in transforming a MARC Bib record
16
+ : into its bibframe parts.
17
+ :
18
+ :)
19
+
20
+ (:~
21
+ : Functions are called by the module MARCXMLBIB-2-BIBFRAME
22
+ :
23
+ : @author Kevin Ford (kefo@loc.gov)
24
+ : @author Nate Trail (ntra@loc.gov)
25
+ : @since August 1, 2013
26
+ : @version 1.0
27
+ :)
28
+
29
+ module namespace marc2bfutils = 'info:lc/id-modules/marc2bfutils#';
30
+ declare namespace marcxml = "http://www.loc.gov/MARC21/slim";
31
+ declare namespace bf = "http://bibframe.org/vocab/";
32
+ declare namespace rdf = "http://www.w3.org/1999/02/22-rdf-syntax-ns#";
33
+ (: VARIABLES :)
34
+ declare variable $marc2bfutils:resourceTypes := (
35
+ <resourceTypes>
36
+ <type leader6="a">Text</type>
37
+ <type cf007="t">Text</type>
38
+ <type sf336a="(text|tactile text)">Text</type>
39
+ <type sf336b="(txt|tct)">Text</type>
40
+ <type leader6="c">NotatedMusic</type>
41
+ <type leader6="d">NotatedMusic</type>
42
+ <type cf007="q">NotatedMusic</type>
43
+ <type sf336a="(notated music|tactile notated music)">NotatedMusic</type>
44
+ <type sf336b="(ntm|ccm)">NotatedMusic</type>`
45
+ <type sf336a="(notated movement|tactile notated movement)">NotatedMovement</type>
46
+ <type sf336b="(ntv|tcn)">NotatedMovement</type>
47
+
48
+ <type leader6="e">Cartography</type>
49
+ <type leader6="f">Cartography</type>
50
+ <type cf007="adr">Cartography</type>
51
+ <type sf336a="(cartographic dataset|cartographic image|cartographic moving image|cartographic tactile image|cartographic tactile three-dimensional form|cartographic three-dimensional form)">Cartography</type>
52
+ <type sf336b="(tcrd|cri|crm|crt|crn|crf)">Cartography</type>
53
+ <type leader6="g">MovingImage</type>
54
+ <type cf007="m">MovingImage</type>
55
+ <type cf007="v">MovingImage</type>
56
+ <type sf336a="(three-dimensional moving image|two-dimensional moving image|cartographic moving image)">MovingImage</type>
57
+ <type sf336b="(tdm|tdi)">MovingImage</type>
58
+ <type leader6="i">Audio</type>
59
+ <type leader6="j">Audio</type>
60
+ <type cf007="s">Audio</type>
61
+ <type sf336a="(performed music|sounds|spoken word)">Audio</type>
62
+ <type sf336b="(prm|snd|spw)">Audio</type>
63
+ <type sf337a="audio">Audio</type>
64
+ <type sf337b="s">Audio</type>
65
+ <type leader6="k">StillImage</type>
66
+ <type sf336a="(still image|tactile image|cartographic image)">StillImage</type>
67
+ <type sf336b="(sti|tci|cri)">StillImage</type>
68
+ <type leader6="m">Multimedia</type>
69
+ <type sf336a="computer program">Multimedia</type>
70
+ <type sf336b="cop">Multimedia</type>
71
+ <type leader6="m">Dataset</type>
72
+ <type sf336a="(cartographic dataset|computer dataset)">Dataset</type>
73
+ <type sf336b="(crd|cod)">Ddataset</type>
74
+ <type leader6="o">MixedMaterial</type>
75
+ <type leader6="p">MixedMaterial</type>
76
+ <type cf007="o">MixedMaterial</type>
77
+ <type leader6="r">ThreeDimensionalObject</type>
78
+ <type sf336a="(three-dimensional form|tactile three-dimensional form|three-dimensional moving image| cartographic three dimensional form|cartographic tactile three dimensional form)">ThreeDimensionalObject</type>
79
+ <type sf336b="(tdf|tcf|tcm|crf|crn )">ThreeDimensionalObject</type>
80
+ <type leader6="t">Text</type>
81
+ <type cf007="f">Tactile</type>
82
+ <type sf336a="(cartographic tactile image|cartographic tactile three-dimensional form|tactile image|tactile notated music|tactile notated movement|tactile text|tactile three-dimensional form)">Dataset</type>
83
+ <type sf336b="(crt|crn|tci|tcm|tcn|tct|tcf)">Dataset</type>
84
+ </resourceTypes>
85
+ );
86
+ (:008-20 for MU type of resource:)
87
+ declare variable $marc2bfutils:musicFormats:=(
88
+
89
+ <musicFormats>
90
+ <term cf008-20="a">Full score</term>
91
+ <term cf008-20="b">Full score, miniature or study size</term>
92
+ <term cf008-20="c">Accompaniment reduced for keyboard</term>
93
+ <term cf008-20="d">Voice score with accompaniment omitted</term>
94
+ <term cf008-20="e">Condensed score or piano-conductor score</term>
95
+ <term cf008-20="g">Close score</term>
96
+ <term cf008-20="h">Chorus score</term>
97
+ <term cf008-20="i">Condensed score</term>
98
+ </musicFormats>
99
+ );
100
+ declare variable $marc2bfutils:instanceTypes := (
101
+ <instanceTypes>
102
+ <type leader6="d">Manuscript</type>
103
+ <type leader6="f">Manuscript</type>
104
+ <type leader6="t">Manuscript</type>
105
+ <type leader7="c">Collection</type>
106
+ <type leader7="d">Collection</type>
107
+ <type leader7="i">Integrating</type>
108
+ <type leader7="b">Serial</type>
109
+ <type leader7="s">Serial</type>
110
+ <type leader8="a">Archival</type>
111
+ <type cf007="f">Tactile</type>
112
+ <type cf007="c">Electronic</type>
113
+ <type sf336a="tactile text">Tactile</type>
114
+ <type sf336b="tct">Tactile</type>
115
+ </instanceTypes>
116
+ );
117
+ declare variable $marc2bfutils:targetAudiences := (
118
+ <targetAudiences>
119
+ <type cf008-22="a">Pre</type>
120
+ <type cf008-22="b">Pri</type>
121
+ <type cf008-22="c">Pra</type>
122
+ <type cf008-22="d">Ado</type>
123
+ <type cf008-22="e">Adu</type>
124
+ <type cf008-22="f">Spe</type>
125
+ <type cf008-22="g">Gen</type>
126
+ <type cf008-22="j">Juv</type>
127
+ </targetAudiences>
128
+ );
129
+
130
+ declare variable $marc2bfutils:subject-types := (
131
+ <subjectTypes>
132
+ <subject tag="600">Person</subject>
133
+ <subject tag="610">Organization</subject>
134
+ <subject tag="611">Meeting</subject>
135
+ <!--<subject tag="630">Work</subject>-->
136
+ <subject tag="648">Temporal</subject>
137
+ <subject tag="650">Topic</subject>
138
+ <!--<subject tag="651">Place</subject>-->
139
+ <subject tag="654">Topic</subject>
140
+ <subject tag="655">Topic</subject>
141
+ <!--<subject tag="655">Genre</subject>
142
+ <subject tag="656">Occupation</subject>
143
+ <subject tag="657">Function</subject>
144
+ <subject tag="658">Objective</subject>-->
145
+
146
+ <subject tag="656">Topic</subject>
147
+ <subject tag="657">Topic</subject>
148
+ <subject tag="658">Topic</subject>
149
+ <!--<subject tag="662">Place</subject> -->
150
+ <!--<subject tag="662">HierarchicalPlace</subject>-->
151
+ <subject tag="653">Topic</subject>
152
+ <subject tag="751">Place</subject>
153
+ <subject tag="752">Topic</subject>
154
+ <!--<subject tag="752">HierarchicalPlace</subject>-->
155
+ </subjectTypes>
156
+ );
157
+ declare variable $marc2bfutils:formsOfItems := (
158
+ <formsOfItems>
159
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="a">Microfilm</type>
160
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="b">Microfiche</type>
161
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="c">Microopaque</type>
162
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="d">Large print</type>
163
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="f">Braille</type>
164
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial SoftwareApplication" cf008-23="o">Online</type>
165
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial SoftwareApplication" cf008-23="q">Direct electronic</type>
166
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="r">Regular print reproduction</type>
167
+ <type rType="Text Book NotatedMusic MusicRecording MixedMaterial" cf008-23="s">Electronic</type>
168
+ </formsOfItems>
169
+ );
170
+ declare variable $marc2bfutils:classes := (
171
+ <vocab>
172
+ <class>ClassificationEntity</class>
173
+ <property name="classificationNumber" label="classification number" domain="Work" marc="050,051,055,060,061,070,071,080,082,083,084,086--/a" tag="(050|051|055|060|061|070|071|080|082|083|084|086)" sfcodes="a"/>
174
+ <property name="classificationItem" label="classification item number" domain="Holding" marc="050|051,055,060,061,070,071,080,082,083,084,086--/b" tag="(050|051|055|060|061|070|071|080|082|083|084|086)" sfcodes="b"/>
175
+ <!--<property name="classificationCopy" label="Copy part of call number" domain="Work" marc="051,061,071- -/c" tag="(051|061|071)" sfcodes="c"/>-->
176
+ <property name="classificationSpanEnd" label="classification span end for class number" domain="Work" marc="083--/c" tag="083" sfcodes="c"/>
177
+ <property name="classificationTableSeq" label="DDC table sequence number" domain="Work" marc="083--/y" tag="083" sfcodes="y"/>
178
+ <property name="classificationTable" label="DDC table" domain="" marc="083--/z" tag="083" sfcodes="z"/>
179
+ <property name="classificationScheme" label="type of classification" domain="Work" marc="086--/2" tag="086" sfcodes="2"/>
180
+ <property name="classificationEdition" label="edition of class scheme" domain="Work" marc="If 080,082,083 1- then 'abridged'" tag="(080|082|083)" ind1="1"/>
181
+ <property name="classificationEdition" label="edition of class scheme" domain="Work" marc="If 080,082,083 1- then 'full'" tag="080|082|083" ind1="0"/>
182
+ <property name="classificationAssigner" label="institution assigning classification" domain="Work" marc="if 070,071 then NAL" tag="(050|051|060|061|070|071|082|083|084)"/>
183
+
184
+ <property name="classificationDesignation" label="Part of class scheme used" domain="Work" marc="if 082,083 --/m=a then'standard', m=b then 'optional'" tag="(082|083)" sfcodes="m=a then'standard', m=b then 'optional'"/>
185
+ <property name="classificationStatus" label="status of classification" domain="Work" marc="if 086/z then status=canceled/invalid" tag="if " sfcodes="z then status=canceled/invalid"/>
186
+ <property name="classificationLcc" label="LCC Classification" domain="Work" marc="050,051,055,070,071--/a" tag="(050|051|052|055|070|071)" sfcodes="a" level="property"/>
187
+ <property name="classificationNlm" label="NLM Classification" domain="Work" marc="060,061--/a" tag="(060|061)" sfcodes="a" level="property"/>
188
+ <property name="classification" label="classification" domain="Work" marc="084,086--/a" tag="(084|086)" ind1=" " sfcodes="a" level="property"/>
189
+ <property name="classificationDdc" label="DDC Classification" domain="Work" marc="083--/a'hyphen'c" tag="083" sfcodes="a'hyphen'c" level="property"/>
190
+ <property name="classificationDdc" label="DDC Classification" domain="Work" marc="082--/a" tag="082" sfcodes="a" level="property"/>
191
+ <property name="classificationUdc" label="UDC Classification" domain="Work" marc="080--/a+c" tag="080" sfcodes="a+c" level="property"/>
192
+ </vocab>
193
+ );
194
+ declare variable $marc2bfutils:sounds := (
195
+ (:if ($d/ancestor::marcxml:record/marcxml:controlfield[@tag="007"] and fn:matches(fn:substring($d/ancestor::marcxml:record/marcxml:controlfield[@tag="007"],1,1) ,"(c|g|m|v)")) then:)
196
+ <sounds >
197
+ <type cf007-5="a">Sound on medium</type>
198
+ <type cf007-5="b">Sound separate from medium</type>
199
+ <type cf007-5="u">Unknown</type>
200
+ <type cf007-6="b">Magnetic sound track on motion picture film</type>
201
+ <type cf007-6="c">Magnetic audio tape in cartridge</type>
202
+ <type cf007-6="d">Sound disc</type>
203
+ <type cf007-6="e">Magnetic audio tape on reel</type>
204
+ <type cf007-6="f">Magnetic audio tape in cassette</type>
205
+ <type cf007-6="g">Optical and magnetic sound track on motion picture film</type>
206
+ <type cf007-6="h">Videotape</type>
207
+ <type cf007-6="i">Videodisc</type>
208
+ <type cf007-6="u">Unknown</type>
209
+ </sounds>
210
+ );
211
+
212
+ (:
213
+ relators crosswalk
214
+ @source http://id.loc.gov/vocabulary/relators
215
+ @since 2014-05-15
216
+ :)
217
+ declare variable $marc2bfutils:role-xwalk:=
218
+ (<relators updated="2014-10-24">
219
+ <term roletext="abridger" rolecode="abr" uri="http://id.loc.gov/vocabulary/relators/abr"/>
220
+ <term roletext="actor" rolecode="act" uri="http://id.loc.gov/vocabulary/relators/act"/>
221
+ <term roletext="adapter" rolecode="adp" uri="http://id.loc.gov/vocabulary/relators/adp"/>
222
+ <term roletext="addressee" rolecode="rcp" uri="http://id.loc.gov/vocabulary/relators/rcp">
223
+ <var roletext="recipient" rolecode="rcp"/>
224
+ </term>
225
+ <term roletext="analyst" rolecode="anl" uri="http://id.loc.gov/vocabulary/relators/anl"/>
226
+ <term roletext="animator" rolecode="anm" uri="http://id.loc.gov/vocabulary/relators/anm"/>
227
+ <term roletext="annotator" rolecode="ann" uri="http://id.loc.gov/vocabulary/relators/ann"/>
228
+ <term roletext="appellant" rolecode="apl" uri="http://id.loc.gov/vocabulary/relators/apl"/>
229
+ <term roletext="appellee" rolecode="ape" uri="http://id.loc.gov/vocabulary/relators/ape"/>
230
+ <term roletext="applicant" rolecode="app" uri="http://id.loc.gov/vocabulary/relators/app"/>
231
+ <term roletext="architect" rolecode="arc" uri="http://id.loc.gov/vocabulary/relators/arc"/>
232
+ <term roletext="arranger" rolecode="arr" uri="http://id.loc.gov/vocabulary/relators/arr">
233
+ <var roletext="arranger of music" rolecode="arr"/>
234
+ </term>
235
+ <term roletext="art copyist" rolecode="acp" uri="http://id.loc.gov/vocabulary/relators/acp"/>
236
+ <term roletext="art director" rolecode="adi" uri="http://id.loc.gov/vocabulary/relators/adi"/>
237
+ <term roletext="artist" rolecode="art" uri="http://id.loc.gov/vocabulary/relators/art">
238
+ <var roletext="graphic technician" rolecode="art"/>
239
+ </term>
240
+ <term roletext="artistic director" rolecode="ard" uri="http://id.loc.gov/vocabulary/relators/ard"/>
241
+ <term roletext="assignee" rolecode="asg" uri="http://id.loc.gov/vocabulary/relators/asg"/>
242
+ <term roletext="associated name" rolecode="asn" uri="http://id.loc.gov/vocabulary/relators/asn"/>
243
+ <term roletext="attributed name" rolecode="att" uri="http://id.loc.gov/vocabulary/relators/att">
244
+ <var roletext="supposed name" rolecode="att"/>
245
+ </term>
246
+ <term roletext="auctioneer" rolecode="auc" uri="http://id.loc.gov/vocabulary/relators/auc"/>
247
+ <term roletext="author" rolecode="aut" uri="http://id.loc.gov/vocabulary/relators/aut">
248
+ <var roletext="joint author" rolecode="aut"/>
249
+ </term>
250
+ <term roletext="author in quotations or text abstracts" rolecode="aqt" uri="http://id.loc.gov/vocabulary/relators/aqt"/>
251
+ <term roletext="author of afterword, colophon, etc." rolecode="aft" uri="http://id.loc.gov/vocabulary/relators/aft"/>
252
+ <term roletext="author of dialog" rolecode="aud" uri="http://id.loc.gov/vocabulary/relators/aud"/>
253
+ <term roletext="author of introduction, etc." rolecode="aui" uri="http://id.loc.gov/vocabulary/relators/aui"/>
254
+ <term roletext="autographer" rolecode="ato" uri="http://id.loc.gov/vocabulary/relators/ato"/>
255
+ <term roletext="bibliographic antecedent" rolecode="ant" uri="http://id.loc.gov/vocabulary/relators/ant"/>
256
+ <term roletext="binder" rolecode="bnd" uri="http://id.loc.gov/vocabulary/relators/bnd"/>
257
+ <term roletext="binding designer" rolecode="bdd" uri="http://id.loc.gov/vocabulary/relators/bdd">
258
+ <var roletext="designer of binding" rolecode="bdd"/>
259
+ </term>
260
+ <term roletext="blurb writer" rolecode="blw" uri="http://id.loc.gov/vocabulary/relators/blw"/>
261
+ <term roletext="book designer" rolecode="bkd" uri="http://id.loc.gov/vocabulary/relators/bkd">
262
+ <var roletext="designer of book" rolecode="bkd"/>
263
+ <var roletext="designer of e-book" rolecode="bkd"/>
264
+ </term>
265
+ <term roletext="book producer" rolecode="bkp" uri="http://id.loc.gov/vocabulary/relators/bkp">
266
+ <var roletext="producer of book" rolecode="bkp"/>
267
+ </term>
268
+ <term roletext="bookjacket designer" rolecode="bjd" uri="http://id.loc.gov/vocabulary/relators/bjd">
269
+ <var roletext="designer of bookjacket" rolecode="bjd"/>
270
+ </term>
271
+ <term roletext="bookplate designer" rolecode="bpd" uri="http://id.loc.gov/vocabulary/relators/bpd"/>
272
+ <term roletext="bookseller" rolecode="bsl" uri="http://id.loc.gov/vocabulary/relators/bsl"/>
273
+ <term roletext="braille embosser" rolecode="brl" uri="http://id.loc.gov/vocabulary/relators/brl"/>
274
+ <term roletext="broadcaster" rolecode="brd" uri="http://id.loc.gov/vocabulary/relators/brd"/>
275
+ <term roletext="calligrapher" rolecode="cll" uri="http://id.loc.gov/vocabulary/relators/cll"/>
276
+ <term roletext="cartographer" rolecode="ctg" uri="http://id.loc.gov/vocabulary/relators/ctg"/>
277
+ <term roletext="caster" rolecode="cas" uri="http://id.loc.gov/vocabulary/relators/cas"/>
278
+ <term roletext="censor" rolecode="cns" uri="http://id.loc.gov/vocabulary/relators/cns">
279
+ <var roletext="bowdlerizer" rolecode="cns"/>
280
+ <var roletext="expurgator" rolecode="cns"/>
281
+ </term>
282
+ <term roletext="choreographer" rolecode="chr" uri="http://id.loc.gov/vocabulary/relators/chr"/>
283
+ <term roletext="cinematographer" rolecode="cng" uri="http://id.loc.gov/vocabulary/relators/cng">
284
+ <var roletext="director of photography" rolecode="cng"/>
285
+ </term>
286
+ <term roletext="client" rolecode="cli" uri="http://id.loc.gov/vocabulary/relators/cli"/>
287
+ <term roletext="collection registrar" rolecode="cor" uri="http://id.loc.gov/vocabulary/relators/cor"/>
288
+ <term roletext="collector" rolecode="col" uri="http://id.loc.gov/vocabulary/relators/col"/>
289
+ <term roletext="collotyper" rolecode="clt" uri="http://id.loc.gov/vocabulary/relators/clt"/>
290
+ <term roletext="colorist" rolecode="clr" uri="http://id.loc.gov/vocabulary/relators/clr"/>
291
+ <term roletext="commentator" rolecode="cmm" uri="http://id.loc.gov/vocabulary/relators/cmm"/>
292
+ <term roletext="commentator for written text" rolecode="cwt" uri="http://id.loc.gov/vocabulary/relators/cwt"/>
293
+ <term roletext="compiler" rolecode="com" uri="http://id.loc.gov/vocabulary/relators/com"/>
294
+ <term roletext="complainant" rolecode="cpl" uri="http://id.loc.gov/vocabulary/relators/cpl"/>
295
+ <term roletext="complainant-appellant" rolecode="cpt" uri="http://id.loc.gov/vocabulary/relators/cpt"/>
296
+ <term roletext="complainant-appellee" rolecode="cpe" uri="http://id.loc.gov/vocabulary/relators/cpe"/>
297
+ <term roletext="composer" rolecode="cmp" uri="http://id.loc.gov/vocabulary/relators/cmp"/>
298
+ <term roletext="compositor" rolecode="cmt" uri="http://id.loc.gov/vocabulary/relators/cmt">
299
+ <var roletext="typesetter" rolecode="cmt"/>
300
+ </term>
301
+ <term roletext="conceptor" rolecode="ccp" uri="http://id.loc.gov/vocabulary/relators/ccp"/>
302
+ <term roletext="conductor" rolecode="cnd" uri="http://id.loc.gov/vocabulary/relators/cnd"/>
303
+ <term roletext="conservator" rolecode="con" uri="http://id.loc.gov/vocabulary/relators/con">
304
+ <var roletext="preservationist" rolecode="con"/>
305
+ </term>
306
+ <term roletext="consultant" rolecode="csl" uri="http://id.loc.gov/vocabulary/relators/csl"/>
307
+ <term roletext="consultant to a project" rolecode="csp" uri="http://id.loc.gov/vocabulary/relators/csp"/>
308
+ <term roletext="contestant" rolecode="cos" uri="http://id.loc.gov/vocabulary/relators/cos"/>
309
+ <term roletext="contestant-appellant" rolecode="cot" uri="http://id.loc.gov/vocabulary/relators/cot"/>
310
+ <term roletext="contestant-appellee" rolecode="coe" uri="http://id.loc.gov/vocabulary/relators/coe"/>
311
+ <term roletext="contestee" rolecode="cts" uri="http://id.loc.gov/vocabulary/relators/cts"/>
312
+ <term roletext="contestee-appellant" rolecode="ctt" uri="http://id.loc.gov/vocabulary/relators/ctt"/>
313
+ <term roletext="contestee-appellee" rolecode="cte" uri="http://id.loc.gov/vocabulary/relators/cte"/>
314
+ <term roletext="contractor" rolecode="ctr" uri="http://id.loc.gov/vocabulary/relators/ctr"/>
315
+ <term roletext="contributor" rolecode="ctb" uri="http://id.loc.gov/vocabulary/relators/ctb">
316
+ <var roletext="collaborator" rolecode="ctb"/>
317
+ </term>
318
+ <term roletext="copyright claimant" rolecode="cpc" uri="http://id.loc.gov/vocabulary/relators/cpc"/>
319
+ <term roletext="copyright holder" rolecode="cph" uri="http://id.loc.gov/vocabulary/relators/cph"/>
320
+ <term roletext="corrector" rolecode="crr" uri="http://id.loc.gov/vocabulary/relators/crr"/>
321
+ <term roletext="correspondent" rolecode="crp" uri="http://id.loc.gov/vocabulary/relators/crp"/>
322
+ <term roletext="costume designer" rolecode="cst" uri="http://id.loc.gov/vocabulary/relators/cst"/>
323
+ <term roletext="court governed" rolecode="cou" uri="http://id.loc.gov/vocabulary/relators/cou"/>
324
+ <term roletext="court reporter" rolecode="crt" uri="http://id.loc.gov/vocabulary/relators/crt"/>
325
+ <term roletext="cover designer" rolecode="cov" uri="http://id.loc.gov/vocabulary/relators/cov">
326
+ <var roletext="designer of cover" rolecode="cov"/>
327
+ </term>
328
+ <term roletext="creator" rolecode="cre" uri="http://id.loc.gov/vocabulary/relators/cre"/>
329
+ <term roletext="curator" rolecode="cur" uri="http://id.loc.gov/vocabulary/relators/cur">
330
+ <var roletext="curator of an exhibition" rolecode="cur"/>
331
+ </term>
332
+ <term roletext="dancer" rolecode="dnc" uri="http://id.loc.gov/vocabulary/relators/dnc"/>
333
+ <term roletext="data contributor" rolecode="dtc" uri="http://id.loc.gov/vocabulary/relators/dtc"/>
334
+ <term roletext="data manager" rolecode="dtm" uri="http://id.loc.gov/vocabulary/relators/dtm"/>
335
+ <term roletext="dedicatee" rolecode="dte" uri="http://id.loc.gov/vocabulary/relators/dte">
336
+ <var roletext="dedicatee of item" rolecode="dte"/>
337
+ </term>
338
+ <term roletext="dedicator" rolecode="dto" uri="http://id.loc.gov/vocabulary/relators/dto"/>
339
+ <term roletext="defendant" rolecode="dfd" uri="http://id.loc.gov/vocabulary/relators/dfd"/>
340
+ <term roletext="defendant-appellant" rolecode="dft" uri="http://id.loc.gov/vocabulary/relators/dft"/>
341
+ <term roletext="defendant-appellee" rolecode="dfe" uri="http://id.loc.gov/vocabulary/relators/dfe"/>
342
+ <term roletext="degree granting institution" rolecode="dgg" uri="http://id.loc.gov/vocabulary/relators/dgg">
343
+ <var roletext="degree grantor" rolecode="dgg"/>
344
+ </term>
345
+ <term roletext="degree supervisor" rolecode="dgs" uri="http://id.loc.gov/vocabulary/relators/dgs"/>
346
+ <term roletext="delineator" rolecode="dln" uri="http://id.loc.gov/vocabulary/relators/dln"/>
347
+ <term roletext="depicted" rolecode="dpc" uri="http://id.loc.gov/vocabulary/relators/dpc"/>
348
+ <term roletext="depositor" rolecode="dpt" uri="http://id.loc.gov/vocabulary/relators/dpt"/>
349
+ <term roletext="designer" rolecode="dsr" uri="http://id.loc.gov/vocabulary/relators/dsr"/>
350
+ <term roletext="director" rolecode="drt" uri="http://id.loc.gov/vocabulary/relators/drt"/>
351
+ <term roletext="dissertant" rolecode="dis" uri="http://id.loc.gov/vocabulary/relators/dis"/>
352
+ <term roletext="distribution place" rolecode="dbp" uri="http://id.loc.gov/vocabulary/relators/dbp"/>
353
+ <term roletext="distributor" rolecode="dst" uri="http://id.loc.gov/vocabulary/relators/dst"/>
354
+ <term roletext="donor" rolecode="dnr" uri="http://id.loc.gov/vocabulary/relators/dnr"/>
355
+ <term roletext="draftsman" rolecode="drm" uri="http://id.loc.gov/vocabulary/relators/drm">
356
+ <var roletext="technical draftsman" rolecode="drm"/>
357
+ </term>
358
+ <term roletext="dubious author" rolecode="dub" uri="http://id.loc.gov/vocabulary/relators/dub"/>
359
+ <term roletext="editor" rolecode="edt" uri="http://id.loc.gov/vocabulary/relators/edt"/>
360
+ <term roletext="editor of compilation" rolecode="edc" uri="http://id.loc.gov/vocabulary/relators/edc"/>
361
+ <term roletext="editor of moving image work" rolecode="edm" uri="http://id.loc.gov/vocabulary/relators/edm">
362
+ <var roletext="moving image work editor" rolecode="edm"/>
363
+ </term>
364
+ <term roletext="electrician" rolecode="elg" uri="http://id.loc.gov/vocabulary/relators/elg">
365
+ <var roletext="chief electrician" rolecode="elg"/>
366
+ <var roletext="house electrician" rolecode="elg"/>
367
+ <var roletext="master electrician" rolecode="elg"/>
368
+ </term>
369
+ <term roletext="electrotyper" rolecode="elt" uri="http://id.loc.gov/vocabulary/relators/elt"/>
370
+ <term roletext="enacting jurisdiction" rolecode="enj" uri="http://id.loc.gov/vocabulary/relators/enj"/>
371
+ <term roletext="engineer" rolecode="eng" uri="http://id.loc.gov/vocabulary/relators/eng"/>
372
+ <term roletext="engraver" rolecode="egr" uri="http://id.loc.gov/vocabulary/relators/egr"/>
373
+ <term roletext="etcher" rolecode="etr" uri="http://id.loc.gov/vocabulary/relators/etr"/>
374
+ <term roletext="event place" rolecode="evp" uri="http://id.loc.gov/vocabulary/relators/evp"/>
375
+ <term roletext="expert" rolecode="exp" uri="http://id.loc.gov/vocabulary/relators/exp">
376
+ <var roletext="appraiser" rolecode="exp"/>
377
+ </term>
378
+ <term roletext="facsimilist" rolecode="fac" uri="http://id.loc.gov/vocabulary/relators/fac">
379
+ <var roletext="copier" rolecode="fac"/>
380
+ </term>
381
+ <term roletext="field director" rolecode="fld" uri="http://id.loc.gov/vocabulary/relators/fld"/>
382
+ <term roletext="film distributor" rolecode="fds" uri="http://id.loc.gov/vocabulary/relators/fds"/>
383
+ <term roletext="film director" rolecode="fmd" uri="http://id.loc.gov/vocabulary/relators/fmd"/>
384
+ <term roletext="film editor" rolecode="flm" uri="http://id.loc.gov/vocabulary/relators/flm">
385
+ <var roletext="motion picture editor" rolecode="flm"/>
386
+ </term>
387
+ <term roletext="film producer" rolecode="fmp" uri="http://id.loc.gov/vocabulary/relators/fmp"/>
388
+ <term roletext="filmmaker" rolecode="fmk" uri="http://id.loc.gov/vocabulary/relators/fmk"/>
389
+ <term roletext="first party" rolecode="fpy" uri="http://id.loc.gov/vocabulary/relators/fpy"/>
390
+ <term roletext="forger" rolecode="frg" uri="http://id.loc.gov/vocabulary/relators/frg">
391
+ <var roletext="copier" rolecode="frg"/>
392
+ <var roletext="counterfeiter" rolecode="frg"/>
393
+ </term>
394
+ <term roletext="former owner" rolecode="fmo" uri="http://id.loc.gov/vocabulary/relators/fmo"/>
395
+ <term roletext="funder" rolecode="fnd" uri="http://id.loc.gov/vocabulary/relators/fnd"/>
396
+ <term roletext="geographic information specialist" rolecode="gis" uri="http://id.loc.gov/vocabulary/relators/gis">
397
+ <var roletext="geospatial information specialist" rolecode="gis"/>
398
+ </term>
399
+ <term roletext="honoree" rolecode="hnr" uri="http://id.loc.gov/vocabulary/relators/hnr">
400
+ <var roletext="honouree" rolecode="hnr"/>
401
+ <var roletext="honouree of item" rolecode="hnr"/>
402
+ </term>
403
+ <term roletext="host" rolecode="hst" uri="http://id.loc.gov/vocabulary/relators/hst"/>
404
+ <term roletext="host institution" rolecode="his" uri="http://id.loc.gov/vocabulary/relators/his"/>
405
+ <term roletext="illuminator" rolecode="ilu" uri="http://id.loc.gov/vocabulary/relators/ilu"/>
406
+ <term roletext="illustrator" rolecode="ill" uri="http://id.loc.gov/vocabulary/relators/ill"/>
407
+ <term roletext="inscriber" rolecode="ins" uri="http://id.loc.gov/vocabulary/relators/ins"/>
408
+ <term roletext="instrumentalist" rolecode="itr" uri="http://id.loc.gov/vocabulary/relators/itr"/>
409
+ <term roletext="interviewee" rolecode="ive" uri="http://id.loc.gov/vocabulary/relators/ive"/>
410
+ <term roletext="interviewer" rolecode="ivr" uri="http://id.loc.gov/vocabulary/relators/ivr"/>
411
+ <term roletext="inventor" rolecode="inv" uri="http://id.loc.gov/vocabulary/relators/inv">
412
+ <var roletext="patent inventor" rolecode="inv"/>
413
+ </term>
414
+ <term roletext="issuing body" rolecode="isb" uri="http://id.loc.gov/vocabulary/relators/isb"/>
415
+ <term roletext="judge" rolecode="jud" uri="http://id.loc.gov/vocabulary/relators/jud"/>
416
+ <term roletext="jurisdiction governed" rolecode="jug" uri="http://id.loc.gov/vocabulary/relators/jug"/>
417
+ <term roletext="laboratory" rolecode="lbr" uri="http://id.loc.gov/vocabulary/relators/lbr"/>
418
+ <term roletext="laboratory director" rolecode="ldr" uri="http://id.loc.gov/vocabulary/relators/ldr">
419
+ <var roletext="lab director" rolecode="ldr"/>
420
+ </term>
421
+ <term roletext="landscape architect" rolecode="lsa" uri="http://id.loc.gov/vocabulary/relators/lsa"/>
422
+ <term roletext="lead" rolecode="led" uri="http://id.loc.gov/vocabulary/relators/led"/>
423
+ <term roletext="lender" rolecode="len" uri="http://id.loc.gov/vocabulary/relators/len"/>
424
+ <term roletext="libelant" rolecode="lil" uri="http://id.loc.gov/vocabulary/relators/lil"/>
425
+ <term roletext="libelant-appellant" rolecode="lit" uri="http://id.loc.gov/vocabulary/relators/lit"/>
426
+ <term roletext="libelant-appellee" rolecode="lie" uri="http://id.loc.gov/vocabulary/relators/lie"/>
427
+ <term roletext="libelee" rolecode="lel" uri="http://id.loc.gov/vocabulary/relators/lel"/>
428
+ <term roletext="libelee-appellant" rolecode="let" uri="http://id.loc.gov/vocabulary/relators/let"/>
429
+ <term roletext="libelee-appellee" rolecode="lee" uri="http://id.loc.gov/vocabulary/relators/lee"/>
430
+ <term roletext="librettist" rolecode="lbt" uri="http://id.loc.gov/vocabulary/relators/lbt"/>
431
+ <term roletext="licensee" rolecode="lse" uri="http://id.loc.gov/vocabulary/relators/lse"/>
432
+ <term roletext="licensor" rolecode="lso" uri="http://id.loc.gov/vocabulary/relators/lso">
433
+ <var roletext="imprimatur" rolecode="lso"/>
434
+ </term>
435
+ <term roletext="lighting designer" rolecode="lgd" uri="http://id.loc.gov/vocabulary/relators/lgd"/>
436
+ <term roletext="lithographer" rolecode="ltg" uri="http://id.loc.gov/vocabulary/relators/ltg"/>
437
+ <term roletext="lyricist" rolecode="lyr" uri="http://id.loc.gov/vocabulary/relators/lyr"/>
438
+ <term roletext="manufacture place" rolecode="mfp" uri="http://id.loc.gov/vocabulary/relators/mfp"/>
439
+ <term roletext="manufacturer" rolecode="mfr" uri="http://id.loc.gov/vocabulary/relators/mfr"/>
440
+ <term roletext="marbler" rolecode="mrb" uri="http://id.loc.gov/vocabulary/relators/mrb"/>
441
+ <term roletext="markup editor" rolecode="mrk" uri="http://id.loc.gov/vocabulary/relators/mrk">
442
+ <var roletext="encoder" rolecode="mrk"/>
443
+ </term>
444
+ <term roletext="medium" rolecode="med" uri="http://id.loc.gov/vocabulary/relators/med"/>
445
+ <term roletext="metadata contact" rolecode="mdc" uri="http://id.loc.gov/vocabulary/relators/mdc"/>
446
+ <term roletext="metal-engraver" rolecode="mte" uri="http://id.loc.gov/vocabulary/relators/mte"/>
447
+ <term roletext="minute taker" rolecode="mtk" uri="http://id.loc.gov/vocabulary/relators/mtk"/>
448
+ <term roletext="moderator" rolecode="mod" uri="http://id.loc.gov/vocabulary/relators/mod"/>
449
+ <term roletext="monitor" rolecode="mon" uri="http://id.loc.gov/vocabulary/relators/mon"/>
450
+ <term roletext="music copyist" rolecode="mcp" uri="http://id.loc.gov/vocabulary/relators/mcp"/>
451
+ <term roletext="musical director" rolecode="msd" uri="http://id.loc.gov/vocabulary/relators/msd"/>
452
+ <term roletext="musician" rolecode="mus" uri="http://id.loc.gov/vocabulary/relators/mus"/>
453
+ <term roletext="narrator" rolecode="nrt" uri="http://id.loc.gov/vocabulary/relators/nrt"/>
454
+ <term roletext="onscreen presenter" rolecode="osp" uri="http://id.loc.gov/vocabulary/relators/osp"/>
455
+ <term roletext="opponent" rolecode="opn" uri="http://id.loc.gov/vocabulary/relators/opn"/>
456
+ <term roletext="organizer" rolecode="orm" uri="http://id.loc.gov/vocabulary/relators/orm">
457
+ <var roletext="organizer of meeting" rolecode="orm"/>
458
+ </term>
459
+ <term roletext="originator" rolecode="org" uri="http://id.loc.gov/vocabulary/relators/org"/>
460
+ <term roletext="other" rolecode="oth" uri="http://id.loc.gov/vocabulary/relators/oth"/>
461
+ <term roletext="owner" rolecode="own" uri="http://id.loc.gov/vocabulary/relators/own">
462
+ <var roletext="current owner" rolecode="own"/>
463
+ </term>
464
+ <term roletext="panelist" rolecode="pan" uri="http://id.loc.gov/vocabulary/relators/pan"/>
465
+ <term roletext="papermaker" rolecode="ppm" uri="http://id.loc.gov/vocabulary/relators/ppm"/>
466
+ <term roletext="patent applicant" rolecode="pta" uri="http://id.loc.gov/vocabulary/relators/pta"/>
467
+ <term roletext="patent holder" rolecode="pth" uri="http://id.loc.gov/vocabulary/relators/pth">
468
+ <var roletext="patentee" rolecode="pth"/>
469
+ </term>
470
+ <term roletext="patron" rolecode="pat" uri="http://id.loc.gov/vocabulary/relators/pat"/>
471
+ <term roletext="performer" rolecode="prf" uri="http://id.loc.gov/vocabulary/relators/prf"/>
472
+ <term roletext="permitting agency" rolecode="pma" uri="http://id.loc.gov/vocabulary/relators/pma"/>
473
+ <term roletext="photographer" rolecode="pht" uri="http://id.loc.gov/vocabulary/relators/pht"/>
474
+ <term roletext="plaintiff" rolecode="ptf" uri="http://id.loc.gov/vocabulary/relators/ptf"/>
475
+ <term roletext="plaintiff-appellant" rolecode="ptt" uri="http://id.loc.gov/vocabulary/relators/ptt"/>
476
+ <term roletext="plaintiff-appellee" rolecode="pte" uri="http://id.loc.gov/vocabulary/relators/pte"/>
477
+ <term roletext="platemaker" rolecode="plt" uri="http://id.loc.gov/vocabulary/relators/plt"/>
478
+ <term roletext="praeses" rolecode="pra" uri="http://id.loc.gov/vocabulary/relators/pra"/>
479
+ <term roletext="presenter" rolecode="pre" uri="http://id.loc.gov/vocabulary/relators/pre"/>
480
+ <term roletext="printer" rolecode="prt" uri="http://id.loc.gov/vocabulary/relators/prt"/>
481
+ <term roletext="printer of plates" rolecode="pop" uri="http://id.loc.gov/vocabulary/relators/pop">
482
+ <var roletext="plates, printer of" rolecode="pop"/>
483
+ </term>
484
+ <term roletext="printmaker" rolecode="prm" uri="http://id.loc.gov/vocabulary/relators/prm"/>
485
+ <term roletext="process contact" rolecode="prc" uri="http://id.loc.gov/vocabulary/relators/prc"/>
486
+ <term roletext="producer" rolecode="pro" uri="http://id.loc.gov/vocabulary/relators/pro"/>
487
+ <term roletext="production company" rolecode="prn" uri="http://id.loc.gov/vocabulary/relators/prn"/>
488
+ <term roletext="production designer" rolecode="prs" uri="http://id.loc.gov/vocabulary/relators/prs"/>
489
+ <term roletext="production manager" rolecode="pmn" uri="http://id.loc.gov/vocabulary/relators/pmn"/>
490
+ <term roletext="production personnel" rolecode="prd" uri="http://id.loc.gov/vocabulary/relators/prd"/>
491
+ <term roletext="production place" rolecode="prp" uri="http://id.loc.gov/vocabulary/relators/prp"/>
492
+ <term roletext="programmer" rolecode="prg" uri="http://id.loc.gov/vocabulary/relators/prg"/>
493
+ <term roletext="project director" rolecode="pdr" uri="http://id.loc.gov/vocabulary/relators/pdr"/>
494
+ <term roletext="proofreader" rolecode="pfr" uri="http://id.loc.gov/vocabulary/relators/pfr"/>
495
+ <term roletext="provider" rolecode="prv" uri="http://id.loc.gov/vocabulary/relators/prv"/>
496
+ <term roletext="publication place" rolecode="pup" uri="http://id.loc.gov/vocabulary/relators/pup"/>
497
+ <term roletext="publisher" rolecode="pbl" uri="http://id.loc.gov/vocabulary/relators/pbl"/>
498
+ <term roletext="publishing director" rolecode="pbd" uri="http://id.loc.gov/vocabulary/relators/pbd"/>
499
+ <term roletext="puppeteer" rolecode="ppt" uri="http://id.loc.gov/vocabulary/relators/ppt"/>
500
+ <term roletext="radio director" rolecode="rdd" uri="http://id.loc.gov/vocabulary/relators/rdd"/>
501
+ <term roletext="radio producer" rolecode="rpc" uri="http://id.loc.gov/vocabulary/relators/rpc"/>
502
+ <term roletext="recording engineer" rolecode="rce" uri="http://id.loc.gov/vocabulary/relators/rce"/>
503
+ <term roletext="recordist" rolecode="rcd" uri="http://id.loc.gov/vocabulary/relators/rcd"/>
504
+ <term roletext="redaktor" rolecode="red" uri="http://id.loc.gov/vocabulary/relators/red"/>
505
+ <term roletext="renderer" rolecode="ren" uri="http://id.loc.gov/vocabulary/relators/ren"/>
506
+ <term roletext="reporter" rolecode="rpt" uri="http://id.loc.gov/vocabulary/relators/rpt"/>
507
+ <term roletext="repository" rolecode="rps" uri="http://id.loc.gov/vocabulary/relators/rps"/>
508
+ <term roletext="research team head" rolecode="rth" uri="http://id.loc.gov/vocabulary/relators/rth"/>
509
+ <term roletext="research team member" rolecode="rtm" uri="http://id.loc.gov/vocabulary/relators/rtm"/>
510
+ <term roletext="researcher" rolecode="res" uri="http://id.loc.gov/vocabulary/relators/res">
511
+ <var roletext="performer of research" rolecode="res"/>
512
+ </term>
513
+ <term roletext="respondent" rolecode="rsp" uri="http://id.loc.gov/vocabulary/relators/rsp"/>
514
+ <term roletext="respondent-appellant" rolecode="rst" uri="http://id.loc.gov/vocabulary/relators/rst"/>
515
+ <term roletext="respondent-appellee" rolecode="rse" uri="http://id.loc.gov/vocabulary/relators/rse"/>
516
+ <term roletext="responsible party" rolecode="rpy" uri="http://id.loc.gov/vocabulary/relators/rpy"/>
517
+ <term roletext="restager" rolecode="rsg" uri="http://id.loc.gov/vocabulary/relators/rsg"/>
518
+ <term roletext="restorationist" rolecode="rsr" uri="http://id.loc.gov/vocabulary/relators/rsr"/>
519
+ <term roletext="reviewer" rolecode="rev" uri="http://id.loc.gov/vocabulary/relators/rev"/>
520
+ <term roletext="rubricator" rolecode="rbr" uri="http://id.loc.gov/vocabulary/relators/rbr"/>
521
+ <term roletext="scenarist" rolecode="sce" uri="http://id.loc.gov/vocabulary/relators/sce"/>
522
+ <term roletext="scientific advisor" rolecode="sad" uri="http://id.loc.gov/vocabulary/relators/sad"/>
523
+ <term roletext="screenwriter" rolecode="aus" uri="http://id.loc.gov/vocabulary/relators/aus">
524
+ <var roletext="author of screenplay, etc." rolecode="aus"/>
525
+ </term>
526
+ <term roletext="scribe" rolecode="scr" uri="http://id.loc.gov/vocabulary/relators/scr"/>
527
+ <term roletext="sculptor" rolecode="scl" uri="http://id.loc.gov/vocabulary/relators/scl"/>
528
+ <term roletext="second party" rolecode="spy" uri="http://id.loc.gov/vocabulary/relators/spy"/>
529
+ <term roletext="secretary" rolecode="sec" uri="http://id.loc.gov/vocabulary/relators/sec"/>
530
+ <term roletext="seller" rolecode="sll" uri="http://id.loc.gov/vocabulary/relators/sll"/>
531
+ <term roletext="set designer" rolecode="std" uri="http://id.loc.gov/vocabulary/relators/std"/>
532
+ <term roletext="setting" rolecode="stg" uri="http://id.loc.gov/vocabulary/relators/stg"/>
533
+ <term roletext="signer" rolecode="sgn" uri="http://id.loc.gov/vocabulary/relators/sgn"/>
534
+ <term roletext="singer" rolecode="sng" uri="http://id.loc.gov/vocabulary/relators/sng">
535
+ <var roletext="vocalist" rolecode="sng"/>
536
+ </term>
537
+ <term roletext="sound designer" rolecode="sds" uri="http://id.loc.gov/vocabulary/relators/sds"/>
538
+ <term roletext="speaker" rolecode="spk" uri="http://id.loc.gov/vocabulary/relators/spk"/>
539
+ <term roletext="sponsor" rolecode="spn" uri="http://id.loc.gov/vocabulary/relators/spn">
540
+ <var roletext="sponsoring body" rolecode="spn"/>
541
+ </term>
542
+ <term roletext="stage director" rolecode="sgd" uri="http://id.loc.gov/vocabulary/relators/sgd"/>
543
+ <term roletext="stage manager" rolecode="stm" uri="http://id.loc.gov/vocabulary/relators/stm"/>
544
+ <term roletext="standards body" rolecode="stn" uri="http://id.loc.gov/vocabulary/relators/stn"/>
545
+ <term roletext="stereotyper" rolecode="str" uri="http://id.loc.gov/vocabulary/relators/str"/>
546
+ <term roletext="storyteller" rolecode="stl" uri="http://id.loc.gov/vocabulary/relators/stl"/>
547
+ <term roletext="supporting host" rolecode="sht" uri="http://id.loc.gov/vocabulary/relators/sht">
548
+ <var roletext="host, supporting" rolecode="sht"/>
549
+ </term>
550
+ <term roletext="surveyor" rolecode="srv" uri="http://id.loc.gov/vocabulary/relators/srv"/>
551
+ <term roletext="teacher" rolecode="tch" uri="http://id.loc.gov/vocabulary/relators/tch">
552
+ <var roletext="instructor" rolecode="tch"/>
553
+ </term>
554
+ <term roletext="technical director" rolecode="tcd" uri="http://id.loc.gov/vocabulary/relators/tcd"/>
555
+ <term roletext="television director" rolecode="tld" uri="http://id.loc.gov/vocabulary/relators/tld"/>
556
+ <term roletext="television producer" rolecode="tlp" uri="http://id.loc.gov/vocabulary/relators/tlp"/>
557
+ <term roletext="thesis advisor" rolecode="ths" uri="http://id.loc.gov/vocabulary/relators/ths">
558
+ <var roletext="promoter" rolecode="ths"/>
559
+ </term>
560
+ <term roletext="transcriber" rolecode="trc" uri="http://id.loc.gov/vocabulary/relators/trc"/>
561
+ <term roletext="translator" rolecode="trl" uri="http://id.loc.gov/vocabulary/relators/trl"/>
562
+ <term roletext="type designer" rolecode="tyd" uri="http://id.loc.gov/vocabulary/relators/tyd">
563
+ <var roletext="designer of type" rolecode="tyd"/>
564
+ </term>
565
+ <term roletext="typographer" rolecode="tyg" uri="http://id.loc.gov/vocabulary/relators/tyg"/>
566
+ <term roletext="university place" rolecode="uvp" uri="http://id.loc.gov/vocabulary/relators/uvp"/>
567
+ <term roletext="videographer" rolecode="vdg" uri="http://id.loc.gov/vocabulary/relators/vdg"/>
568
+ <term roletext="voice actor" rolecode="vac" uri="http://id.loc.gov/vocabulary/relators/vac"/>
569
+ <term roletext="witness" rolecode="wit" uri="http://id.loc.gov/vocabulary/relators/wit">
570
+ <var roletext="deponent" rolecode="wit"/>
571
+ <var roletext="eyewitness" rolecode="wit"/>
572
+ <var roletext="observer" rolecode="wit"/>
573
+ <var roletext="onlooker" rolecode="wit"/>
574
+ <var roletext="testifier" rolecode="wit"/>
575
+ </term>
576
+ <term roletext="wood engraver" rolecode="wde" uri="http://id.loc.gov/vocabulary/relators/wde"/>
577
+ <term roletext="woodcutter" rolecode="wdc" uri="http://id.loc.gov/vocabulary/relators/wdc"/>
578
+ <term roletext="writer of accompanying material" rolecode="wam" uri="http://id.loc.gov/vocabulary/relators/wam"/>
579
+ <term roletext="writer of added commentary" rolecode="wac" uri="http://id.loc.gov/vocabulary/relators/wac"/>
580
+ <term roletext="writer of added text" rolecode="wat" uri="http://id.loc.gov/vocabulary/relators/wat"/>
581
+ <term roletext="writer of added lyrics" rolecode="wal" uri="http://id.loc.gov/vocabulary/relators/wal"/>
582
+ <term roletext="writer of supplementary textual content" rolecode="wst" uri="http://id.loc.gov/vocabulary/relators/wst"/>
583
+ <term roletext="writer of introduction" rolecode="win" uri="http://id.loc.gov/vocabulary/relators/win"/>
584
+ <term roletext="writer of preface" rolecode="wpr" uri="http://id.loc.gov/vocabulary/relators/wpr"/>
585
+ <term roletext="collaborator" rolecode="ctb" uri="http://id.loc.gov/vocabulary/relators/ctb" deprecated="yes"/>
586
+ <term roletext="graphic technician" rolecode="art" uri="http://id.loc.gov/vocabulary/relators/art" deprecated="yes"/>
587
+ <term roletext="vocalist" rolecode="sng" uri="http://id.loc.gov/vocabulary/relators/sng" deprecated="yes"/>
588
+ </relators>
589
+ );
590
+ (:
591
+ @since January 11, 2013
592
+ @source http://www.loc.gov/standards/iso639-2/php/code_list.php
593
+ :)
594
+ declare variable $marc2bfutils:lang-xwalk:=
595
+ (
596
+
597
+ <xml-langs edited="January 11, 2013">
598
+ <!--from http://www.loc.gov/standards/iso639-2/php/code_list.php-->
599
+ <language language-name="Afar" iso6391="aa" xmllang="aa">
600
+ <iso6392>aar</iso6392>
601
+ </language>
602
+ <language language-name="Abkhazian" iso6391="ab" xmllang="ab">
603
+ <iso6392>abk</iso6392>
604
+ </language>
605
+ <language language-name="Achinese" iso6391="" xmllang="ace">
606
+ <iso6392>ace</iso6392>
607
+ </language>
608
+ <language language-name="Acoli" iso6391="" xmllang="ach">
609
+ <iso6392>ach</iso6392>
610
+ </language>
611
+ <language language-name="Adangme" iso6391="" xmllang="ada">
612
+ <iso6392>ada</iso6392>
613
+ </language>
614
+ <language language-name="Adyghe; Adygei" iso6391="" xmllang="ady">
615
+ <iso6392>ady</iso6392>
616
+ </language>
617
+ <language language-name="Afro-Asiatic languages" iso6391="" xmllang="afa">
618
+ <iso6392>afa</iso6392>
619
+ </language>
620
+ <language language-name="Afrihili" iso6391="" xmllang="afh">
621
+ <iso6392>afh</iso6392>
622
+ </language>
623
+ <language language-name="Afrikaans" iso6391="af" xmllang="af">
624
+ <iso6392>afr</iso6392>
625
+ </language>
626
+ <language language-name="Ainu" iso6391="" xmllang="ain">
627
+ <iso6392>ain</iso6392>
628
+ </language>
629
+ <language language-name="Akan" iso6391="ak" xmllang="ak">
630
+ <iso6392>aka</iso6392>
631
+ </language>
632
+ <language language-name="Akkadian" iso6391="" xmllang="akk">
633
+ <iso6392>akk</iso6392>
634
+ </language>
635
+ <language language-name="Albanian" iso6391="sq" xmllang="sq">
636
+ <iso6392>sqi</iso6392>
637
+ <iso6392>alb</iso6392>
638
+ </language>
639
+ <language language-name="Aleut" iso6391="" xmllang="ale">
640
+ <iso6392>ale</iso6392>
641
+ </language>
642
+ <language language-name="Algonquian languages" iso6391="" xmllang="alg">
643
+ <iso6392>alg</iso6392>
644
+ </language>
645
+ <language language-name="Southern Altai" iso6391="" xmllang="alt">
646
+ <iso6392>alt</iso6392>
647
+ </language>
648
+ <language language-name="Amharic" iso6391="am" xmllang="am">
649
+ <iso6392>amh</iso6392>
650
+ </language>
651
+ <language language-name="English, Old (ca.450-1100)" iso6391="" xmllang="ang">
652
+ <iso6392>ang</iso6392>
653
+ </language>
654
+ <language language-name="Angika" iso6391="" xmllang="anp">
655
+ <iso6392>anp</iso6392>
656
+ </language>
657
+ <language language-name="Apache languages" iso6391="" xmllang="apa">
658
+ <iso6392>apa</iso6392>
659
+ </language>
660
+ <language language-name="Arabic" iso6391="ar" xmllang="ar">
661
+ <iso6392>ara</iso6392>
662
+ </language>
663
+ <language language-name="Official Aramaic (700-300 BCE); Imperial Aramaic (700-300 BCE)"
664
+ iso6391=""
665
+ xmllang="arc">
666
+ <iso6392>arc</iso6392>
667
+ </language>
668
+ <language language-name="Aragonese" iso6391="an" xmllang="an">
669
+ <iso6392>arg</iso6392>
670
+ </language>
671
+ <language language-name="Armenian" iso6391="hy" xmllang="hy">
672
+ <iso6392>hye</iso6392>
673
+ <iso6392>arm</iso6392>
674
+ </language>
675
+ <language language-name="Mapudungun; Mapuche" iso6391="" xmllang="arn">
676
+ <iso6392>arn</iso6392>
677
+ </language>
678
+ <language language-name="Arapaho" iso6391="" xmllang="arp">
679
+ <iso6392>arp</iso6392>
680
+ </language>
681
+ <language language-name="Artificial languages" iso6391="" xmllang="art">
682
+ <iso6392>art</iso6392>
683
+ </language>
684
+ <language language-name="Arawak" iso6391="" xmllang="arw">
685
+ <iso6392>arw</iso6392>
686
+ </language>
687
+ <language language-name="Assamese" iso6391="as" xmllang="as">
688
+ <iso6392>asm</iso6392>
689
+ </language>
690
+ <language language-name="Asturian; Bable; Leonese; Asturleonese" iso6391="" xmllang="ast">
691
+ <iso6392>ast</iso6392>
692
+ </language>
693
+ <language language-name="Athapascan languages" iso6391="" xmllang="ath">
694
+ <iso6392>ath</iso6392>
695
+ </language>
696
+ <language language-name="Australian languages" iso6391="" xmllang="aus">
697
+ <iso6392>aus</iso6392>
698
+ </language>
699
+ <language language-name="Avaric" iso6391="av" xmllang="av">
700
+ <iso6392>ava</iso6392>
701
+ </language>
702
+ <language language-name="Avestan" iso6391="ae" xmllang="ae">
703
+ <iso6392>ave</iso6392>
704
+ </language>
705
+ <language language-name="Awadhi" iso6391="" xmllang="awa">
706
+ <iso6392>awa</iso6392>
707
+ </language>
708
+ <language language-name="Aymara" iso6391="ay" xmllang="ay">
709
+ <iso6392>aym</iso6392>
710
+ </language>
711
+ <language language-name="Azerbaijani" iso6391="az" xmllang="az">
712
+ <iso6392>aze</iso6392>
713
+ </language>
714
+ <language language-name="Banda languages" iso6391="" xmllang="bad">
715
+ <iso6392>bad</iso6392>
716
+ </language>
717
+ <language language-name="Bamileke languages" iso6391="" xmllang="bai">
718
+ <iso6392>bai</iso6392>
719
+ </language>
720
+ <language language-name="Bashkir" iso6391="ba" xmllang="ba">
721
+ <iso6392>bak</iso6392>
722
+ </language>
723
+ <language language-name="Baluchi" iso6391="" xmllang="bal">
724
+ <iso6392>bal</iso6392>
725
+ </language>
726
+ <language language-name="Bambara" iso6391="bm" xmllang="bm">
727
+ <iso6392>bam</iso6392>
728
+ </language>
729
+ <language language-name="Balinese" iso6391="" xmllang="ban">
730
+ <iso6392>ban</iso6392>
731
+ </language>
732
+ <language language-name="Basque" iso6391="eu" xmllang="eu">
733
+ <iso6392>eus</iso6392>
734
+ <iso6392>baq</iso6392>
735
+ </language>
736
+ <language language-name="Basa" iso6391="" xmllang="bas">
737
+ <iso6392>bas</iso6392>
738
+ </language>
739
+ <language language-name="Baltic languages" iso6391="" xmllang="bat">
740
+ <iso6392>bat</iso6392>
741
+ </language>
742
+ <language language-name="Beja; Bedawiyet" iso6391="" xmllang="bej">
743
+ <iso6392>bej</iso6392>
744
+ </language>
745
+ <language language-name="Belarusian" iso6391="be" xmllang="be">
746
+ <iso6392>bel</iso6392>
747
+ </language>
748
+ <language language-name="Bemba" iso6391="" xmllang="bem">
749
+ <iso6392>bem</iso6392>
750
+ </language>
751
+ <language language-name="Bengali" iso6391="bn" xmllang="bn">
752
+ <iso6392>ben</iso6392>
753
+ </language>
754
+ <language language-name="Berber languages" iso6391="" xmllang="ber">
755
+ <iso6392>ber</iso6392>
756
+ </language>
757
+ <language language-name="Bhojpuri" iso6391="" xmllang="bho">
758
+ <iso6392>bho</iso6392>
759
+ </language>
760
+ <language language-name="Bihari languages" iso6391="bh" xmllang="bh">
761
+ <iso6392>bih</iso6392>
762
+ </language>
763
+ <language language-name="Bikol" iso6391="" xmllang="bik">
764
+ <iso6392>bik</iso6392>
765
+ </language>
766
+ <language language-name="Bini; Edo" iso6391="" xmllang="bin">
767
+ <iso6392>bin</iso6392>
768
+ </language>
769
+ <language language-name="Bislama" iso6391="bi" xmllang="bi">
770
+ <iso6392>bis</iso6392>
771
+ </language>
772
+ <language language-name="Siksika" iso6391="" xmllang="bla">
773
+ <iso6392>bla</iso6392>
774
+ </language>
775
+ <language language-name="Bantu languages" iso6391="" xmllang="bnt">
776
+ <iso6392>bnt</iso6392>
777
+ </language>
778
+ <language language-name="Tibetan" iso6391="bo" xmllang="bo">
779
+ <iso6392>bod</iso6392>
780
+ <iso6392>tib</iso6392>
781
+ </language>
782
+ <language language-name="Bosnian" iso6391="bs" xmllang="bs">
783
+ <iso6392>bos</iso6392>
784
+ </language>
785
+ <language language-name="Braj" iso6391="" xmllang="bra">
786
+ <iso6392>bra</iso6392>
787
+ </language>
788
+ <language language-name="Breton" iso6391="br" xmllang="br">
789
+ <iso6392>bre</iso6392>
790
+ </language>
791
+ <language language-name="Batak languages" iso6391="" xmllang="btk">
792
+ <iso6392>btk</iso6392>
793
+ </language>
794
+ <language language-name="Buriat" iso6391="" xmllang="bua">
795
+ <iso6392>bua</iso6392>
796
+ </language>
797
+ <language language-name="Buginese" iso6391="" xmllang="bug">
798
+ <iso6392>bug</iso6392>
799
+ </language>
800
+ <language language-name="Bulgarian" iso6391="bg" xmllang="bg">
801
+ <iso6392>bul</iso6392>
802
+ </language>
803
+ <language language-name="Burmese" iso6391="my" xmllang="my">
804
+ <iso6392>mya</iso6392>
805
+ <iso6392>bur</iso6392>
806
+ </language>
807
+ <language language-name="Blin; Bilin" iso6391="" xmllang="byn">
808
+ <iso6392>byn</iso6392>
809
+ </language>
810
+ <language language-name="Caddo" iso6391="" xmllang="cad">
811
+ <iso6392>cad</iso6392>
812
+ </language>
813
+ <language language-name="Central American Indian languages" iso6391="" xmllang="cai">
814
+ <iso6392>cai</iso6392>
815
+ </language>
816
+ <language language-name="Galibi Carib" iso6391="" xmllang="car">
817
+ <iso6392>car</iso6392>
818
+ </language>
819
+ <language language-name="Catalan; Valencian" iso6391="ca" xmllang="ca">
820
+ <iso6392>cat</iso6392>
821
+ </language>
822
+ <language language-name="Caucasian languages" iso6391="" xmllang="cau">
823
+ <iso6392>cau</iso6392>
824
+ </language>
825
+ <language language-name="Cebuano" iso6391="" xmllang="ceb">
826
+ <iso6392>ceb</iso6392>
827
+ </language>
828
+ <language language-name="Celtic languages" iso6391="" xmllang="cel">
829
+ <iso6392>cel</iso6392>
830
+ </language>
831
+ <language language-name="Czech" iso6391="cs" xmllang="cs">
832
+ <iso6392>ces</iso6392>
833
+ <iso6392>cze</iso6392>
834
+ </language>
835
+ <language language-name="Chamorro" iso6391="ch" xmllang="ch">
836
+ <iso6392>cha</iso6392>
837
+ </language>
838
+ <language language-name="Chibcha" iso6391="" xmllang="chb">
839
+ <iso6392>chb</iso6392>
840
+ </language>
841
+ <language language-name="Chechen" iso6391="ce" xmllang="ce">
842
+ <iso6392>che</iso6392>
843
+ </language>
844
+ <language language-name="Chagatai" iso6391="" xmllang="chg">
845
+ <iso6392>chg</iso6392>
846
+ </language>
847
+ <language language-name="Chinese" iso6391="zh" xmllang="zh">
848
+ <iso6392>zho</iso6392>
849
+ <iso6392>chi</iso6392>
850
+ </language>
851
+ <language language-name="Chuukese" iso6391="" xmllang="chk">
852
+ <iso6392>chk</iso6392>
853
+ </language>
854
+ <language language-name="Mari" iso6391="" xmllang="chm">
855
+ <iso6392>chm</iso6392>
856
+ </language>
857
+ <language language-name="Chinook jargon" iso6391="" xmllang="chn">
858
+ <iso6392>chn</iso6392>
859
+ </language>
860
+ <language language-name="Choctaw" iso6391="" xmllang="cho">
861
+ <iso6392>cho</iso6392>
862
+ </language>
863
+ <language language-name="Chipewyan; Dene Suline" iso6391="" xmllang="chp">
864
+ <iso6392>chp</iso6392>
865
+ </language>
866
+ <language language-name="Cherokee" iso6391="" xmllang="chr">
867
+ <iso6392>chr</iso6392>
868
+ </language>
869
+ <language language-name="Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic"
870
+ iso6391="cu"
871
+ xmllang="cu">
872
+ <iso6392>chu</iso6392>
873
+ </language>
874
+ <language language-name="Chuvash" iso6391="cv" xmllang="cv">
875
+ <iso6392>chv</iso6392>
876
+ </language>
877
+ <language language-name="Cheyenne" iso6391="" xmllang="chy">
878
+ <iso6392>chy</iso6392>
879
+ </language>
880
+ <language language-name="Chamic languages" iso6391="" xmllang="cmc">
881
+ <iso6392>cmc</iso6392>
882
+ </language>
883
+ <language language-name="Coptic" iso6391="" xmllang="cop">
884
+ <iso6392>cop</iso6392>
885
+ </language>
886
+ <language language-name="Cornish" iso6391="kw" xmllang="kw">
887
+ <iso6392>cor</iso6392>
888
+ </language>
889
+ <language language-name="Corsican" iso6391="co" xmllang="co">
890
+ <iso6392>cos</iso6392>
891
+ </language>
892
+ <language language-name="Creoles and pidgins, English based" iso6391="" xmllang="cpe">
893
+ <iso6392>cpe</iso6392>
894
+ </language>
895
+ <language language-name="Creoles and pidgins, French-based" iso6391="" xmllang="cpf">
896
+ <iso6392>cpf</iso6392>
897
+ </language>
898
+ <language language-name="Creoles and pidgins, Portuguese-based" iso6391="" xmllang="cpp">
899
+ <iso6392>cpp</iso6392>
900
+ </language>
901
+ <language language-name="Cree" iso6391="cr" xmllang="cr">
902
+ <iso6392>cre</iso6392>
903
+ </language>
904
+ <language language-name="Crimean Tatar; Crimean Turkish" iso6391="" xmllang="crh">
905
+ <iso6392>crh</iso6392>
906
+ </language>
907
+ <language language-name="Creoles and pidgins" iso6391="" xmllang="crp">
908
+ <iso6392>crp</iso6392>
909
+ </language>
910
+ <language language-name="Kashubian" iso6391="" xmllang="csb">
911
+ <iso6392>csb</iso6392>
912
+ </language>
913
+ <language language-name="Cushitic languages" iso6391="" xmllang="cus">
914
+ <iso6392>cus</iso6392>
915
+ </language>
916
+ <language language-name="Welsh" iso6391="cy" xmllang="cy">
917
+ <iso6392>cym</iso6392>
918
+ <iso6392>wel</iso6392>
919
+ </language>
920
+ <language language-name="Dakota" iso6391="" xmllang="dak">
921
+ <iso6392>dak</iso6392>
922
+ </language>
923
+ <language language-name="Danish" iso6391="da" xmllang="da">
924
+ <iso6392>dan</iso6392>
925
+ </language>
926
+ <language language-name="Dargwa" iso6391="" xmllang="dar">
927
+ <iso6392>dar</iso6392>
928
+ </language>
929
+ <language language-name="Land Dayak languages" iso6391="" xmllang="day">
930
+ <iso6392>day</iso6392>
931
+ </language>
932
+ <language language-name="Delaware" iso6391="" xmllang="del">
933
+ <iso6392>del</iso6392>
934
+ </language>
935
+ <language language-name="Slave (Athapascan)" iso6391="" xmllang="den">
936
+ <iso6392>den</iso6392>
937
+ </language>
938
+ <language language-name="German" iso6391="de" xmllang="de">
939
+ <iso6392>ger</iso6392>
940
+ <iso6392>deu</iso6392>
941
+ </language>
942
+ <language language-name="Dogrib" iso6391="" xmllang="dgr">
943
+ <iso6392>dgr</iso6392>
944
+ </language>
945
+ <language language-name="Dinka" iso6391="" xmllang="din">
946
+ <iso6392>din</iso6392>
947
+ </language>
948
+ <language language-name="Divehi; Dhivehi; Maldivian" iso6391="dv" xmllang="dv">
949
+ <iso6392>div</iso6392>
950
+ </language>
951
+ <language language-name="Dogri" iso6391="" xmllang="doi">
952
+ <iso6392>doi</iso6392>
953
+ </language>
954
+ <language language-name="Dravidian languages" iso6391="" xmllang="dra">
955
+ <iso6392>dra</iso6392>
956
+ </language>
957
+ <language language-name="Lower Sorbian" iso6391="" xmllang="dsb">
958
+ <iso6392>dsb</iso6392>
959
+ </language>
960
+ <language language-name="Duala" iso6391="" xmllang="dua">
961
+ <iso6392>dua</iso6392>
962
+ </language>
963
+ <language language-name="Dutch, Middle (ca.1050-1350)" iso6391="" xmllang="dum">
964
+ <iso6392>dum</iso6392>
965
+ </language>
966
+ <language language-name="Dutch; Flemish" iso6391="nl" xmllang="nl">
967
+ <iso6392>nld</iso6392>
968
+ <iso6392>dut</iso6392>
969
+ </language>
970
+ <language language-name="Dyula" iso6391="" xmllang="dyu">
971
+ <iso6392>dyu</iso6392>
972
+ </language>
973
+ <language language-name="Dzongkha" iso6391="dz" xmllang="dz">
974
+ <iso6392>dzo</iso6392>
975
+ </language>
976
+ <language language-name="Efik" iso6391="" xmllang="efi">
977
+ <iso6392>efi</iso6392>
978
+ </language>
979
+ <language language-name="Egyptian (Ancient)" iso6391="" xmllang="egy">
980
+ <iso6392>egy</iso6392>
981
+ </language>
982
+ <language language-name="Ekajuk" iso6391="" xmllang="eka">
983
+ <iso6392>eka</iso6392>
984
+ </language>
985
+ <language language-name="Greek, Modern (1453-)" iso6391="el" xmllang="el">
986
+ <iso6392>ell</iso6392>
987
+ <iso6392>gre</iso6392>
988
+ </language>
989
+ <language language-name="Elamite" iso6391="" xmllang="elx">
990
+ <iso6392>elx</iso6392>
991
+ </language>
992
+ <language language-name="English" iso6391="en" xmllang="en">
993
+ <iso6392>eng</iso6392>
994
+ </language>
995
+ <language language-name="English, Middle (1100-1500)" iso6391="" xmllang="enm">
996
+ <iso6392>enm</iso6392>
997
+ </language>
998
+ <language language-name="Esperanto" iso6391="eo" xmllang="eo">
999
+ <iso6392>epo</iso6392>
1000
+ </language>
1001
+ <language language-name="Estonian" iso6391="et" xmllang="et">
1002
+ <iso6392>est</iso6392>
1003
+ </language>
1004
+ <language language-name="Ewe" iso6391="ee" xmllang="ee">
1005
+ <iso6392>ewe</iso6392>
1006
+ </language>
1007
+ <language language-name="Ewondo" iso6391="" xmllang="ewo">
1008
+ <iso6392>ewo</iso6392>
1009
+ </language>
1010
+ <language language-name="Fang" iso6391="" xmllang="fan">
1011
+ <iso6392>fan</iso6392>
1012
+ </language>
1013
+ <language language-name="Faroese" iso6391="fo" xmllang="fo">
1014
+ <iso6392>fao</iso6392>
1015
+ </language>
1016
+ <language language-name="Persian" iso6391="fa" xmllang="fa">
1017
+ <iso6392>fas</iso6392>
1018
+ <iso6392>per</iso6392>
1019
+ </language>
1020
+ <language language-name="Fanti" iso6391="" xmllang="fat">
1021
+ <iso6392>fat</iso6392>
1022
+ </language>
1023
+ <language language-name="Fijian" iso6391="fj" xmllang="fj">
1024
+ <iso6392>fij</iso6392>
1025
+ </language>
1026
+ <language language-name="Filipino; Pilipino" iso6391="" xmllang="fil">
1027
+ <iso6392>fil</iso6392>
1028
+ </language>
1029
+ <language language-name="Finnish" iso6391="fi" xmllang="fi">
1030
+ <iso6392>fin</iso6392>
1031
+ </language>
1032
+ <language language-name="Finno-Ugrian languages" iso6391="" xmllang="fiu">
1033
+ <iso6392>fiu</iso6392>
1034
+ </language>
1035
+ <language language-name="Fon" iso6391="" xmllang="fon">
1036
+ <iso6392>fon</iso6392>
1037
+ </language>
1038
+ <language language-name="French" iso6391="fr" xmllang="fr">
1039
+ <iso6392>fre</iso6392>
1040
+ <iso6392>fra</iso6392>
1041
+ </language>
1042
+ <language language-name="French, Middle (ca.1400-1600)" iso6391="" xmllang="frm">
1043
+ <iso6392>frm</iso6392>
1044
+ </language>
1045
+ <language language-name="French, Old (842-ca.1400)" iso6391="" xmllang="fro">
1046
+ <iso6392>fro</iso6392>
1047
+ </language>
1048
+ <language language-name="Northern Frisian" iso6391="" xmllang="frr">
1049
+ <iso6392>frr</iso6392>
1050
+ </language>
1051
+ <language language-name="Eastern Frisian" iso6391="" xmllang="frs">
1052
+ <iso6392>frs</iso6392>
1053
+ </language>
1054
+ <language language-name="Western Frisian" iso6391="fy" xmllang="fy">
1055
+ <iso6392>fry</iso6392>
1056
+ </language>
1057
+ <language language-name="Fulah" iso6391="ff" xmllang="ff">
1058
+ <iso6392>ful</iso6392>
1059
+ </language>
1060
+ <language language-name="Friulian" iso6391="" xmllang="fur">
1061
+ <iso6392>fur</iso6392>
1062
+ </language>
1063
+ <language language-name="Ga" iso6391="" xmllang="gaa">
1064
+ <iso6392>gaa</iso6392>
1065
+ </language>
1066
+ <language language-name="Gayo" iso6391="" xmllang="gay">
1067
+ <iso6392>gay</iso6392>
1068
+ </language>
1069
+ <language language-name="Gbaya" iso6391="" xmllang="gba">
1070
+ <iso6392>gba</iso6392>
1071
+ </language>
1072
+ <language language-name="Germanic languages" iso6391="" xmllang="gem">
1073
+ <iso6392>gem</iso6392>
1074
+ </language>
1075
+ <language language-name="Georgian" iso6391="ka" xmllang="ka">
1076
+ <iso6392>geo</iso6392>
1077
+ <iso6392>kat</iso6392>
1078
+ </language>
1079
+ <language language-name="Geez" iso6391="" xmllang="gez">
1080
+ <iso6392>gez</iso6392>
1081
+ </language>
1082
+ <language language-name="Gilbertese" iso6391="" xmllang="gil">
1083
+ <iso6392>gil</iso6392>
1084
+ </language>
1085
+ <language language-name="Gaelic; Scottish Gaelic" iso6391="gd" xmllang="gd">
1086
+ <iso6392>gla</iso6392>
1087
+ </language>
1088
+ <language language-name="Irish" iso6391="ga" xmllang="ga">
1089
+ <iso6392>gle</iso6392>
1090
+ </language>
1091
+ <language language-name="Galician" iso6391="gl" xmllang="gl">
1092
+ <iso6392>glg</iso6392>
1093
+ </language>
1094
+ <language language-name="Manx" iso6391="gv" xmllang="gv">
1095
+ <iso6392>glv</iso6392>
1096
+ </language>
1097
+ <language language-name="German, Middle High (ca.1050-1500)" iso6391="" xmllang="gmh">
1098
+ <iso6392>gmh</iso6392>
1099
+ </language>
1100
+ <language language-name="German, Old High (ca.750-1050)" iso6391="" xmllang="goh">
1101
+ <iso6392>goh</iso6392>
1102
+ </language>
1103
+ <language language-name="Gondi" iso6391="" xmllang="gon">
1104
+ <iso6392>gon</iso6392>
1105
+ </language>
1106
+ <language language-name="Gorontalo" iso6391="" xmllang="gor">
1107
+ <iso6392>gor</iso6392>
1108
+ </language>
1109
+ <language language-name="Gothic" iso6391="" xmllang="got">
1110
+ <iso6392>got</iso6392>
1111
+ </language>
1112
+ <language language-name="Grebo" iso6391="" xmllang="grb">
1113
+ <iso6392>grb</iso6392>
1114
+ </language>
1115
+ <language language-name="Greek, Ancient (to 1453)" iso6391="" xmllang="grc">
1116
+ <iso6392>grc</iso6392>
1117
+ </language>
1118
+ <language language-name="Guarani" iso6391="gn" xmllang="gn">
1119
+ <iso6392>grn</iso6392>
1120
+ </language>
1121
+ <language language-name="Swiss German; Alemannic; Alsatian" iso6391="" xmllang="gsw">
1122
+ <iso6392>gsw</iso6392>
1123
+ </language>
1124
+ <language language-name="Gujarati" iso6391="gu" xmllang="gu">
1125
+ <iso6392>guj</iso6392>
1126
+ </language>
1127
+ <language language-name="Gwich'in" iso6391="" xmllang="gwi">
1128
+ <iso6392>gwi</iso6392>
1129
+ </language>
1130
+ <language language-name="Haida" iso6391="" xmllang="hai">
1131
+ <iso6392>hai</iso6392>
1132
+ </language>
1133
+ <language language-name="Haitian; Haitian Creole" iso6391="ht" xmllang="ht">
1134
+ <iso6392>hat</iso6392>
1135
+ </language>
1136
+ <language language-name="Hausa" iso6391="ha" xmllang="ha">
1137
+ <iso6392>hau</iso6392>
1138
+ </language>
1139
+ <language language-name="Hawaiian" iso6391="" xmllang="haw">
1140
+ <iso6392>haw</iso6392>
1141
+ </language>
1142
+ <language language-name="Hebrew" iso6391="he" xmllang="he">
1143
+ <iso6392>heb</iso6392>
1144
+ </language>
1145
+ <language language-name="Herero" iso6391="hz" xmllang="hz">
1146
+ <iso6392>her</iso6392>
1147
+ </language>
1148
+ <language language-name="Hiligaynon" iso6391="" xmllang="hil">
1149
+ <iso6392>hil</iso6392>
1150
+ </language>
1151
+ <language language-name="Himachali languages; Western Pahari languages" iso6391=""
1152
+ xmllang="him">
1153
+ <iso6392>him</iso6392>
1154
+ </language>
1155
+ <language language-name="Hindi" iso6391="hi" xmllang="hi">
1156
+ <iso6392>hin</iso6392>
1157
+ </language>
1158
+ <language language-name="Hittite" iso6391="" xmllang="hit">
1159
+ <iso6392>hit</iso6392>
1160
+ </language>
1161
+ <language language-name="Hmong; Mong" iso6391="" xmllang="hmn">
1162
+ <iso6392>hmn</iso6392>
1163
+ </language>
1164
+ <language language-name="Hiri Motu" iso6391="ho" xmllang="ho">
1165
+ <iso6392>hmo</iso6392>
1166
+ </language>
1167
+ <language language-name="Croatian" iso6391="hr" xmllang="hr">
1168
+ <iso6392>hrv</iso6392>
1169
+ </language>
1170
+ <language language-name="Upper Sorbian" iso6391="" xmllang="hsb">
1171
+ <iso6392>hsb</iso6392>
1172
+ </language>
1173
+ <language language-name="Hungarian" iso6391="hu" xmllang="hu">
1174
+ <iso6392>hun</iso6392>
1175
+ </language>
1176
+ <language language-name="Hupa" iso6391="" xmllang="hup">
1177
+ <iso6392>hup</iso6392>
1178
+ </language>
1179
+ <language language-name="Iban" iso6391="" xmllang="iba">
1180
+ <iso6392>iba</iso6392>
1181
+ </language>
1182
+ <language language-name="Igbo" iso6391="ig" xmllang="ig">
1183
+ <iso6392>ibo</iso6392>
1184
+ </language>
1185
+ <language language-name="Icelandic" iso6391="is" xmllang="is">
1186
+ <iso6392>isl</iso6392>
1187
+ <iso6392>ice</iso6392>
1188
+ </language>
1189
+ <language language-name="Ido" iso6391="io" xmllang="io">
1190
+ <iso6392>ido</iso6392>
1191
+ </language>
1192
+ <language language-name="Sichuan Yi; Nuosu" iso6391="ii" xmllang="ii">
1193
+ <iso6392>iii</iso6392>
1194
+ </language>
1195
+ <language language-name="Ijo languages" iso6391="" xmllang="ijo">
1196
+ <iso6392>ijo</iso6392>
1197
+ </language>
1198
+ <language language-name="Inuktitut" iso6391="iu" xmllang="iu">
1199
+ <iso6392>iku</iso6392>
1200
+ </language>
1201
+ <language language-name="Interlingue; Occidental" iso6391="ie" xmllang="ie">
1202
+ <iso6392>ile</iso6392>
1203
+ </language>
1204
+ <language language-name="Iloko" iso6391="" xmllang="ilo">
1205
+ <iso6392>ilo</iso6392>
1206
+ </language>
1207
+ <language language-name="Interlingua (International Auxiliary Language Association)"
1208
+ iso6391="ia"
1209
+ xmllang="ia">
1210
+ <iso6392>ina</iso6392>
1211
+ </language>
1212
+ <language language-name="Indic languages" iso6391="" xmllang="inc">
1213
+ <iso6392>inc</iso6392>
1214
+ </language>
1215
+ <language language-name="Indonesian" iso6391="id" xmllang="id">
1216
+ <iso6392>ind</iso6392>
1217
+ </language>
1218
+ <language language-name="Indo-European languages" iso6391="" xmllang="ine">
1219
+ <iso6392>ine</iso6392>
1220
+ </language>
1221
+ <language language-name="Ingush" iso6391="" xmllang="inh">
1222
+ <iso6392>inh</iso6392>
1223
+ </language>
1224
+ <language language-name="Inupiaq" iso6391="ik" xmllang="ik">
1225
+ <iso6392>ipk</iso6392>
1226
+ </language>
1227
+ <language language-name="Iranian languages" iso6391="" xmllang="ira">
1228
+ <iso6392>ira</iso6392>
1229
+ </language>
1230
+ <language language-name="Iroquoian languages" iso6391="" xmllang="iro">
1231
+ <iso6392>iro</iso6392>
1232
+ </language>
1233
+ <language language-name="Italian" iso6391="it" xmllang="it">
1234
+ <iso6392>ita</iso6392>
1235
+ </language>
1236
+ <language language-name="Javanese" iso6391="jv" xmllang="jv">
1237
+ <iso6392>jav</iso6392>
1238
+ </language>
1239
+ <language language-name="Lojban" iso6391="" xmllang="jbo">
1240
+ <iso6392>jbo</iso6392>
1241
+ </language>
1242
+ <language language-name="Japanese" iso6391="ja" xmllang="ja">
1243
+ <iso6392>jpn</iso6392>
1244
+ </language>
1245
+ <language language-name="Judeo-Persian" iso6391="" xmllang="jpr">
1246
+ <iso6392>jpr</iso6392>
1247
+ </language>
1248
+ <language language-name="Judeo-Arabic" iso6391="" xmllang="jrb">
1249
+ <iso6392>jrb</iso6392>
1250
+ </language>
1251
+ <language language-name="Kara-Kalpak" iso6391="" xmllang="kaa">
1252
+ <iso6392>kaa</iso6392>
1253
+ </language>
1254
+ <language language-name="Kabyle" iso6391="" xmllang="kab">
1255
+ <iso6392>kab</iso6392>
1256
+ </language>
1257
+ <language language-name="Kachin; Jingpho" iso6391="" xmllang="kac">
1258
+ <iso6392>kac</iso6392>
1259
+ </language>
1260
+ <language language-name="Kalaallisut; Greenlandic" iso6391="kl" xmllang="kl">
1261
+ <iso6392>kal</iso6392>
1262
+ </language>
1263
+ <language language-name="Kamba" iso6391="" xmllang="kam">
1264
+ <iso6392>kam</iso6392>
1265
+ </language>
1266
+ <language language-name="Kannada" iso6391="kn" xmllang="kn">
1267
+ <iso6392>kan</iso6392>
1268
+ </language>
1269
+ <language language-name="Karen languages" iso6391="" xmllang="kar">
1270
+ <iso6392>kar</iso6392>
1271
+ </language>
1272
+ <language language-name="Kashmiri" iso6391="ks" xmllang="ks">
1273
+ <iso6392>kas</iso6392>
1274
+ </language>
1275
+ <language language-name="Kanuri" iso6391="kr" xmllang="kr">
1276
+ <iso6392>kau</iso6392>
1277
+ </language>
1278
+ <language language-name="Kawi" iso6391="" xmllang="kaw">
1279
+ <iso6392>kaw</iso6392>
1280
+ </language>
1281
+ <language language-name="Kazakh" iso6391="kk" xmllang="kk">
1282
+ <iso6392>kaz</iso6392>
1283
+ </language>
1284
+ <language language-name="Kabardian" iso6391="" xmllang="kbd">
1285
+ <iso6392>kbd</iso6392>
1286
+ </language>
1287
+ <language language-name="Khasi" iso6391="" xmllang="kha">
1288
+ <iso6392>kha</iso6392>
1289
+ </language>
1290
+ <language language-name="Khoisan languages" iso6391="" xmllang="khi">
1291
+ <iso6392>khi</iso6392>
1292
+ </language>
1293
+ <language language-name="Central Khmer" iso6391="km" xmllang="km">
1294
+ <iso6392>khm</iso6392>
1295
+ </language>
1296
+ <language language-name="Khotanese; Sakan" iso6391="" xmllang="kho">
1297
+ <iso6392>kho</iso6392>
1298
+ </language>
1299
+ <language language-name="Kikuyu; Gikuyu" iso6391="ki" xmllang="ki">
1300
+ <iso6392>kik</iso6392>
1301
+ </language>
1302
+ <language language-name="Kinyarwanda" iso6391="rw" xmllang="rw">
1303
+ <iso6392>kin</iso6392>
1304
+ </language>
1305
+ <language language-name="Kirghiz; Kyrgyz" iso6391="ky" xmllang="ky">
1306
+ <iso6392>kir</iso6392>
1307
+ </language>
1308
+ <language language-name="Kimbundu" iso6391="" xmllang="kmb">
1309
+ <iso6392>kmb</iso6392>
1310
+ </language>
1311
+ <language language-name="Konkani" iso6391="" xmllang="kok">
1312
+ <iso6392>kok</iso6392>
1313
+ </language>
1314
+ <language language-name="Komi" iso6391="kv" xmllang="kv">
1315
+ <iso6392>kom</iso6392>
1316
+ </language>
1317
+ <language language-name="Kongo" iso6391="kg" xmllang="kg">
1318
+ <iso6392>kon</iso6392>
1319
+ </language>
1320
+ <language language-name="Korean" iso6391="ko" xmllang="ko">
1321
+ <iso6392>kor</iso6392>
1322
+ </language>
1323
+ <language language-name="Kosraean" iso6391="" xmllang="kos">
1324
+ <iso6392>kos</iso6392>
1325
+ </language>
1326
+ <language language-name="Kpelle" iso6391="" xmllang="kpe">
1327
+ <iso6392>kpe</iso6392>
1328
+ </language>
1329
+ <language language-name="Karachay-Balkar" iso6391="" xmllang="krc">
1330
+ <iso6392>krc</iso6392>
1331
+ </language>
1332
+ <language language-name="Karelian" iso6391="" xmllang="krl">
1333
+ <iso6392>krl</iso6392>
1334
+ </language>
1335
+ <language language-name="Kru languages" iso6391="" xmllang="kro">
1336
+ <iso6392>kro</iso6392>
1337
+ </language>
1338
+ <language language-name="Kurukh" iso6391="" xmllang="kru">
1339
+ <iso6392>kru</iso6392>
1340
+ </language>
1341
+ <language language-name="Kuanyama; Kwanyama" iso6391="kj" xmllang="kj">
1342
+ <iso6392>kua</iso6392>
1343
+ </language>
1344
+ <language language-name="Kumyk" iso6391="" xmllang="kum">
1345
+ <iso6392>kum</iso6392>
1346
+ </language>
1347
+ <language language-name="Kurdish" iso6391="ku" xmllang="ku">
1348
+ <iso6392>kur</iso6392>
1349
+ </language>
1350
+ <language language-name="Kutenai" iso6391="" xmllang="kut">
1351
+ <iso6392>kut</iso6392>
1352
+ </language>
1353
+ <language language-name="Ladino" iso6391="" xmllang="lad">
1354
+ <iso6392>lad</iso6392>
1355
+ </language>
1356
+ <language language-name="Lahnda" iso6391="" xmllang="lah">
1357
+ <iso6392>lah</iso6392>
1358
+ </language>
1359
+ <language language-name="Lamba" iso6391="" xmllang="lam">
1360
+ <iso6392>lam</iso6392>
1361
+ </language>
1362
+ <language language-name="Lao" iso6391="lo" xmllang="lo">
1363
+ <iso6392>lao</iso6392>
1364
+ </language>
1365
+ <language language-name="Latin" iso6391="la" xmllang="la">
1366
+ <iso6392>lat</iso6392>
1367
+ </language>
1368
+ <language language-name="Latvian" iso6391="lv" xmllang="lv">
1369
+ <iso6392>lav</iso6392>
1370
+ </language>
1371
+ <language language-name="Lezghian" iso6391="" xmllang="lez">
1372
+ <iso6392>lez</iso6392>
1373
+ </language>
1374
+ <language language-name="Limburgan; Limburger; Limburgish" iso6391="li" xmllang="li">
1375
+ <iso6392>lim</iso6392>
1376
+ </language>
1377
+ <language language-name="Lingala" iso6391="ln" xmllang="ln">
1378
+ <iso6392>lin</iso6392>
1379
+ </language>
1380
+ <language language-name="Lithuanian" iso6391="lt" xmllang="lt">
1381
+ <iso6392>lit</iso6392>
1382
+ </language>
1383
+ <language language-name="Mongo" iso6391="" xmllang="lol">
1384
+ <iso6392>lol</iso6392>
1385
+ </language>
1386
+ <language language-name="Lozi" iso6391="" xmllang="loz">
1387
+ <iso6392>loz</iso6392>
1388
+ </language>
1389
+ <language language-name="Luxembourgish; Letzeburgesch" iso6391="lb" xmllang="lb">
1390
+ <iso6392>ltz</iso6392>
1391
+ </language>
1392
+ <language language-name="Luba-Lulua" iso6391="" xmllang="lua">
1393
+ <iso6392>lua</iso6392>
1394
+ </language>
1395
+ <language language-name="Luba-Katanga" iso6391="lu" xmllang="lu">
1396
+ <iso6392>lub</iso6392>
1397
+ </language>
1398
+ <language language-name="Ganda" iso6391="lg" xmllang="lg">
1399
+ <iso6392>lug</iso6392>
1400
+ </language>
1401
+ <language language-name="Luiseno" iso6391="" xmllang="lui">
1402
+ <iso6392>lui</iso6392>
1403
+ </language>
1404
+ <language language-name="Lunda" iso6391="" xmllang="lun">
1405
+ <iso6392>lun</iso6392>
1406
+ </language>
1407
+ <language language-name="Luo (Kenya and Tanzania)" iso6391="" xmllang="luo">
1408
+ <iso6392>luo</iso6392>
1409
+ </language>
1410
+ <language language-name="Lushai" iso6391="" xmllang="lus">
1411
+ <iso6392>lus</iso6392>
1412
+ </language>
1413
+ <language language-name="Macedonian" iso6391="mk" xmllang="mk">
1414
+ <iso6392>mkd</iso6392>
1415
+ <iso6392>mac</iso6392>
1416
+ </language>
1417
+ <language language-name="Madurese" iso6391="" xmllang="mad">
1418
+ <iso6392>mad</iso6392>
1419
+ </language>
1420
+ <language language-name="Magahi" iso6391="" xmllang="mag">
1421
+ <iso6392>mag</iso6392>
1422
+ </language>
1423
+ <language language-name="Marshallese" iso6391="mh" xmllang="mh">
1424
+ <iso6392>mah</iso6392>
1425
+ </language>
1426
+ <language language-name="Maithili" iso6391="" xmllang="mai">
1427
+ <iso6392>mai</iso6392>
1428
+ </language>
1429
+ <language language-name="Makasar" iso6391="" xmllang="mak">
1430
+ <iso6392>mak</iso6392>
1431
+ </language>
1432
+ <language language-name="Malayalam" iso6391="ml" xmllang="ml">
1433
+ <iso6392>mal</iso6392>
1434
+ </language>
1435
+ <language language-name="Mandingo" iso6391="" xmllang="man">
1436
+ <iso6392>man</iso6392>
1437
+ </language>
1438
+ <language language-name="Maori" iso6391="mi" xmllang="mi">
1439
+ <iso6392>mri</iso6392>
1440
+ <iso6392>mao</iso6392>
1441
+ </language>
1442
+ <language language-name="Austronesian languages" iso6391="" xmllang="map">
1443
+ <iso6392>map</iso6392>
1444
+ </language>
1445
+ <language language-name="Marathi" iso6391="mr" xmllang="mr">
1446
+ <iso6392>mar</iso6392>
1447
+ </language>
1448
+ <language language-name="Masai" iso6391="" xmllang="mas">
1449
+ <iso6392>mas</iso6392>
1450
+ </language>
1451
+ <language language-name="Malay" iso6391="ms" xmllang="ms">
1452
+ <iso6392>msa</iso6392>
1453
+ <iso6392>may</iso6392>
1454
+ </language>
1455
+ <language language-name="Moksha" iso6391="" xmllang="mdf">
1456
+ <iso6392>mdf</iso6392>
1457
+ </language>
1458
+ <language language-name="Mandar" iso6391="" xmllang="mdr">
1459
+ <iso6392>mdr</iso6392>
1460
+ </language>
1461
+ <language language-name="Mende" iso6391="" xmllang="men">
1462
+ <iso6392>men</iso6392>
1463
+ </language>
1464
+ <language language-name="Irish, Middle (900-1200)" iso6391="" xmllang="mga">
1465
+ <iso6392>mga</iso6392>
1466
+ </language>
1467
+ <language language-name="Mi'kmaq; Micmac" iso6391="" xmllang="mic">
1468
+ <iso6392>mic</iso6392>
1469
+ </language>
1470
+ <language language-name="Minangkabau" iso6391="" xmllang="min">
1471
+ <iso6392>min</iso6392>
1472
+ </language>
1473
+ <language language-name="Uncoded languages" iso6391="" xmllang="mis">
1474
+ <iso6392>mis</iso6392>
1475
+ </language>
1476
+ <language language-name="Mon-Khmer languages" iso6391="" xmllang="mkh">
1477
+ <iso6392>mkh</iso6392>
1478
+ </language>
1479
+ <language language-name="Malagasy" iso6391="mg" xmllang="mg">
1480
+ <iso6392>mlg</iso6392>
1481
+ </language>
1482
+ <language language-name="Maltese" iso6391="mt" xmllang="mt">
1483
+ <iso6392>mlt</iso6392>
1484
+ </language>
1485
+ <language language-name="Manchu" iso6391="" xmllang="mnc">
1486
+ <iso6392>mnc</iso6392>
1487
+ </language>
1488
+ <language language-name="Manipuri" iso6391="" xmllang="mni">
1489
+ <iso6392>mni</iso6392>
1490
+ </language>
1491
+ <language language-name="Manobo languages" iso6391="" xmllang="mno">
1492
+ <iso6392>mno</iso6392>
1493
+ </language>
1494
+ <language language-name="Mohawk" iso6391="" xmllang="moh">
1495
+ <iso6392>moh</iso6392>
1496
+ </language>
1497
+ <language language-name="Mongolian" iso6391="mn" xmllang="mn">
1498
+ <iso6392>mon</iso6392>
1499
+ </language>
1500
+ <language language-name="Mossi" iso6391="" xmllang="mos">
1501
+ <iso6392>mos</iso6392>
1502
+ </language>
1503
+ <language language-name="Multiple languages" iso6391="" xmllang="mul">
1504
+ <iso6392>mul</iso6392>
1505
+ </language>
1506
+ <language language-name="Munda languages" iso6391="" xmllang="mun">
1507
+ <iso6392>mun</iso6392>
1508
+ </language>
1509
+ <language language-name="Creek" iso6391="" xmllang="mus">
1510
+ <iso6392>mus</iso6392>
1511
+ </language>
1512
+ <language language-name="Mirandese" iso6391="" xmllang="mwl">
1513
+ <iso6392>mwl</iso6392>
1514
+ </language>
1515
+ <language language-name="Marwari" iso6391="" xmllang="mwr">
1516
+ <iso6392>mwr</iso6392>
1517
+ </language>
1518
+ <language language-name="Mayan languages" iso6391="" xmllang="myn">
1519
+ <iso6392>myn</iso6392>
1520
+ </language>
1521
+ <language language-name="Erzya" iso6391="" xmllang="myv">
1522
+ <iso6392>myv</iso6392>
1523
+ </language>
1524
+ <language language-name="Nahuatl languages" iso6391="" xmllang="nah">
1525
+ <iso6392>nah</iso6392>
1526
+ </language>
1527
+ <language language-name="North American Indian languages" iso6391="" xmllang="nai">
1528
+ <iso6392>nai</iso6392>
1529
+ </language>
1530
+ <language language-name="Neapolitan" iso6391="" xmllang="nap">
1531
+ <iso6392>nap</iso6392>
1532
+ </language>
1533
+ <language language-name="Nauru" iso6391="na" xmllang="na">
1534
+ <iso6392>nau</iso6392>
1535
+ </language>
1536
+ <language language-name="Navajo; Navaho" iso6391="nv" xmllang="nv">
1537
+ <iso6392>nav</iso6392>
1538
+ </language>
1539
+ <language language-name="Ndebele, South; South Ndebele" iso6391="nr" xmllang="nr">
1540
+ <iso6392>nbl</iso6392>
1541
+ </language>
1542
+ <language language-name="Ndebele, North; North Ndebele" iso6391="nd" xmllang="nd">
1543
+ <iso6392>nde</iso6392>
1544
+ </language>
1545
+ <language language-name="Ndonga" iso6391="ng" xmllang="ng">
1546
+ <iso6392>ndo</iso6392>
1547
+ </language>
1548
+ <language language-name="Low German; Low Saxon; German, Low; Saxon, Low" iso6391=""
1549
+ xmllang="nds">
1550
+ <iso6392>nds</iso6392>
1551
+ </language>
1552
+ <language language-name="Nepali" iso6391="ne" xmllang="ne">
1553
+ <iso6392>nep</iso6392>
1554
+ </language>
1555
+ <language language-name="Nepal Bhasa; Newari" iso6391="" xmllang="new">
1556
+ <iso6392>new</iso6392>
1557
+ </language>
1558
+ <language language-name="Nias" iso6391="" xmllang="nia">
1559
+ <iso6392>nia</iso6392>
1560
+ </language>
1561
+ <language language-name="Niger-Kordofanian languages" iso6391="" xmllang="nic">
1562
+ <iso6392>nic</iso6392>
1563
+ </language>
1564
+ <language language-name="Niuean" iso6391="" xmllang="niu">
1565
+ <iso6392>niu</iso6392>
1566
+ </language>
1567
+ <language language-name="Norwegian Nynorsk; Nynorsk, Norwegian" iso6391="nn" xmllang="nn">
1568
+ <iso6392>nno</iso6392>
1569
+ </language>
1570
+ <language language-name="Bokmål, Norwegian; Norwegian Bokmål" iso6391="nb" xmllang="nb">
1571
+ <iso6392>nob</iso6392>
1572
+ </language>
1573
+ <language language-name="Nogai" iso6391="" xmllang="nog">
1574
+ <iso6392>nog</iso6392>
1575
+ </language>
1576
+ <language language-name="Norse, Old" iso6391="" xmllang="non">
1577
+ <iso6392>non</iso6392>
1578
+ </language>
1579
+ <language language-name="Norwegian" iso6391="no" xmllang="no">
1580
+ <iso6392>nor</iso6392>
1581
+ </language>
1582
+ <language language-name="N'Ko" iso6391="" xmllang="nqo">
1583
+ <iso6392>nqo</iso6392>
1584
+ </language>
1585
+ <language language-name="Pedi; Sepedi; Northern Sotho" iso6391="" xmllang="nso">
1586
+ <iso6392>nso</iso6392>
1587
+ </language>
1588
+ <language language-name="Nubian languages" iso6391="" xmllang="nub">
1589
+ <iso6392>nub</iso6392>
1590
+ </language>
1591
+ <language language-name="Classical Newari; Old Newari; Classical Nepal Bhasa" iso6391=""
1592
+ xmllang="nwc">
1593
+ <iso6392>nwc</iso6392>
1594
+ </language>
1595
+ <language language-name="Chichewa; Chewa; Nyanja" iso6391="ny" xmllang="ny">
1596
+ <iso6392>nya</iso6392>
1597
+ </language>
1598
+ <language language-name="Nyamwezi" iso6391="" xmllang="nym">
1599
+ <iso6392>nym</iso6392>
1600
+ </language>
1601
+ <language language-name="Nyankole" iso6391="" xmllang="nyn">
1602
+ <iso6392>nyn</iso6392>
1603
+ </language>
1604
+ <language language-name="Nyoro" iso6391="" xmllang="nyo">
1605
+ <iso6392>nyo</iso6392>
1606
+ </language>
1607
+ <language language-name="Nzima" iso6391="" xmllang="nzi">
1608
+ <iso6392>nzi</iso6392>
1609
+ </language>
1610
+ <language language-name="Occitan (post 1500)" iso6391="oc" xmllang="oc">
1611
+ <iso6392>oci</iso6392>
1612
+ </language>
1613
+ <language language-name="Ojibwa" iso6391="oj" xmllang="oj">
1614
+ <iso6392>oji</iso6392>
1615
+ </language>
1616
+ <language language-name="Oriya" iso6391="or" xmllang="or">
1617
+ <iso6392>ori</iso6392>
1618
+ </language>
1619
+ <language language-name="Oromo" iso6391="om" xmllang="om">
1620
+ <iso6392>orm</iso6392>
1621
+ </language>
1622
+ <language language-name="Osage" iso6391="" xmllang="osa">
1623
+ <iso6392>osa</iso6392>
1624
+ </language>
1625
+ <language language-name="Ossetian; Ossetic" iso6391="os" xmllang="os">
1626
+ <iso6392>oss</iso6392>
1627
+ </language>
1628
+ <language language-name="Turkish, Ottoman (1500-1928)" iso6391="" xmllang="ota">
1629
+ <iso6392>ota</iso6392>
1630
+ </language>
1631
+ <language language-name="Otomian languages" iso6391="" xmllang="oto">
1632
+ <iso6392>oto</iso6392>
1633
+ </language>
1634
+ <language language-name="Papuan languages" iso6391="" xmllang="paa">
1635
+ <iso6392>paa</iso6392>
1636
+ </language>
1637
+ <language language-name="Pangasinan" iso6391="" xmllang="pag">
1638
+ <iso6392>pag</iso6392>
1639
+ </language>
1640
+ <language language-name="Pahlavi" iso6391="" xmllang="pal">
1641
+ <iso6392>pal</iso6392>
1642
+ </language>
1643
+ <language language-name="Pampanga; Kapampangan" iso6391="" xmllang="pam">
1644
+ <iso6392>pam</iso6392>
1645
+ </language>
1646
+ <language language-name="Panjabi; Punjabi" iso6391="pa" xmllang="pa">
1647
+ <iso6392>pan</iso6392>
1648
+ </language>
1649
+ <language language-name="Papiamento" iso6391="" xmllang="pap">
1650
+ <iso6392>pap</iso6392>
1651
+ </language>
1652
+ <language language-name="Palauan" iso6391="" xmllang="pau">
1653
+ <iso6392>pau</iso6392>
1654
+ </language>
1655
+ <language language-name="Persian, Old (ca.600-400 B.C.)" iso6391="" xmllang="peo">
1656
+ <iso6392>peo</iso6392>
1657
+ </language>
1658
+ <language language-name="Philippine languages" iso6391="" xmllang="phi">
1659
+ <iso6392>phi</iso6392>
1660
+ </language>
1661
+ <language language-name="Phoenician" iso6391="" xmllang="phn">
1662
+ <iso6392>phn</iso6392>
1663
+ </language>
1664
+ <language language-name="Pali" iso6391="pi" xmllang="pi">
1665
+ <iso6392>pli</iso6392>
1666
+ </language>
1667
+ <language language-name="Polish" iso6391="pl" xmllang="pl">
1668
+ <iso6392>pol</iso6392>
1669
+ </language>
1670
+ <language language-name="Pohnpeian" iso6391="" xmllang="pon">
1671
+ <iso6392>pon</iso6392>
1672
+ </language>
1673
+ <language language-name="Portuguese" iso6391="pt" xmllang="pt">
1674
+ <iso6392>por</iso6392>
1675
+ </language>
1676
+ <language language-name="Prakrit languages" iso6391="" xmllang="pra">
1677
+ <iso6392>pra</iso6392>
1678
+ </language>
1679
+ <language language-name="Provençal, Old (to 1500);Occitan, Old (to 1500)" iso6391=""
1680
+ xmllang="pro">
1681
+ <iso6392>pro</iso6392>
1682
+ </language>
1683
+ <language language-name="Pushto; Pashto" iso6391="ps" xmllang="ps">
1684
+ <iso6392>pus</iso6392>
1685
+ </language>
1686
+ <language language-name="Reserved for local use" iso6391="" xmllang="qaa-qtz">
1687
+ <iso6392>qaa-qtz</iso6392>
1688
+ </language>
1689
+ <language language-name="Quechua" iso6391="qu" xmllang="qu">
1690
+ <iso6392>que</iso6392>
1691
+ </language>
1692
+ <language language-name="Rajasthani" iso6391="" xmllang="raj">
1693
+ <iso6392>raj</iso6392>
1694
+ </language>
1695
+ <language language-name="Rapanui" iso6391="" xmllang="rap">
1696
+ <iso6392>rap</iso6392>
1697
+ </language>
1698
+ <language language-name="Rarotongan; Cook Islands Maori" iso6391="" xmllang="rar">
1699
+ <iso6392>rar</iso6392>
1700
+ </language>
1701
+ <language language-name="Romance languages" iso6391="" xmllang="roa">
1702
+ <iso6392>roa</iso6392>
1703
+ </language>
1704
+ <language language-name="Romansh" iso6391="rm" xmllang="rm">
1705
+ <iso6392>roh</iso6392>
1706
+ </language>
1707
+ <language language-name="Romany" iso6391="" xmllang="rom">
1708
+ <iso6392>rom</iso6392>
1709
+ </language>
1710
+ <language language-name="Romanian; Moldavian; Moldovan" iso6391="ro" xmllang="ro">
1711
+ <iso6392>ron</iso6392>
1712
+ <iso6392>rum</iso6392>
1713
+ </language>
1714
+ <language language-name="Rundi" iso6391="rn" xmllang="rn">
1715
+ <iso6392>run</iso6392>
1716
+ </language>
1717
+ <language language-name="Aromanian; Arumanian; Macedo-Romanian" iso6391="" xmllang="rup">
1718
+ <iso6392>rup</iso6392>
1719
+ </language>
1720
+ <language language-name="Russian" iso6391="ru" xmllang="ru">
1721
+ <iso6392>rus</iso6392>
1722
+ </language>
1723
+ <language language-name="Sandawe" iso6391="" xmllang="sad">
1724
+ <iso6392>sad</iso6392>
1725
+ </language>
1726
+ <language language-name="Sango" iso6391="sg" xmllang="sg">
1727
+ <iso6392>sag</iso6392>
1728
+ </language>
1729
+ <language language-name="Yakut" iso6391="" xmllang="sah">
1730
+ <iso6392>sah</iso6392>
1731
+ </language>
1732
+ <language language-name="South American Indian languages" iso6391="" xmllang="sai">
1733
+ <iso6392>sai</iso6392>
1734
+ </language>
1735
+ <language language-name="Salishan languages" iso6391="" xmllang="sal">
1736
+ <iso6392>sal</iso6392>
1737
+ </language>
1738
+ <language language-name="Samaritan Aramaic" iso6391="" xmllang="sam">
1739
+ <iso6392>sam</iso6392>
1740
+ </language>
1741
+ <language language-name="Sanskrit" iso6391="sa" xmllang="sa">
1742
+ <iso6392>san</iso6392>
1743
+ </language>
1744
+ <language language-name="Sasak" iso6391="" xmllang="sas">
1745
+ <iso6392>sas</iso6392>
1746
+ </language>
1747
+ <language language-name="Santali" iso6391="" xmllang="sat">
1748
+ <iso6392>sat</iso6392>
1749
+ </language>
1750
+ <language language-name="Sicilian" iso6391="" xmllang="scn">
1751
+ <iso6392>scn</iso6392>
1752
+ </language>
1753
+ <language language-name="Scots" iso6391="" xmllang="sco">
1754
+ <iso6392>sco</iso6392>
1755
+ </language>
1756
+ <language language-name="Selkup" iso6391="" xmllang="sel">
1757
+ <iso6392>sel</iso6392>
1758
+ </language>
1759
+ <language language-name="Semitic languages" iso6391="" xmllang="sem">
1760
+ <iso6392>sem</iso6392>
1761
+ </language>
1762
+ <language language-name="Irish, Old (to 900)" iso6391="" xmllang="sga">
1763
+ <iso6392>sga</iso6392>
1764
+ </language>
1765
+ <language language-name="Sign Languages" iso6391="" xmllang="sgn">
1766
+ <iso6392>sgn</iso6392>
1767
+ </language>
1768
+ <language language-name="Shan" iso6391="" xmllang="shn">
1769
+ <iso6392>shn</iso6392>
1770
+ </language>
1771
+ <language language-name="Sidamo" iso6391="" xmllang="sid">
1772
+ <iso6392>sid</iso6392>
1773
+ </language>
1774
+ <language language-name="Sinhala; Sinhalese" iso6391="si" xmllang="si">
1775
+ <iso6392>sin</iso6392>
1776
+ </language>
1777
+ <language language-name="Siouan languages" iso6391="" xmllang="sio">
1778
+ <iso6392>sio</iso6392>
1779
+ </language>
1780
+ <language language-name="Sino-Tibetan languages" iso6391="" xmllang="sit">
1781
+ <iso6392>sit</iso6392>
1782
+ </language>
1783
+ <language language-name="Slavic languages" iso6391="" xmllang="sla">
1784
+ <iso6392>sla</iso6392>
1785
+ </language>
1786
+ <language language-name="Slovak" iso6391="sk" xmllang="sk">
1787
+ <iso6392>slk</iso6392>
1788
+ <iso6392>slo</iso6392>
1789
+ </language>
1790
+ <language language-name="Slovenian" iso6391="sl" xmllang="sl">
1791
+ <iso6392>slv</iso6392>
1792
+ </language>
1793
+ <language language-name="Southern Sami" iso6391="" xmllang="sma">
1794
+ <iso6392>sma</iso6392>
1795
+ </language>
1796
+ <language language-name="Northern Sami" iso6391="se" xmllang="se">
1797
+ <iso6392>sme</iso6392>
1798
+ </language>
1799
+ <language language-name="Sami languages" iso6391="" xmllang="smi">
1800
+ <iso6392>smi</iso6392>
1801
+ </language>
1802
+ <language language-name="Lule Sami" iso6391="" xmllang="smj">
1803
+ <iso6392>smj</iso6392>
1804
+ </language>
1805
+ <language language-name="Inari Sami" iso6391="" xmllang="smn">
1806
+ <iso6392>smn</iso6392>
1807
+ </language>
1808
+ <language language-name="Samoan" iso6391="sm" xmllang="sm">
1809
+ <iso6392>smo</iso6392>
1810
+ </language>
1811
+ <language language-name="Skolt Sami" iso6391="" xmllang="sms">
1812
+ <iso6392>sms</iso6392>
1813
+ </language>
1814
+ <language language-name="Shona" iso6391="sn" xmllang="sn">
1815
+ <iso6392>sna</iso6392>
1816
+ </language>
1817
+ <language language-name="Sindhi" iso6391="sd" xmllang="sd">
1818
+ <iso6392>snd</iso6392>
1819
+ </language>
1820
+ <language language-name="Soninke" iso6391="" xmllang="snk">
1821
+ <iso6392>snk</iso6392>
1822
+ </language>
1823
+ <language language-name="Sogdian" iso6391="" xmllang="sog">
1824
+ <iso6392>sog</iso6392>
1825
+ </language>
1826
+ <language language-name="Somali" iso6391="so" xmllang="so">
1827
+ <iso6392>som</iso6392>
1828
+ </language>
1829
+ <language language-name="Songhai languages" iso6391="" xmllang="son">
1830
+ <iso6392>son</iso6392>
1831
+ </language>
1832
+ <language language-name="Sotho, Southern" iso6391="st" xmllang="st">
1833
+ <iso6392>sot</iso6392>
1834
+ </language>
1835
+ <language language-name="Spanish; Castilian" iso6391="es" xmllang="es">
1836
+ <iso6392>spa</iso6392>
1837
+ </language>
1838
+ <language language-name="Sardinian" iso6391="sc" xmllang="sc">
1839
+ <iso6392>srd</iso6392>
1840
+ </language>
1841
+ <language language-name="Sranan Tongo" iso6391="" xmllang="srn">
1842
+ <iso6392>srn</iso6392>
1843
+ </language>
1844
+ <language language-name="Serbian" iso6391="sr" xmllang="sr">
1845
+ <iso6392>srp</iso6392>
1846
+ </language>
1847
+ <language language-name="Serer" iso6391="" xmllang="srr">
1848
+ <iso6392>srr</iso6392>
1849
+ </language>
1850
+ <language language-name="Nilo-Saharan languages" iso6391="" xmllang="ssa">
1851
+ <iso6392>ssa</iso6392>
1852
+ </language>
1853
+ <language language-name="Swati" iso6391="ss" xmllang="ss">
1854
+ <iso6392>ssw</iso6392>
1855
+ </language>
1856
+ <language language-name="Sukuma" iso6391="" xmllang="suk">
1857
+ <iso6392>suk</iso6392>
1858
+ </language>
1859
+ <language language-name="Sundanese" iso6391="su" xmllang="su">
1860
+ <iso6392>sun</iso6392>
1861
+ </language>
1862
+ <language language-name="Susu" iso6391="" xmllang="sus">
1863
+ <iso6392>sus</iso6392>
1864
+ </language>
1865
+ <language language-name="Sumerian" iso6391="" xmllang="sux">
1866
+ <iso6392>sux</iso6392>
1867
+ </language>
1868
+ <language language-name="Swahili" iso6391="sw" xmllang="sw">
1869
+ <iso6392>swa</iso6392>
1870
+ </language>
1871
+ <language language-name="Swedish" iso6391="sv" xmllang="sv">
1872
+ <iso6392>swe</iso6392>
1873
+ </language>
1874
+ <language language-name="Classical Syriac" iso6391="" xmllang="syc">
1875
+ <iso6392>syc</iso6392>
1876
+ </language>
1877
+ <language language-name="Syriac" iso6391="" xmllang="syr">
1878
+ <iso6392>syr</iso6392>
1879
+ </language>
1880
+ <language language-name="Tahitian" iso6391="ty" xmllang="ty">
1881
+ <iso6392>tah</iso6392>
1882
+ </language>
1883
+ <language language-name="Tai languages" iso6391="" xmllang="tai">
1884
+ <iso6392>tai</iso6392>
1885
+ </language>
1886
+ <language language-name="Tamil" iso6391="ta" xmllang="ta">
1887
+ <iso6392>tam</iso6392>
1888
+ </language>
1889
+ <language language-name="Tatar" iso6391="tt" xmllang="tt">
1890
+ <iso6392>tat</iso6392>
1891
+ </language>
1892
+ <language language-name="Telugu" iso6391="te" xmllang="te">
1893
+ <iso6392>tel</iso6392>
1894
+ </language>
1895
+ <language language-name="Timne" iso6391="" xmllang="tem">
1896
+ <iso6392>tem</iso6392>
1897
+ </language>
1898
+ <language language-name="Tereno" iso6391="" xmllang="ter">
1899
+ <iso6392>ter</iso6392>
1900
+ </language>
1901
+ <language language-name="Tetum" iso6391="" xmllang="tet">
1902
+ <iso6392>tet</iso6392>
1903
+ </language>
1904
+ <language language-name="Tajik" iso6391="tg" xmllang="tg">
1905
+ <iso6392>tgk</iso6392>
1906
+ </language>
1907
+ <language language-name="Tagalog" iso6391="tl" xmllang="tl">
1908
+ <iso6392>tgl</iso6392>
1909
+ </language>
1910
+ <language language-name="Thai" iso6391="th" xmllang="th">
1911
+ <iso6392>tha</iso6392>
1912
+ </language>
1913
+ <language language-name="Tigre" iso6391="" xmllang="tig">
1914
+ <iso6392>tig</iso6392>
1915
+ </language>
1916
+ <language language-name="Tigrinya" iso6391="ti" xmllang="ti">
1917
+ <iso6392>tir</iso6392>
1918
+ </language>
1919
+ <language language-name="Tiv" iso6391="" xmllang="tiv">
1920
+ <iso6392>tiv</iso6392>
1921
+ </language>
1922
+ <language language-name="Tokelau" iso6391="" xmllang="tkl">
1923
+ <iso6392>tkl</iso6392>
1924
+ </language>
1925
+ <language language-name="Klingon; tlhIngan-Hol" iso6391="" xmllang="tlh">
1926
+ <iso6392>tlh</iso6392>
1927
+ </language>
1928
+ <language language-name="Tlingit" iso6391="" xmllang="tli">
1929
+ <iso6392>tli</iso6392>
1930
+ </language>
1931
+ <language language-name="Tamashek" iso6391="" xmllang="tmh">
1932
+ <iso6392>tmh</iso6392>
1933
+ </language>
1934
+ <language language-name="Tonga (Nyasa)" iso6391="" xmllang="tog">
1935
+ <iso6392>tog</iso6392>
1936
+ </language>
1937
+ <language language-name="Tonga (Tonga Islands)" iso6391="to" xmllang="to">
1938
+ <iso6392>ton</iso6392>
1939
+ </language>
1940
+ <language language-name="Tok Pisin" iso6391="" xmllang="tpi">
1941
+ <iso6392>tpi</iso6392>
1942
+ </language>
1943
+ <language language-name="Tsimshian" iso6391="" xmllang="tsi">
1944
+ <iso6392>tsi</iso6392>
1945
+ </language>
1946
+ <language language-name="Tswana" iso6391="tn" xmllang="tn">
1947
+ <iso6392>tsn</iso6392>
1948
+ </language>
1949
+ <language language-name="Tsonga" iso6391="ts" xmllang="ts">
1950
+ <iso6392>tso</iso6392>
1951
+ </language>
1952
+ <language language-name="Turkmen" iso6391="tk" xmllang="tk">
1953
+ <iso6392>tuk</iso6392>
1954
+ </language>
1955
+ <language language-name="Tumbuka" iso6391="" xmllang="tum">
1956
+ <iso6392>tum</iso6392>
1957
+ </language>
1958
+ <language language-name="Tupi languages" iso6391="" xmllang="tup">
1959
+ <iso6392>tup</iso6392>
1960
+ </language>
1961
+ <language language-name="Turkish" iso6391="tr" xmllang="tr">
1962
+ <iso6392>tur</iso6392>
1963
+ </language>
1964
+ <language language-name="Altaic languages" iso6391="" xmllang="tut">
1965
+ <iso6392>tut</iso6392>
1966
+ </language>
1967
+ <language language-name="Tuvalu" iso6391="" xmllang="tvl">
1968
+ <iso6392>tvl</iso6392>
1969
+ </language>
1970
+ <language language-name="Twi" iso6391="tw" xmllang="tw">
1971
+ <iso6392>twi</iso6392>
1972
+ </language>
1973
+ <language language-name="Tuvinian" iso6391="" xmllang="tyv">
1974
+ <iso6392>tyv</iso6392>
1975
+ </language>
1976
+ <language language-name="Udmurt" iso6391="" xmllang="udm">
1977
+ <iso6392>udm</iso6392>
1978
+ </language>
1979
+ <language language-name="Ugaritic" iso6391="" xmllang="uga">
1980
+ <iso6392>uga</iso6392>
1981
+ </language>
1982
+ <language language-name="Uighur; Uyghur" iso6391="ug" xmllang="ug">
1983
+ <iso6392>uig</iso6392>
1984
+ </language>
1985
+ <language language-name="Ukrainian" iso6391="uk" xmllang="uk">
1986
+ <iso6392>ukr</iso6392>
1987
+ </language>
1988
+ <language language-name="Umbundu" iso6391="" xmllang="umb">
1989
+ <iso6392>umb</iso6392>
1990
+ </language>
1991
+ <language language-name="Undetermined" iso6391="" xmllang="und">
1992
+ <iso6392>und</iso6392>
1993
+ </language>
1994
+ <language language-name="Urdu" iso6391="ur" xmllang="ur">
1995
+ <iso6392>urd</iso6392>
1996
+ </language>
1997
+ <language language-name="Uzbek" iso6391="uz" xmllang="uz">
1998
+ <iso6392>uzb</iso6392>
1999
+ </language>
2000
+ <language language-name="Vai" iso6391="" xmllang="vai">
2001
+ <iso6392>vai</iso6392>
2002
+ </language>
2003
+ <language language-name="Venda" iso6391="ve" xmllang="ve">
2004
+ <iso6392>ven</iso6392>
2005
+ </language>
2006
+ <language language-name="Vietnamese" iso6391="vi" xmllang="vi">
2007
+ <iso6392>vie</iso6392>
2008
+ </language>
2009
+ <language language-name="Volapük" iso6391="vo" xmllang="vo">
2010
+ <iso6392>vol</iso6392>
2011
+ </language>
2012
+ <language language-name="Votic" iso6391="" xmllang="vot">
2013
+ <iso6392>vot</iso6392>
2014
+ </language>
2015
+ <language language-name="Wakashan languages" iso6391="" xmllang="wak">
2016
+ <iso6392>wak</iso6392>
2017
+ </language>
2018
+ <language language-name="Wolaitta; Wolaytta" iso6391="" xmllang="wal">
2019
+ <iso6392>wal</iso6392>
2020
+ </language>
2021
+ <language language-name="Waray" iso6391="" xmllang="war">
2022
+ <iso6392>war</iso6392>
2023
+ </language>
2024
+ <language language-name="Washo" iso6391="" xmllang="was">
2025
+ <iso6392>was</iso6392>
2026
+ </language>
2027
+ <language language-name="Sorbian languages" iso6391="" xmllang="wen">
2028
+ <iso6392>wen</iso6392>
2029
+ </language>
2030
+ <language language-name="Walloon" iso6391="wa" xmllang="wa">
2031
+ <iso6392>wln</iso6392>
2032
+ </language>
2033
+ <language language-name="Wolof" iso6391="wo" xmllang="wo">
2034
+ <iso6392>wol</iso6392>
2035
+ </language>
2036
+ <language language-name="Kalmyk; Oirat" iso6391="" xmllang="xal">
2037
+ <iso6392>xal</iso6392>
2038
+ </language>
2039
+ <language language-name="Xhosa" iso6391="xh" xmllang="xh">
2040
+ <iso6392>xho</iso6392>
2041
+ </language>
2042
+ <language language-name="Yao" iso6391="" xmllang="yao">
2043
+ <iso6392>yao</iso6392>
2044
+ </language>
2045
+ <language language-name="Yapese" iso6391="" xmllang="yap">
2046
+ <iso6392>yap</iso6392>
2047
+ </language>
2048
+ <language language-name="Yiddish" iso6391="yi" xmllang="yi">
2049
+ <iso6392>yid</iso6392>
2050
+ </language>
2051
+ <language language-name="Yoruba" iso6391="yo" xmllang="yo">
2052
+ <iso6392>yor</iso6392>
2053
+ </language>
2054
+ <language language-name="Yupik languages" iso6391="" xmllang="ypk">
2055
+ <iso6392>ypk</iso6392>
2056
+ </language>
2057
+ <language language-name="Zapotec" iso6391="" xmllang="zap">
2058
+ <iso6392>zap</iso6392>
2059
+ </language>
2060
+ <language language-name="Blissymbols; Blissymbolics; Bliss" iso6391="" xmllang="zbl">
2061
+ <iso6392>zbl</iso6392>
2062
+ </language>
2063
+ <language language-name="Zenaga" iso6391="" xmllang="zen">
2064
+ <iso6392>zen</iso6392>
2065
+ </language>
2066
+ <language language-name="Standard Moroccan Tamazight" iso6391="" xmllang="zgh">
2067
+ <iso6392>zgh</iso6392>
2068
+ </language>
2069
+ <language language-name="Zhuang; Chuang" iso6391="za" xmllang="za">
2070
+ <iso6392>zha</iso6392>
2071
+ </language>
2072
+ <language language-name="Zande languages" iso6391="" xmllang="znd">
2073
+ <iso6392>znd</iso6392>
2074
+ </language>
2075
+ <language language-name="Zulu" iso6391="zu" xmllang="zu">
2076
+ <iso6392>zul</iso6392>
2077
+ </language>
2078
+ <language language-name="Zuni" iso6391="" xmllang="zun">
2079
+ <iso6392>zun</iso6392>
2080
+ </language>
2081
+ <language language-name="No linguistic content; Not applicable" iso6391="" xmllang="zxx">
2082
+ <iso6392>zxx</iso6392>
2083
+ </language>
2084
+ <language language-name="Zaza; Dimili; Dimli; Kirdki; Kirmanjki; Zazaki" iso6391=""
2085
+ xmllang="zza">
2086
+ <iso6392>zza</iso6392>
2087
+ </language>
2088
+ </xml-langs>
2089
+ );
2090
+ declare variable $marc2bfutils:carriers := (
2091
+ <terms>
2092
+ <!-- Audio Carriers -->
2093
+ <term code="sg">
2094
+ <aL>audio cartridge</aL>
2095
+ <scopeNote>MARC 007/01: g (Sound recording)</scopeNote>
2096
+ <memberOf>RDACarriers</memberOf>
2097
+ <memberOf>AudioCarriers</memberOf>
2098
+ <subClassOf></subClassOf>
2099
+ </term>
2100
+ <term code="se">
2101
+ <aL>audio cylinder</aL>
2102
+ <scopeNote>MARC 007/01: e (Sound recording)</scopeNote>
2103
+ <memberOf>RDACarriers</memberOf>
2104
+ <memberOf>AudioCarriers</memberOf>
2105
+ <subClassOf></subClassOf>
2106
+ </term>
2107
+ <term code="sd">
2108
+ <aL>audio disc</aL>
2109
+ <scopeNote>MARC 007/01: d (Sound recording)</scopeNote>
2110
+ <memberOf>RDACarriers</memberOf>
2111
+ <memberOf>AudioCarriers</memberOf>
2112
+ <subClassOf></subClassOf>
2113
+ </term>
2114
+ <term code="si">
2115
+ <aL>sound track reel</aL>
2116
+ <scopeNote>MARC 007/01: i (Sound recording)</scopeNote>
2117
+ <memberOf>RDACarriers</memberOf>
2118
+ <memberOf>AudioCarriers</memberOf>
2119
+ <subClassOf></subClassOf>
2120
+ </term>
2121
+ <term code="sq">
2122
+ <aL>audio roll</aL>
2123
+ <scopeNote>MARC 007/01: q (Sound recording)</scopeNote>
2124
+ <memberOf>RDACarriers</memberOf>
2125
+ <memberOf>AudioCarriers</memberOf>
2126
+ <subClassOf></subClassOf>
2127
+ </term>
2128
+ <term code="ss">
2129
+ <aL>audiocassette</aL>
2130
+ <scopeNote>MARC 007/01: s (Sound recording)</scopeNote>
2131
+ <memberOf>RDACarriers</memberOf>
2132
+ <memberOf>AudioCarriers</memberOf>
2133
+ <subClassOf></subClassOf>
2134
+ </term>
2135
+ <term code="st">
2136
+ <aL>audiotape reel</aL>
2137
+ <scopeNote>MARC 007/01: t (Sound recording)</scopeNote>
2138
+ <memberOf>RDACarriers</memberOf>
2139
+ <memberOf>AudioCarriers</memberOf>
2140
+ <subClassOf></subClassOf>
2141
+ </term>
2142
+ <term code="sz">
2143
+ <aL>other audio Carrier</aL>
2144
+ <scopeNote>MARC 007/01: z (Sound recording)</scopeNote>
2145
+ <memberOf>RDACarriers</memberOf>
2146
+ <memberOf>AudioCarriers</memberOf>
2147
+ <subClassOf></subClassOf>
2148
+ </term>
2149
+ <!-- Computer carriers -->
2150
+ <term code="ck">
2151
+ <aL>computer card</aL>
2152
+ <scopeNote>MARC 007/01: k (Electronic resource)</scopeNote>
2153
+ <memberOf>RDACarriers</memberOf>
2154
+ <memberOf>ComputerCarriers</memberOf>
2155
+ <subClassOf></subClassOf>
2156
+ </term>
2157
+ <term code="cb">
2158
+ <aL>computer chip cartridge</aL>
2159
+ <scopeNote>MARC 007/01: b (Electronic resource)</scopeNote>
2160
+ <memberOf>RDACarriers</memberOf>
2161
+ <memberOf>ComputerCarriers</memberOf>
2162
+ <subClassOf></subClassOf>
2163
+ </term>
2164
+ <term code="cd">
2165
+ <aL>computer disc</aL>
2166
+ <scopeNote>MARC 007/01: d (Electronic resource)</scopeNote>
2167
+ <memberOf>RDACarriers</memberOf>
2168
+ <memberOf>ComputerCarriers</memberOf>
2169
+ <subClassOf></subClassOf>
2170
+ </term>
2171
+ <term code="ce">
2172
+ <aL>computer disc cartridge</aL>
2173
+ <scopeNote>MARC 007/01: e (Electronic resource)</scopeNote>
2174
+ <memberOf>RDACarriers</memberOf>
2175
+ <memberOf>ComputerCarriers</memberOf>
2176
+ <subClassOf></subClassOf>
2177
+ </term>
2178
+ <term code="ca">
2179
+ <aL>computer tape cartridge</aL>
2180
+ <scopeNote>MARC 007/01: a (Electronic resource)</scopeNote>
2181
+ <memberOf>RDACarriers</memberOf>
2182
+ <memberOf>ComputerCarriers</memberOf>
2183
+ <subClassOf></subClassOf>
2184
+ </term>
2185
+ <term code="cf">
2186
+ <aL>computer tape cassette</aL>
2187
+ <scopeNote>MARC 007/01: f (Electronic resource)</scopeNote>
2188
+ <memberOf>RDACarriers</memberOf>
2189
+ <memberOf>ComputerCarriers</memberOf>
2190
+ <subClassOf></subClassOf>
2191
+ </term>
2192
+ <term code="ch">
2193
+ <aL>computer tape reel</aL>
2194
+ <scopeNote>MARC 007/01: h (Electronic resource)</scopeNote>
2195
+ <memberOf>RDACarriers</memberOf>
2196
+ <memberOf>ComputerCarriers</memberOf>
2197
+ <subClassOf></subClassOf>
2198
+ </term>
2199
+ <term code="cr">
2200
+ <aL>online resource</aL>
2201
+ <scopeNote>MARC 007/01: r (Electronic resource)</scopeNote>
2202
+ <memberOf>RDACarriers</memberOf>
2203
+ <memberOf>ComputerCarriers</memberOf>
2204
+ <subClassOf></subClassOf>
2205
+ </term>
2206
+ <term code="cz">
2207
+ <aL>other computer carrier</aL>
2208
+ <scopeNote>MARC 007/01: z (Electronic resource)</scopeNote>
2209
+ <memberOf>RDACarriers</memberOf>
2210
+ <memberOf>ComputerCarriers</memberOf>
2211
+ <subClassOf></subClassOf>
2212
+ </term>
2213
+ <!-- Microform carriers -->
2214
+ <term code="ha">
2215
+ <aL>aperture card</aL>
2216
+ <scopeNote>MARC 007/01: a (Microform)</scopeNote>
2217
+ <memberOf>RDACarriers</memberOf>
2218
+ <memberOf>MicroformCarriers</memberOf>
2219
+ <subClassOf></subClassOf>
2220
+ </term>
2221
+ <term code="he">
2222
+ <aL>microfiche</aL>
2223
+ <scopeNote>MARC 007/01: e (Microform)</scopeNote>
2224
+ <memberOf>RDACarriers</memberOf>
2225
+ <memberOf>MicroformCarriers</memberOf>
2226
+ <subClassOf></subClassOf>
2227
+ </term>
2228
+ <term code="hf">
2229
+ <aL>microfiche cassette</aL>
2230
+ <scopeNote>MARC 007/01: f (Microform)</scopeNote>
2231
+ <memberOf>RDACarriers</memberOf>
2232
+ <memberOf></memberOf>
2233
+ <subClassOf></subClassOf>
2234
+ </term>
2235
+ <term code="hb">
2236
+ <aL>microfilm cartridge</aL>
2237
+ <scopeNote>MARC 007/01: b (Microform)</scopeNote>
2238
+ <memberOf>RDACarriers</memberOf>
2239
+ <memberOf>MicroformCarriers</memberOf>
2240
+ <subClassOf></subClassOf>
2241
+ </term>
2242
+ <term code="hc">
2243
+ <aL>microfilm cassette</aL>
2244
+ <scopeNote>MARC 007/01: c (Microform)</scopeNote>
2245
+ <memberOf>RDACarriers</memberOf>
2246
+ <memberOf>MicroformCarriers</memberOf>
2247
+ <subClassOf></subClassOf>
2248
+ </term>
2249
+ <term code="hd">
2250
+ <aL>microfilm reel</aL>
2251
+ <scopeNote>MARC 007/01: d (Microform)</scopeNote>
2252
+ <memberOf>RDACarriers</memberOf>
2253
+ <memberOf>MicroformCarriers</memberOf>
2254
+ <subClassOf></subClassOf>
2255
+ </term>
2256
+ <term code="hj">
2257
+ <aL>microfilm roll</aL>
2258
+ <scopeNote>MARC 007/01: j (Microfilm)</scopeNote>
2259
+ <memberOf>RDACarriers</memberOf>
2260
+ <memberOf>MicroformCarriers</memberOf>
2261
+ <subClassOf></subClassOf>
2262
+ </term>
2263
+ <term code="hh">
2264
+ <aL>microfilm slip</aL>
2265
+ <scopeNote>MARC 007/01: h (Microform)</scopeNote>
2266
+ <memberOf>RDACarriers</memberOf>
2267
+ <memberOf>MicroformCarriers</memberOf>
2268
+ <subClassOf></subClassOf>
2269
+ </term>
2270
+ <term code="hg">
2271
+ <aL>microopaque</aL>
2272
+ <scopeNote>MARC 007/01: g (Microform)</scopeNote>
2273
+ <memberOf>RDACarriers</memberOf>
2274
+ <memberOf>MicroformCarriers</memberOf>
2275
+ <subClassOf></subClassOf>
2276
+ </term>
2277
+ <term code="hz">
2278
+ <aL>other microform carrier</aL>
2279
+ <scopeNote>MARC 007/01: z (Microform)</scopeNote>
2280
+ <memberOf>RDACarriers</memberOf>
2281
+ <memberOf>MicroformCarriers</memberOf>
2282
+ <subClassOf></subClassOf>
2283
+ </term>
2284
+ <!-- Microscopic carriers -->
2285
+ <term code="pp">
2286
+ <aL>microscope slide</aL>
2287
+ <scopeNote>MARC 008/33: p (Visual Materials)</scopeNote>
2288
+ <memberOf>RDACarriers</memberOf>
2289
+ <memberOf>MicroscopicCarriers</memberOf>
2290
+ <subClassOf></subClassOf>
2291
+ </term>
2292
+ <term code="pz">
2293
+ <aL>other microscopic carrier</aL>
2294
+ <scopeNote>MARC 007/01: no code</scopeNote>
2295
+ <memberOf>RDACarriers</memberOf>
2296
+ <memberOf>MicroscopicCarriers</memberOf>
2297
+ <subClassOf></subClassOf>
2298
+ </term>
2299
+ <!-- Projected image carriers -->
2300
+ <term code="mc">
2301
+ <aL>film cartridge</aL>
2302
+ <scopeNote>MARC 007/01: c (Motion picture)</scopeNote>
2303
+ <memberOf>RDACarriers</memberOf>
2304
+ <memberOf>ProjectedImageCarriers</memberOf>
2305
+ <subClassOf></subClassOf>
2306
+ </term>
2307
+ <term code="mf">
2308
+ <aL>film cassette</aL>
2309
+ <scopeNote>MARC 007/01: f (Motion picture)</scopeNote>
2310
+ <memberOf>RDACarriers</memberOf>
2311
+ <memberOf>ProjectedImageCarriers</memberOf>
2312
+ <subClassOf></subClassOf>
2313
+ </term>
2314
+ <term code="mr">
2315
+ <aL>film reel</aL>
2316
+ <scopeNote>MARC 007/01: r (Motion picture)</scopeNote>
2317
+ <memberOf>RDACarriers</memberOf>
2318
+ <memberOf>ProjectedImageCarriers</memberOf>
2319
+ <subClassOf></subClassOf>
2320
+ </term>
2321
+ <term code="mo">
2322
+ <aL>film roll</aL>
2323
+ <scopeNote>MARC 007/01: o (Motion picture)</scopeNote>
2324
+ <memberOf>RDACarriers</memberOf>
2325
+ <memberOf>ProjectedImageCarriers</memberOf>
2326
+ <subClassOf></subClassOf>
2327
+ </term>
2328
+ <term code="gd">
2329
+ <aL>filmslip</aL>
2330
+ <scopeNote>MARC 007/01: d (Projected graphic)</scopeNote>
2331
+ <memberOf>RDACarriers</memberOf>
2332
+ <memberOf>ProjectedImageCarriers</memberOf>
2333
+ <subClassOf></subClassOf>
2334
+ </term>
2335
+ <term code="gf">
2336
+ <aL>filmstrip</aL>
2337
+ <scopeNote>MARC 007/01: f (Projected graphic)</scopeNote>
2338
+ <memberOf>RDACarriers</memberOf>
2339
+ <memberOf>ProjectedImageCarriers</memberOf>
2340
+ <subClassOf></subClassOf>
2341
+ </term>
2342
+ <term code="gc">
2343
+ <aL>filmstrip cartridge</aL>
2344
+ <scopeNote>MARC 007/01: c (Projected graphic)</scopeNote>
2345
+ <memberOf>RDACarriers</memberOf>
2346
+ <memberOf>ProjectedImageCarriers</memberOf>
2347
+ <subClassOf></subClassOf>
2348
+ </term>
2349
+ <term code="gt">
2350
+ <aL>overhead transparency</aL>
2351
+ <scopeNote>MARC 007/01: t (Projected graphic)</scopeNote>
2352
+ <memberOf>RDACarriers</memberOf>
2353
+ <memberOf>ProjectedImageCarriers</memberOf>
2354
+ <subClassOf></subClassOf>
2355
+ </term>
2356
+ <term code="gs">
2357
+ <aL>slide</aL>
2358
+ <scopeNote>MARC 007/01: s (Projected graphic)</scopeNote>
2359
+ <memberOf>RDACarriers</memberOf>
2360
+ <memberOf>ProjectedImageCarriers</memberOf>
2361
+ <subClassOf></subClassOf>
2362
+ </term>
2363
+ <term code="mz">
2364
+ <aL>other projected-image carrier</aL>
2365
+ <scopeNote>MARC 007/01: z (Motion picture)</scopeNote>
2366
+ <scopeNote>MARC 007/01: z (Projected graphic)</scopeNote>
2367
+ <memberOf>RDACarriers</memberOf>
2368
+ <memberOf>ProjectedImageCarriers</memberOf>
2369
+ <subClassOf></subClassOf>
2370
+ </term>
2371
+ <!-- Stereographic carriers -->
2372
+ <term code="eh">
2373
+ <aL>stereograph card</aL>
2374
+ <scopeNote>MARC 007/01: h (Non-projected graphic)</scopeNote>
2375
+ <memberOf>RDACarriers</memberOf>
2376
+ <memberOf>StereographicCarriers</memberOf>
2377
+ <subClassOf></subClassOf>
2378
+ </term>
2379
+ <term code="es">
2380
+ <aL>stereograph disc</aL>
2381
+ <scopeNote>MARC 007/01: s (Projected graphic)</scopeNote>
2382
+ <memberOf>RDACarriers</memberOf>
2383
+ <memberOf>StereographicCarriers</memberOf>
2384
+ <subClassOf></subClassOf>
2385
+ </term>
2386
+ <term code="ez">
2387
+ <aL>other stereographic Carrier</aL>
2388
+ <scopeNote>MARC 007/01: no code</scopeNote>
2389
+ <memberOf>RDACarriers</memberOf>
2390
+ <memberOf>StereographicCarriers</memberOf>
2391
+ <subClassOf></subClassOf>
2392
+ </term>
2393
+ <!-- Unmediated carriers -->
2394
+ <term code="no">
2395
+ <aL>card</aL>
2396
+ <scopeNote>MARC 007/01: no code</scopeNote>
2397
+ <memberOf>RDACarriers</memberOf>
2398
+ <memberOf>UnmediatedCarriers</memberOf>
2399
+ <subClassOf></subClassOf>
2400
+ </term>
2401
+ <term code="nn">
2402
+ <aL>flipchart</aL>
2403
+ <scopeNote>MARC 007/01: no code</scopeNote>
2404
+ <memberOf>RDACarriers</memberOf>
2405
+ <memberOf>UnmediatedCarriers</memberOf>
2406
+ <subClassOf></subClassOf>
2407
+ </term>
2408
+ <term code="na">
2409
+ <aL>roll</aL>
2410
+ <scopeNote>MARC 007/01: no code</scopeNote>
2411
+ <memberOf>RDACarriers</memberOf>
2412
+ <memberOf>UnmediatedCarriers</memberOf>
2413
+ <subClassOf></subClassOf>
2414
+ </term>
2415
+ <term code="nb">
2416
+ <aL>sheet</aL>
2417
+ <scopeNote>MARC 007/01: no code</scopeNote>
2418
+ <memberOf>RDACarriers</memberOf>
2419
+ <memberOf>UnmediatedCarriers</memberOf>
2420
+ <subClassOf></subClassOf>
2421
+ </term>
2422
+ <term code="nc">
2423
+ <aL>volume</aL>
2424
+ <scopeNote>MARC 007/01: no code</scopeNote>
2425
+ <memberOf>RDACarriers</memberOf>
2426
+ <memberOf>UnmediatedCarriers</memberOf>
2427
+ <subClassOf></subClassOf>
2428
+ </term>
2429
+ <term code="nr">
2430
+ <aL>object</aL>
2431
+ <scopeNote>MARC Bibliographic Leader/06: r</scopeNote>
2432
+ <memberOf>RDACarriers</memberOf>
2433
+ <memberOf>UnmediatedCarriers</memberOf>
2434
+ <subClassOf></subClassOf>
2435
+ </term>
2436
+ <term code="nz">
2437
+ <aL>other unmediated carrier</aL>
2438
+ <scopeNote>MARC 007/01: no code</scopeNote>
2439
+ <memberOf>RDACarriers</memberOf>
2440
+ <memberOf>UnmediatedCarriers</memberOf>
2441
+ <subClassOf></subClassOf>
2442
+ </term>
2443
+ <!-- Video carriers -->
2444
+ <term code="vc">
2445
+ <aL>video cartridge</aL>
2446
+ <scopeNote>MARC 007/01: c (Videorecording)</scopeNote>
2447
+ <memberOf>RDACarriers</memberOf>
2448
+ <memberOf>VideoCarriers</memberOf>
2449
+ <subClassOf></subClassOf>
2450
+ </term>
2451
+ <term code="vf">
2452
+ <aL>videocassette</aL>
2453
+ <scopeNote>MARC 007/01: f (Videorecording)</scopeNote>
2454
+ <memberOf>RDACarriers</memberOf>
2455
+ <memberOf>VideoCarriers</memberOf>
2456
+ <subClassOf></subClassOf>
2457
+ </term>
2458
+ <term code="vd">
2459
+ <aL>videodisc</aL>
2460
+ <scopeNote>MARC 007/01: d (Videorecording)</scopeNote>
2461
+ <memberOf>RDACarriers</memberOf>
2462
+ <memberOf>VideoCarriers</memberOf>
2463
+ <subClassOf></subClassOf>
2464
+ </term>
2465
+ <term code="vr">
2466
+ <aL>videotape reel</aL>
2467
+ <scopeNote>MARC 007/01: r (Videorecording)</scopeNote>
2468
+ <memberOf>RDACarriers</memberOf>
2469
+ <memberOf>VideoCarriers</memberOf>
2470
+ <subClassOf></subClassOf>
2471
+ </term>
2472
+ <term code="vz">
2473
+ <aL>other video carrier</aL>
2474
+ <scopeNote>MARC 007/01: z (Videorecording)</scopeNote>
2475
+ <memberOf>RDACarriers</memberOf>
2476
+ <memberOf>VideoCarriers</memberOf>
2477
+ <subClassOf></subClassOf>
2478
+ </term>
2479
+ <!-- Unspecified carriers -->
2480
+ <term code="zu">
2481
+ <aL>unspecified</aL>
2482
+ <scopeNote>MARC 007/01: u (Unspecified)</scopeNote>
2483
+ <memberOf>RDACarriers</memberOf>
2484
+ <memberOf>UnspecifiedCarriers</memberOf>
2485
+ <subClassOf></subClassOf>
2486
+ </term>
2487
+ </terms>
2488
+ );
2489
+ declare variable $marc2bfutils:content-types := (
2490
+ <terms>
2491
+ <term code="crd">
2492
+ <aL>cartographic dataset</aL>
2493
+ <scopeNote>MARC Leader/06: e or f</scopeNote>
2494
+ <memberOf>RDAContentTypes</memberOf>
2495
+ <subClassOf></subClassOf>
2496
+ </term>
2497
+ <term code="cri">
2498
+ <aL>cartographic image</aL>
2499
+ <scopeNote>MARC Leader/06: e or f</scopeNote>
2500
+ <memberOf>RDAContentTypes</memberOf>
2501
+ <subClassOf></subClassOf>
2502
+ </term>
2503
+ <term code="crm">
2504
+ <aL>cartographic moving image</aL>
2505
+ <scopeNote>MARC Leader/06: e or f</scopeNote>
2506
+ <memberOf>RDAContentTypes</memberOf>
2507
+ <subClassOf></subClassOf>
2508
+ </term>
2509
+ <term code="crt">
2510
+ <aL>cartographic tactile image</aL>
2511
+ <scopeNote>MARC Leader/06: e or f</scopeNote>
2512
+ <memberOf>RDAContentTypes</memberOf>
2513
+ <subClassOf></subClassOf>
2514
+ </term>
2515
+ <term code="crn">
2516
+ <aL>cartographic tactile three-dimensional form</aL>
2517
+ <scopeNote>MARC Leader/06: e or f</scopeNote>
2518
+ <memberOf>RDAContentTypes</memberOf>
2519
+ <subClassOf></subClassOf>
2520
+ </term>
2521
+ <term code="crf">
2522
+ <aL>cartographic three-dimensional form</aL>
2523
+ <scopeNote>MARC Leader/06: e or f</scopeNote>
2524
+ <memberOf>RDAContentTypes</memberOf>
2525
+ <subClassOf></subClassOf>
2526
+ </term>
2527
+ <term code="cod">
2528
+ <aL>computer dataset</aL>
2529
+ <scopeNote>MARC Leader/06: m</scopeNote>
2530
+ <memberOf>RDAContentTypes</memberOf>
2531
+ <subClassOf></subClassOf>
2532
+ </term>
2533
+ <term code="cop">
2534
+ <aL>computer program</aL>
2535
+ <scopeNote>MARC Leader/06: m</scopeNote>
2536
+ <memberOf>RDAContentTypes</memberOf>
2537
+ <subClassOf></subClassOf>
2538
+ </term>
2539
+ <term code="ntv">
2540
+ <aL>notated movement</aL>
2541
+ <scopeNote>MARC Leader/06: a or t</scopeNote>
2542
+ <memberOf>RDAContentTypes</memberOf>
2543
+ <subClassOf></subClassOf>
2544
+ </term>
2545
+ <term code="ntm">
2546
+ <aL>notated music</aL>
2547
+ <scopeNote>MARC Leader/06: c or d</scopeNote>
2548
+ <memberOf>RDAContentTypes</memberOf>
2549
+ <subClassOf></subClassOf>
2550
+ </term>
2551
+ <term code="prm">
2552
+ <aL>performed music</aL>
2553
+ <scopeNote>MARC Leader/06: j</scopeNote>
2554
+ <memberOf>RDAContentTypes</memberOf>
2555
+ <subClassOf></subClassOf>
2556
+ </term>
2557
+ <term code="snd">
2558
+ <aL>sounds</aL>
2559
+ <scopeNote>MARC Leader/06: i</scopeNote>
2560
+ <memberOf>RDAContentTypes</memberOf>
2561
+ <subClassOf></subClassOf>
2562
+ </term>
2563
+ <term code="spw">
2564
+ <aL>spoken word</aL>
2565
+ <scopeNote>MARC Leader/06: i</scopeNote>
2566
+ <memberOf>RDAContentTypes</memberOf>
2567
+ <subClassOf></subClassOf>
2568
+ </term>
2569
+ <term code="sti">
2570
+ <aL>still image</aL>
2571
+ <scopeNote>MARC Leader/06: k</scopeNote>
2572
+ <memberOf>RDAContentTypes</memberOf>
2573
+ <subClassOf></subClassOf>
2574
+ </term>
2575
+ <term code="tci">
2576
+ <aL>tactile image</aL>
2577
+ <scopeNote>MARC Leader/06: k</scopeNote>
2578
+ <memberOf>RDAContentTypes</memberOf>
2579
+ <subClassOf></subClassOf>
2580
+ </term>
2581
+ <term code="tcm">
2582
+ <aL>tactile notated music</aL>
2583
+ <scopeNote>MARC Leader/06: c or d</scopeNote>
2584
+ <memberOf>RDAContentTypes</memberOf>
2585
+ <subClassOf></subClassOf>
2586
+ </term>
2587
+ <term code="tcn">
2588
+ <aL>tactile notated movement</aL>
2589
+ <scopeNote>MARC Leader/06: a or t</scopeNote>
2590
+ <memberOf>RDAContentTypes</memberOf>
2591
+ <subClassOf></subClassOf>
2592
+ </term>
2593
+ <term code="tct">
2594
+ <aL>tactile text</aL>
2595
+ <scopeNote>MARC Leader/06: a or t</scopeNote>
2596
+ <memberOf>RDAContentTypes</memberOf>
2597
+ <subClassOf></subClassOf>
2598
+ </term>
2599
+ <term code="tcf">
2600
+ <aL>tactile three-dimensional form</aL>
2601
+ <scopeNote>MARC Leader/06: r</scopeNote>
2602
+ <memberOf>RDAContentTypes</memberOf>
2603
+ <subClassOf></subClassOf>
2604
+ </term>
2605
+ <term code="txt">
2606
+ <aL>text</aL>
2607
+ <scopeNote>MARC Leader/06: a or t</scopeNote>
2608
+ <memberOf>RDAContentTypes</memberOf>
2609
+ <subClassOf></subClassOf>
2610
+ </term>
2611
+ <term code="tdf">
2612
+ <aL>three-dimensional form</aL>
2613
+ <scopeNote>MARC Leader/06: r</scopeNote>
2614
+ <memberOf>RDAContentTypes</memberOf>
2615
+ <subClassOf></subClassOf>
2616
+ </term>
2617
+ <term code="tdm">
2618
+ <aL>three-dimensional moving image</aL>
2619
+ <scopeNote>MARC Leader/06: g</scopeNote>
2620
+ <memberOf>RDAContentTypes</memberOf>
2621
+ <subClassOf></subClassOf>
2622
+ </term>
2623
+ <term code="tdi">
2624
+ <aL>two-dimensional moving image</aL>
2625
+ <scopeNote>MARC Leader/06: g</scopeNote>
2626
+ <memberOf>RDAContentTypes</memberOf>
2627
+ <subClassOf></subClassOf>
2628
+ </term>
2629
+ <term code="xxx">
2630
+ <aL>other</aL>
2631
+ <scopeNote>MARC Leader/06: o or p</scopeNote>
2632
+ <memberOf>RDAContentTypes</memberOf>
2633
+ <subClassOf></subClassOf>
2634
+ </term>
2635
+ <term code="zzz">
2636
+ <aL>unspecified</aL>
2637
+ <memberOf>RDAContentTypes</memberOf>
2638
+ <subClassOf></subClassOf>
2639
+ </term>
2640
+ </terms>);
2641
+ declare variable $marc2bfutils:media-types := (
2642
+ <terms>
2643
+ <!-- RDA media types -->
2644
+ <!-- http://www.loc.gov/standards/valuelist/rdamedia.html -->
2645
+ <term code="s">
2646
+ <aL>audio</aL>
2647
+ <vL>sound recording</vL>
2648
+ <scopeNote>MARC 007/00: s</scopeNote>
2649
+ <scopeNote>MARC 337/$b: s</scopeNote>
2650
+ <memberOf>RDAMediaTypes</memberOf>
2651
+ <subClassOf></subClassOf>
2652
+ </term>
2653
+ <term code="c">
2654
+ <aL>computer</aL>
2655
+ <vL>electronic resource</vL>
2656
+ <scopeNote>MARC 007/00: c</scopeNote>
2657
+ <scopeNote>MARC 337/$b: c</scopeNote>
2658
+ <memberOf>RDAMediaTypes</memberOf>
2659
+ <subClassOf></subClassOf>
2660
+ </term>
2661
+ <term code="h">
2662
+ <aL>microform</aL>
2663
+ <scopeNote>MARC 007/00: h</scopeNote>
2664
+ <scopeNote>MARC 337/$b: h</scopeNote>
2665
+ <memberOf>RDAMediaTypes</memberOf>
2666
+ <subClassOf></subClassOf>
2667
+ </term>
2668
+ <term code="p">
2669
+ <aL>microscopic</aL>
2670
+ <scopeNote>MARC 007/00: [n/a]</scopeNote>
2671
+ <scopeNote>MARC 337/$b: p</scopeNote>
2672
+ <memberOf>RDAMediaTypes</memberOf>
2673
+ <subClassOf></subClassOf>
2674
+ </term>
2675
+ <term code="g">
2676
+ <aL>projected</aL>
2677
+ <vL>projected graphic</vL>
2678
+ <vL>motion picture</vL>
2679
+ <scopeNote>MARC 007/00: g</scopeNote>
2680
+ <scopeNote>MARC 007/00: m</scopeNote>
2681
+ <scopeNote>MARC 337/$b: g</scopeNote>
2682
+ <memberOf>RDAMediaTypes</memberOf>
2683
+ <subClassOf></subClassOf>
2684
+ </term>
2685
+ <term code="e">
2686
+ <aL>stereographic</aL>
2687
+ <scopeNote>MARC 007/00: [n/a]</scopeNote>
2688
+ <scopeNote>MARC 337/$b: e</scopeNote>
2689
+ <memberOf>RDAMediaTypes</memberOf>
2690
+ <subClassOf></subClassOf>
2691
+ </term>
2692
+ <term code="n">
2693
+ <aL>unmediated</aL>
2694
+ <vL>text</vL>
2695
+ <vL>non-projected graphic</vL>
2696
+ <scopeNote>MARC 007/00: t</scopeNote>
2697
+ <scopeNote>MARC 007/00: k</scopeNote>
2698
+ <scopeNote>MARC 337/$b: n</scopeNote>
2699
+ <memberOf>RDAMediaTypes</memberOf>
2700
+ <subClassOf></subClassOf>
2701
+ </term>
2702
+ <term code="v">
2703
+ <aL>video</aL>
2704
+ <vL>videorecording</vL>
2705
+ <scopeNote>MARC 007/00: v</scopeNote>
2706
+ <scopeNote>MARC 337/$b: v</scopeNote>
2707
+ <memberOf>RDAMediaTypes</memberOf>
2708
+ <subClassOf></subClassOf>
2709
+ </term>
2710
+ <term code="x">
2711
+ <aL>other</aL>
2712
+ <scopeNote>MARC 337/$b: x</scopeNote>
2713
+ <memberOf>RDAMediaTypes</memberOf>
2714
+ <subClassOf></subClassOf>
2715
+ </term>
2716
+ <term code="z">
2717
+ <aL>unspecified</aL>
2718
+ <scopeNote>MARC 007/00: z</scopeNote>
2719
+ <scopeNote>MARC 337/$b: z</scopeNote>
2720
+ <memberOf>RDAMediaTypes</memberOf>
2721
+ <subClassOf></subClassOf>
2722
+ </term>
2723
+
2724
+ </terms>);
2725
+
2726
+ (:~
2727
+ : This function takes a string and
2728
+ : attempts to clean it up
2729
+ : ISBD punctuation. based on 260 cleaning
2730
+ :
2731
+ : @param $s is fn:string
2732
+ : @return fn:string
2733
+ :)
2734
+ declare function marc2bfutils:clean-string(
2735
+ $s as xs:string?
2736
+ ) as xs:string
2737
+ {
2738
+ if (fn:exists($s)) then
2739
+ let $s:= fn:replace($s,"from old catalog","","i")
2740
+ (:nate removed ; from this one. not sure why we should remove ; from teh middle of a field. Consider Choppunctuation if it's needed?:)
2741
+ let $s := fn:replace($s, "([\[\]]+)", "")
2742
+ (:nate removed : from this one. not sure why we should remove ; from the middle of a field. Consider Choppunctuation if it's needed?:)
2743
+ (:let $s := fn:replace($s, " :", ""):)
2744
+ let $s := fn:normalize-space($s)
2745
+ (:if it contains unbalanced parens, delete:)
2746
+ let $s:= if (fn:contains($s,"(") and fn:not(fn:contains($s, ")")) ) then
2747
+ fn:replace($s, "\(", "")
2748
+ else if (fn:contains($s,")") and fn:not(fn:contains($s, "(")) ) then
2749
+ fn:replace($s, "\)", "")
2750
+ else $s
2751
+
2752
+ return
2753
+ if ( fn:ends-with($s, ",") ) then
2754
+ fn:substring($s, 1, (fn:string-length($s) - 1) )
2755
+ else if ( fn:ends-with($s, "/") ) then
2756
+ fn:substring($s, 1, (fn:string-length($s) - 1) )
2757
+ else
2758
+ $s
2759
+
2760
+ else ""
2761
+ };
2762
+
2763
+ (:~
2764
+ : This function takes a name string and
2765
+ : attempts to clean it up (trailing commas only first).
2766
+ :
2767
+ : @param $s is fn:string
2768
+ : @return fn:string
2769
+ :)
2770
+ declare function marc2bfutils:clean-name-string(
2771
+ $s as xs:string?
2772
+ ) as xs:string
2773
+ {
2774
+ if (fn:exists($s)) then
2775
+ let $s:= fn:replace($s,",$","","i")
2776
+ let $s:= fn:replace($s,"\[from old catalog\]","","i")
2777
+ return
2778
+ $s
2779
+
2780
+ else ""
2781
+
2782
+ };
2783
+ (:~
2784
+ : This function takes a string and
2785
+ : attempts to clean it up
2786
+ : ISBD punctuation. based on title cleaning: you dont' want to strip out ";"
2787
+ :
2788
+ : @param $s is fn:string
2789
+ : @return fn:string
2790
+ :)
2791
+ declare function marc2bfutils:clean-title-string(
2792
+ $s as xs:string
2793
+ ) as xs:string
2794
+ {
2795
+ let $s:= fn:replace($s,"from old catalog","","i")
2796
+ let $s:= fn:replace($s,"\[sound recording\]","","i")
2797
+ let $s:= fn:replace($s,"\[microform\]","","i")
2798
+
2799
+ let $s := fn:replace($s, "([\[\]]+)", "")
2800
+ let $s := fn:replace($s, " :", "")
2801
+
2802
+ let $s := fn:normalize-space($s)
2803
+ let $s :=
2804
+ if ( fn:ends-with($s, ",") ) then
2805
+ fn:substring($s, 1, (fn:string-length($s) - 1) )
2806
+ else
2807
+ $s
2808
+ let $s :=
2809
+ if ( fn:ends-with($s, "/") ) then
2810
+ fn:substring($s, 1, (fn:string-length($s) - 1) )
2811
+ else
2812
+ $s
2813
+ return $s
2814
+
2815
+ };
2816
+
2817
+ (:~
2818
+ : This function processes out the leader and control fields
2819
+ :
2820
+ : not used; copied from marc2mods
2821
+ :
2822
+ : $marcxml is marcxml:record
2823
+ : @return ??
2824
+ :)
2825
+ declare function marc2bfutils:generate-controlfields(
2826
+ $r as element(marcxml:record)
2827
+ )
2828
+ {
2829
+ let $leader:=$r/marcxml:leader
2830
+ let $leader6:=fn:substring($leader,7,1)
2831
+ let $leader7:=fn:substring($leader,8,1)
2832
+ let $leader19:=fn:substring($leader,20,1)
2833
+
2834
+ let $cf008 :=fn:string($r/marcxml:controlfield[@tag="008"])
2835
+ let $leader67type:=
2836
+ if ($leader6="a") then
2837
+ if (fn:matches($leader7,"(a|c|d|m)")) then
2838
+ "BK"
2839
+ else if (fn:matches($leader7,"(b|i|s)")) then
2840
+ "SE"
2841
+ else ()
2842
+
2843
+ else
2844
+ if ($leader6="t") then "BK"
2845
+ else if ($leader6="p") then "MM"
2846
+ else if ($leader6="m") then "CF"
2847
+ else if (fn:matches($leader6,"(e|f|s)")) then "MP"
2848
+ else if (fn:matches($leader6,"(g|k|o|r)")) then "VM"
2849
+ else if (fn:matches($leader6,"(c|d|i|j)")) then "MU"
2850
+ else ()
2851
+
2852
+ let $modscollection:=if ($leader7="c") then "yes" else ()
2853
+ let $modsmanuscript:= if (fn:matches($leader6,"(d|f|p|t)")) then "yes" else ()
2854
+ let $modstypeOfResource:=
2855
+ if ($leader6="a" or $leader6="t") then "text"
2856
+ else if ($leader6="e" or $leader6="f") then "cartographic"
2857
+ else if ($leader6="c" or $leader6="d") then "notated music"
2858
+ else if ($leader6="i" ) then "sound recording-nonmusical"
2859
+ else if ($leader6="j") then "sound recording-musical"
2860
+ else if ($leader6="k") then "still image"
2861
+ else if ($leader6="g") then "moving image"
2862
+ else if ($leader6="r") then "three dimensional object"
2863
+ else if ($leader6="m") then "software, multimedia"
2864
+ else if ($leader6="p") then "mixed material"
2865
+ else ()
2866
+ let $genre008:=
2867
+ if (fn:substring($cf008,26,1)="d") then "globe" else ()
2868
+ let $genre007:= if ($r/marcxml:controlfield[@tag="007"][fn:substring(text(),1,2)="ar"]) then "remote-sensing image" else ()
2869
+ let $genreMP:=
2870
+ if ($leader67type="MP") then
2871
+ if (fn:matches(fn:substring($cf008,26,1),"(a|b|c)") or $r/marcxml:controlfield[@tag=007][fn:substring(text(),1,2)="aj"]) then "map"
2872
+ else if ($leader67type="MP" and fn:matches(fn:substring($cf008,26,1),"e") or $r/marcxml:controlfield[@tag=007][fn:substring(text(),1,2)="ad"]) then "atlas"
2873
+ else ()
2874
+ else ()
2875
+ let $genreSE:=
2876
+ if ($leader67type="SE") then
2877
+ let$cf008-21 :=fn:substring($cf008,22,1)
2878
+ return
2879
+ if ($cf008-21="d") then "database"
2880
+ else if ($cf008-21="l") then "loose-leaf"
2881
+ else if ($cf008-21="m") then "series"
2882
+ else if ($cf008-21="n") then "newspaper"
2883
+ else if ($cf008-21="p") then "periodical"
2884
+ else if ($cf008-21="w") then "web site"
2885
+ else ()
2886
+ else ()
2887
+
2888
+ let $genreBKSE:=
2889
+ if ($leader67type="BK" or $leader67type="SE") then
2890
+ let$cf008-24:= fn:substring($cf008,25,4)
2891
+ return
2892
+ if (fn:contains($cf008-24,'a')) then "abstract or summary"
2893
+ else if (fn:contains($cf008-24,'b')) then "bibliography"
2894
+ else if (fn:contains($cf008-24,'c')) then "catalog"
2895
+ else if (fn:contains($cf008-24,'d')) then "dictionary"
2896
+ else if (fn:contains($cf008-24,'e')) then "encyclopedia"
2897
+ else if (fn:contains($cf008-24,'f')) then "handbook"
2898
+ else if (fn:contains($cf008-24,'g')) then "legal article"
2899
+ else if (fn:contains($cf008-24,'i')) then "index"
2900
+ else if (fn:contains($cf008-24,'k')) then "discography"
2901
+ else if (fn:contains($cf008-24,'l')) then "legislation"
2902
+ else if (fn:contains($cf008-24,'m')) then "theses"
2903
+ else if (fn:contains($cf008-24,'n')) then "survey of literature"
2904
+ else if (fn:contains($cf008-24,'o')) then "review"
2905
+ else if (fn:contains($cf008-24,'p')) then "programmed text"
2906
+ else if (fn:contains($cf008-24,'q')) then "filmography"
2907
+ else if (fn:contains($cf008-24,'r')) then "directory"
2908
+ else if (fn:contains($cf008-24,'s')) then "statistics"
2909
+ else if (fn:contains($cf008-24,'t')) then "technical report"
2910
+ else if (fn:contains($cf008-24,'v')) then "legal case and case notes"
2911
+ else if (fn:contains($cf008-24,'w')) then "law report or digest"
2912
+ else if (fn:contains($cf008-24,'z')) then "treaty"
2913
+ else if (fn:substring($cf008,30,1)="1") then "conference publication"
2914
+ else ()
2915
+ else ()
2916
+
2917
+ let $genreCF:=
2918
+ if ($leader67type="CF") then
2919
+ if (fn:substring($cf008,27,1)="a") then "numeric data"
2920
+ else if (fn:substring($cf008,27,1)="e") then "database"
2921
+ else if (fn:substring($cf008,27,1)="f") then "font"
2922
+ else if (fn:substring($cf008,27,1)="g") then "game"
2923
+ else ()
2924
+ else ()
2925
+
2926
+ let $genreBK:=
2927
+ if ($leader67type="BK") then
2928
+ if (fn:substring($cf008,25,1)="j") then "patent"
2929
+ else if (fn:substring($cf008,25,1)="2") then "offprint"
2930
+ else if (fn:substring($cf008,31,1)="1") then "festschrift"
2931
+ else if (fn:matches(fn:substring($cf008,35,1),"(a|b|c|d)")) then "biography"
2932
+ else if (fn:substring($cf008,34,1)="e") then "essay"
2933
+ else if (fn:substring($cf008,34,1)="d") then "drama"
2934
+ else if (fn:substring($cf008,34,1)="c") then "comic strip"
2935
+ else if (fn:substring($cf008,34,1)="l") then "fiction"
2936
+ else if (fn:substring($cf008,34,1)="h") then "humor, satire"
2937
+ else if (fn:substring($cf008,34,1)="i") then "letter"
2938
+ else if (fn:substring($cf008,34,1)="f") then "novel"
2939
+ else if (fn:substring($cf008,34,1)="j") then "short story"
2940
+ else if (fn:substring($cf008,34,1)="s") then "speech"
2941
+ else ()
2942
+
2943
+ else ()
2944
+ let $genreMU:=
2945
+ if ($leader67type="MU") then
2946
+ let $cf008-30-31:=fn:substring($cf008,31,2)
2947
+ return
2948
+ if (fn:contains($cf008-30-31,'b')) then "biography"
2949
+ else if (fn:contains($cf008-30-31,'c')) then "conference publication"
2950
+ else if (fn:contains($cf008-30-31,'d')) then "drama"
2951
+ else if (fn:contains($cf008-30-31,'e')) then "essay"
2952
+ else if (fn:contains($cf008-30-31,'f')) then "fiction"
2953
+ else if (fn:contains($cf008-30-31,'o')) then "folktale"
2954
+ else if (fn:contains($cf008-30-31,'h')) then "history"
2955
+ else if (fn:contains($cf008-30-31,'k')) then "humor, satire"
2956
+ else if (fn:contains($cf008-30-31,'m')) then "memoir"
2957
+ else if (fn:contains($cf008-30-31,'p')) then "poetry"
2958
+ else if (fn:contains($cf008-30-31,'r')) then "rehearsal"
2959
+ else if (fn:contains($cf008-30-31,'g')) then "reporting"
2960
+ else if (fn:contains($cf008-30-31,'s')) then "sound"
2961
+ else if (fn:contains($cf008-30-31,'l')) then "speech"
2962
+ else ()
2963
+ else ()
2964
+ let $genreVM:=
2965
+ if ($leader67type="VM") then
2966
+ let $cf008-33 :=fn:substring($cf008,34,1)
2967
+ return
2968
+ if($cf008-33="a") then "art original"
2969
+ else if ($cf008-33="b") then "kit"
2970
+ else if ($cf008-33="c") then "art reproduction"
2971
+ else if ($cf008-33="d") then "diorama"
2972
+ else if ($cf008-33="f") then "filmstrip"
2973
+ else if ($cf008-33="g") then "legal article"
2974
+ else if ($cf008-33="i") then "picture"
2975
+ else if ($cf008-33="k") then "graphic"
2976
+ else if ($cf008-33="l") then "technical drawing"
2977
+ else if ($cf008-33="m") then "motion picture"
2978
+ else if ($cf008-33="n") then "chart"
2979
+ else if ($cf008-33="o") then "flash card"
2980
+ else if ($cf008-33="p") then "microscope slide"
2981
+ else if ($cf008-33="q" or $r/marcxml:controlfield[@tag="007"][fn:substring(text(),1,2)="aq"]) then "model"
2982
+ else if ($cf008-33="r") then "realia"
2983
+ else if ($cf008-33="s") then "slide"
2984
+ else if ($cf008-33="t") then "transparency"
2985
+ else if ($cf008-33="v") then "videorecording"
2986
+ else if ($cf008-33="w") then "toy"
2987
+ else ()
2988
+
2989
+ else ()
2990
+ let $edited:=fn:concat(fn:substring(($r/marcxml:controlfield[@tag="005"]),1,4),"-",fn:substring(($r/marcxml:controlfield[@tag="005"]),5,2),"-",fn:substring(($r/marcxml:controlfield[@tag="005"]),7,2),"T",fn:substring(($r/marcxml:controlfield[@tag="005"]),9,2),":",fn:substring(($r/marcxml:controlfield[@tag="005"]),11,2))
2991
+ (:let $date008:=:)
2992
+ let $cf008-7-10:=fn:normalize-space(fn:substring($cf008, 8, 4))
2993
+ let $cf008-11-14:=fn:normalize-space(fn:substring($cf008, 12, 4))
2994
+ let $cf008-6:=fn:normalize-space(fn:substring($cf008, 7, 1))
2995
+ let $datecreated008:= if (fn:matches($cf008-6,"(e|p|r|s|t)") and fn:matches($leader6,"(d|f|p|t)") and $cf008-7-10 ) then
2996
+ $cf008-7-10
2997
+ else ()
2998
+
2999
+ let $dateissued008:=
3000
+ if (fn:matches($cf008-6,"(e|p|r|s|t)") and fn:not(fn:matches($leader6,"(d|f|pt)")) and $cf008-7-10 ) then
3001
+ $cf008-7-10
3002
+ else ()
3003
+ let $dateissued008start:=
3004
+ if (fn:matches($cf008-6,"(c|d|i|k|m|u)") and $cf008-7-10) then
3005
+ $cf008-7-10
3006
+ else ()
3007
+
3008
+ let $dateissued008end:=
3009
+ if (fn:matches($cf008-6,"(c|d|i|k|m|u)") and $cf008-11-14) then
3010
+ $cf008-11-14
3011
+ else ()
3012
+
3013
+ let $dateissued008start-q:=
3014
+ if ($cf008-6="q" and $cf008-7-10) then
3015
+ $cf008-7-10
3016
+ else ()
3017
+ let $dateissued008end-q:=
3018
+ if ($cf008-6="q" and $cf008-11-14) then
3019
+ $cf008-11-14
3020
+ else ()
3021
+
3022
+ let $datecopyright008 :=
3023
+ if ($cf008-6="t" and $cf008-11-14) then
3024
+ $cf008-11-14
3025
+ else ()
3026
+ let $issuance:=
3027
+ if (fn:matches($leader7,"(a|c|d|m)")) then "monographic"
3028
+ else if ($leader7="b") then "continuing"
3029
+ else if ($leader7="m" and fn:matches($leader19,"(a|b|c)")) then "multipart monograph"
3030
+ else if ($leader7='m' and $leader19='#') then "single unit"
3031
+ else if ($leader7='i') then "integrating resource"
3032
+ else if ($leader7='s') then "serial"
3033
+ else ()
3034
+
3035
+ let $frequency:=
3036
+ if ($leader67type="SE") then
3037
+ if (fn:substring($cf008,19,1)="a") then "Annual"
3038
+ else if (fn:substring($cf008,19,1)="b") then "Bimonthly"
3039
+ else if (fn:substring($cf008,19,1)="c") then "Semiweekly"
3040
+ else if (fn:substring($cf008,19,1)="d") then "Daily"
3041
+ else if (fn:substring($cf008,19,1)="e") then "Biweekly"
3042
+ else if (fn:substring($cf008,19,1)="f") then "Semiannual"
3043
+ else if (fn:substring($cf008,19,1)="g") then "Biennial"
3044
+ else if (fn:substring($cf008,19,1)="h") then "Triennial"
3045
+ else if (fn:substring($cf008,19,1)="i") then "Three times a week"
3046
+ else if (fn:substring($cf008,19,1)="j") then "Three times a month"
3047
+ else if (fn:substring($cf008,19,1)="k") then "Continuously updated"
3048
+ else if (fn:substring($cf008,19,1)="m") then "Monthly"
3049
+ else if (fn:substring($cf008,19,1)="q") then "Quarterly"
3050
+ else if (fn:substring($cf008,19,1)="s") then "Semimonthly"
3051
+ else if (fn:substring($cf008,19,1)="t") then "Three times a year"
3052
+ else if (fn:substring($cf008,19,1)="u") then "Unknown"
3053
+ else if (fn:substring($cf008,19,1)="w") then "Weekly"
3054
+ else if (fn:substring($cf008,19,1)="#") then "Completely irregular"
3055
+ else ()
3056
+
3057
+ else ()
3058
+
3059
+ let $lang008:=
3060
+ if (fn:normalize-space(fn:replace(fn:substring($cf008,36,3),"\|#",''))!="") then
3061
+ fn:substring($cf008,36,3)
3062
+ else ()
3063
+
3064
+ let $digorigin008:=
3065
+ if ($leader67type='CF' and $r/marcxml:controlfield[@tag=007][fn:substring(.,12,1)='a']) then "reformatted digital"
3066
+ else if ($leader67type='CF' and $r/marcxml:controlfield[@tag=007][fn:substring(.,12,1)='b']) then "digitized microfilm"
3067
+ else if ($leader67type='CF' and $r/marcxml:controlfield[@tag=007][fn:substring(.,12,1)='d']) then "digitized other analog"
3068
+ else ()
3069
+
3070
+ let $cf008-23 :=fn:substring($cf008,24,1)
3071
+ let $cf008-29:=fn:substring($cf008,30,1)
3072
+ let $check008-23:=
3073
+ if (fn:matches($leader67type,"(BK|MU|SE|MM)")) then
3074
+ fn:true()
3075
+ else ()
3076
+ let $check008-29:=
3077
+ if (fn:matches($leader67type,"(MP|VM)")) then
3078
+ fn:true()
3079
+ else ()
3080
+ let $form008:=
3081
+ if ( ($check008-23 and $cf008-23="f") or ($check008-29 and $cf008-29='f') ) then "braille"
3082
+ else if (($cf008-23=" " and ($leader6="c" or $leader6="d")) or (($leader67type="BK" or $leader67type="SE") and ($cf008-23=" " or $cf008="r"))) then "print"
3083
+ else if ($leader6 = 'm' or ($check008-23 and $cf008-23='s') or ($check008-29 and $cf008-29='s')) then "electronic"
3084
+ else if ($leader6 = "o") then "kit"
3085
+ else if (($check008-23 and $cf008-23='b') or ($check008-29 and $cf008-29='b')) then "microfiche"
3086
+ else if (($check008-23 and $cf008-23='a') or ($check008-29 and $cf008-29='a')) then "microfilm"
3087
+ else ()
3088
+ let $reformatqual:=
3089
+ if ($r/marcxml:controlfield[@tag="007"][fn:substring(text(),1,2)='ca']) then "access"
3090
+ else if ($r/marcxml:controlfield[@tag="007"][fn:substring(text(),1,2)='cp']) then "preservation"
3091
+ else if ($r/marcxml:controlfield[@tag="007"][fn:substring(text(),1,2)='cr']) then "replacement"
3092
+ else ()
3093
+
3094
+ (: use this table: to simplify the ifs below: :)
3095
+ let $forms:=<set>
3096
+ <form c007-1-2="ad" marccat="map" marcsmd="atlas"/>
3097
+ <form c007-1-2="ag" marccat="map" marcsmd="diagram"/>
3098
+ <form c007-1-2="aj" marccat="map" marcsmd="map"/>
3099
+ <form c007-1-2="aq" marccat="map" marcsmd="model"/>
3100
+ <form c007-1-2="ak" marccat="map" marcsmd="profile"/>
3101
+ <form c007-1-2="rr" marccat="remote-sensing image"/>
3102
+ <form c007-1-2="as" marccat="map" marcsmd="section"/>
3103
+ <form c007-1-2="ay" marccat="map" marcsmd="view"/>
3104
+ <form c007-1-2="cb" marccat="electronic resource" marcsmd="chip cartridge"/>
3105
+ <form c007-1-2="cc" marccat="electronic resource" marcsmd="computer optical disc cartridge"/>
3106
+ <form c007-1-2="cj" marccat="electronic resource" marcsmd="magnetic disc"/>
3107
+ <form c007-1-2="cm" marccat="electronic resource" marcsmd="magneto-optical disc"/>
3108
+ <form c007-1-2="co" marccat="electronic resource" marcsmd="optical disc"/>
3109
+ <form c007-1-2="cr" marccat="electronic resource" marcsmd="remote"/>
3110
+ <form c007-1-2="ca" marccat="electronic resource" marcsmd="tape cartridge"/>
3111
+ <form c007-1-2="cf" marccat="electronic resource" marcsmd="tape cassette"/>
3112
+ <form c007-1-2="ch" marccat="electronic resource" marcsmd="tape reel"/>
3113
+ <form c007-1-2="da" marccat="globe" marcsmd="celestial globe"/>
3114
+ <form c007-1-2="de" marccat="globe" marcsmd="earth moon globe"/>
3115
+ <form c007-1-2="db" marccat="globe" marcsmd="planetary or lunar globe"/>
3116
+ <form c007-1-2="dc" marccat="globe" marcsmd="terrestrial globe"/>
3117
+ <form c007-1-2="fc" marccat="tactile material" marcsmd="braille"/>
3118
+ <form c007-1-2="fb" marccat="tactile material" marcsmd="combination"/>
3119
+ <form c007-1-2="fa" marccat="tactile material" marcsmd="moon"/>
3120
+ <form c007-1-2="fd" marccat="tactile material" marcsmd="tactile, with no writing system"/>
3121
+ <form c007-1-2="gd" marccat="projected graphic" marcsmd="filmslip"/>
3122
+ <form c007-1-2="gc" marccat="projected graphic" marcsmd="filmstrip cartridge"/>
3123
+ <form c007-1-2="go" marccat="projected graphic" marcsmd="filmstrip roll"/>
3124
+ <form c007-1-2="gf" marccat="projected graphic" marcsmd="other filmstrip type"/>
3125
+ <form c007-1-2="gs" marccat="projected graphic" marcsmd="slide"/>
3126
+ <form c007-1-2="gt" marccat="projected graphic" marcsmd="transparency"/>
3127
+ <form c007-1-2="ha" marccat="microform" marcsmd="aperture card"/>
3128
+ <form c007-1-2="he" marccat="microform" marcsmd="microfiche"/>
3129
+ <form c007-1-2="hf" marccat="microform" marcsmd="microfiche cassette"/>
3130
+ <form c007-1-2="hb" marccat="microform" marcsmd="microfilm cartridge"/>
3131
+ <form c007-1-2="hc" marccat="microform" marcsmd="microfilm cassette"/>
3132
+ <form c007-1-2="hd" marccat="microform" marcsmd="microfilm reel"/>
3133
+ <form c007-1-2="hg" marccat="microform" marcsmd="microopaque"/>
3134
+ <form c007-1-2="kn" marccat="nonprojected graphic" marcsmd="chart"/>
3135
+ <form c007-1-2="kc" marccat="nonprojected graphic" marcsmd="collage"/>
3136
+ <form c007-1-2="kd" marccat="nonprojected graphic" marcsmd="drawing"/>
3137
+ <form c007-1-2="ko" marccat="nonprojected graphic" marcsmd="flash card"/>
3138
+ <form c007-1-2="ke" marccat="nonprojected graphic" marcsmd="painting"/>
3139
+ <form c007-1-2="kf" marccat="nonprojected graphic" marcsmd="photomechanical print"/>
3140
+ <form c007-1-2="kg" marccat="nonprojected graphic" marcsmd="photonegative"/>
3141
+ <form c007-1-2="kh" marccat="nonprojected graphic" marcsmd="photoprint"/>
3142
+ <form c007-1-2="ki" marccat="nonprojected graphic" marcsmd="picture"/>
3143
+ <form c007-1-2="kj" marccat="nonprojected graphic" marcsmd="print"/>
3144
+ <form c007-1-2="kl" marccat="nonprojected graphic" marcsmd="technical drawing"/>
3145
+ <form c007-1-2="mc" marccat="motion picture" marcsmd="film cartridge"/>
3146
+ <form c007-1-2="mf" marccat="motion picture" marcsmd="film cassette"/>
3147
+ <form c007-1-2="mr" marccat="motion picture" marcsmd="film reel"/>
3148
+ <form c007-1-2="oo" marccat="kit" marcsmd="kit"/>
3149
+ <form c007-1-2="qq" marccat="notated music" marcsmd="notated music"/>
3150
+ <form c007-1-2="rr" marccat="remote-sensing image" marcsmd="remote-sensing image"/>
3151
+ <form c007-1-2="se" marccat="sound recording" marcsmd="cylinder"/>
3152
+ <form c007-1-2="sq" marccat="sound recording" marcsmd="roll"/>
3153
+ <form c007-1-2="sg" marccat="sound recording" marcsmd="sound cartridge"/>
3154
+ <form c007-1-2="ss" marccat="sound recording" marcsmd="sound cassette"/>
3155
+ <form c007-1-2="sd" marccat="sound recording" marcsmd="sound disc"/>
3156
+ <form c007-1-2="st" marccat="sound recording" marcsmd="sound-tape reel"/>
3157
+ <form c007-1-2="si" marccat="sound recording" marcsmd="sound-track film"/>
3158
+ <form c007-1-2="sw" marccat="sound recording" marcsmd="wire recording"/>
3159
+ <form c007-1-2="tc" marccat="text" marcsmd="braille"/>
3160
+ <form c007-1-2="tb" marccat="text" marcsmd="large print"/>
3161
+ <form c007-1-2="ta" marccat="text" marcsmd="regular print"/>
3162
+ <form c007-1-2="td" marccat="text" marcsmd="text in looseleaf binder"/>
3163
+ <form c007-1-2="vc" marccat="videorecording" marcsmd="videocartridge"/>
3164
+ <form c007-1-2="vf" marccat="videorecording" marcsmd="videocassette"/>
3165
+ <form c007-1-2="vd" marccat="videorecording" marcsmd="videodisc"/>
3166
+ <form c007-1-2="vr" marccat="videorecording" marcsmd="videoreel"/>
3167
+ </set>
3168
+ let $c007-1-2:=$r/marcxml:controlfield[@tag="007"][fn:substring(text(),1,2)]
3169
+ let $marccat:=
3170
+ $forms//form[@c007-1-2=$c007-1-2]/@marccat
3171
+ let $marcsmd:=
3172
+ $forms//form[@c007-1-2=$c007-1-2]/@smd
3173
+
3174
+ let $resourcetp:=
3175
+ if ($leader67type="BK") then "Monographic Text (Book)"
3176
+ else if ($leader67type="SE") then "Serial"
3177
+ else if ($leader67type="MM") then "Mixed Materials"
3178
+ else if ($leader67type="CF") then "Computer File"
3179
+ else if ($leader67type="MP") then "Cartographic"
3180
+ else if ($leader67type="VM") then "Visual Materials"
3181
+ else if ($leader67type="MU") then "Music"
3182
+ else $leader67type
3183
+
3184
+
3185
+ return
3186
+ element bf:MachineInfo {
3187
+ element bf:leader67type {$leader67type},
3188
+ element bf:modsresourcetype {fn:concat($resourcetp,". not fully delineated yet")},
3189
+ element bf:modscollection {$modscollection},
3190
+ element bf:modsmanuscript {$modsmanuscript},
3191
+ element bf:modstypeOfResource {$modstypeOfResource},
3192
+ if ($genre007) then element bf:genre {$genre007} else (),
3193
+ if ($genre008) then element bf:genre {$genre008} else (),
3194
+ if ($genreMP) then element bf:genre {$genreMP} else (),
3195
+ if ($genreBKSE) then element bf:genre {$genreBKSE} else (),
3196
+ if ($genreCF) then element bf:genre {$genreCF} else (),
3197
+ if ($genreBK) then element bf:genre {$genreBK} else (),
3198
+ if ($genreMU) then element bf:genre {$genreMU} else (),
3199
+ if ($genreVM) then element bf:genre {$genreVM} else (),
3200
+ element bf:datecreated{$datecreated008},
3201
+ element bf:dateissued {$dateissued008},
3202
+ element bf:dateissuedstart{$dateissued008start},
3203
+ element bf:dateissuedend{$dateissued008end},
3204
+ element bf:dateissuedstart-q{$dateissued008start},
3205
+ element bf:dateissuedend-q{$dateissued008end},
3206
+ element bf:datecopyright{$datecopyright008},
3207
+ element bf:modeOfIssuance{$issuance},
3208
+ element bf:frequency{$frequency},
3209
+ element bf:language{$lang008},
3210
+ element bf:digitalOrigin{$digorigin008},
3211
+ element bf:form{$form008},
3212
+ element bf:reformatqual{$reformatqual},
3213
+ element bf:form-category007{$marccat},
3214
+ element bf:form-smd007{$marcsmd},
3215
+ element bf:edited {$edited}
3216
+ }
3217
+
3218
+ };
3219
+ (: This function matches the carrier text to the varable containing the carrier code, returning the code for building a uri
3220
+ :)
3221
+ declare function marc2bfutils:generate-carrier-code($carrier-text as xs:string) as xs:string {
3222
+ fn:string( $marc2bfutils:carriers/term[aL=$carrier-text]/@code)
3223
+ };
3224
+ (: This function matches the content text to the varable containing the content code, returning the code for building a uri
3225
+ :)
3226
+ declare function marc2bfutils:generate-content-code($content-text as xs:string) as xs:string {
3227
+ fn:string( $marc2bfutils:content-types/term[aL=$content-text]/@code)
3228
+
3229
+ };
3230
+ (: This function matches the mediatype text to the varable containing the mediatype code, returning the code for building a uri
3231
+ :)
3232
+ declare function marc2bfutils:generate-mediatype-code($media-text as xs:string) as xs:string {
3233
+ fn:string( $marc2bfutils:media-types/term[aL=$media-text]/@code)
3234
+
3235
+ };
3236
+ (: This function matches the carrier text to the varable containing the carrier code, returning the code for building a uri
3237
+ : now accounts for variants in term/var/@roletext, and matches on lowercase
3238
+ :)
3239
+ declare function marc2bfutils:generate-role-code($role-text as xs:string) as xs:string {
3240
+ let $role:= marc2bfutils:chopPunctuation(marc2bfutils:clean-string(fn:lower-case($role-text)),".")
3241
+ return fn:string( $marc2bfutils:role-xwalk//*[@roletext=$role]/@rolecode)
3242
+ };
3243
+ (: This function matches the soundcontent code to the varable containing the sound content code, returning the text for now
3244
+ :)
3245
+ declare function marc2bfutils:generate-soundContent($cf007-5, $cf007-6) as xs:string* {
3246
+
3247
+ (fn:string( $marc2bfutils:sounds//type[@cf007-5=$cf007-5]/text()),
3248
+ fn:string( $marc2bfutils:sounds//type[@cf007-6=$cf007-6]/text() )
3249
+ )
3250
+ };
3251
+
3252
+ (: This function chops the given punctuation from the end of the given string. useful for lopping off ending periods (but be careful!)
3253
+ adapted from marcslim2modsutils.xsl
3254
+ $punc to be chopped can be passed in, or defaults to ".:,;/" (not including the quotes)
3255
+ :)
3256
+ declare function marc2bfutils:chopPunctuation( $str as xs:string*,
3257
+ $punc as xs:string){
3258
+ let $punc:= if (fn:string-length($punc)=0 ) then ".:,;/" else $punc
3259
+ let $len:=fn:string-length($str)
3260
+ return if ($len=0) then
3261
+ ()
3262
+ else if (fn:contains($punc, fn:substring($str,$len,1) )) then
3263
+ marc2bfutils:chopPunctuation(fn:substring($str,1,$len - 1),$punc)
3264
+ else if (fn:not($str)) then
3265
+ ()
3266
+ else
3267
+ $str
3268
+
3269
+ };
3270
+
3271
+
3272
+ (: This function accepts a string language and tries to conver to the marc code
3273
+
3274
+
3275
+ :)
3276
+ declare function marc2bfutils:process-language( $lang as xs:string*){
3277
+
3278
+ if ($lang) then
3279
+ let $lang:= (:some have 2 codes german = deu, ger :)
3280
+ $marc2bfutils:lang-xwalk/language[@language-name=marc2bfutils:chopPunctuation($lang,".")]/iso6392[1]
3281
+ return if ($lang!="") then
3282
+ element bf:language {
3283
+ attribute rdf:resource { fn:concat("http://id.loc.gov/vocabulary/languages/",$lang)}
3284
+ }
3285
+ else element bf:languageNote {marc2bfutils:clean-string(fn:string($lang))}
3286
+ else ()
3287
+ };