Project

General

Profile

« Previous | Next » 

Revision 58308

created branch for es 7

View differences:

modules/dli-service-portal/branches/ES_7/test/dli/testES.py
1
import unittest
2
from eu.dnetlib.es_connector import DLIESConnector
3
import time
4

  
5
DLI_INDEX = 'dli'
6
ES_HOST = 'ip-90-147-167-27.ct1.garrservices.it'
7

  
8

  
9
class TestDLIESConnector(unittest.TestCase):
10
    def setUp(self):
11
        self.connector = DLIESConnector(ES_HOST, DLI_INDEX)
12

  
13
    def testQuery(self):
14
        start_time = time.time()
15
        result = self.connector.simple_query('protein')
16
        print("---Request time: %s milliseconds ---" % ((time.time() - start_time) * 1000))
17
        self.assertTrue(result.total > 0)
18

  
19
    def tearDown(self):
20
        self.connector = None
21

  
22
if __name__ == '__main__':
23
    unittest.main()
modules/dli-service-portal/branches/ES_7/requirements.txt
1
aiofiles==0.4.0
2
certifi==2019.3.9
3
chardet==3.0.4
4
Click==7.0
5
elasticsearch==5.5.3
6
elasticsearch-dsl==5.4.0
7
fastapi==0.20.0
8
h11==0.8.1
9
httptools==0.0.13
10
idna==2.8
11
memory-profiler==0.55.0
12
prometheus-client==0.5.0
13
psutil==5.6.2
14
pydantic==0.23
15
Pympler==0.7
16
python-dateutil==2.8.0
17
python-multipart==0.0.5
18
requests==2.22.0
19
six==1.12.0
20
starlette==0.12.0
21
starlette-prometheus==0.2.0
22
urllib3==1.25.2
23
uvicorn==0.7.1
24
uvloop==0.12.2
25
websockets==7.0
modules/dli-service-portal/branches/ES_7/api.properties
1
api.index = dli_shadow
2
es_index = ip-90-147-167-25.ct1.garrservices.it,ip-90-147-167-26.ct1.garrservices.it,ip-90-147-167-27.ct1.garrservices.it, ip-90-147-167-28.ct1.garrservices.it
modules/dli-service-portal/branches/ES_7/logger.py
1
import logging
2

  
3
dlilogger = logging.getLogger('dli')
4
hdlr = logging.FileHandler('dli.log')
5
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
6
hdlr.setFormatter(formatter)
7
dlilogger.addHandler(hdlr)
8
dlilogger.setLevel(logging.WARNING)
modules/dli-service-portal/branches/ES_7/static/partials/datasourceDetail.html
1
<div class="container">
2
    <div class="row">
3
        <div class="col-lg-12">
4
            <h3>Datasource Info </h3>
5
        </div>
6
    </div>
7

  
8
    <div class="row">
9
        <div class="col-lg-12">
10
            <img src="{{ datasource.iconURI }}" style="max-height: 100px"/>
11
        </div>
12
    </div>
13
    <div class="row">
14
        <div class="col-lg-6">
15
            <ul>
16

  
17
                <li>Datasource Name: <b class=blue-text>{{ datasource.officialName }}</b></li>
18
                <li>Datasource webPage: <a href="{{ datasource.webSite }}">{{ datasource.webSite }}</a></li>
19
                <li>Number of Datasets: <b>{{ lastStats.numberOfDatasets }}</b></li>
20
                <li>Number of Publications: <b>{{ lastStats.numberOfPublication }}</b></li>
21
                <li>Number of Relations: <b>{{ lastStats.numberOfRelations }}</b></li>
22

  
23

  
24
            </ul>
25
        </div>
26
    </div>
27

  
28
    <div class="row">
29
        <div class="col-lg-12">
30
            <ul id="myTabs" class="nav nav-tabs text-center" role="tablist">
31
                <li role="presentation" class="active"><a href="#stats" role="tab" id="profile-tab" data-toggle="tab"
32
                                                          aria-controls="profile" aria-expanded="false"><h4>
33
                    Statistics</h4></a></li>
34
                <li role="presentation"><a href="#dataset" id="home-tab" role="tab" data-toggle="tab"
35
                                           aria-controls="home" aria-expanded="true"><h4>Datasets</h4></a></li>
36
                <li role="presentation"><a href="#publication" role="tab" id="profile-tab" data-toggle="tab"
37
                                           aria-controls="profile" aria-expanded="false"><h4>Publications</h4></a></li>
38

  
39
            </ul>
40
            <div id="myTabContent" class="tab-content">
41
                <div role="tabpanel" class="tab-pane fade active in" id="stats" aria-labelledby="home-tab">
42
                    <h1>Stats</h1>
43

  
44
                    <div id="chart_history_links"></div>
45
                </div>
46
                <div role="tabpanel" class="tab-pane fade " id="dataset" aria-labelledby="dropdown1-tab">
47
                    <h1>Dataset</h1>
48

  
49
                    <div class="row" ng-show="result_dataset.length">
50
                        <div class="col-lg-6 col-lg-offset-6">
51
                            <a href='#/query/q=entitytype:"dataset" AND provenance:"{{ datasource.officialName }}"'
52
                               class="btn btn-primary">See other Datasets <span
53
                                    class="glyphicon glyphicon-circle-arrow-right"></span></a>
54
                        </div>
55
                    </div>
56

  
57
                    <div class="row" ng-repeat="result in result_dataset">
58
                        <div class="col-lg-12">
59
                            <a href="#/detail/{{ result.identifier }}">
60
                                <i ng-hide="result.objectType!= 'unknown' "
61
                                   style="padding: 10px"
62
                                   class="fa fa-question-circle fa-2x blue-text circle responsive-img"></i>
63
                                <i ng-show="result.objectType=='dataset'" style="padding: 10px"
64
                                   class="fa fa-database fa-2x blue-text circle responsive-img"></i>
65
                                <i style="padding: 10px" ng-show="result.objectType=='publication'"
66
                                   class="fa fa-book fa-2x blue-text circle responsive-img"></i>
67
                                <b ng-show="result.title">{{ result.title }}</b>
68
                                <b ng-hide="result.title">Metadata non resolved for pid : {{ result.pid }}</b>
69
                            </a>
70
                        </div>
71

  
72
                        <div class="col-lg-12">
73
                            <d style="font-size: small"></d>
74
                            <auth style="font-size: small; color: #1565C0"
75
                                  ng-repeat="author in result.authors">
76
                                <f ng-hide="$index==0">,</f>
77
                                {{ author }}
78
                            </auth>
79
                            <d ng-show="result.date">- {{ result.date }}</d>
80
                            </d>
81
                        </div>
82
                        <p>
83

  
84
                        <div class="col-lg-2">
85
                            <auth style="font-size: small" class="orange-text"><b>{{ countRelatedDatasets(result) }}</b>
86
                                Related Datasets
87
                            </auth>
88
                        </div>
89
                        <div class="col-lg-2">
90
                            <auth style="font-size: small" class="orange-text">
91
                                <b> {{ countRelatedPublication(result) }}</b> Related Publications
92
                            </auth>
93
                        </div>
94
                        <div class="col-lg-2">
95
                            <auth style="font-size: small" class="orange-text"><b>{{ countOtherRelations(result) }}</b>
96
                                Other Relations
97
                            </auth>
98
                        </div>
99
                        <div class="col-lg-2">
100
                            <auth style="font-size: small" class="orange-text"><a
101
                                    href="{{ result.resolved_url }}" class="orange-text"> <i
102
                                    class="fa fa-link"></i> Original Object </a></auth>
103
                        </div>
104
                        <div class="col-lg-3">
105
                            [
106
                            <auth style="font-size: small" class="orange-text"
107
                                  ng-repeat="prov in result.provenance_record">
108
                                <f ng-hide="$index==0">,</f>
109
                                <a href='#/datasource/name/{{ prov.name }}' style="color: orange">{{ prov.name }}</a>
110
                            </auth>
111
                            <d style="font-size: small">]</d>
