Project

General

Profile

1
<RESOURCE_PROFILE>
2
	<HEADER>
3
		<RESOURCE_IDENTIFIER value="f766e91e-f6dc-4469-bd28-60a8158f03b9_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
4
		<RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
5
		<RESOURCE_KIND value="TransformationRuleDSResources"/>
6
		<RESOURCE_URI value=""/>
7
		<DATE_OF_CREATION value="2023-06-23T10:24:52+00:00"/>
8
	</HEADER>
9
	<BODY>
10
		<CONFIGURATION>
11
			<IMPORTED/>
12
			<SCRIPT>
13
				<TITLE>EOSC SERVICES 2 DB (SERVICE MODEL)</TITLE>
14
				<CODE>&lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
15
					xmlns:dnet="eu.dnetlib.data.transform.xml.AbstractDNetXsltFunctions" version="2.0"&gt;
16
					
17
					&lt;xsl:output method="xml" indent="yes"/&gt;
18
					
19
					&lt;xsl:param name="varDataSourceId"/&gt;
20
					&lt;xsl:variable name="eoscPrefix" select="string('eosc________::')"/&gt;
21
					
22
					&lt;xsl:template match="/"&gt;
23
					&lt;record&gt;
24
					&lt;xsl:copy-of select=".//*[local-name() = 'header']"/&gt;
25
					&lt;metadata&gt;
26
					&lt;ROWS&gt;
27
					
28
					&lt;xsl:for-each select="//results[@type = 'organization']"&gt;
29
					&lt;xsl:variable name="orgId" select="concat($eoscPrefix, ./id)"/&gt;
30
					
31
					&lt;ROW table="dsm_organizations"&gt;
32
					&lt;FIELD name="_dnet_resource_identifier_"&gt;
33
					&lt;xsl:value-of select="$orgId"/&gt;
34
					&lt;/FIELD&gt;
35
					&lt;FIELD name="id"&gt;
36
					&lt;xsl:value-of select="$orgId"/&gt;
37
					&lt;/FIELD&gt;
38
					&lt;FIELD name="collectedfrom"&gt;
39
					&lt;xsl:value-of select="$varDataSourceId"/&gt;
40
					&lt;/FIELD&gt;
41
					&lt;FIELD name="legalshortname"&gt;
42
					&lt;xsl:value-of select="./provider/abbreviation"/&gt;
43
					&lt;/FIELD&gt;
44
					&lt;FIELD name="legalname"&gt;
45
					&lt;xsl:value-of select="./provider/name"/&gt;
46
					&lt;/FIELD&gt;
47
					&lt;FIELD name="websiteurl"&gt;
48
					&lt;xsl:value-of select="./provider/website"/&gt;
49
					&lt;/FIELD&gt;
50
					&lt;FIELD name="logourl"&gt;
51
					&lt;xsl:value-of select="./provider/logo"/&gt;
52
					&lt;/FIELD&gt;
53
					&lt;FIELD name="country"&gt;
54
					&lt;xsl:value-of select="./provider/location/country"/&gt;
55
					&lt;/FIELD&gt;
56
					&lt;/ROW&gt;
57
					&lt;/xsl:for-each&gt;
58
					
59
					&lt;xsl:for-each select="//results[@type = 'service']"&gt;
60
					&lt;xsl:variable name="orgId"
61
					select="concat($eoscPrefix, .//resourceOrganisation)"/&gt;
62
					&lt;xsl:variable name="serviceId" select="concat($orgId, '::', ./id)"/&gt;
63
					
64
					&lt;xsl:variable name="jurisdictionOrig" select="normalize-space(.//jurisdiction)" /&gt;
65
					&lt;xsl:variable name="jurisdictionTmp"&gt;
66
					&lt;xsl:choose&gt;
67
					&lt;xsl:when test="$jurisdictionOrig = 'ds_jurisdiction-global'"&gt;Global&lt;/xsl:when&gt;
68
					&lt;xsl:when test="$jurisdictionOrig = 'ds_jurisdiction-institution'"&gt;Institutional&lt;/xsl:when&gt;
69
					&lt;xsl:when test="$jurisdictionOrig = 'ds_jurisdiction-national'"&gt;National&lt;/xsl:when&gt;
70
					&lt;xsl:when test="$jurisdictionOrig = 'ds_jurisdiction-regional'"&gt;Regional&lt;/xsl:when&gt;
71
					&lt;xsl:when test="$jurisdictionOrig = 'ds_jurisdiction-research_infrastructure'"&gt;Research infrastructure&lt;/xsl:when&gt;
72
					&lt;xsl:otherwise&gt;&lt;/xsl:otherwise&gt;
73
					&lt;/xsl:choose&gt;
