Project

General

Profile

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(&amp;apos;/db/DRIVER/RepositoryServiceResources&amp;apos;)//RESOURCE_PROFILE[.//EXTRA_FIELDS/FIELD[key=&amp;quot;NamespacePrefix&amp;quot;][value=&amp;quot;', //oaf:datasourceprefix, '&amp;quot;]]')", xpath:"//EXTRA_FIELDS/FIELD[key='OpenAireDataSourceId']/value"]);
46
                    static $varRepoid = xpath:"//dri:repositoryId";
47
                    static $varOfficialname = getValue(PROFILEFIELD, [xpath:"concat('collection(&amp;apos;/db/DRIVER/RepositoryServiceResources&amp;apos;)//RESOURCE_PROFILE[.//EXTRA_FIELDS/FIELD[key=&amp;quot;NamespacePrefix&amp;quot;][value=&amp;quot;', //oaf:datasourceprefix, '&amp;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(.) &gt; 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']) &gt; 0])" dc:creator = skipRecord(); else $varDummy = "''";
58

    
59
                    dc:description = xpath:"replace(//*[local-name()='abstract'][0] , '(&amp;lt;.*?&amp;gt;)', ' ')";
60

    
61
                    // creator
62
                    //apply xpath:"//*[local-name()='author']" if xpath:"string-length(./*[local-name()='family']) + string-length(./*[local-name()='given']) &gt; 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']) &gt; 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']) &gt; 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']) &gt; 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(.)) &gt; 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(.) &gt; 0" dc:subject = xpath:"normalize-space(.)"; else $varDummy = "''";
73

    
74
                    // publisher
75
                    apply xpath:"//*[local-name()='publisher']" if xpath:"string-length(.) &gt; 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>
(3-3/11)