112
                        </div>
113

  
114
                    </div>
115

  
116

  
117
                </div>
118
                <div role="tabpanel" class="tab-pane fade" id="publication" aria-labelledby="profile-tab">
119
                    <h1>Publication</h1>
120

  
121
                    <div class="row" ng-show="result_publication">
122
                        <div class="col-lg-6 col-lg-offset-6">
123
                            <a href='#/query/q=entitytype:"publication" AND provenance:"{{ datasource.officialName }}"'
124
                               class="btn btn-primary">See other Publication <span
125
                                    class="glyphicon glyphicon-circle-arrow-right"></span></a>
126
                        </div>
127
                    </div>
128
                    <div class="row" ng-repeat="result in result_publication">
129
                        <div class="col-lg-12">
130
                            <a href="#/detail/{{ result.identifier }}">
131
                                <i ng-hide="result.objectType!= 'unknown' "
132
                                   style="padding: 10px"
133
                                   class="fa fa-question-circle fa-2x blue-text circle responsive-img"></i>
134
                                <i ng-show="result.objectType=='dataset'" style="padding: 10px"
135
                                   class="fa fa-database fa-2x blue-text circle responsive-img"></i>
136
                                <i style="padding: 10px" ng-show="result.objectType=='publication'"
137
                                   class="fa fa-book fa-2x blue-text circle responsive-img"></i>
138
                                <b ng-show="result.title">{{ result.title }}</b>
139
                                <b ng-hide="result.title">Metadata non resolved for pid : {{ result.pid }}</b>
140
                            </a>
141
                        </div>
142

  
143
                        <div class="col-lg-12">
144
                            <d style="font-size: small"></d>
145
                            <auth style="font-size: small; color: #1565C0"
146
                                  ng-repeat="author in result.authors">
147
                                <f ng-hide="$index==0">,</f>
148
                                {{ author }}
149
                            </auth>
150
                            <d ng-show="result.date">- {{ result.date }}</d>
151
                            </d>
152
                        </div>
153
                        <p>
154

  
155
                        <div class="col-lg-2">
156
                            <auth style="font-size: small" class="orange-text"><b>{{ countRelatedDatasets(result) }}</b>
157
                                Related Datasets
158
                            </auth>
159
                        </div>
160
                        <div class="col-lg-2">
161
                            <auth style="font-size: small" class="orange-text">
162
                                <b> {{ countRelatedPublication(result) }}</b> Related Publications
163
                            </auth>
164
                        </div>
165
                        <div class="col-lg-2">
166
                            <auth style="font-size: small" class="orange-text"><b>{{ countOtherRelations(result) }}</b>
167
                                Other Relations
168
                            </auth>
169
                        </div>
170
                        <div class="col-lg-2">
171
                            <auth style="font-size: small" class="orange-text"><a
172
                                    href="{{ result.resolved_url }}" class="orange-text"> <i
173
                                    class="fa fa-link"></i> Original Object </a></auth>
174
                        </div>
175
                        <div class="col-lg-3">
176
                            [
177
                            <auth style="font-size: small" class="orange-text"
178
                                  ng-repeat="prov in result.provenance_record">
179
                                <f ng-hide="$index==0">,</f>
180
                                <a href='#/datasource/name/{{ prov.name }}' style="color: orange">{{ prov.name }}</a>
181
                            </auth>
182
                            <d style="font-size: small">]</d>
183
                        </div>
184

  
185
                    </div>
186

  
187
                </div>
188

  
189
            </div>
190
        </div>
191
    </div>
192

  
193

  
194
</div>
195

  
196
<script>
197
    $('#myTabs a').click(function (e) {
198
        e.preventDefault()
199
        $(this).tab('show')
200
    });
201
</script>
modules/dli-service-portal/branches/ES_7/static/partials/datasources.html
1
<div class="row container-fluid">
2

  
3

  
4
    <h1>Datasource's Map</h1>
5

  
6

  
7
    <div class="row">
8
        <div class="col-lg-2">
9
           <ul class="list-group">
10
                <li class="list-group-item"  ng-repeat="item in my_markers">
11
                    <a href="{{ item.weburl }}" > {{ item.name }}</a></li>
12

  
13
            </ul>
14

  
15
        </div>
16
        <div class="col-lg-8" >
17
            <div id="world-map" style="width: 100%; height: 500px;  margin: 40px" ></div>
18

  
19

  
20
        </div>
21
    </div>
22
</div>
23

  
24
<script src="js/createMap.js"></script>
modules/dli-service-portal/branches/ES_7/static/partials/detail.html
1
<style>
2
    .loader {
3
        border: 16px solid #f3f3f3; /* Light grey */
4
        border-top: 16px solid #3498db; /* Blue */
5
        border-radius: 50%;
6
        width: 120px;
7
        height: 120px;
8
        animation: spin 2s linear infinite;
9
        margin: auto;
10
    }
11

  
12
    @keyframes spin {
13
        0% {
14
            transform: rotate(0deg);
15
        }
16
        100% {
17
            transform: rotate(360deg);
18
        }
19
    }
20
</style>
21

  
22

  
23
<section ng-hide="item">
24
    <div class="row">
25
        <div class="col-lg-12 center-align">
26
            <div class="loader"></div>
27
        </div>
28
    </div>
29

  
30
</section>
31

  
32

  
33
<section ng-show="item">
34

  
35

  
36
    <div ng-show='nf'>
37
        <div class="row">
38
            <div class="col-lg-7 col-lg-offset-1">
39
                    <div class="row" style="margin-bottom: 5px">
40
                        <div class="col-lg-12">
41
                            <h4>Error: Item not found </h4>
42
                        </div>
43
                    </div>
44
            </div>
45
        </div>
46
    </div>
47

  
48
    <div ng-hide='nf'>
49
    <div>
50
        <div class="row">
51

  
52
            <div class="col-lg-7 col-lg-offset-1">
53
                <div class="row" style="margin-bottom: 5px">
54
                    <div class="col-lg-12">
55
                        <span class="label label-info" style="font-size: 100%">{{ item.typology }}</span>
56
                        <span ng-repeat="date in showDate(item.date)" class="label label-warning"
57
                              style="font-size: 100%"> {{ date }}</span>
58
                    </div>
59
                </div>
60
                <div class="row">
61
                    <div class="col-lg-12">
62
                        <p><b style="color: black">{{ item.title[0] }}</b></p>
63
                    </div>
64
                    <div class="col-lg-12">
65
                        <auth style="font-size: small;  color: darkred"
66
                              ng-repeat="author in item.author">
67
                            <f ng-hide="$index==0">,</f>
68
                            <i>{{ author }}</i>
69
                        </auth>
70
                    </div>
71
                    <div class="col-lg-12">
72
                        <span ng-repeat="d in item.date">{{ d }}</span>
73
                    </div>
74
                    <div class="col-lg-12">
75
                        <p style="color: grey; border-left: 4px solid #eeeeee; padding-left: 10px; font-size:15px; text-align: justify">
76
                            {{item.abstract}}
77
                        </p>
78
                    </div>
79
                </div>
80
            </div>
81

  
82

  
83
            <div class="col-lg-3">
84
                 <div class="row">
85
                <div class="panel panel-primary">
86
                    <div class="panel-body">
87
                        <div ng-repeat="id in item.localIdentifier">{{id.type }}:   <a href="{{ id.url }}">{{ id.id}}</a> </div>
88
                        <hr>
89
                        Sources
90
                        <ul>
91
                            <li ng-repeat="d in item.datasources"><a> {{ d.datasourceName }}</a></li>
92
                        </ul>
93
                        <div ng-show="item.publisher.length">
94
                            <hr>
95
                            Publisher:
96
                            <ul>
97
                                <li ng-repeat="d in item.publisher"><a> {{ d }}</a></li>
98
                            </ul>
99
                        </div>
100
                        <hr>
101
                        <div id="share"></div>
102

  
103
                    </div>
104
                </div>