74
					&lt;/xsl:variable&gt;
75
					&lt;xsl:variable name="jurisdiction" select="normalize-space($jurisdictionTmp)"/&gt;
76
					
77
					&lt;ROW table="dsm_services"&gt;
78
					&lt;FIELD name="_dnet_resource_identifier_"&gt;
79
					&lt;xsl:value-of select="$serviceId"/&gt;
80
					&lt;/FIELD&gt;
81
					&lt;FIELD name="id"&gt;
82
					&lt;xsl:value-of select="$serviceId"/&gt;
83
					&lt;/FIELD&gt;
84
					
85
					&lt;FIELD name="collectedfrom"&gt;
86
					&lt;xsl:value-of select="$varDataSourceId"/&gt;
87
					&lt;/FIELD&gt;
88
					
89
					&lt;FIELD name="namespaceprefix"&gt;
90
					&lt;xsl:value-of select="dnet:generateNsPrefix('eosc', dnet:md5(normalize-space(./id)))" /&gt;
91
					&lt;/FIELD&gt;
92
					
93
					&lt;FIELD name="officialname"&gt;
94
					&lt;xsl:value-of select=".//name"/&gt;
95
					&lt;/FIELD&gt;
96
					&lt;FIELD name="englishname"&gt;
97
					&lt;xsl:value-of select=".//abbreviation"/&gt;
98
					&lt;/FIELD&gt;
99
					&lt;FIELD name="description"&gt;
100
					&lt;xsl:value-of select=".//description"/&gt;
101
					&lt;/FIELD&gt;
102
					&lt;FIELD name="websiteurl"&gt;
103
					&lt;xsl:value-of select=".//webpage"/&gt;
104
					&lt;/FIELD&gt;
105
					&lt;FIELD name="logourl"&gt;
106
					&lt;xsl:value-of select=".//logo"/&gt;
107
					&lt;/FIELD&gt;
108
					&lt;FIELD name="contactemail"&gt;
109
					&lt;xsl:value-of select=".//helpdeskEmail"/&gt;
110
					&lt;/FIELD&gt;
111
					
112
					
113
					&lt;FIELD name="languages"&gt;
114
					&lt;xsl:for-each
115
					select=".//languageAvailabilities/languageAvailabilities"&gt;
116
					&lt;xsl:if test="position() &gt; 1"&gt;
117
					&lt;xsl:text&gt;,&lt;/xsl:text&gt;
118
					&lt;/xsl:if&gt;
119
					&lt;xsl:value-of select="normalize-space(.)"/&gt;
120
					&lt;/xsl:for-each&gt;
121
					&lt;/FIELD&gt;
122
					
123
					&lt;!-- eosc specific fields --&gt;
124
					&lt;FIELD name="jurisdiction"&gt;&lt;xsl:value-of select="$jurisdiction"/&gt;&lt;/FIELD&gt;
125
					&lt;FIELD name="version_control" type="boolean"&gt;&lt;xsl:value-of select=".//versionControl"/&gt;&lt;/FIELD&gt;
126
					
127
					&lt;FIELD name="submission_policy_url"&gt;&lt;xsl:value-of select=".//submissionPolicyURL"/&gt;&lt;/FIELD&gt;
128
					&lt;FIELD name="preservation_policy_url"&gt;&lt;xsl:value-of select=".//preservationPolicyURL"/&gt;&lt;/FIELD&gt;
129
					
130
					&lt;FIELD name="research_entity_types" type="array"&gt;
131
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-funders']"&gt;
132
					&lt;ITEM&gt;Funder&lt;/ITEM&gt;
133
					&lt;/xsl:if&gt;
134
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-organizations']"&gt;
135
					&lt;ITEM&gt;Organization&lt;/ITEM&gt;
136
					&lt;/xsl:if&gt;
137
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-other_research_products']"&gt;
138
					&lt;ITEM&gt;Research Products&lt;/ITEM&gt;
139
					&lt;/xsl:if&gt;
140
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-projects']"&gt;
141
					&lt;ITEM&gt;Projects&lt;/ITEM&gt;
142
					&lt;/xsl:if&gt;
143
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-research_data']"&gt;
144
					&lt;ITEM&gt;Research Data&lt;/ITEM&gt;
145
					&lt;/xsl:if&gt;
146
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-research_publication']"&gt;
147
					&lt;ITEM&gt;Research Publications&lt;/ITEM&gt;
148
					&lt;/xsl:if&gt;
149
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-research_software']"&gt;
150
					&lt;ITEM&gt;Software&lt;/ITEM&gt;
151
					&lt;/xsl:if&gt;
152
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-researchers']"&gt;
153
					&lt;ITEM&gt;Researchers&lt;/ITEM&gt;
