Project

General

Profile

« Previous | Next » 

Revision 57047

oai exporter

View differences:

modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/isti/workflows/repo-hi/pubs_aggregation_wf.xml.st
28 28
				<PARAM name="ftpUser"               description="Local Repository - FTP user"     required="true" managedBy="user" type="string"/>
29 29
				<PARAM name="ftpPassword"           description="Local Repository - FTP password" required="true" managedBy="user" type="string"/>
30 30
				<PARAM name="ftpBaseDir"            description="Local Repository - FTP basedir"  required="true" managedBy="user" type="string"/>
31
				<PARAM name="OAIDBName"             description="OAI exporter - Mongo Database"   required="true" managedBy="user" type="string"/>
31 32
            </PARAMETERS>
32 33
            <WORKFLOW>
33 34
                <NODE isStart="true" name="collection" type="LaunchWorkflowTemplate">
......
179 180
                        </PARAM>
180 181
                    </PARAMETERS>
181 182
                    <ARCS>
183
                        <ARC to="oai"/>
184
                    </ARCS>
185
                </NODE>
186
                
187
                <NODE name="oai" type="LaunchWorkflowTemplate">
188
                    <DESCRIPTION>Send to OAI-PMH Publisher</DESCRIPTION>
189
                    <PARAMETERS>
190
                        <PARAM name="wfTemplateId" value="4781ebbb-614c-4238-be9e-cbb469861597_V29ya2Zsb3dUZW1wbGF0ZURTUmVzb3VyY2VzL1dvcmtmbG93VGVtcGxhdGVEU1Jlc291cmNlVHlwZQ=="/>
191
                        <PARAM name="wfTemplateParams">
192
                            <MAP>
193
                                <ENTRY key="cleanMdstoreId" ref="cleanMdstoreId"/>
194
                                <ENTRY key="OAIFormat" value="native"/>
195
                                <ENTRY key="OAILayout" value="oai"/>
196
                                <ENTRY key="OAIInterpretation" value="final"/>
197
                                <ENTRY key="OAIDBName" ref="OAIDBName"/>
198
                            </MAP>
199
                        </PARAM>
200
                    </PARAMETERS>
201
                    <ARCS>
182 202
                        <ARC to="success"/>
183 203
                    </ARCS>
184 204
                </NODE>
205
                
185 206
            </WORKFLOW>
186 207
            <DESTROY_WORKFLOW_TEMPLATE id="1de73b0e-ccbf-442c-a88d-41b27daa0ba2_V29ya2Zsb3dUZW1wbGF0ZURTUmVzb3VyY2VzL1dvcmtmbG93VGVtcGxhdGVEU1Jlc291cmNlVHlwZQ==">
187 208
            	<PARAMETERS>
188
	            	<PARAM name="dsId"                  value="$dsId$" />
189
					<PARAM name="interface"             value="$interface$" />
190
					<PARAM name="collMdstoreId"         ref="collMdstoreId" />
191
					<PARAM name="cleanMdstoreId"        ref="cleanMdstoreId" />
209
	            	<PARAM name="dsId"              value="$dsId$" />
210
					<PARAM name="interface"         value="$interface$" />
211
					<PARAM name="collMdstoreId"     ref="collMdstoreId" />
212
					<PARAM name="cleanMdstoreId"    ref="cleanMdstoreId" />
213
					<PARAM name="OAIFormat"         value="native"/>
214
                    <PARAM name="OAILayout"         value="oai"/>
215
                    <PARAM name="OAIInterpretation" value="final"/>
216
                    <PARAM name="OAIDBName"         ref="OAIDBName"/>
192 217
				</PARAMETERS>
193 218
            </DESTROY_WORKFLOW_TEMPLATE>
194 219
        </CONFIGURATION>
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/OAIPublisherConfigurationDSResources/oai_conf.xml
1
<RESOURCE_PROFILE>
2
    <HEADER>