105
            </div>
106
            </div>
107

  
108

  
109
        </div>
110
    </div>
111

  
112

  
113

  
114
    <div class="row">
115
        <div class="col-lg-11 col-lg-offset-1">
116
            <ul id="myTabs" class="nav nav-tabs text-center" role="tablist">
117
                <li role="presentation" ng-class="active"><a href="#dataset" id="home-tab" role="tab" data-toggle="tab"
118
                                                             aria-controls="home" aria-expanded="true"><h4>Link To
119
                    Datasets ({{ item.relatedDatasets }})</h4></a></li>
120
                <li role="presentation" ng-class=""><a href="#publication" role="tab" id="profile-tab" data-toggle="tab"
121
                                                       aria-controls="profile" aria-expanded="false"><h4>Link To
122
                    Publications ({{ item.relatedPublications }})</h4></a></li>
123
                <li role="presentation" ng-class=""><a href="#other" role="tab" id="profile-tab" data-toggle="tab"
124
                                                       aria-controls="profile" aria-expanded="false"><h4>Other Links
125
                    ({{ item.relatedUnknown }})</h4></a></li>
126
            </ul>
127
            <div id="myTabContent" class="tab-content">
128
                <div role="tabpanel" class="tab-pane fade active in" id="dataset" aria-labelledby="home-tab">
129

  
130
                    <div ng-repeat="rels in relations.related_dataset">
131
                        <div class="row">
132
                            <div class="col-lg-12" style="padding: 10px;">
133
                                <span class="label label-info" style="font-size: 100%">{{ rels.target.objectType }}</span>
134
                        <span ng-repeat="date in showDate(rels.target.date)" class="label label-warning"
135
                              style="font-size: 100%"> {{ date }}</span>
136
                            </div>
137
                            <div class="col-lg-12">
138
                                <a href="#/detail/{{ rels.target.dnetIdentifier }}"class="blue-text"><b>{{ rels.target.title }}</b>
139
                            </a></div>
140

  
141
                            <div class="col-lg-12">
142
                                <i style="color: darkred" ng-repeat="a in rels.target.creator">{{ a.name }},</i>
143
                            </div>
144
                            <div ng-repeat="ids in rels.target.identifier">
145
                                <div class="col-lg-12"><b>{{ ids.schema }}</b> : <a href="{{ ids.url }}"> {{ ids.identifier }}</a></div>
146
                            </div>
147
                        </div>
148
                        <div class="row">
149
                            <div class="col-lg-2">
150
                                <b>Sources:</b> <span ng-repeat="d in rels.linkprovider">{{ d.name }}</span>
151
                            </div>
152

  
153
                        </div>
154
                    </div>
155

  
156
                    <div class="row centered">
157
                        <div class="text-center">
158
                            <ul class="pagination centered">
159
                                <li><a ng-click="prevPage('dataset')">&lt;</a></li>
160
                                <li><a ng-click="nextPage('dataset')">&gt;</a></li>
161
                            </ul>
162
                        </div>
163
                    </div>
164
                </div>
165
                <div role="tabpanel" class="tab-pane fade" id="publication" aria-labelledby="profile-tab">
166
                    <div ng-repeat="rels in relations.related_publications">
167
                        <div class="row">
168
                            <div class="col-lg-12" style="padding: 10px;">
169
                                <span class="label label-info" style="font-size: 100%">{{ rels.target.objectType }}</span>
170
                        <span ng-repeat="date in showDate(rels.target.date)" class="label label-warning"
171
                              style="font-size: 100%"> {{ date }}</span>
172
                            </div>
173
                            <div class="col-lg-12">
174
                                <a href="#/detail/{{ rels.target.dnetIdentifier }}"class="blue-text"><b>{{ rels.target.title }}</b>
175
                            </a></div>
176

  
177
                            <div class="col-lg-12">
178
                                <i style="color: darkred" ng-repeat="a in rels.target.creator">{{ a.name }},</i>
179
                            </div>
180
                            <div ng-repeat="ids in rels.target.identifier">
181
                                <div class="col-lg-12"><b>{{ ids.schema }}</b> : <a href="{{ ids.url }}"> {{ ids.identifier }}</a></div>
182
                            </div>
183
                        </div>
184
                        <div class="row">
185
                            <div class="col-lg-2">
186
                                <b>Sources:</b> <span ng-repeat="d in rels.linkprovider">{{ d.name }}</span>
187
                            </div>
188

  
189
                        </div>
190
                    </div>
191
                    <div class="row centered">
192
                        <div class="text-center">
193
                            <ul class="pagination centered">
194
                                <li><a ng-click="prevPage('publication')">&lt;</a></li>
195
                                <li><a ng-click="nextPage('publication')">&gt;</a></li>
196
                            </ul>
197
                        </div>
198
                    </div>
199
                </div>
200
                <div role="tabpanel" class="tab-pane fade" id="other" aria-labelledby="dropdown1-tab">
201
                    <div ng-repeat="rels in relations.related_unknown">
202
                        <div class="row">
203
                            <div class="col-lg-12"><a href="#/detail/{{ rels.target.dnetIdentifier }}"
204
                                                      class="blue-text"> <i
205
                                    style="padding: 10px"
206
                                    class="fa fa-question-circle fa-2x blue-text circle responsive-img"></i><b>{{ rels.target.identifier[0].identifier }}</b>
207
                            </a></div>
208

  
209
                            <div class="col-lg-12">
210
                                <f style="color: green" ng-repeat="a in rels.target.creator">{{ a.name }},</f>
211
                            </div>
212
                            <div ng-repeat="ids in rels.target.identifier">
213
                                <div class="col-lg-12"><b>PID</b> : {{ ids.identifier }}</div>
214
                                <div class="col-lg-12"><b>PID Type</b> : {{ ids.schema }}</div>
215
                            </div>
216
                        </div>
217
                        <div class="row">
218
                            <div class="col-lg-2">
219
                                <b>provenance (of this link): </b>
220
                            </div>
221
                            <div class="col-lg-8">
222
                                <table style="width: 100%">
223
                                    <thead>
224
                                    <tr>
225
                                        <th class="center-align" style="width: 20%">Date Of Collection</th>
226
                                        <th class="center-align" style="width: 20%">Datasource</th>
227
                                        <th class="center-align" style="width: 60%">Action</th>
228
                                    </tr>
229
                                    </thead>
230
                                    <tbody>
231
                                    <tr ng-repeat="d in rels.linkprovider">
232
                                        <td class="left-align">{{ d.collectionDate }}</td>
233
                                        <td class="left-align">{{ d.name }}</td>
234
                                        <td class="left-align">
235
                                            Relation collected from {{ d.name }}
236
                                        </td>
237
                                    </tr>
238
                                    </tbody>
239
                                </table>
240
                            </div>
241
                        </div>
242
                    </div>
243
                    <div class="row centered">
244
                        <div class="text-center">
245
                            <ul class="pagination centered">
246
                                <li><a ng-click="prevPage('unknown')">&lt;</a></li>
247
                                <li><a ng-click="nextPage('unknown')">&gt;</a></li>
248
                            </ul>
249
                        </div>
250
                    </div>
251

  
252
                </div>
253
            </div>
254
        </div>
255
    </div>
256
    </div>
257
</section>
258
<script>
259
        $("#share").jsSocials({
260
            showLabel: false,
261
		    showCount: false,
262
            shares: ["email", "twitter", "facebook", "googleplus", "linkedin"]
263
        });
264
</script>
modules/dli-service-portal/branches/ES_7/static/partials/contactus.html
1
<section>
2
<div class="row" >
3
    <div class="col-lg-8 col-lg-offset-2">
4

  
5
        <div class="card z-depth-2" style="padding-top: 10px">
6
            <div class="row">
7
                <div class="col-lg-12">
8
                    <div class="row">
9
                        <h4 class="center-align"><b>Contact us</b></h4>
10
                            <div class="col-lg-12">
11

  
12
                                <p>
