Project

General

Profile

1
<RESOURCE_PROFILE>
2
	<HEADER>
3
		<RESOURCE_IDENTIFIER
4
			value="60216DD9-8036-4CF8-A26D-DCDABBCED558_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU=" />
5
		<RESOURCE_TYPE value="TransformationRuleDSResourceType" />
6
		<RESOURCE_KIND value="TransformationRuleDSResources" />
7
		<RESOURCE_URI value="" />
8
		<DATE_OF_CREATION value="2015-07-28T12:26:13+02:00" />
9
	</HEADER>
10
	<BODY>
11
		<CONFIGURATION>
12
			<IMPORTED />
13
			<SCRIPT>
14
				<TITLE>People to OpenPortalFormat</TITLE>
15
				<CODE>
16
&lt;xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:transformExt="http://namespace.openaire.eu/java/org.apache.commons.codec.digest.DigestUtils" xmlns:datetime="http://exslt.org/dates-and-times" xmlns:exslt="http://exslt.org/common" xmlns:oai="http://www.openarchives.org/OAI/2.0/"
17
    xmlns:dnet="eu.dnetlib.data.utils.XsltFunctions"
18
    xmlns:dri="http://www.driver-repository.eu/namespace/dri" xmlns:TransformationFunction="eu.dnetlib.data.collective.transformation.core.xsl.ext.TransformationFunctionProxy" xmlns:dc="http://purl.org/dc/elements/1.1/" exclude-result-prefixes="xsl transformExt TransformationFunction dnet datetime exslt dc "&gt;
19
    &lt;xsl:param name="varOfficialName"/&gt;
20
    
21
    &lt;xsl:variable name="tf" select="TransformationFunction:getInstance()" /&gt;
22
    
23
    &lt;xsl:template match="/"&gt;
24
        
25
        &lt;xsl:variable name="rights" select="'Unknown'" /&gt;
26
        
27
        &lt;oai:record&gt;
28
            &lt;xsl:copy-of select="//*[local-name() = 'header']"/&gt;
29
            &lt;oai:metadata&gt;
30
                &lt;record&gt;
31
                    
32
                    &lt;identifier&gt;&lt;xsl:value-of select="normalize-space(//dri:recordIdentifier)"/&gt;&lt;/identifier&gt;
33
                    
34
                    &lt;title&gt;&lt;xsl:value-of select="//dc:title[1]" /&gt;&lt;/title&gt;
35
                    
36
                    &lt;creators&gt;
37
	                    &lt;xsl:for-each select="//dc:creator"&gt;
38
	                        &lt;xsl:for-each select="tokenize(dnet:cleanNames(.), '#')"&gt;
39
	                            &lt;xsl:if test="string-length(.) &amp;gt; 0"&gt;
40
	                                &lt;creator&gt;&lt;xsl:value-of select="."/&gt;&lt;/creator&gt;
41
	                            &lt;/xsl:if&gt;
42
	                        &lt;/xsl:for-each&gt;
43
	                    &lt;/xsl:for-each&gt;
44
                    &lt;/creators&gt;
45
                    
46
                    &lt;publisher&gt;&lt;xsl:value-of select="//dc:publisher[1]"/&gt;&lt;/publisher&gt;
47

    
48
					&lt;subjects&gt;
49
	                    &lt;xsl:for-each select="//dc:subject"&gt;
50
	                        &lt;subject&gt;&lt;xsl:value-of select="."/&gt;&lt;/subject&gt;
51
	                    &lt;/xsl:for-each&gt;
52
	                &lt;/subjects&gt;
53
                    
54
                    &lt;contributors&gt;
55
	                    &lt;xsl:for-each select="//dc:contributor"&gt;
56
	                        &lt;xsl:for-each select="tokenize(., ',')"&gt;
57
	                            &lt;contributor&gt;&lt;xsl:value-of select="normalize-space(.)"/&gt;&lt;/contributor&gt;
58
	                        &lt;/xsl:for-each&gt;
59
	                    &lt;/xsl:for-each&gt;
60
	               &lt;/contributors&gt;
61
                    
62
                   &lt;date&gt;&lt;xsl:value-of select="//dc:date[1]"/&gt;&lt;/date&gt;
63
                                       
64
                   &lt;language&gt;&lt;xsl:value-of select="TransformationFunction:convertString($tf, //dc:language[1], 'Languages')"/&gt;&lt;/language&gt;
65
                                       
66
                   &lt;type&gt;&lt;xsl:value-of select="TransformationFunction:convertString($tf, //dc:type[1], 'TextTypologies')" /&gt;&lt;/type&gt;
67
                    
68
                   &lt;urls&gt;
69
	                    &lt;xsl:for-each select="//dc:identifier"&gt;
70
	                        &lt;xsl:if test="starts-with(., 'http') and contains(., 'www.cnr.it')"&gt;
71
	                            &lt;url rights="{$rights}" hostedBy="CNR People"&gt;&lt;xsl:value-of select="."/&gt;&lt;/url&gt;
72
	                        &lt;/xsl:if&gt;
73
	                        &lt;xsl:if test="starts-with(., 'http') and not(contains(., 'dx.doi.org')) and not(contains(., 'www.cnr.it'))"&gt;