3
        <RESOURCE_IDENTIFIER value="970140f1-541e-413f-a7bc-5bf28eca3aac_T0FJUHVibGlzaGVyQ29uZmlndXJhdGlvbkRTUmVzb3VyY2VzL09BSVB1Ymxpc2hlckNvbmZpZ3VyYXRpb25EU1Jlc291cmNlVHlwZQ=="/>
4
        <RESOURCE_TYPE value="OAIPublisherConfigurationDSResourceType"/>
5
        <RESOURCE_KIND value="OAIPublisherConfigurationDSResources"/>
6
        <RESOURCE_URI value=""/>
7
        <DATE_OF_CREATION value="2019-09-06T16:38:05+00:00"/>
8
    </HEADER>
9
    <BODY>
10
        <CONFIGURATION>
11
            <IDSCHEME>oai</IDSCHEME>
12
            <IDNAMESPACE>dnet</IDNAMESPACE>
13
            <CURRENTDB>oaistore_isti</CURRENTDB>
14
            <OAISETS/>
15
            <METADATAFORMATS>
16
                <METADATAFORMAT exportable="true" metadataPrefix="native">
17
                    <NAMESPACE>http://openportal.isti.cnr.it/native</NAMESPACE>
18
                    <SCHEMA>http://openportal.isti.cnr.it/schemas/native-1.0.xsd</SCHEMA>
19
                    <SOURCE_METADATA_FORMAT interpretation="final" layout="oai" name="native"/>
20
                    <TRANSFORMATION_RULE/>
21
                    <BASE_QUERY>*</BASE_QUERY>
22
                </METADATAFORMAT>
23
                <METADATAFORMAT exportable="true" metadataPrefix="oai_dc">
24
                    <NAMESPACE>http://www.openarchives.org/OAI/2.0/oai_dc/</NAMESPACE>
25
                    <SCHEMA>http://www.openarchives.org/OAI/2.0/oai_dc.xsd</SCHEMA>
26
                    <SOURCE_METADATA_FORMAT interpretation="final" layout="oai" name="native"/>
27
                    <TRANSFORMATION_RULE>23ecba9f-f152-498e-b639-2ac8022865be_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU=</TRANSFORMATION_RULE>
28
                    <BASE_QUERY>*</BASE_QUERY>
29
                </METADATAFORMAT>
30
            </METADATAFORMATS>
31
            <INDICES>
32
                <INDEX name="objIdentifier" repeatable="false">
33
                    <SOURCE interpretation="final" layout="oai" name="native" path="//*[local-name() ='objIdentifier']"/>
34
                </INDEX>
35
                <INDEX name="set" repeatable="true">
36
                    <SOURCE interpretation="final" layout="oai" name="native" path="//*[local-name()='inCollection']/*[local-name()='acronym']"/>
37
                </INDEX>
38
            </INDICES>
39
            <ENRICHMENT/>
40
        </CONFIGURATION>
41
        <STATUS>
42
            <LAST_UPDATE value="2019-09-06T19:00:00"/>
43
        </STATUS>
44
        <SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
45
    </BODY>
46
</RESOURCE_PROFILE>
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/TransformationRuleDSResources/people2dataciteTransform.xml
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"&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>
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/TransformationRuleDSResources/pmf2oaidc.xml
1
<RESOURCE_PROFILE>
2
    <HEADER>
3
        <RESOURCE_IDENTIFIER value="23ecba9f-f152-498e-b639-2ac8022865be_VHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZXMvVHJhbnNmb3JtYXRpb25SdWxlRFNSZXNvdXJjZVR5cGU="/>
4
        <RESOURCE_TYPE value="TransformationRuleDSResourceType"/>
5
        <RESOURCE_KIND value="TransformationRuleDSResources"/>
6
        <RESOURCE_URI value=""/>
7
        <DATE_OF_CREATION value="2019-09-06T12:45:47+00:00"/>
8
    </HEADER>
9
    <BODY>