13
                                DLI Service is the result of a cooperation among major publishers,
14
                                data centers, and research/academic institutions and projects under the umbrella of the
15
                                Publishing Data Services Working Group <a href="https://www.rd-alliance.org/filedepot/folder/114?fid=239"> (Case Statement)</a> .
16
                                </p>
17
                            </div>
18
                    </div>
19
                    <div class="row">
20
                <div class="col-lg-12">
21
                    <div class="row">
22
                        <div class="col-lg-12">
23
                            <div class="card white">
24
                        <div class="card-content black-text">
25
                          <span class="card-title black-text "><b>WDS-RDA working group contacts</b> </span>
26
                            <ul>
27
                                <li><a href="mailto:&#114;&#100;&#097;&#119;&#100;&#115;&#095;&#115;&#101;&#114;&#118;&#105;&#099;&#101;&#115;&#095;&#119;&#103;&#064;&#114;&#100;&#097;&#045;&#103;&#114;&#111;&#117;&#112;&#115;&#046;&#111;&#114;&#103;">WG mailing list</a> </li>
28
                                <li><a href="mailto:h.koers@elsevier.com">Hylke Koers</a>, Elsevier, Amsterdam, The Netherlands</li>
29
                                <li> <a href="mailto:adrian.burton@ands.org.au"> Adrian Burton</a>, Australian National Data Service, Melbourne, Australia </li>
30
                            </ul>
31
                        </div>
32
                      </div>
33
                        </div>
34

  
35
                        <div class="col-lg-12">
36
                            <div class="card white">
37
                        <div class="card-content black-text">
38
                          <span class="card-title black-text "><b>Stakeholders</b> </span>
39
                            <ul>
40
                                <li><a href="https://rd-alliance.org/groups/rdawds-publishing-data-services-wg.html">RDA DPS-WG</a>  </li>
41
                                <li><a href="www.openaire.it">OpenAIRE infrastructure</a> </li>
42
                                <li><a href="https://rd-alliance.org">The Research Data Alliance (RDA)</a> </li>
43
                                <li><a href="https://www.icsu-wds.org">ICSU World Data Systems</a> </li>
44
                                <li><a href="http://www.stm-assoc.org ">STM</a> </li>
45
                                <li><a href="www.crossref.org">CrossRef</a> </li>
46
                                <li><a href="www.datacite.org">DataCite</a> </li>
47
                                <li><a href="www.orcid.org">ORCID</a> </li>
48
                                <li><a href="www.nationaldataservice.org">The National Data Service</a> </li>
49
                                <li><a href="www.rmap-project.info">RMap project</a> </li>
50
                                <li><a href="http://datacentrum.3tu.nl/en/home/" >3TU.Datacentrum</a> </li>
51
                                <li><a href="http://www.ands.org.au/"> Australian National Data Service (ANDS)</a> </li>
52
                                <li><a href="http://www.ccdc.cam.ac.uk/pages/Home.aspx">Cambridge Crystallographic Data Centre (CCDC)</a></li>
53
                                <li><a href="http://www.elsevier.com/">Elsevier</a></li>
54
                                <li><a href="http://www.ebi.ac.uk/">EMBL European Bioinformatics Institute (EMBL-EBI)</a></li>
55
                                <li><a href="https://www.icpsr.umich.edu/icpsrweb/landing.jsp">Interuniversity Consortium for Political and Social Research (ICPSR)</a></li>
56
                                <li><a href="https://www.ieee.org/index.html">Institute of Electrical and Electronics Engineers (IEEE)</a></li>
57
                                <li><a href="http://www.stm-assoc.org/">International Association of STM Publishers</a></li>
58
                                <li><a href="http://www.rcsb.org/pdb/home/home.do">Protein Data Bank (PDB)</a></li>
59
                                <li><a href="http://pangaea.de/">PANGAEA</a></li>
60
                                <li><a href="http://rmap-project.info/rmap/">RMap</a></li>
61
                                <li><a href="http://www.rsc.org/">Royal Society of Chemistry (RSc)</a></li>
62
                                <li><a href="http://www.springer.com">Springer</a></li>
63

  
64

  
65

  
66

  
67
                            </ul>
68
                        </div>
69
                      </div>
70
                        </div>
71

  
72
                    </div>
73

  
74

  
75
                </div>
76

  
77
                <div class="col-lg-12">
78
                  <div class="card white">
79
                    <div class="card-content black-text">
80
                      <span class="card-title black-text "><b>Service realization and operation</b> </span>
81
                        <ul>
82
                            <li class="collection-item"><i>Aggregation system and portal</i></li>
83
                            <li style="text-indent: 1em;" class="collection-item"> <a href="mailto:paolo.manghi@isti.cnr.it">Paolo Manghi</a> and
84
                                <a href="mailto:sandro.labruzzo@isti.cnr.it">Sandro La Bruzzo</a> (OpenAIRE project)
85
                                Institute of Information Science and Technologies, CNR, Pisa, Italy
86
	                        </li>
87
	                        <br>
88
                            <li class="collection-item"><i>APIs</i></li>
89
                            <li style="text-indent: 1em;" class="collection-item"> <a href="mailto:mdiepenbroek@pangaea.de">Michael Diepenbroek</a> and
90
                                <a href="mailto:uschindler@pangaea.de">Uwe Shindler</a>
91
	                                        PANGAEA, Bremen, Germany
92
	                        </li>
93
	                        <li  style="text-indent: 1em;" class="collection-item"> <a href="mailto:paolo.manghi@isti.cnr.it">Paolo Manghi</a> and
94
                                <a href="mailto:sandro.labruzzo@isti.cnr.it">Sandro La Bruzzo</a> (OpenAIRE project)
95
                                Institute of Information Science and Technologies, CNR, Pisa, Italy
96
	                        </li>
97

  
98
	                        <br>
99
                            <li class="collection-item"><i>RD-Switchboard</i></li>
100
                            <li style="text-indent: 1em;" class="collection-item"> <a href="mailto:amir.aryani@ands.org.au">Amir Aryani</a> and
101
                                <a href="mailto:adrian.burton@ands.org.au">Adrian Burton</a>
102
	                                        Australian National Data Service, Melbourne, Australia
103

  
104
	                        </li>
105
                        </ul>
106
                    </div>
107
                  </div>
108
                </div>
109

  
110

  
111

  
112
            </div>
113

  
114
                    <div class="row">
115
             <div class="col-lg-12">
116
                This work is co-funded by the EU projects <a href="https://rd-alliance.org/groups/rdawds-publishing-data-ig.html">RDA Europe</a> (FP7-INFRASTRUCTURES-2013-2, grant agreement: 632756)
117
                and <a href="http://www.openaire.eu">OpenAIRE2020</a> (H2020-EINFRA-2014-1, grant agreement: 643410).
118
            </div>
119

  
120
            </div>
121
                </div>
122

  
123
            </div>
124

  
125
   </div>
126

  
127
</div>
128
</div>
129

  
130

  
131
</section>
modules/dli-service-portal/branches/ES_7/static/partials/query.html
1
<style>
2
    .loader {
3
        border: 16px solid #f3f3f3; /* Light grey */
4
        border-top: 16px solid #3498db; /* Blue */
5
        border-radius: 50%;
6
        width: 120px;
7
        height: 120px;
8
        animation: spin 2s linear infinite;
9
        margin: auto;
10
    }
11

  
12
    @keyframes spin {
13
        0% {
14
            transform: rotate(0deg);
15
        }
16
        100% {
17
            transform: rotate(360deg);
18
        }
19
    }
20
</style>
21

  
22

  
23
<section class="container-fluid">
24

  
25

  
26
    <div class="row">
27
        <div class="col-lg-8">
28
            <form ng-submit="makeQuery()">
29
                <b>Query:</b>
30
                <input style="width: 80%" ng-model="query" ng-enter="doSomething()"> <a
31
                    href="#/query/q={{ query }}"><span class="glyphicon glyphicon-search"></span> Search</a>
32
            </form>
33
        </div>