74
	                            &lt;url rights="{$rights}" hostedBy="{dnet:serverName(.)}"&gt;&lt;xsl:value-of select="."/&gt;&lt;/url&gt;
75
	                        &lt;/xsl:if&gt;
76
	                        &lt;xsl:if test="starts-with(., 'info:doi:')"&gt;
77
	                            &lt;xsl:variable name="doi" select="dnet:cleanDoi(substring-after(., 'info:doi:'))" /&gt;
78
	                            &lt;url rights="{$rights}" hostedBy="DOI Resolver"&gt;&lt;xsl:value-of select="concat('https://dx.doi.org/', $doi)"/&gt;&lt;/url&gt;
79
	                        &lt;/xsl:if&gt;
80
	                    &lt;/xsl:for-each&gt;
81
                    &lt;/urls&gt;
82
                    
83
                    &lt;dois&gt;
84
	                    &lt;xsl:for-each select="//dc:identifier"&gt;
85
	                        &lt;xsl:if test="starts-with(., 'info:doi:')"&gt;
86
	                            &lt;xsl:variable name="doi" select="dnet:cleanDoi(substring-after(., 'info:doi:'))" /&gt;
87
	                            &lt;doi&gt;&lt;xsl:value-of select="$doi"/&gt;&lt;/doi&gt;
88
	                        &lt;/xsl:if&gt;
89
	                    &lt;/xsl:for-each&gt;
90
                    &lt;/dois&gt;
91
                                        
92
                    &lt;bestRights&gt;&lt;xsl:value-of select="$rights" /&gt;&lt;/bestRights&gt;
93
                    
94
                    &lt;abstract&gt;&lt;xsl:value-of select="//dc:description[1]"/&gt;&lt;/abstract&gt;
95

    
96
					&lt;xsl:for-each select="//dc:source[(string-length(.) &gt; 10) and not(starts-with(.,'info:cnr-pdr/source')) ]"&gt; 
97
                    		&lt;xsl:if test="position() = 1"&gt;
98
                    			&lt;source&gt;&lt;xsl:value-of select="." /&gt;&lt;/source&gt;
99
                    		&lt;/xsl:if&gt;
100
                    &lt;/xsl:for-each&gt;
101
                    
102
                    &lt;projects&gt;
103
	                    &lt;xsl:for-each select="//dc:relation[starts-with(., 'info:eu-repo/grantAgreement')]"&gt;
104
	                        &lt;xsl:if test="dnet:isValidProject(.)"&gt;
105
	                            &lt;project&gt;
106
	                                &lt;infoId&gt;&lt;xsl:value-of select="." /&gt;&lt;/infoId&gt;
107
	                                &lt;openaireId&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/openaireId&gt;
108
	                                &lt;code&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/code&gt;
109
	                                &lt;name&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/name&gt;
110
	                                &lt;acronym&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/acronym&gt;
111
	                                &lt;funder&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/funder&gt;
112
	                                &lt;program&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/program&gt;
113
	                                &lt;jurisdiction&gt;&lt;xsl:value-of select="position()" /&gt;&lt;/jurisdiction&gt;
114
	                            &lt;/project&gt;
115
	                        &lt;/xsl:if&gt;
116
	                    &lt;/xsl:for-each&gt;
117
                    &lt;/projects&gt;
118
                    
119
                     &lt;cnrPersons&gt;
120
	                    &lt;xsl:for-each select="//dc:relation[starts-with(., 'info:cnr-pdr/author')]"&gt;
121
	                        &lt;cnrPerson&gt;
122
	                            &lt;infoId&gt;&lt;xsl:value-of select="." /&gt;&lt;/infoId&gt;
123
	                            &lt;name&gt;&lt;xsl:value-of select="dnet:calculatePersonName(.)" /&gt;&lt;/name&gt;
124
	                        &lt;/cnrPerson&gt;
125
	                    &lt;/xsl:for-each&gt;
126
	                &lt;/cnrPersons&gt;
127
                    
128
                    &lt;citations /&gt;
129
                    
130
                    &lt;collections&gt;
131
                    		&lt;xsl:for-each select="//oai:setSpec[normalize-space(.) != 'openaire']"&gt;
132
	                        &lt;inCollection&gt;
133
	                        		&lt;code&gt;&lt;xsl:value-of select="normalize-space(.)" /&gt;&lt;/code&gt;
134
	                        		&lt;name /&gt;
135
	                             &lt;acronym /&gt;
136
	                        &lt;/inCollection&gt;
137
	                    &lt;/xsl:for-each&gt;
138
                    &lt;/collections&gt;
139
                    
140
                &lt;/record&gt;
141
                
142
            &lt;/oai:metadata&gt;
143
        &lt;/oai:record&gt;
144
    &lt;/xsl:template&gt;
145
&lt;/xsl:stylesheet&gt;
146
				</CODE>
147
			</SCRIPT>
148
		</CONFIGURATION>
149
		<STATUS />
150
		<SECURITY_PARAMETERS />
151
	</BODY>
152
</RESOURCE_PROFILE>
(1-1/3)