154
					&lt;/xsl:if&gt;
155
					&lt;xsl:if test=".//researchEntityTypes[.='ds_research_entity_type-services']"&gt;
156
					&lt;ITEM&gt;Services&lt;/ITEM&gt;
157
					&lt;/xsl:if&gt;
158
					&lt;/FIELD&gt;
159
					
160
					&lt;FIELD name="consenttermsofuse" type="boolean"&gt;
161
					&lt;xsl:value-of
162
					select="string-length(normalize-space(.//termsOfUse)) &amp;gt; 0"
163
					/&gt;
164
					&lt;/FIELD&gt;
165
					
166
					&lt;FIELD name="research_product_access_policies" type="array"&gt;
167
					&lt;xsl:for-each select=".//accessPolicy/text()|.//researchProductAccessPolicies/text()"&gt;
168
					&lt;xsl:if test="normalize-space(.)"&gt;
169
					&lt;ITEM&gt;
170
					&lt;xsl:value-of select="normalize-space(.)"/&gt;
171
					&lt;/ITEM&gt;
172
					&lt;/xsl:if&gt;
173
					&lt;/xsl:for-each&gt;
174
					&lt;/FIELD&gt;
175
					
176
					&lt;FIELD name="research_product_metadata_access_policies" type="array"&gt;
177
					&lt;xsl:for-each select=".//accessPolicy/text()|.//researchProductMetadataAccessPolicies/text()"&gt;
178
					&lt;xsl:if test="normalize-space(.)"&gt;
179
					&lt;ITEM&gt;
180
					&lt;xsl:value-of select="normalize-space(.)"/&gt;
181
					&lt;/ITEM&gt;
182
					&lt;/xsl:if&gt;
183
					&lt;/xsl:for-each&gt;
184
					&lt;/FIELD&gt;
185
					
186
					&lt;xsl:choose&gt;
187
					&lt;xsl:when test="./datasource"&gt;
188
					&lt;!-- It is a datasource --&gt;
189
					&lt;FIELD name="thematic" type="boolean"&gt;
190
					&lt;xsl:value-of select=".//thematic"/&gt;
191
					&lt;/FIELD&gt;
192
					
193
					&lt;FIELD name="eosc_type"&gt;Data Source&lt;/FIELD&gt;
194
					
195
					&lt;xsl:choose&gt;
196
					&lt;xsl:when
197
					test=".//datasourceClassification = 'ds_classification-aggregators'"&gt;
198
					&lt;FIELD name="eosc_datasource_type"&gt;Aggregator&lt;/FIELD&gt;
199
					&lt;FIELD name="_typology_to_remove_"&gt;
200
					&lt;xsl:choose&gt;
201
					&lt;xsl:when test=".//researchEntityTypes[.='ds_research_entity_type-research_data']"&gt;aggregator::datarepository&lt;/xsl:when&gt;
202
					&lt;xsl:when test=".//researchEntityTypes[.='ds_research_entity_type-research_software']"&gt;aggregator::softwarerepository&lt;/xsl:when&gt;
203
					&lt;xsl:when test="$jurisdiction = 'Institutional'"&gt;aggregator::pubsrepository::institutional&lt;/xsl:when&gt;
204
					&lt;xsl:otherwise&gt;aggregator::pubsrepository::unknown&lt;/xsl:otherwise&gt;
205
					&lt;/xsl:choose&gt;
206
					&lt;/FIELD&gt;
207
					&lt;/xsl:when&gt;
208
					&lt;xsl:when
209
					test=".//datasourceClassification = 'ds_classification-catalogue_of_research_products'"&gt;
210
					&lt;FIELD name="eosc_datasource_type"&gt;Catalogue&lt;/FIELD&gt;
211
					&lt;FIELD name="_typology_to_remove_"&gt;pubscatalogue::unknown&lt;/FIELD&gt;
212
					&lt;/xsl:when&gt;
213
					&lt;xsl:when
214
					test=".//datasourceClassification = 'ds_classification-cris_system'"&gt;
215
					&lt;FIELD name="eosc_datasource_type"&gt;CRIS system&lt;/FIELD&gt;
216
					&lt;FIELD name="_typology_to_remove_"&gt;crissystem&lt;/FIELD&gt;
217
					&lt;/xsl:when&gt;
218
					&lt;xsl:when
219
					test=".//datasourceClassification = 'ds_classification-journal_archive'"&gt;
220
					&lt;FIELD name="eosc_datasource_type"&gt;Journal archive&lt;/FIELD&gt;
221
					&lt;FIELD name="_typology_to_remove_"&gt;pubsrepository::journal&lt;/FIELD&gt;
222
					&lt;/xsl:when&gt;
223
					&lt;xsl:when