34
        <div class="col-lg-2 right-align">
35
            <b class="header black-text ">Total Items:</b>
36
            <f class="header blue-text flow-text"> {{ total }}</f>
37
        </div>
38
        <div class="col-lg-2 right-align">
39
            <b class="header black-text ">Total pages:</b>
40
            <f class="header blue-text flow-text"> {{ totalPages }}</f>
41
        </div>
42
    </div>
43
    <div class="row" ng-show="searching">
44
        <div class="col-lg-12 center-align">
45
            <div class="loader"></div>
46
        </div>
47
    </div>
48
    <div class="row centered" ng-hide="result_query.length">
49
        <div class="text-center">
50
            <h5 class="red-text">No match found</h5>
51
        </div>
52
    </div>
53

  
54
    <div class="row centered" ng-show="result_query.length">
55
        <div class="text-center">
56
            <ul class="pagination centered">
57
                <li ng-show="page ==1" class="disabled"><a href="">&lt;</a></li>
58
                <li ng-hide="page ==1"><a href="#/query/{{ filterPath() }}page={{ page - 1 }}/q={{ query }}">&lt;</a>
59
                </li>
60
                <li ng-class="activePage(n)" ng-repeat="n in pageRange">
61
                    <a href="#/query/{{ filterPath() }}page={{ n }}/q={{ query }}">{{ n }}</a>
62
                </li>
63
                <li ng-hide="page == lastPage"><a href="#/query/{{ filterPath() }}page={{ page + 1 }}/q={{ query }}">&gt;</a>
64
                </li>
65
                <li ng-show="page ==lastPage" class="disabled"><a href="">&gt;</a></li>
66

  
67

  
68
            </ul>
69
        </div>
70
    </div>
71

  
72
    <div class="row container-fluid" ng-show="result_query.length">
73
        <div class="col-md-3" id="leftCol">
74
            <div class="row">
75
                <div class="panel panel-primary">
76
                    <div class="panel-heading"><b>Typology</b></div>
77
                    <div class="panel-body">
78
                        <ul class="list-group">
79
                            <li class="list-group-item" ng-repeat="value in facet.typology ">
80
                                <span class="badge">{{ value.count }}</span>
81
                                <a class="browseLink"
82
                                   href='#/query/{{ calculateFilter("typology", value.key) }}/q={{ query }}'>{{ value.key }}</a>
83
                            </li>
84
                        </ul>
85
                    </div>
86
                </div>
87
            </div>
88

  
89
            <div class="row">
90
                <div class="panel panel-primary">
91
                    <div class="panel-heading"><b>Link Provider</b></div>
92
                    <div class="panel-body">
93
                        <ul class="list-group">
94
                            <li class="list-group-item" ng-repeat="value in facet.datasource ">
95
                                <span class="badge">{{ value.count }}</span>
96
                                <a class="browseLink"
97
                                   href='#/query/{{ calculateFilter("datasource", value.key) }}/q={{ query }}'>{{ value.key }}</a>
98
                            </li>
99
                        </ul>
100
                    </div>
101
                </div>
102
            </div>
103

  
104
            <div class="row">
105
                <div class="panel panel-primary">
106
                    <div class="panel-heading"><b>Link Publisher</b></div>
107
                    <div class="panel-body">
108
                        <ul class="list-group">
109
                            <li class="list-group-item" ng-repeat="value in facet.publishers ">
110
                                <span class="badge">{{ value.count }}</span>
111
                                <a class="browseLink"
112
                                   href='#/query/{{ calculateFilter("publisher", value.key) }}/q={{ query }}'>{{ value.key }}</a>
113
                            </li>
114
                        </ul>
115
                    </div>
116
                </div>
117
            </div>
118

  
119
            <div class="row">
120
                <div class="panel panel-primary">
121
                    <div class="panel-heading"><b>Pid Type</b></div>
122
                    <div class="panel-body">
123
                        <ul class="list-group">
124
                            <li class="list-group-item" ng-repeat="value in facet.pid ">
125
                                <span class="badge">{{ value.count }}</span>
126
                                <a class="browseLink"
127
                                   href='#/query/{{ calculateFilter("pidtype", value.key) }}/q={{ query }}'>{{ value.key }}</a>
128
                            </li>
129
                        </ul>
130
                    </div>
131
                </div>
132
            </div>
133

  
134
        </div>
135
        <div class="col-md-9 col-xs-12">
136

  
137
            <div class="row" ng-repeat="result in result_query">
138
                <div class="col-lg-12" style="margin-top: 10px">
139
                    <span class="label label-info" style="font-size: 100%">{{ result.typology }}</span>
140
                    <span ng-repeat="date in showDate(result.date)" class="label label-warning"
141
                          style="font-size: 100%"> {{ date }}</span>
142
                </div>
143

  
144
                <div class="col-lg-12" style="margin-top: 10px">                
145
                    <a href="#/detail/{{ result.id }}">
146
                        <b ng-show="result.title.length">{{ result.title[0] }}</b>
147
                        <b ng-hide="result.title.length">Metadata non resolved for pid : {{ result.localIdentifier[0].id }}</b>
148
                    </a>
149
                </div>
150

  
151
                <div class="col-lg-12">
152
                    <div>
153

  
154
                        <auth style="font-size: small;  color: darkred"
155
                              ng-repeat="author in result.author">
156
                            <f ng-hide="$index==0">,</f>
157
                            <i>{{ author }}</i>
158
                        </auth>
159
                    </div>
160
                    <span class="more" style="color: #9ba4ad">
161
                        {{ result.abstract }}
162

  
163
                    </span>
164

  
165

  
166
                </div>
167

  
168

  
169
                <div class="col-lg-12">
170
                    <d style="font-size: small"></d>
171

  
172

  
173
                    Sources:
174
                    <span ng-repeat="datatasource in result.datasources">
175
                        <a ng-show="datatasource.datasourceName.length"> {{ datatasource.datasourceName }}</a>
176
                    </span>
177
                    <dd ng-repeat="publisher in result.publisher">
178
                        <d style="font-size: small; color:darkgreen" ng-show="publisher.length">
179
                            Publisher: {{ publisher }}</d>
180
                    </dd>
181
                </div>
182

  
183

  
184
                <div class="col-lg-12 text-right">
185

  
186

  
187
                    <auth style="font-size: small; margin-left: 10px" class="orange-text">
188
                        Link to Datasets: <b>{{ result.relatedDatasets }}</b>
189
                    </auth>
190

  
191
                    <auth style="font-size: small; margin-left: 10px" class="orange-text">Link to Literature:
192
                        <b> {{ result.relatedPublications }}</b>
193

  
194
                    </auth>
195

  
196
                    <auth style="font-size: small; margin-left: 10px" class="orange-text">
197
                        Link to other Objects:
198
                        <b>{{ result.relatedUnknown }}</b>
199
                    </auth>
200

  
201

  
202
                    <hr>
203
                </div>
204

  
205

  
206
            </div>
207

  
208
        </div>
209

  
210

  
211
    </div>
212

  
213

  
214
</section>
modules/dli-service-portal/branches/ES_7/static/partials/index.html
1
<style>
2
   hr {
3
       border-top: 1px dotted #000000 !important;
4
       margin-bottom:5px !important;
5
       margin-top:5px !important;
6
   }
7

  
8
    .form-control {
9
            border: 0px solid #ffffff;
10
    }
11
</style>
12
    <!-- Header -->
13
    <section style="padding-bottom: 0px">
14
            <div class="container centered">
15
                <div class="row">
16
                    <div class="col-lg-12 centered">
17
                        <img ng-hide="facet"  img class="img-responsive img-centered"  style="max-width:400px" src="static/img/logo_big.png" alt="">
18
                        <div class="row">
19
                            <div class="form-group col-lg-12 ">
20
                                <form ng-submit="makeQuery()">
21
                                    <div class="row">
22
                                        <div class="col-lg-10">
