-
Notifications
You must be signed in to change notification settings - Fork 5
/
softwaresourcecode.html
497 lines (437 loc) · 21.5 KB
/
softwaresourcecode.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
<div about="{{ sscres }}" typeof="schema:SoftwareSourceCode" class="softwaresourcecode">
<div class="leftcolumn">
{% if g.value(sscres, SDO.name) %}
<h1 property="schema:name">{{ g.value(sscres, SDO.name) }}</h1>
{% else %}
<h1 property="schema:identifier">{{ g.value(sscres, SDO.identifier) }}</h1>
{% endif %}
{% if g.value(sscres, SDO.thumbnailUrl) %}
<img class="thumbnail" src="{{ g.value(sscres, SDO.thumbnailUrl) }}" alt="{{ g.value(sscres, SDO.name) }}" />
{% endif %}
{% if g.value(sscres, SDO.description) %}
<div property="schema:description">{{ g.value(sscres, SDO.description) }}</div>
{% endif %}
{% if not has_actionable_targetproducts(g,res) %}
{% if g.value(sscres, SDO.url) %}
<div class="go">
<i class="fa fa-home"></i>
<a rel="schema:url" href="{{ g.value(sscres, SDO.url) }}">
<strong>Go to the software website</strong>
<tt>{{ g.value(sscres, SDO.url) }}</tt>
</a>
</div>
{% elif g.value(sscres, SDO.codeRepository) %}
<div class="go">
<i class="fa fa-code-branch"></i>
<a rel="schema:url" href="{{ g.value(sscres, SDO.codeRepository) }}">
<strong>Go to the source repository</strong>
<tt>{{ g.value(sscres, SDO.codeRepository) }}</tt>
</a>
</div>
{% endif %}
{% endif %}
{% if has_displayable_targetproducts(g, res) %}
<h3>Provided tools & services</h3>
<div class="targetindex">
{% for _, targetres in get_triples(g, sscres, SDO.targetProduct, abcsort=True) %}
{% include 'targetproduct.html' %}
{% endfor %}
</div>
{% endif %}
{% for _,_,suite in g.triples((sscres, SDO.applicationSuite,None)) %}
<h3>Tool suite: {{ suite }}</h3>
<p>The following closely related tools are in a tool suite together with {{ g.value(sscres, SDO.name) }}:</p>
<div class="cards">
{% for res,_,_ in g.triples((None, SDO.applicationSuite, suite)) %}
{% if res != sscres %}
{% include 'card_softwaresourcecode.html' %}
{% endif %}
{% endfor %}
</div>
{% endfor %}
{% if g.value(sscres, SDO.screenshot) %}
<h3>Screenshots</h3>
<div class="screenshots">
{% for url, res2 in get_triples(g, sscres, SDO.screenshot, SDO.url) %}
{% if g.value(res2, SDO.caption) %}
<img src="{{ url }}" alt="screenshot: {{ g.value(res2, SDO.caption) }}" title="{{ g.value(res2, SDO.caption) }}" />
{% else %}
<img src="{{ url }}" alt="screenshot" />
{% endif %}
{% endfor %}
</div>
{% endif %}
{% if g.value(sscres, CODEMETA.referencePublication) or g.value(sscres, SDO.citation) %}
<h3>References</h3>
<div class="references">
<ul>
{% for title, ref in get_triples(g, sscres, CODEMETA.referencePublication, contextgraph=contextgraph) %}
{% if ref %}
<li>{% include 'reference.html' %}</li>
{% else %}
<li>{{ title }}</li>
{% endif %}
{% endfor %}
{% for title, ref in get_triples(g, sscres, SDO.citation, contextgraph=contextgraph) %}
{% if ref %}
<li>{% include 'reference.html' %}</li>
{% else %}
<li>{{ title }}</li>
{% endif %}
{% endfor %}
</ul>
</div>
{% endif %}
<h3>Citation</h3>
<p>
{% if g.value(sscres, CODEMETA.referencePublication) or g.value(sscres, SDO.citation) %}
Please use one of the above reference publications to cite the software, if you want to cite the software directly, you can use the following citation generated from the metadata:
{% else %}
You can cite this software using the following citation generated from its metadata:
{% endif %}
</p>
{% include 'citation.html' %}
<div class="log">
{% if (res, CODEMETAPY.errors, None) in g and int(g.value(res, CODEMETAPY.errors)) > 0 %}
<span class="negative" title="There were problems harvesting this metadata, please inspect the log"><i class="fa fa-bug"></i> There were {{ g.value(res, CODEMETAPY.errors) }} error(s) harvesting this metadata, please inspect the log.</span><br/>
{% endif %}
<button onclick="document.getElementById('harvestlog').style.display = 'block'">Show metadata harvester log ▼</button>
<pre id="harvestlog">
{{ g.value(res, CODEMETAPY.log) }}
</pre>
</div>
</div>
<div class="properties rightcolumn">
<h3>Properties</h3>
<dl>
{% if g.value(sscres, SDO.version) %}
<dt class="version" title="The latest version of this software">Version</dt>
<dd class="version"><span property="schema:version">
{{ g.value(sscres, SDO.version) }}</span>
{% if g.value(sscres, SDO.releaseNotes) %}
(<a rel="schema:releaseNotes" href="{{ g.value(sscres, SDO.releaseNotes) }}">release notes</a>)
{% endif %}
</dd>
{% endif %}
<dt class="interface" title="Interface types">Interface types</dt>
<dd class="interface">
<ul>
{% for label, comment in get_interface_types(g, sscres, contextgraph, fallback=True) %}
<li{% if comment %} title="{{ comment }}"{% endif %}>{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% if g.value(sscres, SDO.url) %}
<dt class="url" title="The project website for this software">Software website</dt>
<dd class="url">
<ul>
{% for _,_, value in g.triples((sscres, SDO.url, None)) %}
<li><i class="fa fa-home"></i> <a rel="schema:url" href="{{ value }}">{{ value }}</a></li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.codeRepository) %}
<dt class="codeRepository" title="A version controlled repository where the source code of the software is available">Source code repository</dt>
<dd class="codeRepository"><i class="fa fa-code-branch"></i> <a rel="schema:codeRepository" href="{{ g.value(sscres, SDO.codeRepository) }}">{{ g.value(sscres, SDO.codeRepository) }}</a>
{% for img, url, label in get_badge(g, sscres, "stars") %}
{% include 'badge.html' %}
{% endfor %}
</dd>
{% endif %}
{% if g.value(sscres, SDO.applicationCategory) %}
<dt class="category">Category</dt>
<dd class="category">
<ul>
{% for label, catres in get_triples(g, sscres, SDO.applicationCategory, abcsort=True, contextgraph=contextgraph) %}
<li property="schema:applicationCategory" title="{{ get_description(contextgraph, catres) }}">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.keywords) %}
<dt class="keywords">Keywords <i class="fa fa-tags"></i></dt>
<dd class="keywords">
<ul>
{% for label, catres in get_triples(g, sscres, SDO.keywords, abcsort=True, contextgraph=contextgraph) %}
<li property="schema:keywords">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, CODEMETA.developmentStatus) %}
<dt class="developmentStatus" title="Indication of the state of this software project regarding ongoing development and/or support">Development Status</dt>
<dd class="developmentStatus">
<ul>
{% for _,_, devstatres in g.triples((sscres, CODEMETA.developmentStatus, None)) %}
{% include 'developmentstatus.html' %}
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, CODEMETA.issueTracker) %}
<dt class="issueTracker" title="A bug-reporting and feature tracking system for this software">Issue Tracker (Support)</dt>
<dd class="issueTracker"><a rel="schema:issueTracker" href="{{ g.value(sscres, CODEMETA.issueTracker) }}">{{ g.value(sscres, CODEMETA.issueTracker) }}</a>
{% for img, url, label in get_badge(g, sscres, "issues") %}
{% include 'badge.html' %}
{% endfor %}
</dd>
{% endif %}
{% if g.value(sscres, SDO.softwareHelp) or g.value(sscres, CODEMETA.readme) %}
<dt class="documentation">Documentation</dt>
<dd class="documentation">
<ul>
{% if g.value(sscres, CODEMETA.readme) %}
{% for _,_, value in g.triples((sscres, CODEMETA.readme, None)) %}
<li><i class="fa fa-file"></i> <a rel="codemeta:readme" href="{{ value }}">README</span></a></li>
{% endfor %}
{% endif %}
{% if g.value(sscres, CODEMETA.buildInstructions) %}
{% for _,_, value in g.triples((sscres, CODEMETA.buildInstructions, None)) %}
<li><i class="fa fa-file"></i> <a rel="codemeta:buildInstructions" href="{{ value }}">Build Instructions</span></a></li>
{% endfor %}
{% endif %}
{% if g.value(sscres, SDO.softwareHelp) %}
{% for _,_, res2 in g.triples((sscres, SDO.softwareHelp, None)) %}
{% if g.value(res2, SDO.name) and g.value(res2, SDO.url) %}
<li about="{{ res2 }}" typeof="{{ g.value(res2, RDF.type) }}"><i class="fa fa-book"></i> <a rel="schema:url" href="{{ g.value(res2, SDO.url) }}"><span property="schema:name">{{ g.value(res2, SDO.name) }}</span></a></li>
{% elif g.value(res2, SDO.url) %}
<li about="{{ res2 }}" typeof="{{ g.value(res2, RDF.type) }}"><i class="fa fa-book"></i> <a rel="schema:url" href="{{ g.value(res2, SDO.url) }}">{{ g.value(res2, SDO.url) }}</a></li>
{% endif %}
{% endfor %}
{% endif %}
{% if g.value(sscres, SDO.documentation) %}
{% for _,_, res2 in g.triples((sscres, SDO.documentation, None)) %}
{% if g.value(res2, SDO.name) and g.value(res2, SDO.url) %}
<li about="{{ res2 }}" typeof="{{ g.value(res2, RDF.type) }}"><i class="fa fa-book"></i> <a rel="schema:url" href="{{ g.value(res2, SDO.url) }}"><span property="schema:name">{{ g.value(res2, SDO.name) }}</span></a></li>
{% elif g.value(res2, SDO.url) %}
<li about="{{ res2 }}" typeof="{{ g.value(res2, RDF.type) }}"><i class="fa fa-book"></i> <a rel="schema:url" href="{{ g.value(res2, SDO.url) }}">{{ g.value(res2, SDO.url) }}</a></li>
{% endif %}
{% endfor %}
{% endif %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.license) %}
<dt class="license" title="The license under which the source code is published">License</dt>
<dd class="license">
<ul>
{% for _,_, license in g.triples((sscres, SDO.license, None)) %}
{% if (license, SDO.name, None) in contextgraph %}
<li><a rel="schema:license" href="{{ license }}">{{ contextgraph.value(license, SDO.name) }}</a></li>
{% elif license.startswith("http") %}
<li><a rel="schema:license" href="{{ license }}">{{ license }}</a></li>
{% else %}
<li>{{ license }}</li>
{% endif %}
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.author) %}
<dt class="author" title="The main people that developed the software">Author(s)</dt>
<dd class="author">
<ul>
{% for label, pores in get_triples(g, sscres, SDO.author) %}
<li property="schema:author">
{% include 'person_or_org.html' %}
</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.maintainer) %}
<dt class="maintainer" title="The person or organisation that is responsible for maintaining the software and whom you can look for support">Maintainer(s)</dt>
<dd class="maintainer">
<ul>
{% for label, pores in get_triples(g, sscres, SDO.maintainer) %}
<li>{% include 'person_or_org.html' %}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.contributor) %}
<dt class="contributor" title="All people who contributed to the project's source code">Contributor(s)</dt>
<dd class="contributor">
<ul>
{% for label, pores in get_triples(g, sscres, SDO.contributor) %}
<li>{% include 'person_or_org.html' %}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.producer) %}
<dt class="producer" title="The organisation (or person) that produces/develops the software">Producer</dt>
<dd class="producer">
<ul>
{% for label, pores in get_triples(g, sscres, SDO.producer) %}
<li>{% include 'person_or_org.html' %}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.publisher) %}
<dt class="publisher" title="The organisation (or person) that publishes the software">Publisher</dt>
<dd class="publisher">
<ul>
{% for label, pores in get_triples(g, sscres, SDO.publisher) %}
<li>{% include 'person_or_org.html' %}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.funder) %}
<dt class="funder" title="funder source (e.g. specific grant)">Funder</dt>
<dd class="funder">
<ul>
{% for label, pores in get_triples(g, sscres, SDO.funder, abcsort=True) %}
<li>{% include 'person_or_org.html' %}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, CODEMETA.funding) %}
<dt class="funding" title="Funding source (e.g. specific grant)">Funding</dt>
<dd class="funding">
<ul>
{% for label, res2 in get_triples(g, sscres, CODEMETA.funding, abcsort=True) %}
{% if res2 and g.value(res2, SDO.url) %}
<li property="codemeta:funding"><a href="{{ g.value(res2, SDO.url) }}">{{ label }}</a></li>
{% else %}
<li property="codemeta:funding">{{ label }}</li>
{% endif %}
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.programmingLanguage) %}
<dt class="programmingLanguage">Programming Language</dt>
<dd class="programmingLanguage">
<ul>
{% for label, res2 in get_triples(g, sscres, SDO.programmingLanguage, abcsort=True) %}
{% if res2 and g.value(res2, SDO.url) %}
<li property="schema:programmingLanguage"><a href="{{ g.value(res2, SDO.url) }}">{{ label }}</a></li>
{% else %}
<li property="schema:programmingLanguage">{{ label }}</li>
{% endif %}
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, CODEMETA.contIntegration) %}
<dt class="contIntegration" title="Service that continuously tests the software on each change">Continuous Integration Tests</dt>
<dd class="contIntegration"><a rel="codemeta:contIntegration" href="{{ g.value(sscres, CODEMETA.contIntegration) }}">{{ g.value(sscres, CODEMETA.contIntegration) }}</a></dd>
{% endif %}
{% if g.value(sscres, SDO.runtimePlatform) %}
<dt class="runtimePlatform" title="The required environment needed for the software to run">Runtime Platform</dt>
<dd class="runtimePlatform">
<ul>
{% for label, _ in get_triples(g, sscres, SDO.runtimePlatform, abcsort=True, contextgraph=contextgraph) %}
<li property="schema:runtimePlatform">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.operatingSystem) %}
<dt class="operatingSystem" title="The operating system on which the software may run">Operating System</dt>
<dd class="operatingSystem">
<ul>
{% for label, _ in get_triples(g, sscres, SDO.operatingSystem, abcsort=True, contextgraph=contextgraph) %}
<li property="schema:operatingSystem">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if (sscres,CODEMETA.softwareRequirements, None) in g or (sscres, SDO.softwareRequirements, None) in g %}
<dt class="softwareRequirements" title="Software upon which this software relies to run and/or build">Software dependencies</dt>
<dd class="softwareRequirements">
<ul>
{% if g.value(sscres, CODEMETA.softwareRequirements) %}
{% for label, res2 in get_triples(g, sscres, CODEMETA.softwareRequirements) %}
<li property="schema:softwareRequirements">{{ label }}</li>
{% endfor %}
{% elif g.value(sscres, SDO.softwareRequirements) %}
{% for label, res2 in get_triples(g, sscres, SDO.softwareRequirements) %}
<li property="schema:softwareRequirements">{{ label }}</li>
{% endfor %}
{% endif %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.processorRequirements) %}
<dt class="processorRequirements" title="CPU requirements to run the software">Processor Requirements</dt>
<dd class="processorRequirements">
<ul>
{% for label, _ in get_triples(g, sscres, SDO.processorRequirements, contextgraph=contextgraph) %}
<li property="schema:processorRequirements">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.memoryRequirements) %}
<dt class="memoryRequirements" title="Memory requirements in order to run the software">Memory Requirements</dt>
<dd class="memoryRequirements">
<ul>
{% for label, _ in get_triples(g, sscres, SDO.memoryRequirements, contextgraph=contextgraph) %}
<li property="schema:memoryRequirements">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SDO.permissions) %}
<dt class="permissions" title="Permissions that are needed to run the software">Permissions</dt>
<dd class="permissions">
<ul>
{% for label, _ in get_triples(g, sscres, SDO.permissions, contextgraph=contextgraph) %}
<li property="schema:permissions">{{ label }}</li>
{% endfor %}
</ul>
</dd>
{% endif %}
{% if g.value(sscres, SOFTWAREIODATA.consumesData) %}
<dt class="iodata" title="High-level overview of the type(s) of data that the software consumes as input">Input data</dt>
<dd class="iodata">
{% for label, iores in get_triples(g, sscres, SOFTWAREIODATA.consumesData, contextgraph=contextgraph) %}
<div>{% include 'iodata.html' %}</div>
{% endfor %}
</dd>
{% endif %}
{% if g.value(sscres, SOFTWAREIODATA.producesData) %}
<dt class="iodata" title="High-level overview of the type(s) of data that the software produces as output">Output data</dt>
<dd class="iodata">
{% for label, iores in get_triples(g, sscres, SOFTWAREIODATA.producesData, contextgraph=contextgraph) %}
<div>{% include 'iodata.html' %}</div>
{% endfor %}
</dd>
{% endif %}
{% if g.value(sscres, SDO.review) %}
<dt class="review" title="Rating of the quality and completeness of this software metadata, based on automatic validation. Click the stars for the full validation report. Note that this is not a judgement on the suitability of the software for any particular task.">Metadata validation</dt>
<dd class="review">
{% include 'validationrating.html' %}
</dd>
{% endif %}
{% if g.value(sscres, SDO.dateCreated) %}
<dt class="dateCreated" title="The date and time at which the software (all versions) was first created">Created</dt>
<dd class="dateCreated">
{{ g.value(sscres, SDO.dateCreated).replace("T"," ").replace("Z"," ") }}
</dd>
{% endif %}
{% if g.value(sscres, SDO.dateModified) %}
<dt class="dateModified" title="The date and time at which the software (this specific version, when available) was last modified">Last modified</dt>
<dd class="dateModified">
{{ g.value(sscres, SDO.dateModified).replace("T"," ").replace("Z"," ") }}
{% for img, url, label in get_badge(g, sscres, "lastcommits") %}
{% include 'badge.html' %}
{% endfor %}
</dd>
{% endif %}
{% set doi = get_doi(g, sscres) %}
{% if doi %}
<dt class="doi" title="Digital Object Identifier">DOI</dt>
<dd class="doi">
<a href="https://doi.org/{{doi}}">{{doi}}</a>
</dd>
{% endif %}
</dl>
</div>
</div>