10
        <CONFIGURATION>
11
            <SOURCE_METADATA_FORMAT interpretation="cleaned" layout="store" name="pmf"/>
12
            <SINK_METADATA_FORMAT name="oai_dc"/>
13
            <IMPORTED/>
14
            <SCRIPT>
15
                <TITLE>PMF to OAI_DC</TITLE>
16
                <CODE>
17
                </CODE>
18
            </SCRIPT>
19
        </CONFIGURATION>
20
        <STATUS/>
21
        <SECURITY_PARAMETERS>SECURITY_PARAMETERS</SECURITY_PARAMETERS>
22
    </BODY>
23
</RESOURCE_PROFILE>
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/TransformationRuleDSResources/people2pmf.xml
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>
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/common/repo_bye.xml
14 14
				<PARAM name="interface" description="Datasource Interface" required="true" type="string"/>
15 15
				<PARAM name="collMdstoreId" description="Store for collected records" required="true" type="string"/>
16 16
				<PARAM name="cleanMdstoreId" description="Store for cleaned records" required="true" type="string"/>
17
			</PARAMETERS>
17
				<PARAM name="OAIFormat" description="OAI Format" required="true" type="string"/>
18
                <PARAM name="OAILayout" description="OAI Layout" required="true" type="string"/>
19
                <PARAM name="OAIInterpretation" description="OAI Interpretation" required="true" type="string"/>
20
                <PARAM name="OAIDBName" description="OAI Database Name" required="true" type="string"/>
21
   			</PARAMETERS>
18 22
			<WORKFLOW>
19 23

  
20 24
				<NODE name="deleteCollMdStore" type="DeleteMDStore" isStart="true">
......
57 61
						</PARAM>
58 62
					</PARAMETERS>
59 63
					<ARCS>
60
						<ARC to="success"/>
64
						<ARC to="dropOAIStore"/>
61 65
					</ARCS>
62 66
				</NODE>
67
				
68
				<NODE name="dropOAIStore" type="OAIDropStore">
69
                    <DESCRIPTION>Delete from OAI-PMH</DESCRIPTION>
70
                    <PARAMETERS>
71
                        <PARAM name="oaiFormat"         ref="OAIFormat"/>
72
                        <PARAM name="oaiLayout"         ref="OAILayout"/>
73
                        <PARAM name="oaiInterpretation" ref="OAIInterpretation"/>
74
                        <PARAM name="oaiDbName"         ref="OAIDBName"/>
75
                    </PARAMETERS>
76
                    <ARCS>
77
                        <ARC to="success"/>
78
                    </ARCS>
79
                </NODE>
63 80
			</WORKFLOW>
64 81
		</CONFIGURATION>
65 82
	</BODY>
modules/dnet-isti/trunk/src/main/resources/eu/dnetlib/bootstrap/profiles/workflows/common/oai.xml
1
<RESOURCE_PROFILE>
2
    <HEADER>
3
        <RESOURCE_IDENTIFIER value="4781ebbb-614c-4238-be9e-cbb469861597_V29ya2Zsb3dUZW1wbGF0ZURTUmVzb3VyY2VzL1dvcmtmbG93VGVtcGxhdGVEU1Jlc291cmNlVHlwZQ=="/>
4
        <RESOURCE_TYPE value="WorkflowTemplateDSResourceType"/>
5
        <RESOURCE_KIND value="WorkflowTemplateDSResources"/>
6
        <RESOURCE_URI value=""/>
7
        <DATE_OF_CREATION value="2017-01-17T17:00:00.0Z"/>
8
    </HEADER>
9
    <BODY>
10
        <CONFIGURATION>
11
            <PARAMETERS>
12
                <PARAM description="Store for transformed records" name="cleanMdstoreId" required="true" type="string"/>
13
                <PARAM description="OAI Format" name="OAIFormat" required="true" type="string"/>
14
                <PARAM description="OAI Layout" name="OAILayout" required="true" type="string"/>