224
					test=".//datasourceClassification = 'ds_classification-publisher_archive'"&gt;
225
					&lt;FIELD name="eosc_datasource_type"&gt;Publisher archive&lt;/FIELD&gt;
226
					&lt;FIELD name="_typology_to_remove_"&gt;aggregator::pubsrepository::journals&lt;/FIELD&gt;
227
					&lt;/xsl:when&gt;
228
					&lt;xsl:when
229
					test=".//datasourceClassification = 'ds_classification-repository'"&gt;
230
					&lt;FIELD name="eosc_datasource_type"&gt;Repository&lt;/FIELD&gt;
231
					&lt;FIELD name="_typology_to_remove_"&gt;
232
					&lt;xsl:choose&gt;
233
					&lt;xsl:when test=".//thematic = 'true'"&gt;pubsrepository::thematic&lt;/xsl:when&gt;
234
					&lt;xsl:when test="$jurisdiction = 'Institutional'"&gt;pubsrepository::institutional&lt;/xsl:when&gt;
235
					&lt;xsl:when test=".//researchEntityTypes[.='ds_research_entity_type-other_research_products']"&gt;orprepository&lt;/xsl:when&gt;
236
					&lt;xsl:when test=".//researchEntityTypes[.='ds_research_entity_type-research_software']"&gt;softwarerepository&lt;/xsl:when&gt;
237
					&lt;xsl:when test=".//researchEntityTypes[.='ds_research_entity_type-research_data']"&gt;datarepository::unknown&lt;/xsl:when&gt;
238
					&lt;xsl:otherwise&gt;pubsrepository::unknown&lt;/xsl:otherwise&gt;
239
					&lt;/xsl:choose&gt;
240
					&lt;/FIELD&gt;
241
					&lt;/xsl:when&gt;
242
					&lt;xsl:otherwise&gt;
243
					&lt;FIELD name="eosc_datasource_type"&gt;Repository&lt;/FIELD&gt;
244
					&lt;FIELD name="_typology_to_remove_"&gt;pubsrepository::unknown&lt;/FIELD&gt;
245
					&lt;/xsl:otherwise&gt;
246
					&lt;/xsl:choose&gt;
247
					&lt;/xsl:when&gt;
248
					&lt;xsl:otherwise&gt;
249
					&lt;!-- It is a generic service --&gt;
250
					&lt;FIELD name="thematic" type="boolean"&gt;
251
					&lt;xsl:value-of
252
					select="count(.//scientificDomain) = 1 and .//scientificDomain[1] != 'scientific_domain-generic'"
253
					/&gt;
254
					&lt;/FIELD&gt;
255
					&lt;FIELD name="eosc_type"&gt;Service&lt;/FIELD&gt;
256
					&lt;FIELD name="_typology_to_remove_"&gt;service&lt;/FIELD&gt;
257
					&lt;/xsl:otherwise&gt;
258
					&lt;/xsl:choose&gt;
259
					&lt;/ROW&gt;
260
					
261
					&lt;!-- DO NOT REMOVE: This ROW is used to anticipate the creation of the complete organization --&gt;
262
					&lt;ROW table="dsm_organizations"&gt;
263
					&lt;FIELD name="_dnet_resource_identifier_"&gt;
264
					&lt;xsl:value-of select="$orgId"/&gt;
265
					&lt;/FIELD&gt;
266
					&lt;FIELD name="id"&gt;
267
					&lt;xsl:value-of select="$orgId"/&gt;
268
					&lt;/FIELD&gt;
269
					&lt;/ROW&gt;
270
					
271
					&lt;ROW table="dsm_service_organization"&gt;
272
					&lt;FIELD name="_dnet_resource_identifier_"&gt;
273
					&lt;xsl:value-of select="concat($orgId, '@@', $serviceId)"/&gt;
274
					&lt;/FIELD&gt;
275
					&lt;FIELD name="service"&gt;
276
					&lt;xsl:value-of select="$serviceId"/&gt;
277
					&lt;/FIELD&gt;
278
					&lt;FIELD name="organization"&gt;
279
					&lt;xsl:value-of select="$orgId"/&gt;
280
					&lt;/FIELD&gt;
281
					&lt;/ROW&gt;
282
					
283
					&lt;/xsl:for-each&gt;
284
					
285
					&lt;/ROWS&gt;
286
					&lt;/metadata&gt;
287
					
288
					&lt;/record&gt;
289
					&lt;/xsl:template&gt;
290
					
291
					&lt;/xsl:stylesheet&gt;
292
				</CODE>
293
			</SCRIPT>
294
		</CONFIGURATION>
295
		<STATUS/>
296
		<SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
297
	</BODY>
298
</RESOURCE_PROFILE>
(4-4/10)