23
                                            <input class="form-control" placeholder="Type your search!" id="query" ng-autocomplete options="options" required data-validation-required-message="Please enter your query" ng-model="query">
24
                                        </div>
25
                                        <div class="col-lg-2" >
26
                                            <a ng-click="makeQuery()" class="btn btn-primary form-control"><span class="glyphicon glyphicon-search"></span> Search</a>
27
                                        </div>
28
                                    </div>
29
                                </form>
30
                            </div>
31

  
32
                        </div>
33

  
34
                        <div class="row" style="margin-top: 20px">
35
                            <div class="form-group col-lg-12 ">
36
                                <form ng-submit="makeQuery()">
37
                                    <div class="row">
38
                                        <div class="col-lg-10">
39
                                        <input class="form-control" placeholder="Search by persistent Identifier" id="query" ng-autocomplete options="options" required data-validation-required-message="Please enter your query" ng-model="queryPid">
40
                                        </div>
41

  
42
                                        <div class="col-lg-2" >
43
                                            <a ng-click="makeQueryPid()" class="btn btn-primary form-control"><span class="glyphicon glyphicon-search"></span> Search PID</a>
44
                                        </div>
45
                                    </div>
46
                                </form>
47
                            </div>
48

  
49
                        </div>
50

  
51

  
52
                    </div>
53
                </div>
54
            </div>
55
    </section>
56

  
57
    <section id="#stats">
58
        <div class="container">
59
            <div class="row text-center">
60
                <div class="col-lg-12 col-xs-12">
61

  
62
                    <p >Search and browse in <span style="color: darkred">{{ main_stats.publication }}</span> literature objects,
63
                        <span style="color: darkred">{{ main_stats.dataset }}</span> datasets,
64
                        <span style="color: darkred">{{ main_stats.total }}</span> bi-directional scholix links,</p>
65
                    <p style=>
66
                        from <span style="color: darkred">13000</span> publishers,
67
                        <span style="color: darkred">10</span> data centers,
68
                        <span style="color: darkred"> CrossRef, DataCite</span>, and <span style="color: darkred">OpenAIRE</span>.</p>
69
                </div>
70
                <div class="col-lg-6 col-xs-12">
71
                    <h4><b> </b></h4>
72
                </div>
73
            </div>
74
        </div>
75

  
76

  
77
    </section>
modules/dli-service-portal/branches/ES_7/static/partials/api.html
1
<style>
2
table, th, td {
3
    border: 1px solid black;
4
    border-collapse: collapse;
5
}
6
th, td {
7
    padding: 5px;
8
    text-align: left;
9
}
10
    table>thead>tr>th, .table>thead>tr>th, table>tbody>tr>th, .table>tbody>tr>th, table>tfoot>tr>th, .table>tfoot>tr>th, table>thead>tr>td, .table>thead>tr>td, table>tbody>tr>td, .table>tbody>tr>td, table>tfoot>tr>td, .table>tfoot>tr>td {
11
    border: 1px solid black;
12
}
13
</style>
14

  
15
<section style="font-size: 20px; font-family: Lato">
16

  
17
    <div class="row">
18
        <div class="col-lg-8 col-lg-offset-2">
19

  
20
            <div class="card z-depth-2" style="padding-top: 10px ;">
21
                <div class="row" style="margin-top: 10px; text-align: justify;  text-justify: inter-word;">
22
                    <h4 class="center-align"><b>ABOUT SCHOLEXPLORER: THE OPENAIRE’S SCHOLIX HUB</b></h4>
23
                    <b>Scholix</b>  The goal of the Scholix initiative is to establish a high level interoperability
24
                    framework for exchanging information about the links between scholarly literature and data.
25
                    It aims to enable an open information ecosystem to understand systematically what data underpins
26
                    literature and what literature references data. Scholix maintains an evolving set
27
                    of<a href="http://www.scholix.org">Guidelines</a> consisting of:
28
                    (i) an information model (conceptual definition of what is a Scholix scholarly link),
29
                    (ii) a link metadata schema (set of metadata fields representing a Scholix link),
30
                    and (iii) a corresponding XML and JSON schema.
31
                </div>
32
                <div class="row" style="text-align: center;">
33
                    <img src="static/img/ScholixDM.png" style="max-width: 80%;">
34
                </div>
35
                <div class="row" style="text-align: justify; text-justify: inter-word;  margin-top: 10px">
36
                    <b>How to expose Scholix data from this hub</b> Scholexplorer harvests scholarly links
37
                    (i.e. collects metadata records about links from public APIs) from the Scholix
38
                    compatible sources and from DataCite compatible sources. The main sources collected
39
                    by the service are listed in Table 1.
40
                </div>
41
                <div class="row" style="font-size: 12px; margin-top: 10px">
42
                    <b>Table 1.</b> Scholexplorer: data sources. Legenda: Hub (aggregator of sources that exposes Scholix links), Source (data source that exposes Scholix links)
43

  
44
                </div>
45
                <div class="row" style="text-align: justify;">
46
                   <table class="table">
47
                       <thead>
48
                       <tr>
49
                           <th scope="col">Data Source</th>
50
                           <th scope="col">Type of source</th>
51
                       </tr>
52
                       <tr>
53
                           <td>DataCite from the DataCite OAI-PMH <a href="https://oai.datacite.org/"> end point</a></td>
54
                           <td>Hub: a <i>provider</i> of links <i>published</i> by data repositories; links are between datasets (DOIs) and articles (DOIs, handles, URLs) or datasets (DOI)</td>
55
                       </tr>
56
                       <tr>
57
                           <td>CrossRef from the Event Data <a href="https://www.crossref.org/services/event-data/"> end point</a></td>
58
                           <td>Hub: a <i>provider</i> of links <i>published</i> by publishers; links are between articles (DOIs) and datasets (DOI, accession numbers, URLs)</td>
59
                       </tr>
60
                       <tr>
61
                           <td>Data repositories that are not yet DataCite members</td>
62
                           <td>Source: a <i>publisher</i> of links between datasets (no DOI) and articles</td>
63
                       </tr>
64
                        <tr>
65
                           <td>Thematic publishers, e.g. Europe PMC</td>
66
                           <td>Source: a <i>publisher</i> of links between articles and accession numbers</td>
67
                       </tr>
68

  
69
                        <tr>
70
                           <td>Dataset databases, e.g. ENA</td>
71
                           <td>Source: a <i>publisher</i> of links between accession numbers of sequences and articles</td>
72
                       </tr>
73
                   </table>
74
                </div>
75
                <div class="row" style="text-align: justify; text-justify: inter-word">
76
                    Data sources willing to include the links they publish or provide within Scholexplorer have two options:
77
                    <ul>
78
                        <li>
79
                            Become Scholix-compliant and register to become a Scholexplorer data source;
80
                        </li>
81
                        <li>
82
                            Become a data source aggregated by any of the hubs above.
83
                        </li>
84
                    </ul>
85

  
86
                </div>
87

  
88
            </div>
89
        </div>
90
    </div>
91

  
92

  
93
    <div class="row">
94
        <div class="col-lg-8 col-lg-offset-2">
95

  
96
            <div class="card z-depth-2" style="padding-top: 10px;text-align: justify; text-justify: inter-word">
97
                <div class="row" style="margin-top: 10px">
98
                    <h4 class="center-align"><b>HOW TO ACCESS SCHOLIX DATA FROM THIS HUB</b></h4>
99
                    The Scholix Swagger API allows clients to run REST queries over the Scholexplorer index
100
                    in order to fetch links matching given criteria. In the current version, clients can search for:
101
                    <ul>
102
                        <li> Links whose source object has a given PID or PID type; </li>
103
                        <li> Links whose source object has been <b>published</b> by a given data source ("data source as publisher");</li>
104
                        <li> Links that were <b>collected</b> from a given data source ("data source as provider"). </li>
105
                    </ul>
106
                    The APIs are available from <a
107
                        href="https://api.scholexplorer.openaire.eu/v2/ui"> here</a>. The results of queries return lists of links
