1
|
<RESOURCE_PROFILE>
|
2
|
<HEADER>
|
3
|
<RESOURCE_IDENTIFIER value="169714e2-73ca-4972-94c0-ac8590cfa73f_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
|
4
|
<RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
|
5
|
<RESOURCE_KIND value="TransformationRuleDSResources"/>
|
6
|
<RESOURCE_URI value=""/>
|
7
|
<DATE_OF_CREATION value="2020-07-13T15:29:55+02:00"/>
|
8
|
</HEADER>
|
9
|
<BODY>
|
10
|
<CONFIGURATION>
|
11
|
<IMPORTED/>
|
12
|
<SCRIPT>
|
13
|
<TITLE>crossref2oaf_OPEN_COVID19</TITLE>
|
14
|
<CODE>
|
15
|
declare_script "crossref2oaf_OPEN_COVID19";
|
16
|
declare_ns oaf = "http://namespace.openaire.eu/oaf";
|
17
|
declare_ns dri = "http://www.driver-repository.eu/namespace/dri";
|
18
|
declare_ns dr = "http://www.driver-repository.eu/namespace/dr";
|
19
|
declare_ns dc = "http://purl.org/dc/elements/1.1/";
|
20
|
declare_ns prov = "http://www.openarchives.org/OAI/2.0/provenance";
|
21
|
declare_ns xs = "http://www.w3.org/2001/XMLSchema"; //
|
22
|
$var0 = "''";
|
23
|
$varFP7 = "'corda_______::'";
|
24
|
$varH2020 = "'corda__h2020::'";
|
25
|
$varAKA = "'aka_________::'";
|
26
|
$varARC = "'arc_________::'";
|
27
|
$varCONICYT = "'conicytf____::'";
|
28
|
$varDFG = "'dfgf________::'";
|
29
|
$varFCT="'fct_________::'";
|
30
|
$varFWF = "'fwf_________::'";
|
31
|
$varHRZZ = "'irb_hr______::'";
|
32
|
$varMESTD = "'mestd_______::'";
|
33
|
$varMZOS = "'irb_hr______::'";
|
34
|
$varNHMRC = "'nhmrc_______::'";
|
35
|
$varNIH = "'nih_________::'";
|
36
|
$varNSF = "'nsf_________::'";
|
37
|
$varNWO = "'nwo_________::'";
|
38
|
$varRCUK = "'rcuk________::'";
|
39
|
$varSFI ="'sfi_________::'";
|
40
|
$varSNSF = "'snsf________::'";
|
41
|
$varTUBITAK = "'tubitakf____::'";
|
42
|
$varWT = "'wt__________::'";
|
43
|
|
44
|
$varDummy = "''";
|
45
|
static $varDatasourceid = getValue(PROFILEFIELD, [xpath:"concat('collection(&apos;/db/DRIVER/RepositoryServiceResources&apos;)//RESOURCE_PROFILE[.//EXTRA_FIELDS/FIELD[key=&quot;NamespacePrefix&quot;][value=&quot;', //oaf:datasourceprefix, '&quot;]]')", xpath:"//EXTRA_FIELDS/FIELD[key='OpenAireDataSourceId']/value"]);
|
46
|
static $varRepoid = xpath:"//dri:repositoryId";
|
47
|
static $varOfficialname = getValue(PROFILEFIELD, [xpath:"concat('collection(&apos;/db/DRIVER/RepositoryServiceResources&apos;)//RESOURCE_PROFILE[.//EXTRA_FIELDS/FIELD[key=&quot;NamespacePrefix&quot;][value=&quot;', //oaf:datasourceprefix, '&quot;]]')", xpath:"//CONFIGURATION/OFFICIAL_NAME"]);
|
48
|
dri:objIdentifier = xpath:"//dri:objIdentifier";
|
49
|
dri:repositoryId = $varRepoid;
|
50
|
dri:recordIdentifier = xpath:"//dri:recordIdentifier";
|
51
|
|
52
|
// skipping records
|
53
|
if xpath:"//*[local-name()='message-type'][. = 'work-list']" dc:type = skipRecord(); else $varDummy = "''";
|
54
|
// empty or missing title
|
55
|
if xpath:"not(//*[local-name()='title']) or not(//*[local-name()='title'][string-length(.) > 0])" dc:title = skipRecord(); else $varDummy = "''";
|
56
|
// empty or missing creator
|
57
|
if xpath:"not(//*[local-name()='author'][string-length(./*[local-name()='family']) + string-length(./*[local-name()='given']) > 0])" dc:creator = skipRecord(); else $varDummy = "''";
|
58
|
|
59
|
dc:description = xpath:"replace(//*[local-name()='abstract'][0] , '(&lt;.*?&gt;)', ' ')";
|
60
|
|
61
|
// creator
|
62
|
//apply xpath:"//*[local-name()='author']" if xpath:"string-length(./*[local-name()='family']) + string-length(./*[local-name()='given']) > 0 and not(./*[local-name()='ORCID'])" dc:creator = xpath:"concat(normalize-space(./*[local-name()='family']), ./*[local-name()='suffix'][not(starts-with(lower-case(.), 'prof') or starts-with(lower-case(.), 'dr') or starts-with(lower-case(.), 'phd') or starts-with(lower-case(.), 'md'))]/concat(' ', normalize-space(.)), ', ', normalize-space(./*[local-name()='given']))"; else $varDummy = "''";
|
63
|
//apply xpath:"//*[local-name()='author']" if xpath:"string-length(./*[local-name()='family']) + string-length(./*[local-name()='given']) > 0 and ./*[local-name()='ORCID']" dc:creator = set(xpath:"concat(normalize-space(./*[local-name()='family']), ./*[local-name()='suffix'][not(starts-with(lower-case(.), 'prof') or starts-with(lower-case(.), 'dr') or starts-with(lower-case(.), 'phd') or starts-with(lower-case(.), 'md'))]/concat(' ', normalize-space(.)), ', ', normalize-space(./*[local-name()='given']))", @nameIdentifierScheme = xpath:"orcid";, @nameIdentifier = xpath:"./*[local-name()='ORCID']/substring-after(., 'http://orcid.org/')";); else $varDummy = "''";
|
64
|
$varOrcidName = xpath:"//*[local-name()='author'][string-length(./*[local-name()='family']) + string-length(./*[local-name()='given']) > 0]/concat(normalize-space(./*[local-name()='family']), ./*[local-name()='suffix'][not(starts-with(lower-case(.), 'prof') or starts-with(lower-case(.), 'dr') or starts-with(lower-case(.), 'phd') or starts-with(lower-case(.), 'md'))]/concat(' ', normalize-space(.)), ', ', normalize-space(./*[local-name()='given']))";
|
65
|
$varOrcidOrcid = xpath:"//*[local-name()='author'][string-length(./*[local-name()='family']) + string-length(./*[local-name()='given']) > 0]/substring-after(./*[local-name()='ORCID'], 'http://orcid.org/')";
|
66
|
dc:creator = set(xpath:"$varOrcidName", @nameIdentifier = xpath:"subsequence($varOrcidOrcid,position(),1)";, @nameIdentifierScheme=xpath:"replace(subsequence($varOrcidOrcid,position(),1),'^.+$','ORCID')";, @schemeUri=xpath:"replace(subsequence($varOrcidOrcid,position(),1),'^.+$','http://orcid.org/')";);
|
67
|
|
68
|
// title
|
69
|
apply xpath:"//*[local-name()='title']" if xpath:"string-length(normalize-space(.)) > 0" dc:title = xpath:"normalize-space(.)"; else $varDummy = "''";
|
70
|
|
71
|
// subjects here seem not to refer to vocabularies
|
72
|
apply xpath:"//*[local-name()='subject']" if xpath:"string-length(.) > 0" dc:subject = xpath:"normalize-space(.)"; else $varDummy = "''";
|
73
|
|
74
|
// publisher
|
75
|
apply xpath:"//*[local-name()='publisher']" if xpath:"string-length(.) > 0" dc:publisher = xpath:"normalize-space(.)"; else $varDummy = "''";
|
76
|
|
77
|
$varHttpTest = "''";
|
78
|
// identifier
|
79
|
apply xpath:"//*[local-name()='URL'][starts-with(normalize-space(.), 'http://dx.doi.org')]" if xpath:"." dc:identifier = xpath:"normalize-space(.)"; else $var0 = "''";
|
80
|
dc:source = xpath:"//*[local-name()='message']/*[local-name()='container-title']";
|
81
|
dr:dateOfCollection = xpath:"//dri:dateOfCollection";
|
82
|
static dr:dateOfTransformation = xpath:"current-dateTime()";
|
83
|
//###BASE type
|
84
|
dc:type = xpath:"//*[local-name()='message']/*[local-name()='type']";
|
85
|
dc:language = xpath:"//*[local-name()='message']//*[local-name()='language']";
|
86
|
// date
|
87
|
dc:date = xpath:"//*[local-name()='published-print' or local-name()='published-online']/*[local-name()='date-parts']/string-join(*[local-name()='array'], '-')";
|
88
|
apply xpath:"(//*[local-name()='published-print' or local-name()='published-online'], //*[local-name()='issued'][not(//*[local-name()='array' and contains(., 'null')])][not(//*[local-name()='published-print' or local-name()='published-online'])])/*[local-name()='date-parts'][max((count(*),3))=3 and string-length(*[1])=4 and max((subsequence(*/string-length(),2,2),2))=2]" if xpath:"." oaf:dateAccepted = xpath:"string-join((*[1], substring(substring(concat('0',*[2],'1'),string-length(*[2])),1,2), substring(substring(concat('0',*[3],'1'),string-length(*[3])),1,2)), '-')"; else $varDummy = "''";
|
89
|
|
90
|
// FP7
|
91
|
//oaf:projectid = xpath:"//dc:relation[matches(normalize-space(.), '(.*)(info:eu-repo/grantagreement[/]+ec/fp7/)(\d\d\d\d\d\d)(.*)', 'i')][contains(lower-case(.), 'info:eu-repo')]/concat($varFP7, replace(normalize-space(.), '(.*)(info:eu-repo/grantagreement[/]+ec/fp7/)(\d\d\d\d\d\d)(.*)', '$3', 'i'))";
|
92
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Seventh Framework Program')], ./*[local-name()='DOI' and .='10.13039/100011102']]/*[local-name()='award' and matches(., '^\d{6}$')]/concat($varFP7, .)";
|
93
|
// H2020
|
94
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Horizon 2020') or contains(., 'H2020')], ./*[local-name()='DOI' and .='10.13039/100010661']]/*[local-name()='award' and matches(., '^\d{6}$')]/concat($varH2020, .)";
|
95
|
// AKA
|
96
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'Suomen Akatemia') or contains(., 'Academy of Finland'))], ./*[local-name()='DOI' and .='10.13039/501100002341']]/*[local-name()='award']/concat($varAKA, .)";
|
97
|
// ARC
|
98
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Australian Research Council')], ./*[local-name()='DOI' and .='10.13039/501100000923']]/*[local-name()='award' and matches(., '^\d{6}$')]/concat($varARC, .)";
|
99
|
// CONICYT
|
100
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'Comisión Nacional de Investigación Científica y Tecnológica') or contains(., 'CONICYT'))], ./*[local-name()='DOI' and .='10.13039/501100002848']]/*[local-name()='award']/concat($varCONICYT, .)";
|
101
|
// DFG
|
102
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'Deutsche Forschungsgemeinschaft') or contains(., 'DFG'))], ./*[local-name()='DOI' and .='10.13039/501100001659']]/*[local-name()='award']/concat($varDFG, .)";
|
103
|
// FCT
|
104
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Fundação para a Ciência e a Tecnologia')], ./*[local-name()='DOI' and .='10.13039/501100001871']]/*[local-name()='award']/concat($varFCT, .)";
|
105
|
// FWF
|
106
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Fonds zur Förderung der Wissenschaftlichen Forschung') or contains(., 'Austrian Science Fund')], ./*[local-name()='DOI' and .='10.13039/501100002428']]/*[local-name()='award']/concat($varFWF, .)";
|
107
|
// MESTD
|
108
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and ((contains(., 'Ministarstvo Prosvete, Nauke i Tehnolo') and contains(., 'kog Razvoja')) or contains(., 'MESTD'))], ./*[local-name()='DOI' and .='10.13039/501100001871']]/*[local-name()='award']/concat($varMESTD, .)";
|
109
|
// $varMZOS
|
110
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'Ministarstvo Znanosti, Obrazovanja i Sporta') or contains(., 'Ministry of Science, Education and Sports'))], ./*[local-name()='DOI' and .='10.13039/501100006588']]/*[local-name()='award']/concat($varMZOS, .)";
|
111
|
// NHMRC
|
112
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'National Health and Medical Research Council') or contains(., 'NHMRC'))], ./*[local-name()='DOI' and .='10.13039/501100000925']]/*[local-name()='award']/concat($varNHMRC, .)";
|
113
|
// NIH
|
114
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'National Institutes of Health')], ./*[local-name()='DOI' and .='10.13039/100000002']]/*[local-name()='award']/concat($varNIH, .)";
|
115
|
// NSF
|
116
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'National Science Foundation')], ./*[local-name()='DOI' and .='10.13039/100000001']]/*[local-name()='award']/concat($varNSF, .)";
|
117
|
// NWO
|
118
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Netherlands Organisation for Scientific Research') or contains(., 'Nederlandse Organisatie voor Wetenschappelijk Onderzoek')], ./*[local-name()='DOI' and .='10.13039/501100003246']]/*[local-name()='award']/concat($varNWO, .)";
|
119
|
// RCUK
|
120
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'Research Councils UK') or contains(., 'RCUK'))], ./*[local-name()='DOI' and .='10.13039/501100000690']]/*[local-name()='award']/concat($varRCUK, .)";
|
121
|
// SFI
|
122
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Science Foundation Ireland')], ./*[local-name()='DOI' and .='10.13039/501100001602']]/*[local-name()='award']/concat($varSFI, .)";
|
123
|
// SNSF
|
124
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Swiss National Science Foundation') or contains(., 'Schweizerischer Nationalfonds zur Förderung der Wissenschaftlichen Forschung')], ./*[local-name()='DOI' and .='10.13039/501100001711']]/*[local-name()='award']/concat($varSFI, .)";
|
125
|
// TUBITAK
|
126
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and (contains(., 'Turkish National Science and Research Council') or (contains(., 'Türkiye Bilimsel ve Teknolojik Ara') and contains(., 'rma Kurumu')))], ./*[local-name()='DOI' and .='10.13039/501100004410']]/*[local-name()='award']/concat($varTUBITAK, .)";
|
127
|
// WT
|
128
|
oaf:projectid = xpath:"//*[local-name()='funder'][./*[local-name()='name' and contains(., 'Wellcome Trust')], ./*[local-name()='DOI' and .='10.13039/100004440']]/*[local-name()='award']/concat($varWT, .)";
|
129
|
|
130
|
// dr:CobjCategory
|
131
|
$varType = xpath:"//*[local-name()='message']/*[local-name()='type']";
|
132
|
|
133
|
$varCobjCategory = Convert(xpath:"normalize-space($varType)", TextTypologies);
|
134
|
$varSuperType = Convert(xpath:"normalize-space($varCobjCategory)", SuperTypes);
|
135
|
dr:CobjCategory = set($varCobjCategory, @type = $varSuperType;);
|
136
|
|
137
|
oaf:accessrights = "OPEN";
|
138
|
oaf:concept = set("''", @id = "covid-19";);
|
139
|
dc:rights = xpath:"//*[local-name()='license']/*[local-name()='URL']";
|
140
|
oaf:license = xpath:"//message/license[./content-version='tdm']/URL";
|
141
|
|
142
|
//
|
143
|
static oaf:collectedFrom = set("''", @name = $varOfficialname; , @id = $varDatasourceid;);
|
144
|
static oaf:hostedBy = set("''", @name = $varOfficialname; , @id = $varDatasourceid;);
|
145
|
//
|
146
|
|
147
|
apply xpath:"//*[local-name()='article-number']" if xpath:"true()" dr:CobjIdentifier = xpath:"."; else $var0 = "''";
|
148
|
|
149
|
//###BASE oaf:identifier
|
150
|
oaf:identifier = set(xpath:"//*[local-name()='recordIdentifier']", @identifierType = "doi";);
|
151
|
|
152
|
oaf:datasourceprefix = xpath:"//oaf:datasourceprefix";
|
153
|
//
|
154
|
$varISSNp = xpath:"//*[local-name()='message']/*[local-name()='issn-type'][./type='print']/value";
|
155
|
$varISSNe = xpath:"//*[local-name()='message']/*[local-name()='issn-type'][./type='electronic']/value";
|
156
|
$varJournalTitle = xpath:"//*[local-name()='container-title']";
|
157
|
$varJournalVol = xpath:"//*[local-name()='metadata']/*[local-name()='items']/*[local-name()='volume']";
|
158
|
$varJournalIss = "''";
|
159
|
// xpath:"//*[local-name()='issue']";
|
160
|
$varJournalSp = "''";
|
161
|
// xpath:"//*[local-name()='page']/substring-before(., '-')";
|
162
|
$varJournalEp = "''";
|
163
|
// xpath:"//*[local-name()='page']/substring-after(., '-')";
|
164
|
oaf:journal = set($varJournalTitle, @eissn= xpath:"$varISSNe";, @issn = xpath:"$varISSNp";, @vol = xpath:"$varJournalVol";, @iss = xpath:"$varJournalIss";, @sp = xpath:"$varJournalSp";, @ep = xpath:"$varJournalEp";);
|
165
|
|
166
|
oaf:fulltext = xpath:"//message/link[./intended-application ='text-mining' and ./content-type='application/pdf']/URL";
|
167
|
|
168
|
end
|
169
|
|
170
|
</CODE>
|
171
|
</SCRIPT>
|
172
|
</CONFIGURATION>
|
173
|
<STATUS/>
|
174
|
<SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
|
175
|
</BODY>
|
176
|
</RESOURCE_PROFILE>
|