15
                <PARAM description="OAI Interpretation" name="OAIInterpretation" required="true" type="string"/>
16
                <PARAM description="OAI Database Name" name="OAIDBName" required="true" type="string"/>
17
            </PARAMETERS>
18
            <WORKFLOW>
19
                <NODE isStart="true" name="fetchCleaned" type="FetchMDStoreRecords">
20
                    <DESCRIPTION>Fetch records from MDStore</DESCRIPTION>
21
                    <PARAMETERS>
22
                        <PARAM name="mdId" ref="cleanMdstoreId"/>
23
                        <PARAM name="eprParam" value="orig_epr"/>
24
                    </PARAMETERS>
25
                    <ARCS>
26
                        <ARC to="oaiSync"/>
27
                    </ARCS>
28
                </NODE>
29
                <NODE name="oaiSync" type="SyncOAIStores">
30
                    <DESCRIPTION>Clean original records</DESCRIPTION>
31
                    <PARAMETERS>
32
                        <PARAM name="eprParam" value="orig_epr"/>
33
                        <PARAM name="oaiFormat" ref="OAIFormat"/>
34
                        <PARAM name="oaiLayout" ref="OAILayout"/>
35
                        <PARAM name="oaiInterpretation" ref="OAIInterpretation"/>
36
                        <PARAM name="oaiDbName" ref="OAIDBName"/>
37
                    </PARAMETERS>
38
                    <ARCS>
39
                        <ARC to="configIndexes"/>
40
                    </ARCS>
41
                </NODE>
42
                <NODE name="configIndexes" type="OAIEnsureIndexes">
43
                    <DESCRIPTION>Ensure an index exists on fields as specified in the configuration profile</DESCRIPTION>
44
                    <PARAMETERS>
45
                        <PARAM name="oaiFormat" ref="OAIFormat"/>
46
                        <PARAM name="oaiLayout" ref="OAILayout"/>
47
                        <PARAM name="oaiInterpretation" ref="OAIInterpretation"/>
48
                        <PARAM name="oaiDbName"  ref="OAIDBName"/>
49
                    </PARAMETERS>
50
                    <ARCS>
51
                        <ARC to="setsCount"/>
52
                    </ARCS>
53
                </NODE>
54
                <NODE name="setsCount" type="OAISetsCountUpdate">
55
                    <DESCRIPTION>Count records in each OAI set, for each exported metadata format linked to the given oai collection</DESCRIPTION>
56
                    <PARAMETERS>
57
                        <PARAM name="oaiFormat" ref="OAIFormat"/>
58
                        <PARAM name="oaiLayout" ref="OAILayout"/>
59
                        <PARAM name="oaiInterpretation" ref="OAIInterpretation"/>
60
                        <PARAM name="oaiDbName" ref="OAIDBName"/>
61
                        <PARAM name="configuredOnly" value="false"/>
62
                    </PARAMETERS>
63
                    <ARCS>
64
                        <ARC to="configSets"/>
65
                    </ARCS>
66
                </NODE>
67
                <NODE name="configSets" type="OAIRefreshConfiguration">
68
                    <DESCRIPTION>Reads the current OAI configuration and upsert OAI sets accordingly (counts are updated as well)</DESCRIPTION>
69
                    <PARAMETERS>
70
                        <PARAM name="oaiFormat" ref="OAIFormat"/>
71
                        <PARAM name="oaiLayout" ref="OAILayout"/>
72
                        <PARAM name="oaiInterpretation" ref="OAIInterpretation"/>
73
                        <PARAM name="oaiDbName" ref="OAIDBName"/>
74
                    </PARAMETERS>
75
                    <ARCS>
76
                        <ARC to="success"/>
77
                    </ARCS>
78
                </NODE>
79
            </WORKFLOW>
80
        </CONFIGURATION>
81
    </BODY>
82
</RESOURCE_PROFILE>

Also available in: Unified diff