108
                        encoded as JSON Scholix records. JSON (and XML) schema and example records for Scholix links are availabe on
109
                        <a href="https://github.com/scholix/schema">GitHub</a>.
110
                </div>
111
            </div>
112
        </div>
113
    </div>
114

  
115

  
116
    <div class="row">
117
        <div class="col-lg-8 col-lg-offset-2">
118
            <div class="card z-depth-2" style="padding-top: 10px;text-align: justify; text-justify: inter-word">
119
                <div class="row" style="margin-top: 10px">
120
                    <h4 class="center-align"><b>TERMS OF USE and SLA</b></h4>
121
                    <b>REST APIs:</b> ScholeXplorer's REST APIs are free-to-use (no sign-up needed) by any third-party service. Note that:
122
                    <ul>
123
                        <li> The service limits each query to around 10,000 paged results (pages are by default of length 100 and can be navigated via resumption token); </li>
124
                        <li> Since March 2018 a full <a href="https://zenodo.org/search?page=1&size=20&q=openaire%20scholexplorer%20service%20JSON%20dump"> JSON dump of the service is made available in Zenodo.org</a>
125
                            every six months </li>
126
                        <li> For unlimited access to the APIs please contact the <a href="mailto:paolo.manghi@isti.cnr.it">service administrators</a> </li>
127
                    </ul>
128
                    <p>
129
                        <b>Metadata license is CC-BY:</b> Scholix metadata records returned by the service can be freely re-used by commercial and non-commercial
130
                        partners under CC-BY license, hence as long as OpenAIRE ScholeXplorer is acknowledged as content provider provider.
131
                    </p>
132
                    <p>
133
                        <b>SLA:</b> the service is running in production 24/7 within the OpenAIRE infrastructure premises deployed at the
134
                        <a href="http://icm.edu.pl/en/centre-of-technology/">data center</a> facilities
135
                        of the <a href="http://icm.edu.pl/en/">Interdisciplinary Centre for Mathematical and Computational Modelling</a> (ICM)
136
                    </p>
137
                </div>
138
                 <div class="row" style="margin-top: 10px">
139
                    <h4 class="center-align"><b>Faq</b></h4>
140
                     For any questions you may have about this service please contact <a href="mailto:sandro.labruzzo@isti.cnr.it">Sandro La Bruzzo</a>.
141

  
142
                     <p style="margin-top: 10px">1. <i>How to I expose Scholix links to Scholexplorer (or other services)? Does Scholix recommend an access protocol?</i></p>
143
                     Scholix does not recommend any specific protocol to expose links, although any community standard is strongly encouraged.
144
                     As to Scholexplorer, its harvesting layer bulk-collects links from external data sources via public APIs. OAI-PMH is preferable,
145
                     but also REST APIs can be accepted. The option of “incremental” harvesting is strongly encouraged (not mandatory),
146
                     for example allowing to search links by "last date of indexing": http://www.mydomain.eu/scholix?lastIndexingDate=yyyy-mm-dd).
147
                     If Scholix links are returned with all metadata fields, including the optional ones, the APIs above are enough. If instead, the links are limited to
148
                     the mandatory fields, then a "resolution" API would be required: given a PID of an object the API returns its full metadata record.
149

  
150
                     <p style="margin-top: 10px">2. <i>Which PIDs are compatible with Scholexplorer?</i></p>
151
                     Scholexplorer accepts links between any kind of persistent identifiers, including URLs.
152
                     The major standard identifiers (e.g. DOIs, PDBs, PMCID, etc) are also resolved to include the complete record information in Scholexplorer,
153
                     while in general URLs are not resolved as the variability of the associated resolvers cannot be handled by one service.
154
                     In principle if your data source is Scholix compliant and provides proprietary PIDs you can include complete Scholix links records in Scholexplorer in two ways:
155
                     (i) exposing complete Scholix records or (ii) exposing minimally compliant records but making a resolver available,
156
                     so that Scholexplorer can collect the PID complete records (note: your PIDs will have a specific type, associated by Scholexplorer to your resolver service).
157

  
158

  
159
                 </div>
160
            </div>
161
        </div>
162
    </div>
163
</section>
164

  
165

  
modules/dli-service-portal/branches/ES_7/static/partials/about.html
1
<section style="font-size: 20px; font-family: Lato">
2
    <div class="row">
3
        <div class="col-lg-8 col-lg-offset-2">
4

  
5
            <div class="card z-depth-2" style="padding-top: 10px">
6
                <div class="row">
7
                    <div class="col l8 offset-l2">
8
                        <div class="row">
9
                            <h4 class="center-align"><b>About</b></h4>
10
                            <div class="col-lg-12">
11
                                Scholexplorer populates and provides access to a graph of links between dataset
12
                                and literature objects and dataset
13
                                and dataset objects. Links (and objects) are provided by data sources managed by
14
                                publishers, data centers, or other
15
                                organizations providing services to store and manage links between data sets and
16
                                publications such as CrossRef, DataCite, and OpenAIRE. Scholexplorer aggregates link metadata
17
                                harvested from the  data sources and out of these builds and harmonised and de-duplicated graph of scholarly
18
                                objects. The graph is openly accessible (CC-0) via <a
19
                                    href="api.scholexplorer.openaire.eu/v1/ui">search REST APIs </a>
20
                                that return links in <a href="http://www.scholix.org"> Scholix format</a>.
21

  
22

  
23
                            </div>
24

  
25
                        </div>
26
                    </div>
27
                </div>
28
            </div>
29
        </div>
30
    </div>
31

  
32

  
33
    <div class="row">
34
        <div class="col-lg-8 col-lg-offset-2">
35

  
36
            <div class="card z-depth-2" style="padding-top: 10px">
37
                <div class="row">
38
                    <div class="col l8 offset-l2">
39
                        <div class="row">
40
                            <h4 class="center-align"><b>References (@ OpenAIRE)</b></h4>
41
                            <div class="col-lg-12">
42
                                <ul>
43
                                    <li>
44
                                        <a href="https://www.openaire.eu/search/publication?articleId=dedup_wf_001::309cd9083a888d86db07849b9011ad51">On
45
                                            Bridging Data Centers and Publishers: The Data-Literature Interlinking
46
                                            Service</a> Burton, Adrian; Koers, Hylke; Manghi, Paolo; La Bruzzo, Sandro; Aryani, Amir; Diepenbroek, Michael; SCHINDLER Uwe	(2015)</li>
47
                                    <li><a href="https://www.openaire.eu/search/publication?articleId=od______2659::a84cec8e6970d6608256103f1146da3f">
48
                                        Persistent Identifiers: a Prerequisite to Establish the Framework for Scholarly Link Exchange—Scholix</a>
49
                                         Mustapha Mokrane; Adrian Burton; Hylke Koers; Markus Stocker (2016)</li>
50
                                    <li>
51
                                        <a href="https://www.openaire.eu/search/publication?articleId=od______2367::72a2ecc3e2d7d17b3c49f47f7d0b3294">The
52
                                            data-literature interlinking service: towards a common infrastructure for
53
                                            sharing data-article links</a> Burton, Adrian; Koers, Hylke; Manghi, Paolo; La Bruzzo, Sandro; Aryani, Amir; Diepenbroek, Michael; SCHINDLER Uwe	(2017)
54
                                    </li>
55
                                    <li> <a href="http://mirror.dlib.org/dlib/january17/burton/01burton.html">The Scholix Framework for Interoperability in Data-Literature Information Exchange</a>
56
                                    Adrian Burton, Hylke Koers, Paolo Manghi, Martin Fenner, Sandro La Bruzzo, Amir Aryani, Michael Diepenbroek, Uwe Schindler, Markus Stocker (2017)
57
                                    </li>
58

  
59
                                </ul>
60

  
61

  
62
                            </div>
63

  
64
                        </div>
65
                    </div>
66
                </div>
67
            </div>
68
        </div>
69
    </div>
70
</section>
modules/dli-service-portal/branches/ES_7/static/partials/statistics.html
1
<section>
2
    <div class="row">
