Project

General

Profile

« Previous | Next » 

Revision 44903

further simplification

View differences:

AbstractDNetXsltFunctions.java
1 1
package eu.dnetlib.data.transform.xml;
2 2

  
3
import java.nio.charset.Charset;
4
import java.security.MessageDigest;
5
import java.util.Iterator;
6
import java.util.List;
7
import java.util.Map;
8

  
9 3
import com.google.common.base.Predicate;
10 4
import com.google.common.base.Predicates;
11 5
import com.google.common.base.Splitter;
12 6
import com.google.common.collect.Iterables;
13 7
import com.google.common.collect.Lists;
14
import com.google.common.collect.Maps;
15 8
import com.google.protobuf.Descriptors.Descriptor;
16 9
import com.google.protobuf.Descriptors.FieldDescriptor;
17 10
import com.google.protobuf.InvalidProtocolBufferException;
......
24 17
import eu.dnetlib.data.proto.FieldTypeProtos.*;
25 18
import eu.dnetlib.data.proto.FieldTypeProtos.OAIProvenance.OriginDescription;
26 19
import eu.dnetlib.data.proto.KindProtos.Kind;
27
import eu.dnetlib.data.proto.RelMetadataProtos.RelMetadata;
28
import eu.dnetlib.data.proto.RelProtos.*;
29
import eu.dnetlib.data.proto.RelTypeProtos.RelType;
30
import eu.dnetlib.data.proto.RelTypeProtos.SubRelType;
31
import eu.dnetlib.data.proto.SubRelProtos.*;
32 20
import eu.dnetlib.data.proto.TypeProtos.Type;
33 21
import eu.dnetlib.miscutils.collections.Pair;
34 22
import org.apache.commons.codec.binary.Base64;
......
39 27
import org.w3c.dom.Node;
40 28
import org.w3c.dom.NodeList;
41 29

  
30
import java.nio.charset.Charset;
31
import java.security.MessageDigest;
32
import java.util.Iterator;
33
import java.util.List;
34
import java.util.Map;
35

  
42 36
public abstract class AbstractDNetXsltFunctions {
43 37

  
44 38
	public static final String URL_REGEX = "^(http|https|ftp)\\://.*";
45 39
	private static final int MAX_NSPREFIX_LEN = 12;
46
	public static Predicate<String> urlFilter = s -> s.trim().matches(URL_REGEX);
47
	protected static Map<String, String> code2name = Maps.newHashMap();
48 40

  
49
	/*
50
	 * Obtained via COPY (select code, name from class) TO '/tmp/class_scheme.csv' (FORMAT csv, delimiter ',', FORCE_QUOTE *); on the
51
	 * relational db
52
	 */
53
	//code2name.put("openaire2.0_data","OpenAIRE Data (funded, referenced datasets)");
54
	static {
55
		code2name.put("MH", "Marshall Islands");
56
		code2name.put("CF", "Central African Republic");
57
		code2name.put("TD", "Chad");
58
		code2name.put("CN", "China (People's Republic of)");
59
		code2name.put("NG", "Nigeria");
60
		code2name.put("NF", "Norfolk Island");
61
		code2name.put("MP", "Northern Mariana Islands");
62
		code2name.put("PS", "Palestinian-administered areas");
63
		code2name.put("SZ", "Swaziland");
64
		code2name.put("max", "Manx");
65
		code2name.put("TW", "Taiwan");
66
		code2name.put("TJ", "Tajikistan");
67
		code2name.put("BSG", "Research for the benefit of specific groups");
68
		code2name.put("CP", "Collaborative project");
69
		code2name.put("12MONTHS", "12 Months Embargo");
70
		code2name.put("ace", "Achinese");
71
		code2name.put("egy", "Ancient Egyptian");
72
		code2name.put("ara", "Arabic");
73
		code2name.put("arc", "Aramaic");
74
		code2name.put("arp", "Arapaho");
75
		code2name.put("gon", "Gondi");
76
		code2name.put("ine", "Indo-European");
77
		code2name.put("ipk", "Inupiaq");
78
		code2name.put("ira", "Iranian");
79
		code2name.put("lim", "Limburgan; Limburger; Limburgish");
80
		code2name.put("mni", "Manipuri");
81
		code2name.put("mno", "Manobo");
82
		code2name.put("men","Mende");
83
		code2name.put("CX", "Christmas Island");
84
		code2name.put("CC", "Cocos (Keeling) Islands");
85
		code2name.put("KM", "Comoros");
86
		code2name.put("CG", "Congo");
87
		code2name.put("CK", "Cook Islands");
88
		code2name.put("HR", "Croatia");
89
		code2name.put("arn", "Araucanian");
90
		code2name.put("art", "Artificial");
91
		code2name.put("nah", "Aztec");
92
		code2name.put("bug", "Buginese");
93
		code2name.put("chn", "Chinook jargon");
94
		code2name.put("chv", "Chuvash");
95
		code2name.put("mus", "Creek");
96
		code2name.put("mic", "Micmac");
97
		code2name.put("min","Minangkabau");
98
		code2name.put("fro", "Old French");
99
		code2name.put("cpp","Portuguese-based Creoles and Pidgins");
100
		code2name.put("som", "Somali");
101
		code2name.put("wen", "Sorbian");
102
		code2name.put("hrv", "Croatian");
103
		code2name.put("cus", "Cushitic");
104
		code2name.put("sot", "Sotho, Southern");
105
		code2name.put("sai", "South American Indian");
106
		code2name.put("esl/spa", "Spanish");
107
		code2name.put("CU", "Cuba");
108
		code2name.put("CW", "Curaçao");
109
		code2name.put("CZ", "Czech Republic");
110
		code2name.put("DK", "Denmark");
111
		code2name.put("ER", "Eritrea");
112
		code2name.put("TF", "French Southern Territories");
113
		code2name.put("GW", "Guinea-Bissau");
114
		code2name.put("VA", "Holy See (Vatican City State)");
115
		code2name.put("BO","Bolivia");
116
		code2name.put("KY", "Cayman Islands");
117
		code2name.put("dra", "Dravidian");
118
		code2name.put("cpe", "English-based Creoles and Pidgins");
119
		code2name.put("oji", "Ojibwa");
120
		code2name.put("CIP-EIP-TN", "CIP-Eco-Innovation - CIP-Thematic Network");
121
		code2name.put("jav/jaw","Javanese");
122
		code2name.put("ach", "Acoli");
123
		code2name.put("ada", "Adangme");
124
		code2name.put("afh", "Afrihili");
125
		code2name.put("afr", "Afrikaans");
126
		code2name.put("afa", "Afro-Asiatic");
127
		code2name.put("ale", "Aleut");
128
		code2name.put("alg", "Algonquian languages");
129
		code2name.put("arw", "Arawak");
130
		code2name.put("asm", "Assamese");
131
		code2name.put("ava", "Avaric");
132
		code2name.put("ave", "Avestan");
133
		code2name.put("bra", "Braj");
134
		code2name.put("bua", "Buriat");
135
		code2name.put("chr", "Cherokee");
136
		code2name.put("chy", "Cheyenne");
137
		code2name.put("jrb", "Judeo-Arabic");
138
		code2name.put("jpr", "Judeo-Persian");
139
		code2name.put("kab", "Kabyle");
140
		code2name.put("kac","Kachin");
141
		code2name.put("kaa","Kara-Kalpak");
142
		code2name.put("loz", "Lozi");
143
		code2name.put("mwr", "Marwari");
144
		code2name.put("DJ", "Djibouti");
145
		code2name.put("JM", "Jamaica");
146
		code2name.put("JP", "Japan");
147
		code2name.put("JE", "Jersey");
148
		code2name.put("JO", "Jordan");
149
		code2name.put("KZ", "Kazakhstan");
150
		code2name.put("KE", "Kenya");
151
		code2name.put("KI", "Kiribati");
152
		code2name.put("KR", "Korea (Republic of)");
153
		code2name.put("KP", "Korea, Democatric People's Republic of");
154
		code2name.put("XK", "Kosovo * UN resolution");
155
		code2name.put("KW", "Kuwait");
156
		code2name.put("NL", "Netherlands");
157
		code2name.put("PE", "Peru");
158
		code2name.put("PH", "Philippines");
159
		code2name.put("fre/fra","French");
160
		code2name.put("PL", "Poland");
161
		code2name.put("PT", "Portugal");
162
		code2name.put("PR", "Puerto Rico");
163
		code2name.put("QA", "Qatar");
164
		code2name.put("RO", "Romania");
165
		code2name.put("RU", "Russian Federation");
166
		code2name.put("RW", "Rwanda");
167
		code2name.put("RE", "Réunion");
168
		code2name.put("sve/swe","Swedish");
169
		code2name.put("myn", "Mayan");
170
		code2name.put("dum","Middle Dutch");
171
		code2name.put("mun", "Munda");
172
		code2name.put("nde", "Ndebele, North");
173
		code2name.put("ndo", "Ndonga");
174
		code2name.put("nyn", "Nyankole");
175
		code2name.put("nzi", "Nzima");
176
		code2name.put("oci", "Occitan (post 1500); Provençal");
177
		code2name.put("GU", "Guam");
178
		code2name.put("tut", "Altaic");
179
		code2name.put("awa", "Awadhi");
180
		code2name.put("ban", "Balinese");
181
		code2name.put("bal", "Baluchi");
182
		code2name.put("bai", "Bamileke");
183
		code2name.put("bad", "Banda");
184
		code2name.put("UK", "United Kingdom");
185
		code2name.put("bas", "Basa");
186
		code2name.put("tib/bod", "Tibetan");
187
		code2name.put("ben", "Bengali");
188
		code2name.put("ber", "Berber");
189
		code2name.put("cho", "Choctaw");
190
		code2name.put("cop", "Coptic");
191
		code2name.put("crp", "Creoles and Pidgins");
192
		code2name.put("dak", "Dakota");
193
		code2name.put("del", "Delaware");
194
		code2name.put("div", "Divehi");
195
		code2name.put("kha", "Khasi");
196
		code2name.put("khi", "Khoisan");
197
		code2name.put("kho", "Khotanese");
198
		code2name.put("osa", "Osage");
199
		code2name.put("oss", "Ossetian; Ossetic");
200
		code2name.put("oto", "Otomian");
201
		code2name.put("GT", "Guatemala");
202
		code2name.put("ota", "Ottoman");
203
		code2name.put("GG", "Guernsey");
204
		code2name.put("GY", "Guyana");
205
		code2name.put("LA", "Lao (People's Democratic Republic)");
206
		code2name.put("LB", "Lebanon");
207
		code2name.put("LY", "Libyan Arab Jamahiriya");
208
		code2name.put("LI", "Liechtenstein");
209
		code2name.put("LT", "Lithuania");
210
		code2name.put("LU", "Luxembourg");
211
		code2name.put("PW", "Palau");
212
		code2name.put("BL", "Saint-Barthélemy");
213
		code2name.put("SM", "San Marino");
214
		code2name.put("SX", "Sint Maarten (Dutch Part)");
215
		code2name.put("TL", "Timor-Leste");
216
		code2name.put("TK", "Tokelau");
217
		code2name.put("TO", "Tonga");
218
		code2name.put("TN", "Tunisia");
219
		code2name.put("TC", "Turks and Caicos Islands");
220
		code2name.put("TV", "Tuvalu");
221
		code2name.put("GB", "United Kingdom");
222
		code2name.put("VU", "Vanuatu");
223
		code2name.put("pal", "Pahlavi");
224
		code2name.put("pau", "Palauan");
225
		code2name.put("pam","Pampanga");
226
		code2name.put("pag","Pangasinan");
227
		code2name.put("pap","Papiamento");
228
		code2name.put("fas/per", "Persian");
229
		code2name.put("phn", "Phoenician");
230
		code2name.put("sid", "Sidamo");
231
		code2name.put("GA", "Gabon");
232
		code2name.put("GL", "Greenland");
233
		code2name.put("GD", "Grenada");
234
		code2name.put("GP", "Guadeloupe");
235
		code2name.put("IE", "Ireland");
236
		code2name.put("spa", "Spanish; Castilian");
237
		code2name.put("IM", "Isle of Man");
238
		code2name.put("IT", "Italy");
239
		code2name.put("ES", "Spain");
240
		code2name.put("SR", "Suriname");
241
		code2name.put("TZ", "Tanzania (United Republic of)");
242
		code2name.put("TH", "Thailand");
243
		code2name.put("TG", "Togo");
244
		code2name.put("UG", "Uganda");
245
		code2name.put("UZ", "Uzbekistan");
246
		code2name.put("VE", "Venezuela");
247
		code2name.put("VI", "Virgin Islands, U.S.");
248
		code2name.put("WF", "Wallis and Futuna");
249
		code2name.put("COFUND-PCP", "COFUND (PCP)");
250
		code2name.put("amh", "Amharic");
251
		code2name.put("map", "Austronesian");
252
		code2name.put("aym", "Aymara");
253
		code2name.put("bnt", "Bantu");
254
		code2name.put("bak", "Bashkir");
255
		code2name.put("bho", "Bhojpuri");
256
		code2name.put("bik", "Bikol");
257
		code2name.put("bul", "Bulgarian");
258
		code2name.put("cor", "Cornish");
259
		code2name.put("dua", "Duala");
260
		code2name.put("dut/nld", "Dutch; Flemish");
261
		code2name.put("isRelatedTo", "isRelatedTo");
262
		code2name.put("coauthor", "coauthor");
263
		code2name.put("dyu", "Dyula");
264
		code2name.put("eka", "Ekajuk");
265
		code2name.put("gil","Gilbertese");
266
		code2name.put("suk", "Sukuma");
267
		code2name.put("sux", "Sumerian");
268
		code2name.put("sun", "Sundanese");
269
		code2name.put("sus", "Susu");
270
		code2name.put("swa", "Swahili");
271
		code2name.put("0010", "Lecture");
272
		code2name.put("0007", "Master thesis");
273
		code2name.put("0027", "Model");
274
		code2name.put("0012", "Newsletter");
275
		code2name.put("0020", "Other");
276
		code2name.put("0013", "Part of book or chapter of book");
277
		code2name.put("0019", "Patent");
278
		code2name.put("0028", "PhysicalObject");
279
		code2name.put("0016", "Preprint");
280
		code2name.put("DM", "Dominica");
281
		code2name.put("DO", "Dominican Republic");
282
		code2name.put("EC", "Ecuador");
283
		code2name.put("EG", "Egypt");
284
		code2name.put("GQ", "Equatorial Guinea");
285
		code2name.put("EE", "Estonia");
286
		code2name.put("ET", "Ethiopia");
287
		code2name.put("GR", "Greece");
288
		code2name.put("HM", "Heard Island and McDonald Islands");
289
		code2name.put("got","Gothic");
290
		code2name.put("grb", "Grebo");
291
		code2name.put("ell/gre", "Greek");
292
		code2name.put("hat", "Haitian; Haitian Creole");
293
		code2name.put("hau", "Hausa");
294
		code2name.put("haw", "Hawaiian");
295
		code2name.put("heb", "Hebrew");
296
		code2name.put("gai/iri", "Irish");
297
		code2name.put("kar", "Karen");
298
		code2name.put("lui", "Luiseno");
299
		code2name.put("goh", "Old High German");
300
		code2name.put("abk", "Abkhazian");
301
		code2name.put("aar", "Afar");
302
		code2name.put("aggregator::pubsrepository::journals", "Journal Aggregator/Publisher");
303
		code2name.put("pubsrepository::mock", "Other");
304
		code2name.put("pubscatalogue::unknown", "Publication Catalogue");
305
		code2name.put("BI", "Burundi");
306
		code2name.put("CM", "Cameroon");
307
		code2name.put("CD", "Congo (Democratic Republic of)");
308
		code2name.put("CR", "Costa Rica");
309
		code2name.put("CI", "Cote d'Ivoire");
310
		code2name.put("arg", "Aragonese");
311
		code2name.put("aze", "Azerbaijani");
312
		code2name.put("EU", "European Union");
313
		code2name.put("FK", "Falkland Islands (Malvinas)");
314
		code2name.put("scr/hrv","Croatian");
315
		code2name.put("bam", "Bambara");
316
		code2name.put("baq/eus", "Basque");
317
		code2name.put("bih", "Bihari");
318
		code2name.put("FO", "Faroe Islands");
319
		code2name.put("FJ", "Fiji");
320
		code2name.put("FI", "Finland");
321
		code2name.put("ger/deu","German");
322
		code2name.put("MK", "Former Yugoslav Republic of Macedonia");
323
		code2name.put("FR", "France");
324
		code2name.put("bis", "Bislama");
325
		code2name.put("cat", "Catalan; Valencian");
326
		code2name.put("cha", "Chamorro");
327
		code2name.put("che", "Chechen");
328
		code2name.put("cos", "Corsican");
329
		code2name.put("elx", "Elamite");
330
		code2name.put("eng", "English");
331
		code2name.put("est", "Estonian");
332
		code2name.put("deu/ger", "German");
333
		code2name.put("gle", "Irish");
334
		code2name.put("gem", "Germanic");
335
		code2name.put("GF", "French Guiana");
336
		code2name.put("PF", "French Polynesia");
337
		code2name.put("GM", "Gambia");
338
		code2name.put("kik", "Gikuyu; Kikuyu");
339
		code2name.put("gre/ell","Greek, Modern (1453-)");
340
		code2name.put("DE", "Germany");
341
		code2name.put("mac/mkd", "Macedonian");
342
		code2name.put("scc/srp","Serbian");
343
		code2name.put("grn", "Guarani");
344
		code2name.put("ssw", "Swati");
345
		code2name.put("swe", "Swedish");
346
		code2name.put("syr", "Syriac");
347
		code2name.put("tgl", "Tagalog");
348
		code2name.put("tah", "Tahitian");
349
		code2name.put("tgk", "Tajik");
350
		code2name.put("tmh", "Tamashek");
351
		code2name.put("tam", "Tamil");
352
		code2name.put("tat", "Tatar");
353
		code2name.put("aggregator::pubsrepository::institutional", "Institutional Repository Aggregator");
354
		code2name.put("per/fas", "Persian");
355
		code2name.put("FCT", "Fundação para a Ciência e Tecnologia");
356
		code2name.put("user:claim:pid", "user:claim:pid");
357
		code2name.put("entityregistry", "Registry");
358
		code2name.put("hin", "Hindi");
359
		code2name.put("NA", "Namibia");
360
		code2name.put("ido", "Ido");
361
		code2name.put("ibo", "Igbo");
362
		code2name.put("orcid", "Open Researcher and Contributor ID");
363
		code2name.put("TT", "Trinidad and Tobago");
364
		code2name.put("TR", "Turkey");
365
		code2name.put("TM", "Turkmenistan");
366
		code2name.put("arXiv", "arXiv");
367
		code2name.put("providedBy","provided by");
368
		code2name.put("EMBARGO", "Embargo");
369
		code2name.put("dataset_dataset","dataset_dataset");
370
		code2name.put("publication_dataset","publication_dataset");
371
		code2name.put("publication_publication","publication_publication");
372
		code2name.put("coordinator","coordinator");
373
		code2name.put("participant","participant");
374
		code2name.put("subcontractor","subcontractor");
375
		code2name.put("principal investigating","principal investigating");
376
		code2name.put("exploitation","exploitation");
377
		code2name.put("OPEN", "Open Access");
378
		code2name.put("doi", "doi");
379
		code2name.put("orcidworkid", "orcid workid");
380
		code2name.put("MQ", "Martinique");
381
		code2name.put("MR", "Mauritania");
382
		code2name.put("jpn", "Japanese");
383
		code2name.put("pubsrepository::unknown","Publication Repository");
384
		code2name.put("aggregator::pubsrepository::unknown", "Publication Repository Aggregator");
385
		code2name.put("UA", "Ukraine");
386
		code2name.put("YT", "Mayotte");
387
		code2name.put("OTHER", "Other");
388
		code2name.put("RESTRICTED", "Restricted");
389
		code2name.put("AE", "United Arab Emirates");
390
		code2name.put("aka", "Akan");
391
		code2name.put("US", "United States");
392
		code2name.put("author", "author");
393
		code2name.put("isResultOf", "isResultOf");
394
		code2name.put("kin", "Kinyarwanda");
395
		code2name.put("kom", "Komi");
396
		code2name.put("new", "Newari");
397
		code2name.put("NR", "Nauru");
398
		code2name.put("FM", "Micronesia, Federated States of");
399
		code2name.put("NP", "Nepal");
400
		code2name.put("MN", "Mongolia");
401
		code2name.put("rum/ron", "Romanian");
402
		code2name.put("submitted", "submitted");
403
		code2name.put("driver-openaire2.0", "OpenAIRE 2.0+ (DRIVER OA, EC funding)");
404
		code2name.put("result", "result");
405
		code2name.put("roh", "Raeto-Romance");
406
		code2name.put("run", "Rundi");
407
		code2name.put("bin", "Bini");
408
		code2name.put("bos", "Bosnian");
409
		code2name.put("din", "Dinka");
410
		code2name.put("tel", "Telugu");
411
		code2name.put("MA", "Morocco");
412
		code2name.put("MZ", "Mozambique");
413
		code2name.put("ewo", "Ewondo");
414
		code2name.put("ter", "Tereno");
415
		code2name.put("fat", "Fanti");
416
		code2name.put("fao", "Faroese");
417
		code2name.put("hai", "Haida");
418
		code2name.put("MM", "Myanmar");
419
		code2name.put("NU", "Niue");
420
		code2name.put("PK","Pakistan");
421
		code2name.put("PG","Papua New Guinea");
422
		code2name.put("file::WoS","file::WoS");
423
		code2name.put("metadata", "metadata");
424
		code2name.put("file::hybrid", "file::hybrid");
425
		code2name.put("nbl", "Ndebele, South");
426
		code2name.put("akk", "Akkadian");
427
		code2name.put("alb/sqi", "Albanian");
428
		code2name.put("arm/hye","Armenian");
429
		code2name.put("ath","Athapascan");
430
		code2name.put("CA", "Canada");
431
		code2name.put("CV", "Cape Verde");
432
		code2name.put("CL", "Chile");
433
		code2name.put("bat","Baltic");
434
		code2name.put("CO", "Colombia");
435
		code2name.put("CY", "Cyprus");
436
		code2name.put("SV", "El Salvador");
437
		code2name.put("HT", "Haiti");
438
		code2name.put("bej","Beja");
439
		code2name.put("HN", "Honduras");
440
		code2name.put("HK", "Hong Kong");
441
		code2name.put("HU", "Hungary");
442
		code2name.put("bel","Belarusian");
443
		code2name.put("bem","Bemba");
444
		code2name.put("slo/slk", "Slovak");
445
		code2name.put("bre","Breton");
446
		code2name.put("car","Carib");
447
		code2name.put("cau","Caucasian");
448
		code2name.put("ewe", "Ewe");
449
		code2name.put("tha", "Thai");
450
		code2name.put("fan", "Fang");
451
		code2name.put("fij", "Fijian");
452
		code2name.put("fin", "Finnish");
453
		code2name.put("her", "Herero");
454
		code2name.put("hil", "Hiligaynon");
455
		code2name.put("bod/tib", "Tibetan");
456
		code2name.put("tig", "Tigre");
457
		code2name.put("tir", "Tigrinya");
458
		code2name.put("tem", "Timne");
459
		code2name.put("wel/cym", "Welsh");
460
		code2name.put("KO", "Kosovo * UN resolution");
461
		code2name.put("tiv", "Tivi");
462
		code2name.put("tli", "Tlingit");
463
		code2name.put("ton", "Tonga (Tonga Islands)");
464
		code2name.put("tog", "Tonga(Nyasa)");
465
		code2name.put("tru", "Truk");
466
		code2name.put("tsi", "Tsimshian");
467
		code2name.put("tso", "Tsonga");
468
		code2name.put("tsn", "Tswana");
469
		code2name.put("IsPreviousVersionOf", "IsPreviousVersionOf");
470
		code2name.put("IsReferencedBy", "IsReferencedBy");
471
		code2name.put("References", "References");
472
		code2name.put("IS", "Iceland");
473
		code2name.put("IN", "India");
474
		code2name.put("ID", "Indonesia");
475
		code2name.put("IL", "Israel");
476
		code2name.put("NZ", "New Zealand");
477
		code2name.put("NI", "Nicaragua");
478
		code2name.put("NE", "Niger");
479
		code2name.put("ARK", "ARK");
480
		code2name.put("BW", "Botswana");
481
		code2name.put("BR", "Brazil");
482
		code2name.put("BF", "Burkina Faso");
483
		code2name.put("KH", "Cambodia");
484
		code2name.put("hmo", "Hiri Motu");
485
		code2name.put("hun", "Hungarian");
486
		code2name.put("ice/isl", "Icelandic");
487
		code2name.put("ind", "Indonesian");
488
		code2name.put("ile", "Interlingue");
489
		code2name.put("kam", "Kamba");
490
		code2name.put("lub", "Luba-Katanga");
491
		code2name.put("nav", "Navajo; Navaho");
492
		code2name.put("datasetsbyproject", "datasetsbyproject");
493
		code2name.put("ISSN", "ISSN");
494
		code2name.put("MC", "Support for training and career development of researchers (Marie Curie)");
495
		code2name.put("nor", "Norwegian");
496
		code2name.put("file", "file");
497
		code2name.put("ISTC", "ISTC");
498
		code2name.put("CSA-LS", "CSA Lump sum");
499
		code2name.put("MX", "Mexico");
500
		code2name.put("ME", "Montenegro");
501
		code2name.put("ceb","Cebuano");
502
		code2name.put("nub", "Nubian");
503
		code2name.put("nym", "Nyamwezi");
504
		code2name.put("nyo", "Nyoro");
505
		code2name.put("tum", "Tumbuka");
506
		code2name.put("tur", "Turkish");
507
		code2name.put("tuk", "Turkmen");
508
		code2name.put("dnet:od_subjects", "OpenDOAR subjects");
509
		code2name.put("wos", "Web of Science Subject Areas");
510
		code2name.put("arxiv", "arXiv");
511
		code2name.put("nsf:fieldOfApplication", "Field of Application (NSF)");
512
		code2name.put("NetCDF", "NetCDF");
513
		code2name.put("OpenDAP", "OpenDAP");
514
		code2name.put("api", "api");
515
		code2name.put("datasetsbyjournal", "datasetsbyjournal");
516
		code2name.put("DOI", "DOI");
517
		code2name.put("EAN13", "EAN13");
518
		code2name.put("EISSN", "EISSN");
519
		code2name.put("Handle", "Handle");
520
		code2name.put("ISBN", "ISBN");
521
		code2name.put("LISSN", "LISSN");
522
		code2name.put("LSID", "LSID");
523
		code2name.put("PURL", "PURL");
524
		code2name.put("UPC", "UPC");
525
		code2name.put("URL", "URL");
526
		code2name.put("URN", "URN");
527
		code2name.put("cel", "Celtic");
528
		code2name.put("chg","Chagatai");
529
		code2name.put("chb","Chibcha");
530
		code2name.put("AF", "Afghanistan");
531
		code2name.put("AL", "Albania");
532
		code2name.put("PY", "Paraguay");
533
		code2name.put("PN", "Pitcairn");
534
		code2name.put("KN", "Saint Kitts and Nevis");
535
		code2name.put("UY", "Uruguay");
536
		code2name.put("VN", "Viet Nam");
537
		code2name.put("VG", "Virgin Islands (British)");
538
		code2name.put("EH", "Western Sahara");
539
		code2name.put("YE", "Yemen");
540
		code2name.put("YU", "Yugoslavia");
541
		code2name.put("ZW", "Zimbabwe");
542
		code2name.put("ec:hasprogram", "hasprogram");
543
		code2name.put("ec:hasspecificprogram", "hasspecificprogram");
544
		code2name.put("available", "available");
545
		code2name.put("chi/zho","Chinese");
546
		code2name.put("ces/cze", "Czech");
547
		code2name.put("guj", "Gujarati");
548
		code2name.put("him", "Himachali");
549
		code2name.put("hup", "Hupa");
550
		code2name.put("iba", "Iban");
551
		code2name.put("ijo", "Ijo");
552
		code2name.put("ilo", "Iloko");
553
		code2name.put("inc", "Indic");
554
		code2name.put("kan", "Kannada");
555
		code2name.put("DZ", "Algeria");
556
		code2name.put("BT", "Bhutan");
557
		code2name.put("kau", "Kanuri");
558
		code2name.put("mul", "Multiple languages");
559
		code2name.put("BA", "Bosnia and Herzegovina");
560
		code2name.put("MU", "Mauritius");
561
		code2name.put("CSA", "Coordination and support action");
562
		code2name.put("fileCSV", "fileCSV");
563
		code2name.put("AS", "American Samoa");
564
		code2name.put("ERC", "Support for frontier research (ERC)");
565
		code2name.put("IA", "Innovation action");
566
		code2name.put("AD", "Andorra");
567
		code2name.put("AO", "Angola");
568
		code2name.put("AI", "Anguilla");
569
		code2name.put("AQ", "Antarctica");
570
		code2name.put("AG", "Antigua and Barbuda");
571
		code2name.put("AR", "Argentina");
572
		code2name.put("AM", "Armenia");
573
		code2name.put("AW", "Aruba");
574
		code2name.put("AU", "Australia");
575
		code2name.put("AT", "Austria");
576
		code2name.put("AZ", "Azerbaijan");
577
		code2name.put("BS", "Bahamas");
578
		code2name.put("BH", "Bahrain");
579
		code2name.put("BE", "Belgium");
580
		code2name.put("BZ", "Belize");
581
		code2name.put("BJ", "Benin");
582
		code2name.put("BM", "Bermuda");
583
		code2name.put("GE", "Georgia");
584
		code2name.put("GH", "Ghana");
585
		code2name.put("GI", "Gibraltar");
586
		code2name.put("GN", "Guinea");
587
		code2name.put("IR", "Iran (Islamic Republic of)");
588
		code2name.put("IQ", "Iraq");
589
		code2name.put("6MONTHS", "6 Months Embargo");
590
		code2name.put("CLOSED", "Closed Access");
591
		code2name.put("ina", "Auxiliary Language Association)");
592
		code2name.put("bur/mya", "Burmese");
593
		code2name.put("cad", "Caddo");
594
		code2name.put("cai", "Central American Indian");
595
		code2name.put("chu","Church Slavic; Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic");
596
		code2name.put("kal", "Greenlandic; Kalaallisut");
597
		code2name.put("iku", "Inuktitut");
598
		code2name.put("iro", "Iroquoian");
599
		code2name.put("ita", "Italian");
600
		code2name.put("jav", "Javanese");
601
		code2name.put("kua", "Kuanyama; Kwanyama");
602
		code2name.put("kum", "Kumyk");
603
		code2name.put("kru", "Kurukh");
604
		code2name.put("kus", "Kusaie");
605
		code2name.put("vie", "Vietnamese");
606
		code2name.put("vol", "Volapük");
607
		code2name.put("vot", "Votic");
608
		code2name.put("wak", "Wakashan");
609
		code2name.put("wal", "Walamo");
610
		code2name.put("wln", "Walloon");
611
		code2name.put("war", "Waray");
612
		code2name.put("ST", "São Tomé and Príncipe");
613
		code2name.put("endDate", "endDate");
614
		code2name.put("issued", "issued");
615
		code2name.put("startDate", "startDate");
616
		code2name.put("FCH2-CSA", "Coordination & support action");
617
		code2name.put("nic", "Niger-Kordofanian");
618
		code2name.put("ssa", "Nilo-Saharan");
619
		code2name.put("MSCA-RISE", "RISE");
620
		code2name.put("RIA", "Research and Innovation action");
621
		code2name.put("MSCA-IF-EF-ST", "Standard EF");
622
		code2name.put("PendingRepositoryResources", "Pending datasource");
623
		code2name.put("RepositoryServiceResources", "Valid datasource");
624
		code2name.put("publication", "publication");
625
		code2name.put("niu", "Niuean");
626
		code2name.put("sysimport:crosswalk:aggregator", "sysimport:crosswalk:aggregator");
627
		code2name.put("sysimport:crosswalk:cris", "sysimport:crosswalk:cris");
628
		code2name.put("sysimport:crosswalk:datasetarchive", "sysimport:crosswalk:datasetarchive");
629
		code2name.put("sysimport:crosswalk:entityregistry", "sysimport:crosswalk:entityregistry");
630
		code2name.put("non", "Norse");
631
		code2name.put("nai", "North American Indian");
632
		code2name.put("sme", "Northern Sami");
633
		code2name.put("nno","Norwegian Nynorsk; Nynorsk, Norwegian");
634
		code2name.put("yor", "Yoruba");
635
		code2name.put("nob", "Bokmål, Norwegian; Norwegian Bokmål");
636
		code2name.put("kaz", "Kazakh");
637
		code2name.put("khm", "Khmer");
638
		code2name.put("kor", "Korean");
639
		code2name.put("ltz", "Letzeburgesch; Luxembourgish");
640
		code2name.put("mar", "Marathi");
641
		code2name.put("mas", "Masai");
642
		code2name.put("enm", "Middle English");
643
		code2name.put("frm", "Middle French");
644
		code2name.put("mis", "Miscellaneous");
645
		code2name.put("zap", "Zapotec");
646
		code2name.put("zul", "Zulu");
647
		code2name.put("KG", "Kyrgyzstan");
648
		code2name.put("LV", "Latvia");
649
		code2name.put("LS", "Lesotho");
650
		code2name.put("LR", "Liberia");
651
		code2name.put("MO", "Macao");
652
		code2name.put("MG", "Madagascar");
653
		code2name.put("MW", "Malawi");
654
		code2name.put("MY", "Malaysia");
655
		code2name.put("MD", "Moldova (Republic of)");
656
		code2name.put("MS", "Montserrat");
657
		code2name.put("AX", "Åland Islands");
658
		code2name.put("moh", "Mohawk");
659
		code2name.put("mol", "Moldavian");
660
		code2name.put("mkh", "Mon-Kmer");
661
		code2name.put("lol", "Mongo");
662
		code2name.put("copyrighted", "copyrighted");
663
		code2name.put("created", "created");
664
		code2name.put("updated", "updated");
665
		code2name.put("valid", "valid");
666
		code2name.put("BBI-IA-DEMO", "Bio-based Industries Innovation action - Demonstration");
667
		code2name.put("MSCA-IF-EF-CAR","CAR – Career Restart panel");
668
		code2name.put("MSCA-ITN-ETN","European Training Networks");
669
		code2name.put("interactiveResource", "interactiveResource");
670
		code2name.put("model", "model");
671
		code2name.put("ML", "Mali");
672
		code2name.put("FCH2-RIA", "FCH2 Research and Innovation action");
673
		code2name.put("MSCA-COFUND-FP","Fellowship programmes");
674
		code2name.put("physicalObject", "physicalObject");
675
		code2name.put("MSCA-IF-GF","Global Fellowships");
676
		code2name.put("sysimport:crosswalk:infospace", "sysimport:crosswalk:infospace");
677
		code2name.put("sysimport:crosswalk:repository", "sysimport:crosswalk:repository");
678
		code2name.put("sysimport:mining:aggregator", "sysimport:mining:aggregator");
679
		code2name.put("fry", "Frisian");
680
		code2name.put("gaa", "Ga");
681
		code2name.put("gae/gdh", "Gaelic");
682
		code2name.put("service", "service");
683
		code2name.put("software", "software");
684
		code2name.put("sound", "sound");
685
		code2name.put("glg", "Galician");
686
		code2name.put("lug", "Ganda");
687
		code2name.put("gay", "Gayo");
688
		code2name.put("gez", "Geez");
689
		code2name.put("MT", "Malta");
690
		code2name.put("text", "text");
691
		code2name.put("AN", "Netherlands Antilles");
692
		code2name.put("NC", "New Caledonia");
693
		code2name.put("NO", "Norway");
694
		code2name.put("OC", "Oceania");
695
		code2name.put("user:claim:search", "user:claim:search");
696
		code2name.put("OM", "Oman");
697
		code2name.put("PA", "Panama");
698
		code2name.put("user:insert", "user:insert");
699
		code2name.put("171", "Article 171 of the Treaty");
700
		code2name.put("nya", "Chewa; Chichewa; Nyanja");
701
		code2name.put("cre", "Cree");
702
		code2name.put("geo/kat", "Georgian");
703
		code2name.put("dan", "Danish");
704
		code2name.put("MV", "Maldives");
705
		code2name.put("dzo", "Dzongkha");
706
		code2name.put("efi", "Efik");
707
		code2name.put("LC", "Saint Lucia");
708
		code2name.put("zun", "Zuni");
709
		code2name.put("sga", "old Irish");
710
		code2name.put("file::EuropePMC", "file::EuropePMC");
711
		code2name.put("MF", "Saint Martin (French Part)");
712
		code2name.put("openaire2.0_data", "OpenAIRE Data (funded, referenced datasets)");
713
		code2name.put("file::PDF", "file::PDF");
714
		code2name.put("esk", "Eskimo");
715
		code2name.put("ec:program", "program");
716
		code2name.put("epo", "Esperanto");
717
		code2name.put("fct:program", "fct:program");
718
		code2name.put("ec:specificprogram", "specificprogram");
719
		code2name.put("collection", "collection");
720
		code2name.put("ERC-ADG", "Advanced Grant");
721
		code2name.put("ERA-NET-Cofund", "ERA-NET Cofund");
722
		code2name.put("dataset", "dataset");
723
		code2name.put("event", "event");
724
		code2name.put("ERC-LVG", "ERC low value grant");
725
		code2name.put("film", "film");
726
		code2name.put("image", "image");
727
		code2name.put("SL", "Sierra Leone");
728
		code2name.put("ec:hasframeworkprogram", "hasframeworkprogram");
729
		code2name.put("ERC-POC","Proof of Concept Grant");
730
		code2name.put("sysimport:mining:cris", "sysimport:mining:cris");
731
		code2name.put("sysimport:mining:datasetarchive", "sysimport:mining:datasetarchive");
732
		code2name.put("CP-CSA", "Combination of CP & CSA");
733
		code2name.put("NoE", "Network of Excellence");
734
		code2name.put("grc", "Ancient Greek");
735
		code2name.put("lat", "Latin");
736
		code2name.put("ori", "Oriya");
737
		code2name.put("orm", "Oromo");
738
		code2name.put("nso", "Sotho");
739
		code2name.put("ddc", "Dewey Decimal Classification");
740
		code2name.put("zen", "Zenaga");
741
		code2name.put("ec:h2020topics", "Horizon 2020 Topics");
742
		code2name.put("alternative title", "alternative title");
743
		code2name.put("mesheuropmc", "Medical Subject Headings");
744
		code2name.put("apa", "Apache");
745
		code2name.put("SH", "Saint Helena, Ascension and Tristan da Cunha");
746
		code2name.put("PM", "Saint Pierre and Miquelon");
747
		code2name.put("MSCA-COFUND-DP", "Doctoral programmes");
748
		code2name.put("VC", "Saint Vincent and the Grenadines");
749
		code2name.put("ECSEL-IA", "ECSEL Innovation Action");
750
		code2name.put("kpe", "Kpelle");
751
		code2name.put("ECSEL-RIA", "ECSEL Research and Innovation Actions");
752
		code2name.put("MSCA-ITN-EID", "European Industrial Doctorates");
753
		code2name.put("sysimport:mining:entityregistry", "sysimport:mining:entityregistry");
754
		code2name.put("sysimport:mining:infospace", "sysimport:mining:infospace");
755
		code2name.put("sysimport:mining:repository", "sysimport:mining:repository");
756
		code2name.put("main title", "main title");
757
		code2name.put("subtitle", "subtitle");
758
		code2name.put("translated title", "translated title");
759
		code2name.put("lav", "Latvian");
760
		code2name.put("kro", "Kru");
761
		code2name.put("kur", "Kurdish");
762
		code2name.put("kut", "Kutenai");
763
		code2name.put("pli", "Pali");
764
		code2name.put("pan", "Panjabi; Punjabi");
765
		code2name.put("paa", "Papuan-Australian");
766
		code2name.put("peo", "Persian, Old (ca 600 - 400 B.C.)");
767
		code2name.put("zha", "Zhuang; Chuang");
768
		code2name.put("pmc", "pmc");
769
		code2name.put("pmid", "pmid");
770
		code2name.put("urn", "urn");
771
		code2name.put("IO", "British Indian Ocean Territory");
772
		code2name.put("WS", "Samoa");
773
		code2name.put("SA", "Saudi Arabia");
774
		code2name.put("SN", "Senegal");
775
		code2name.put("RS", "Serbia");
776
		code2name.put("MSCA-ITN-EJD", "European Joint Doctorates");
777
		code2name.put("wt:hasParentFunding", "wt:hasParentFunding");
778
		code2name.put("lad", "Ladino");
779
		code2name.put("bla", "Siksika");
780
		code2name.put("lah", "Lahnda");
781
		code2name.put("lam", "Lamba");
782
		code2name.put("lao", "Lao");
783
		code2name.put("snd", "Sindhi");
784
		code2name.put("son", "Songhai");
785
		code2name.put("DFG", "DFG Classification");
786
		code2name.put("SC", "Seychelles");
787
		code2name.put("SG", "Singapore");
788
		code2name.put("SK", "Slovakia");
789
		code2name.put("SI", "Slovenia");
790
		code2name.put("lez", "Lezghian");
791
		code2name.put("SB", "Solomon Islands");
792
		code2name.put("SO", "Somalia");
793
		code2name.put("ZA", "South Africa");
794
		code2name.put("GS", "South Georgia and the South Sandwich Islands");
795
		code2name.put("fiu", "Finno-Ugrian");
796
		code2name.put("fon", "Fon");
797
		code2name.put("fra/fre", "French");
798
		code2name.put("cpf", "French-based Creoles and Pidgins");
799
		code2name.put("SS", "South Sudan");
800
		code2name.put("ful", "Fulah");
801
		code2name.put("gla", "Gaelic; Scottish Gaelic");
802
		code2name.put("kas", "Kashmiri");
803
		code2name.put("LK", "Sri Lanka");
804
		code2name.put("SD", "Sudan");
805
		code2name.put("SJ", "Svalbard and Jan Mayen");
806
		code2name.put("SE", "Sweden");
807
		code2name.put("CH", "Switzerland");
808
		code2name.put("SY", "Syrian Arab Republic");
809
		code2name.put("fct:hasParentFunding", "fct:hasParentFunding");
810
		code2name.put("FCH2-IA", "FCH2 Innovation action");
811
		code2name.put("MSCA-IF-EF-RI","RI – Reintegration panel");
812
		code2name.put("kaw", "Kawi");
813
		code2name.put("kir", "Kirghiz");
814
		code2name.put("kon", "Kongo");
815
		code2name.put("kok", "Konkani");
816
		code2name.put("lin", "Lingala");
817
		code2name.put("lit", "Lithuanian");
818
		code2name.put("lun", "Lunda");
819
		code2name.put("luo", "Luo");
820
		code2name.put("mac/mak", "Macedonian");
821
		code2name.put("mak", "Makasar");
822
		code2name.put("mlt", "Maltese");
823
		code2name.put("pol", "Polish");
824
		code2name.put("pon", "Ponape");
825
		code2name.put("por", "Portuguese");
826
		code2name.put("pra", "Prakrit");
827
		code2name.put("pro", "Provencal");
828
		code2name.put("pus", "Pushto");
829
		code2name.put("que", "Quechua");
830
		code2name.put("raj", "Rajasthani");
831
		code2name.put("rar", "Rarotongan");
832
		code2name.put("roa", "Romance");
833
		code2name.put("ron/rum", "Romanian");
834
		code2name.put("rom", "Romany");
835
		code2name.put("rus", "Russian");
836
		code2name.put("sit", "Sino-Tibetan");
837
		code2name.put("sio", "Siouan");
838
		code2name.put("fileGzip", "fileGzip");
839
		code2name.put("files_by_rpc", "files_by_rpc");
840
		code2name.put("files_from_mdstore", "files_from_mdstore");
841
		code2name.put("files_from_metadata", "files_from_metadata");
842
		code2name.put("scr", "Serbo-Croatian");
843
		code2name.put("mad", "Madurese");
844
		code2name.put("mag", "Magahi");
845
		code2name.put("mai", "Maithili");
846
		code2name.put("mlg", "Malagasy");
847
		code2name.put("may/msa", "Malay");
848
		code2name.put("mal", "Malayalam");
849
		code2name.put("man", "Mandingo");
850
		code2name.put("glv", "Manx");
851
		code2name.put("mao/mri", "Maori");
852
		code2name.put("chm", "Mari");
853
		code2name.put("srr", "Serer");
854
		code2name.put("shn", "Shan");
855
		code2name.put("sna", "Shona");
856
		code2name.put("iii", "Sichuan Yi");
857
		code2name.put("sin", "Sinhala; Sinhalese");
858
		code2name.put("sla", "Slavic");
859
		code2name.put("slk/slo", "Slovak");
860
		code2name.put("slv", "Slovenian");
861
		code2name.put("sog", "Sogdian");
862
		code2name.put("Contract", "Contract");
863
		code2name.put("Contract Interagency Agreement", "Contract Interagency Agreement");
864
		code2name.put("Cooperative Agreement", "Cooperative Agreement");
865
		code2name.put("Fellowship", "Fellowship");
866
		code2name.put("Fixed Price Award", "Fixed Price Award");
867
		code2name.put("Interagency Agreement", "Interagency Agreement");
868
		code2name.put("Intergovernmental Personnel Award", "Intergovernmental Personnel Award");
869
		code2name.put("Personnel Agreement", "Personnel Agreement");
870
		code2name.put("Standard Grant", "Standard Grant");
871
		code2name.put("GAA", "GAA");
872
		code2name.put("mah", "Marshallese");
873
		code2name.put("gmh", "Middle High German");
874
		code2name.put("mga", "Middle Irish");
875
		code2name.put("filesystem", "filesystem");
876
		code2name.put("ftp", "ftp");
877
		code2name.put("http", "http");
878
		code2name.put("SME-1","SME instrument phase 1");
879
		code2name.put("SME-2","SME instrument phase 2");
880
		code2name.put("SGA-CSA","Specific Grant agreement and Coordination and Support Action");
881
		code2name.put("mon", "Mongolian");
882
		code2name.put("mos", "Mossi");
883
		code2name.put("nau", "Nauru");
884
		code2name.put("nep", "Nepali");
885
		code2name.put("ang", "Old English");
886
		code2name.put("sal", "Salishan");
887
		code2name.put("sam", "Samaritan");
888
		code2name.put("smi", "Sami");
889
		code2name.put("smo", "Samoan");
890
		code2name.put("sad", "Sandawe");
891
		code2name.put("sag", "Sango");
892
		code2name.put("san", "Sanskrit");
893
		code2name.put("srd", "Sardinian");
894
		code2name.put("sco", "Scots");
895
		code2name.put("sel", "Selkup");
896
		code2name.put("sem", "Semitic");
897
		code2name.put("srp", "Serbian");
898
		code2name.put("tyv", "Tuvinian");
899
		code2name.put("twi", "Twi");
900
		code2name.put("uga", "Ugaritic");
901
		code2name.put("uig", "Uighur; Uyghur");
902
		code2name.put("ukr", "Ukrainian");
903
		code2name.put("umb", "Umbundu");
904
		code2name.put("und", "Undetermined");
905
		code2name.put("urd", "Urdu");
906
		code2name.put("uzb", "Uzbek");
907
		code2name.put("vai", "Vai");
908
		code2name.put("ven", "Venda");
909
		code2name.put("was", "Washo");
910
		code2name.put("cym/wel", "Welsh");
911
		code2name.put("wol", "Wolof");
912
		code2name.put("xho", "Xhosa");
913
		code2name.put("sah", "Yakut");
914
		code2name.put("yao", "Yao");
915
		code2name.put("yap", "Yap");
916
		code2name.put("yid", "Yiddish");
917
		code2name.put("httpCSV", "httpCSV");
918
		code2name.put("httpList", "httpList");
919
		code2name.put("jdbc", "jdbc");
920
		code2name.put("oai", "oai");
921
		code2name.put("oai_sets", "oai_sets");
922
		code2name.put("other", "other");
923
		code2name.put("re3data", "re3data");
924
		code2name.put("rest", "rest");
925
		code2name.put("sftp", "sftp");
926
		code2name.put("soap", "soap");
927
		code2name.put("sparql", "sparql");
928
		code2name.put("sword", "sword");
929
		code2name.put("targz", "targz");
930
		code2name.put("ec:frameworkprogram", "frameworkprogram");
931
		code2name.put("UNKNOWN", "UNKNOWN");
932
		code2name.put("0021", "Dataset");
933
		code2name.put("0006", "Doctoral thesis");
934
		code2name.put("0023", "Event");
935
		code2name.put("0009", "External research report");
936
		code2name.put("0024", "Film");
937
		code2name.put("0025", "Image");
938
		code2name.put("0026", "InteractiveResource");
939
		code2name.put("0011", "Internal report");
940
		code2name.put("0017", "Report");
941
		code2name.put("0014", "Research");
942
		code2name.put("0015", "Review");
943
		code2name.put("0029", "Software");
944
		code2name.put("0032", "Software Paper");
945
		code2name.put("0030", "Sound");
946
		code2name.put("0000", "Unknown");
947
		code2name.put("crissystem", "CRIS System");
948
		code2name.put("datarepository::unknown", "Data Repository");
949
		code2name.put("aggregator::datarepository", "Data Repository Aggregator");
950
		code2name.put("infospace", "Information Space");
951
		code2name.put("pubsrepository::institutional", "Institutional Repository");
952
		code2name.put("pubsrepository::journal", "Journal");
953
		code2name.put("scholarcomminfra", "Scholarly Comm. Infrastructure");
954
		code2name.put("pubsrepository::thematic", "Thematic Repository");
955
		code2name.put("websource", "Web Source");
956
		code2name.put("entityregistry::projects", "Funder database");
957
		code2name.put("entityregistry::repositories", "Registry of repositories");
958
		code2name.put("wt:fundingStream", "Wellcome Trust: Funding Stream");
959
		code2name.put("IsCitedBy", "IsCitedBy");
960
		code2name.put("IsNewVersionOf", "IsNewVersionOf");
961
		code2name.put("IsPartOf", "IsPartOf");
962
		code2name.put("COFUND-EJP", "COFUND (European Joint Programme)");
963
		code2name.put("COFUND-PPI", "COFUND (PPI)");
964
		code2name.put("CS2-IA", "CS2 Innovation Action");
965
		code2name.put("CS2-RIA", "CS2 Research and Innovation action");
966
		code2name.put("files", "files");
967
		code2name.put("ERC-COG", "Consolidator Grant");
968
		code2name.put("SESAR-RIA", "SESAR: Research and Innovation action");
969
		code2name.put("SGA-RIA", "SGA Research and Innovation action");
970
		code2name.put("ERC-STG", "Starting Grant");
971
		code2name.put("BOA/Task Order", "BOA/Task Order");
972
		code2name.put("0018", "Annotation");
973
		code2name.put("0001", "Article");
974
		code2name.put("0033", "Audiovisual");
975
		code2name.put("0008", "Bachelor thesis");
976
		code2name.put("Continuing grant", "Continuing grant");
977
		code2name.put("0002", "Book");
978
		code2name.put("0022", "Collection");
979
		code2name.put("0004", "Conference object");
980
		code2name.put("0005", "Contribution for newspaper or weekly magazine");
981
		code2name.put("0031", "Data Paper");
982
		code2name.put("BD", "Bangladesh");
983
		code2name.put("BB", "Barbados");
984
		code2name.put("BY", "Belarus");
985
		code2name.put("BQ", "Bonaire, Sint Eustatius and Saba");
986
		code2name.put("BV", "Bouvet Island");
987
		code2name.put("BN", "Brunei Darussalam");
988
		code2name.put("BG", "Bulgaria");
989
		code2name.put("UM", "United States Minor Outlying Islands");
990
		code2name.put("ZM", "Zambia");
991
		code2name.put("openaire2.0", "OpenAIRE 2.0 (EC funding)");
992
		code2name.put("openaire3.0", "OpenAIRE 3.0 (OA, funding)");
993
		code2name.put("driver", "OpenAIRE Basic (DRIVER OA)");
994
		code2name.put("native", "proprietary");
995
		code2name.put("hostedBy", "collected from a compatible aggregator");
996
		code2name.put("notCompatible", "under validation");
997
		code2name.put("BBI-IA-FLAG", "Bio-based Industries Innovation action - Flagship");
998
		code2name.put("BBI-RIA", "Bio-based Industries Research and Innovation action");
999
	}
1000 41

  
1001
	protected static DNGFRel.Builder getRelBuilder(final RelType rType, final SubRelType subRelType, DNGFRel.Builder rel, final Builder subRel) {
1002
/*
1003
		switch(rType) {
42
	public static Predicate<String> urlFilter = s -> s.trim().matches(URL_REGEX);
1004 43

  
1005
		case datasourceOrganization:
1006
			return rel.setDatasourceOrganization(DatasourceOrganization.newBuilder().setProvision((Provision.Builder) subRel));
1007
		case personPublication:
1008
			final PersonPublication.Builder prp = PersonPublication.newBuilder();
1009
			switch (subRelType) {
1010
			case authorship:
1011
				return rel.setPersonPublication(prp.setAuthorship((Authorship.Builder) subRel));
1012
			default:
1013
				throw new IllegalArgumentException("invalid subRelType for personPublication relations: " + subRelType.toString());
1014
			}
1015
		case personDataset:
1016
			final PersonDataset.Builder prd = PersonDataset.newBuilder();
1017
			switch (subRelType) {
1018
			case authorship:
1019
				return rel.setPersonDataset(prd.setAuthorship((Authorship.Builder) subRel));
1020
			default:
1021
				throw new IllegalArgumentException("invalid subRelType for personDataset relations: " + subRelType.toString());
1022
			}
1023
		case projectOrganization:
1024
			return rel.setProjectOrganization(ProjectOrganization.newBuilder().setParticipation((Participation.Builder) subRel));
1025
		case projectPerson:
1026
			return rel.setProjectPerson(ProjectPerson.newBuilder().setContactPerson(((ContactPerson.Builder) subRel)));
1027
		case publicationOrganization:
1028
			return rel.setPublicationOrganization(PublicationOrganization.newBuilder().setAffiliation((Affiliation.Builder) subRel));
1029
		case publicationProject:
1030
			return rel.setPublicationProject(PublicationProject.newBuilder().setOutcome((Outcome.Builder) subRel));
1031
		case publicationPublication:
1032
			final PublicationPublication.Builder pp = PublicationPublication.newBuilder();
1033
			switch (subRelType) {
1034
			case similarity:
1035
				return rel.setPublicationPublication(pp.setSimilarity((Similarity.Builder) subRel));
1036
			case dedup:
1037
				return rel.setPublicationPublication(pp.setDedup((Dedup.Builder) subRel));
1038
			case dedupSimilarity:
1039
				return rel.setPublicationPublication(pp.setDedupSimilarity((DedupSimilarity.Builder) subRel));
1040
			case supplement:
1041
				return rel.setPublicationPublication(pp.setSupplement((Supplement.Builder) subRel));
1042
			case part:
1043
				return rel.setPublicationPublication(pp.setPart((Part.Builder) subRel));
1044
			default:
1045
				throw new IllegalArgumentException("invalid subRelType for publicationPublication relations: " + subRelType.toString());
1046
			}
1047
		case publicationDataset:
1048
			final PublicationDataset.Builder pd = PublicationDataset.newBuilder();
1049
			switch (subRelType) {
1050
			case similarity:
1051
				return rel.setPublicationDataset(pd.setSimilarity((Similarity.Builder) subRel));
1052
			default:
1053
				throw new IllegalArgumentException("invalid subRelType for publicationDataset relations: " + subRelType.toString());
1054
			}
1055
		case datasetDataset:
1056
			final DatasetDataset.Builder dd = DatasetDataset.newBuilder();
1057
			switch (subRelType) {
1058
			case similarity:
1059
				return rel.setDatasetDataset(dd.setSimilarity((Similarity.Builder) subRel));
1060
			case dedup:
1061
				return rel.setDatasetDataset(dd.setDedup((Dedup.Builder) subRel));
1062
			case dedupSimilarity:
1063
				return rel.setDatasetDataset(dd.setDedupSimilarity((DedupSimilarity.Builder) subRel));
1064
			case part:
1065
				return rel.setDatasetDataset(dd.setPart((Part.Builder) subRel));
1066
			default:
1067
				throw new IllegalArgumentException("invalid subRelType for datasetDataset relations: " + subRelType.toString());
1068
			}
1069
		case personPerson:
1070
			final PersonPerson.Builder pper = PersonPerson.newBuilder();
1071
			switch (subRelType) {
1072
			case dedup:
1073
				return rel.setPersonPerson(pper.setDedup((Dedup.Builder) subRel));
1074
			case dedupSimilarity:
1075
				return rel.setPersonPerson(pper.setDedupSimilarity((DedupSimilarity.Builder) subRel));
1076
			default:
1077
				throw new IllegalArgumentException("invalid subRelType for personPerson relations: " + subRelType.toString());
1078
			}
1079
		case organizationOrganization:
1080
			final OrganizationOrganization.Builder oo = OrganizationOrganization.newBuilder();
1081
			switch (subRelType) {
1082
			case dedup:
1083
				return rel.setOrganizationOrganization(oo.setDedup((Dedup.Builder) subRel));
1084
			case dedupSimilarity:
1085
				return rel.setOrganizationOrganization(oo.setDedupSimilarity((DedupSimilarity.Builder) subRel));
1086
			default:
1087
				throw new IllegalArgumentException("invalid subRelType for organizationOrganization relations: " + subRelType.toString());
1088
			}
1089
		}
1090
		throw new IllegalArgumentException("invalid relation type " + rType.toString());
1091
		*/
1092
		return null;
1093
	}
1094

  
1095
	protected static Builder getSubRelBuilder(final RelMetadata.Builder metadata, final SubRelType subRelType, final Map<String, String> params) {
1096

  
1097
		switch (subRelType) {
1098

  
1099
		case provision:
1100
			return Provision.newBuilder().setRelMetadata(metadata);
1101
		case coauthorship:
1102
			return CoAuthorship.newBuilder().setRelMetadata(metadata);
1103
		case authorship:
1104
			return Authorship.newBuilder().setRelMetadata(metadata).setRanking("" + params.get("rank"));
1105
		case participation:
1106
			return Participation.newBuilder().setRelMetadata(metadata);
1107
		case contactPerson:
1108
			return ContactPerson.newBuilder().setRelMetadata(metadata);
1109
		case outcome:
1110
			return Outcome.newBuilder().setRelMetadata(metadata);
1111
		case similarity:
1112
			return Similarity.newBuilder().setRelMetadata(metadata);
1113
		case isRelatedTo:
1114
			return IsRelatedTo.newBuilder().setRelMetadata(metadata);
1115
		case affiliation:
1116
			return Affiliation.newBuilder().setRelMetadata(metadata);
1117
		case dedup:
1118
			return Dedup.newBuilder().setRelMetadata(metadata);
1119
		case dedupSimilarity:
1120
			return DedupSimilarity.newBuilder().setRelMetadata(metadata);
1121
		case supplement:
1122
			return Supplement.newBuilder().setRelMetadata(metadata);
1123
		case part:
1124
			return Part.newBuilder().setRelMetadata(metadata);
1125
		}
1126
		throw new IllegalArgumentException("invalid relation type " + subRelType.toString());
1127
	}
1128

  
1129
	protected static String getVocabularyName(final RelType relType) {
1130
		switch (relType) {
1131

  
1132
		case datasourceOrganization:
1133
			return "dnet:datasource_organization_relations";
1134
		case personPublication:
1135
			return "dnet:person_publication_relations";
1136
		case personDataset:
1137
			return "dnet:person_dataset_relations";
1138
		case projectOrganization:
1139
			return "dnet:project_organization_relations";
1140
		case projectPerson:
1141
			return "dnet:project_person_relations";
1142
		case publicationOrganization:
1143
			return "dnet:publication_organization_relations";
1144
		case publicationProject:
1145
			return "dnet:publication_project_relations";
1146
		case datasetProject:
1147
			return "dnet:dataset_project_relations";
1148
		case publicationPublication:
1149
			return "dnet:publication_publication_relations";
1150
		case publicationDataset:
1151
			return "dnet:publication_dataset_relations";
1152
		case datasetDataset:
1153
			return "dnet:dataset_dataset_relations";
1154
		case personPerson:
1155
			return "dnet:person_person_relations";
1156
		case organizationOrganization:
1157
			return "dnet:organization_organization_relations";
1158
		}
1159
		throw new IllegalArgumentException("invalid relation type " + relType.toString());
1160
	}
1161

  
1162

  
1163 44
	// Builder for Entities
1164 45
	protected static DNGF getOaf(final DNGFEntity.Builder entity, final DataInfo.Builder info) {
1165 46
		return _getOaf(DNGF.newBuilder(), info).setKind(Kind.entity).setEntity(entity).build();
......
1351 232

  
1352 233
		if ((fields != null) && !fields.isEmpty() && (fields.get(0) != null)) {
1353 234
			qualifier.setClassid(fields.get(0));
1354
			qualifier.setClassname(getClassName(fields.get(0)));
235
			qualifier.setClassname(fields.get(0));
1355 236
		}
1356 237
		return qualifier;
1357 238
	}
......
1394 275

  
1395 276
						final String value = child.getTextContent();
1396 277

  
1397
						pids.add(getStructuredProperty(value, type, getClassName(type), "dnet:pid_types", "dnet:pid_types"));
278
						pids.add(getStructuredProperty(value, type, type, "dnet:pid_types", "dnet:pid_types"));
1398 279
						break;
1399 280
					}
1400 281
				}
......
1611 492
	}
1612 493

  
1613 494
	/**
1614
	 * Gets the classname of the given class code
1615
	 *
1616
	 * @param code class code.
1617
	 * @return the class name, if the code is a key of the map. The code itself otherwise.
1618
	 */
1619
	public static String getClassName(final String code) {
1620
		final String classname = code2name.get(code);
1621
		if (StringUtils.isBlank(classname)) return code;
1622
		return classname;
1623
	}
1624

  
1625
	/**
1626 495
	 * Utility method, allows to perform param based map lookups in xsl
1627 496
	 *
1628 497
	 * @param map

Also available in: Unified diff