3
        <div class="col-lg-8 col-lg-offset-2">
4

  
5
            <div class="row">
6
                <ul id="myTabs" class="nav nav-tabs text-center" role="tablist">
7
                    <li role="presentation" class="active"><a href="#tabstats" role="tab" id="profile-tab"
8
                                                              data-toggle="tab"
9
                                                              aria-controls="profile" aria-expanded="false"><h4>
10
                        Statistics</h4></a></li>
11

  
12
                    <li role="presentation"><a href="#historystats" role="tab" id="profile-tab" data-toggle="tab"
13
                                               aria-controls="profile" aria-expanded="false"><h4>History</h4></a></li>
14

  
15
                </ul>
16

  
17
                <div id="myTabContent" class="tab-content">
18

  
19

  
20

  
21

  
22
                    <div role="tabpanel" class="tab-pane fade in active" id="tabstats" aria-labelledby="dropdown1-tab">
23
                        <div class="row">
24
                            <div class="col-lg-12">
25

  
26
                                <div class="card z-depth-2" style="padding-top: 10px">
27
                                    <div class="row">
28
                                        <div class="col-lg-12">
29
                                            <div class="row">
30

  
31
                                                <div class="col-lg-12">
32
                                                    <table class="table ">
33

  
34
                                                        <col>
35
                                                          <colgroup span="3"></colgroup>
36
                                                          <tr>
37
                                                              <td rowspan="1" class="text-left"><b>Content Provider</b></td>
38
                                                            <th rowspan="1" class="text-right">Links</th>
39
                                                            <th colspan="4" scope="colgroup" class="text-center">Object</th>
40
                                                          </tr>
41
                                                          <tr>
42
                                                            <th class="text-left"></th>
43
                                                            <th class="text-right"></th>
44
                                                            <th class="text-right" scope="col">Publication</th>
45
                                                            <th class="text-right" scope="col">Dataset</th>
46
                                                            <th class="text-right" scope="col">Unknown</th>
47
                                                            <th class="text-right" scope="col">total</th>
48
                                                          </tr>
49

  
50

  
51

  
52
                                                        <!--
53
                                                        <tr class="orange-text">
54

  
55
                                                            <td class="text-left"><b>Content provider</b></td>
56
                                                            <td class="text-right"><b>Contributed links</b></td>
57
                                                            <td class="text-right"><b>Referred objects</b></td>
58
                                                            <td class="text-right"><b>Referred publications</b></td>
59
                                                            <td class="text-right"><b>Referred datasets</b></td>
60
                                                            <td class="text-right"><b>Referred objects of unknown
61
                                                                typology</b></td>
62
                                                        </tr>
63
                                                        -->
64

  
65
                                                        <tr ng-repeat="item in stats">
66
                                                            <td class="left-align"><a
67
                                                                    href='#/datasource/id/{{ item.acronym }}'>{{ item.datasourceName }} </a>
68
                                                            </td>
69
                                                            <td class="text-right"> {{ item.links }}</td>
70
                                                            <td class="text-right">{{ item.publication }}</td>
71
                                                            <td class="text-right">{{ item.dataset }}</td>
72
                                                            <td class="text-right">{{ item.unknown }}</td>
73
                                                            <td class="text-right">{{ item.total }}
74
                                                            </td>
75

  
76
                                                        </tr>
77
                                                    </table>
78
                                                </div>
79
                                            </div>
80
                                        </div>
81
                                    </div>
82
                                </div>
83
                            </div>
84

  
85
                        </div>
86
                    </div>
87

  
88

  
89
                    <div role="tabpanel" class="tab-pane fade" id="historystats" aria-labelledby="profile-tab">
90
                        <div class="row">
91
                            <div class="col-lg-12">
92
                                <div class="row text-center">
93
                                    <h4><b>Timeseries of contributed Links</b></h4>
94
                                    <div id="chart_history_links"></div>
95
                                </div>
96
                                <div class="row text-center">
97
                                    <h4><b>Timeseries of referred Objects</b></h4>
98

  
99
                                    <div id="chart_history_objects"></div>
100
                                </div>
101
                            </div>
102
                        </div>
103
                    </div>
104

  
105

  
106
                </div>
107

  
108

  
109
            </div>
110

  
111
        </div>
112
    </div>
113

  
114

  
115
</section>
116
<script>
117
    $('#myTabs a').click(function (e) {
118
        e.preventDefault()
119
        $(this).tab('show')
120
    });
121
</script>
122

  
modules/dli-service-portal/branches/ES_7/static/mail/contact_me.php
1
<?php
2
// Check for empty fields
3
if(empty($_POST['name'])  		||
4
   empty($_POST['email']) 		||
5
   empty($_POST['phone']) 		||
6
   empty($_POST['message'])	||
7
   !filter_var($_POST['email'],FILTER_VALIDATE_EMAIL))
8
   {
9
	echo "No arguments Provided!";
10
	return false;
11
   }
12
	
13
$name = $_POST['name'];
14
$email_address = $_POST['email'];
15
$phone = $_POST['phone'];
16
$message = $_POST['message'];
17
	
18
// Create the email and send the message
19
$to = 'yourname@yourdomain.com'; // Add your email address inbetween the '' replacing yourname@yourdomain.com - This is where the form will send a message to.
20
$email_subject = "Website Contact Form:  $name";
21
$email_body = "You have received a new message from your website contact form.\n\n"."Here are the details:\n\nName: $name\n\nEmail: $email_address\n\nPhone: $phone\n\nMessage:\n$message";
22
$headers = "From: noreply@yourdomain.com\n"; // This is the email address the generated message will be from. We recommend using something like noreply@yourdomain.com.
23
$headers .= "Reply-To: $email_address";	
24
mail($to,$email_subject,$email_body,$headers);
25
return true;			
26
?>
modules/dli-service-portal/branches/ES_7/static/bower_components/jquery/LICENSE.txt
1
Copyright JS Foundation and other contributors, https://js.foundation/
2

  
3
This software consists of voluntary contributions made by many
4
individuals. For exact contribution history, see the revision history
5
available at https://github.com/jquery/jquery
6

  
7
The following license applies to all parts of this software except as
8
documented below:
9

  
10
====
11

  
12
Permission is hereby granted, free of charge, to any person obtaining
13
a copy of this software and associated documentation files (the
14
"Software"), to deal in the Software without restriction, including
15
without limitation the rights to use, copy, modify, merge, publish,
16
distribute, sublicense, and/or sell copies of the Software, and to
17
permit persons to whom the Software is furnished to do so, subject to
18
the following conditions:
19

  
20
The above copyright notice and this permission notice shall be
21
included in all copies or substantial portions of the Software.
22

  
23
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
24
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
25
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
26
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
27
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
28
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
29
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30

  
31
====
32

  
33
All files located in the node_modules and external directories are
34
externally maintained libraries used by this software which have their
35
own licenses; we recommend you read them, as their terms may differ from
36
the terms above.
modules/dli-service-portal/branches/ES_7/static/bower_components/jquery/external/sizzle/LICENSE.txt
1
Copyright jQuery Foundation and other contributors, https://jquery.org/
2

  
3
This software consists of voluntary contributions made by many
4
individuals. For exact contribution history, see the revision history
5
available at https://github.com/jquery/sizzle
6

  
7
The following license applies to all parts of this software except as
8
documented below:
9

  
10
====
11

  
12
Permission is hereby granted, free of charge, to any person obtaining
13
a copy of this software and associated documentation files (the
14
"Software"), to deal in the Software without restriction, including
15
without limitation the rights to use, copy, modify, merge, publish,
16
distribute, sublicense, and/or sell copies of the Software, and to
17
permit persons to whom the Software is furnished to do so, subject to
18
the following conditions:
19

  
20
The above copyright notice and this permission notice shall be
21
included in all copies or substantial portions of the Software.
22

  
... This diff was truncated because it exceeds the maximum size that can be displayed.

Also available in: Unified diff