ftr_ruby 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,1324 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="UTF-8">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+
8
+ <title>class FtrRuby::DCAT_Record - RDoc Documentation</title>
9
+
10
+
11
+ <meta
12
+ name="keywords"
13
+ content="ruby,class,FtrRuby::DCAT_Record"
14
+ >
15
+
16
+ <meta
17
+ name="description"
18
+ content="class FtrRuby::DCAT_Record: Represents a single FAIR Test as a DCAT-compliant DataService with additional FAIR-specific metadata. This class generates RDF metadata (in a DCAT + D"
19
+ >
20
+
21
+
22
+
23
+
24
+
25
+ <!-- Open Graph / Facebook -->
26
+ <meta property="og:type" content="website">
27
+ <meta property="og:title" content="class FtrRuby::DCAT_Record - RDoc Documentation">
28
+
29
+
30
+
31
+ <meta property="og:description" content="Represents a single FAIR Test as a DCAT-compliant DataService with additional FAIR-specific metadata. This class generates RDF metadata (in a DCAT + D">
32
+
33
+
34
+
35
+
36
+
37
+ <!-- Twitter -->
38
+ <meta name="twitter:card" content="summary">
39
+ <meta name="twitter:title" content="class FtrRuby::DCAT_Record - RDoc Documentation">
40
+
41
+
42
+
43
+ <meta name="twitter:description" content="Represents a single FAIR Test as a DCAT-compliant DataService with additional FAIR-specific metadata. This class generates RDF metadata (in a DCAT + D">
44
+
45
+
46
+
47
+ <script type="text/javascript">
48
+ var rdoc_rel_prefix = "../";
49
+ var index_rel_prefix = "../";
50
+ </script>
51
+
52
+ <script
53
+ src="../js/theme-toggle.js?v=7.2.0"
54
+ ></script>
55
+
56
+ <script
57
+ src="../js/search_navigation.js?v=7.2.0"
58
+ defer
59
+ ></script>
60
+
61
+ <script
62
+ src="../js/search_data.js?v=7.2.0"
63
+ defer
64
+ ></script>
65
+
66
+ <script
67
+ src="../js/search_ranker.js?v=7.2.0"
68
+ defer
69
+ ></script>
70
+
71
+ <script
72
+ src="../js/search_controller.js?v=7.2.0"
73
+ defer
74
+ ></script>
75
+
76
+ <script
77
+ src="../js/c_highlighter.js?v=7.2.0"
78
+ defer
79
+ ></script>
80
+
81
+ <script
82
+ src="../js/bash_highlighter.js?v=7.2.0"
83
+ defer
84
+ ></script>
85
+
86
+ <script
87
+ src="../js/aliki.js?v=7.2.0"
88
+ defer
89
+ ></script>
90
+
91
+ <link
92
+ href="../css/rdoc.css?v=7.2.0"
93
+ rel="stylesheet"
94
+ >
95
+
96
+
97
+
98
+
99
+ <body role="document" class="class has-toc">
100
+ <svg xmlns="http://www.w3.org/2000/svg" style="display: none;">
101
+ <!-- Chevron (right arrow) - used for expand/collapse -->
102
+ <symbol
103
+ id="icon-chevron"
104
+ viewBox="0 0 24 24"
105
+ fill="none"
106
+ stroke="currentColor"
107
+ stroke-width="2"
108
+ stroke-linecap="round"
109
+ stroke-linejoin="round"
110
+ >
111
+ <polyline points="9 18 15 12 9 6"></polyline>
112
+ </symbol>
113
+
114
+ <!-- File/Document - Pages section -->
115
+ <symbol
116
+ id="icon-file"
117
+ viewBox="0 0 24 24"
118
+ fill="none"
119
+ stroke="currentColor"
120
+ stroke-width="2"
121
+ stroke-linecap="round"
122
+ stroke-linejoin="round"
123
+ >
124
+ <path
125
+ d="M14.5 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7.5L14.5 2z"
126
+ ></path>
127
+
128
+ <polyline points="14 2 14 8 20 8"></polyline>
129
+ </symbol>
130
+
131
+ <!-- Layers/Stack - Classes and Modules section -->
132
+ <symbol
133
+ id="icon-layers"
134
+ viewBox="0 0 24 24"
135
+ fill="none"
136
+ stroke="currentColor"
137
+ stroke-width="2"
138
+ stroke-linecap="round"
139
+ stroke-linejoin="round"
140
+ >
141
+ <polygon points="12 2 2 7 12 12 22 7 12 2"></polygon>
142
+ <polyline points="2 17 12 22 22 17"></polyline>
143
+ <polyline points="2 12 12 17 22 12"></polyline>
144
+ </symbol>
145
+
146
+ <!-- Curly braces with C - Class Methods section -->
147
+ <symbol
148
+ id="icon-class-methods"
149
+ viewBox="0 0 24 24"
150
+ fill="none"
151
+ stroke="currentColor"
152
+ stroke-width="2"
153
+ stroke-linecap="round"
154
+ stroke-linejoin="round"
155
+ >
156
+ <path d="M6 3C3.5 3 2 4.5 2 7v3c0 1.5-1 2-1 2s1 .5 1 2v5c0 2.5 1.5 4 4 4"></path>
157
+ <path d="M18 3c2.5 0 4 1.5 4 4v3c0 1.5 1 2 1 2s-1 .5-1 2v5c0 2.5-1.5 4-4 4"></path>
158
+
159
+ <text
160
+ x="12"
161
+ y="17"
162
+ text-anchor="middle"
163
+ font-size="13"
164
+ font-weight="bold"
165
+ fill="currentColor"
166
+ stroke="none"
167
+ >
168
+ C
169
+ </text>
170
+ </symbol>
171
+
172
+ <!-- Curly braces with I - Instance Methods section -->
173
+ <symbol
174
+ id="icon-instance-methods"
175
+ viewBox="0 0 24 24"
176
+ fill="none"
177
+ stroke="currentColor"
178
+ stroke-width="2"
179
+ stroke-linecap="round"
180
+ stroke-linejoin="round"
181
+ >
182
+ <path d="M6 3C3.5 3 2 4.5 2 7v3c0 1.5-1 2-1 2s1 .5 1 2v5c0 2.5 1.5 4 4 4"></path>
183
+ <path d="M18 3c2.5 0 4 1.5 4 4v3c0 1.5 1 2 1 2s-1 .5-1 2v5c0 2.5-1.5 4-4 4"></path>
184
+
185
+ <text
186
+ x="12"
187
+ y="17"
188
+ text-anchor="middle"
189
+ font-size="13"
190
+ font-weight="bold"
191
+ fill="currentColor"
192
+ stroke="none"
193
+ >
194
+ I
195
+ </text>
196
+ </symbol>
197
+
198
+ <!-- Double chevrons up - Ancestors section -->
199
+ <symbol
200
+ id="icon-ancestors"
201
+ viewBox="0 0 24 24"
202
+ fill="none"
203
+ stroke="currentColor"
204
+ stroke-width="2"
205
+ stroke-linecap="round"
206
+ stroke-linejoin="round"
207
+ >
208
+ <polyline points="17 11 12 6 7 11"></polyline>
209
+ <polyline points="17 18 12 13 7 18"></polyline>
210
+ </symbol>
211
+
212
+ <!-- User with plus - Included Modules section -->
213
+ <symbol
214
+ id="icon-includes"
215
+ viewBox="0 0 24 24"
216
+ fill="none"
217
+ stroke="currentColor"
218
+ stroke-width="2"
219
+ stroke-linecap="round"
220
+ stroke-linejoin="round"
221
+ >
222
+ <path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
223
+ <circle cx="8.5" cy="7" r="4"></circle>
224
+
225
+ <line
226
+ x1="20"
227
+ y1="8"
228
+ x2="20"
229
+ y2="14"
230
+ ></line>
231
+
232
+ <line
233
+ x1="23"
234
+ y1="11"
235
+ x2="17"
236
+ y2="11"
237
+ ></line>
238
+ </symbol>
239
+
240
+ <!-- User with check - Extended Modules section -->
241
+ <symbol
242
+ id="icon-extends"
243
+ viewBox="0 0 24 24"
244
+ fill="none"
245
+ stroke="currentColor"
246
+ stroke-width="2"
247
+ stroke-linecap="round"
248
+ stroke-linejoin="round"
249
+ >
250
+ <path d="M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2"></path>
251
+ <circle cx="8.5" cy="7" r="4"></circle>
252
+ <polyline points="17 11 19 13 23 9"></polyline>
253
+ </symbol>
254
+
255
+ <!-- List - Sections section -->
256
+ <symbol
257
+ id="icon-list"
258
+ viewBox="0 0 24 24"
259
+ fill="none"
260
+ stroke="currentColor"
261
+ stroke-width="2"
262
+ stroke-linecap="round"
263
+ stroke-linejoin="round"
264
+ >
265
+ <line
266
+ x1="8"
267
+ y1="6"
268
+ x2="21"
269
+ y2="6"
270
+ ></line>
271
+
272
+ <line
273
+ x1="8"
274
+ y1="12"
275
+ x2="21"
276
+ y2="12"
277
+ ></line>
278
+
279
+ <line
280
+ x1="8"
281
+ y1="18"
282
+ x2="21"
283
+ y2="18"
284
+ ></line>
285
+
286
+ <line
287
+ x1="3"
288
+ y1="6"
289
+ x2="3.01"
290
+ y2="6"
291
+ ></line>
292
+
293
+ <line
294
+ x1="3"
295
+ y1="12"
296
+ x2="3.01"
297
+ y2="12"
298
+ ></line>
299
+
300
+ <line
301
+ x1="3"
302
+ y1="18"
303
+ x2="3.01"
304
+ y2="18"
305
+ ></line>
306
+ </symbol>
307
+ </svg>
308
+
309
+ <header class="top-navbar">
310
+ <a href="../index.html" class="navbar-brand">
311
+ RDoc Documentation
312
+ </a>
313
+
314
+ <!-- Desktop search bar -->
315
+ <div class="navbar-search navbar-search-desktop" role="search">
316
+ <form action="#" method="get" accept-charset="utf-8">
317
+ <input id="search-field" role="combobox" aria-label="Search"
318
+ aria-autocomplete="list" aria-controls="search-results-desktop"
319
+ type="text" name="search" placeholder="Search (/) for a class, method..."
320
+ spellcheck="false" autocomplete="off"
321
+ title="Type to search, Up and Down to navigate, Enter to load">
322
+ <ul id="search-results-desktop" aria-label="Search Results"
323
+ aria-busy="false" aria-expanded="false"
324
+ aria-atomic="false" class="initially-hidden search-results"></ul>
325
+ </form>
326
+ </div>
327
+
328
+ <!-- Mobile search icon button -->
329
+ <button id="search-toggle" class="navbar-search-mobile" aria-label="Open search" type="button">
330
+ <span aria-hidden="true">🔍</span>
331
+ </button>
332
+
333
+ <!-- Theme toggle button -->
334
+ <button id="theme-toggle" class="theme-toggle" aria-label="Switch to dark mode" type="button">
335
+ <span class="theme-toggle-icon" aria-hidden="true">🌙</span>
336
+ </button>
337
+ </header>
338
+
339
+ <!-- Search Modal (Mobile) -->
340
+ <div id="search-modal" class="search-modal" hidden aria-modal="true" role="dialog" aria-label="Search">
341
+ <div class="search-modal-backdrop"></div>
342
+ <div class="search-modal-content">
343
+ <div class="search-modal-header">
344
+ <form class="search-modal-form" action="#" method="get" accept-charset="utf-8">
345
+ <span class="search-modal-icon" aria-hidden="true">🔍</span>
346
+ <input id="search-field-mobile" role="combobox" aria-label="Search"
347
+ aria-autocomplete="list" aria-controls="search-results-mobile"
348
+ type="text" name="search" placeholder="Search documentation"
349
+ spellcheck="false" autocomplete="off">
350
+ <button type="button" class="search-modal-close" aria-label="Close search" id="search-modal-close">
351
+ <span aria-hidden="true">esc</span>
352
+ </button>
353
+ </form>
354
+ </div>
355
+ <div class="search-modal-body">
356
+ <ul id="search-results-mobile" aria-label="Search Results"
357
+ aria-busy="false" aria-expanded="false"
358
+ aria-atomic="false" class="search-results search-modal-results initially-hidden"></ul>
359
+ <div class="search-modal-empty">
360
+ <p>No recent searches</p>
361
+ </div>
362
+ </div>
363
+ </div>
364
+ </div>
365
+
366
+ <div id="navigation-toggle" role="button" tabindex="0" aria-label="Toggle sidebar" aria-expanded="true" aria-controls="navigation">
367
+ <span aria-hidden="true">&#9776;</span>
368
+ </div>
369
+
370
+
371
+ <nav id="navigation" role="navigation" hidden>
372
+
373
+
374
+
375
+
376
+
377
+ <div id="fileindex-section" class="nav-section">
378
+ <details class="nav-section-collapsible" >
379
+ <summary class="nav-section-header">
380
+ <span class="nav-section-icon">
381
+ <svg>
382
+ <use href="#icon-file"></use>
383
+ </svg>
384
+ </span>
385
+
386
+ <span class="nav-section-title">Pages</span>
387
+
388
+ <span class="nav-section-chevron">
389
+ <svg>
390
+ <use href="#icon-chevron"></use>
391
+ </svg>
392
+ </span>
393
+ </summary>
394
+
395
+ <ul class="nav-list">
396
+
397
+
398
+
399
+
400
+
401
+
402
+ <li>
403
+ <a href="../CHANGELOG_md.html">
404
+ CHANGELOG
405
+ </a>
406
+ </li>
407
+
408
+
409
+
410
+
411
+ <li>
412
+ <a href="../Gemfile.html">
413
+ Gemfile
414
+ </a>
415
+ </li>
416
+
417
+
418
+
419
+
420
+ <li>
421
+ <a href="../Gemfile_lock.html">
422
+ Gemfile.lock
423
+ </a>
424
+ </li>
425
+
426
+
427
+
428
+
429
+ <li>
430
+ <a href="../LICENSE_txt.html">
431
+ LICENSE
432
+ </a>
433
+ </li>
434
+
435
+
436
+
437
+
438
+ <li>
439
+ <a href="../README_md.html">
440
+ README
441
+ </a>
442
+ </li>
443
+
444
+
445
+
446
+
447
+ <li>
448
+ <a href="../Rakefile.html">
449
+ Rakefile
450
+ </a>
451
+ </li>
452
+
453
+
454
+
455
+
456
+ <li>
457
+ <a href="../bin/setup.html">
458
+ setup
459
+ </a>
460
+ </li>
461
+
462
+
463
+
464
+
465
+ <li>
466
+ <a href="../sig/ftr_ruby_rbs.html">
467
+ ftr_ruby.rbs
468
+ </a>
469
+ </li>
470
+
471
+ </ul>
472
+ </details>
473
+ </div>
474
+
475
+
476
+
477
+
478
+
479
+ <div id="parent-class-section" class="nav-section">
480
+ <details class="nav-section-collapsible" open>
481
+ <summary class="nav-section-header">
482
+ <span class="nav-section-icon">
483
+ <svg><use href="#icon-ancestors"></use></svg>
484
+ </span>
485
+ <span class="nav-section-title">Ancestors</span>
486
+ <span class="nav-section-chevron">
487
+ <svg><use href="#icon-chevron"></use></svg>
488
+ </span>
489
+ </summary>
490
+ <ul><li>Object</li></ul>
491
+ </details>
492
+ </div>
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+ <div class="nav-section">
501
+ <details class="nav-section-collapsible" open>
502
+ <summary class="nav-section-header">
503
+ <span class="nav-section-icon">
504
+ <svg><use href="#icon-class-methods"></use></svg>
505
+ </span>
506
+ <span class="nav-section-title">Class Methods</span>
507
+ <span class="nav-section-chevron">
508
+ <svg><use href="#icon-chevron"></use></svg>
509
+ </span>
510
+ </summary>
511
+ <ul class="nav-list" role="directory">
512
+
513
+ <li ><a href="#method-c-new">new</a></li>
514
+
515
+ </ul>
516
+ </details>
517
+ </div>
518
+
519
+
520
+
521
+ <div class="nav-section">
522
+ <details class="nav-section-collapsible" open>
523
+ <summary class="nav-section-header">
524
+ <span class="nav-section-icon">
525
+ <svg><use href="#icon-instance-methods"></use></svg>
526
+ </span>
527
+ <span class="nav-section-title">Instance Methods</span>
528
+ <span class="nav-section-chevron">
529
+ <svg><use href="#icon-chevron"></use></svg>
530
+ </span>
531
+ </summary>
532
+ <ul class="nav-list" role="directory">
533
+
534
+ <li ><a href="#method-i-get_dcat">get_dcat</a></li>
535
+
536
+ </ul>
537
+ </details>
538
+ </div>
539
+
540
+
541
+ <div id="classindex-section" class="nav-section">
542
+ <details class="nav-section-collapsible" open>
543
+ <summary class="nav-section-header">
544
+ <span class="nav-section-icon">
545
+ <svg><use href="#icon-layers"></use></svg>
546
+ </span>
547
+ <span class="nav-section-title">Classes and Modules</span>
548
+ <span class="nav-section-chevron">
549
+ <svg><use href="#icon-chevron"></use></svg>
550
+ </span>
551
+ </summary>
552
+
553
+ <ul class="link-list nav-list"><li><details><summary><code><a href="../FtrRuby.html">FtrRuby</a></code></summary><ul class="link-list nav-list"><li><code><a href="../FtrRuby/DCAT_Record.html">DCAT_Record</a></code></li><li><code><a href="../FtrRuby/Error.html">Error</a></code></li><li><code><a href="../FtrRuby/FDPIndex.html">FDPIndex</a></code></li><li><code><a href="../FtrRuby/Output.html">Output</a></code></li><li><code><a href="../FtrRuby/TestInfra.html">TestInfra</a></code></li><li><code><a href="../FtrRuby/Tests.html">Tests</a></code></li></ul></details></li><li><code><a href="../OpenAPI.html">OpenAPI</a></code></li></ul>
554
+ </details>
555
+ </div>
556
+
557
+ </nav>
558
+
559
+ <main role="main" aria-labelledby="class-ftrruby-dcat_record">
560
+
561
+
562
+ <ol role="navigation" aria-label="Breadcrumb navigation" class="breadcrumb">
563
+
564
+ <li>
565
+
566
+ <a href="../FtrRuby.html">FtrRuby</a><span>::</span>
567
+
568
+ </li>
569
+
570
+ <li>
571
+
572
+ <span>DCAT_Record</span>
573
+
574
+ </li>
575
+
576
+ </ol>
577
+
578
+
579
+ <span id="class-FtrRuby::DCAT_Record" class="legacy-anchor"></span>
580
+ <h1 id="class-ftrruby-dcat_record" class="anchor-link class">
581
+ class FtrRuby::DCAT_Record
582
+ </h1>
583
+
584
+ <section class="description">
585
+
586
+ <p>Represents a single FAIR Test as a DCAT-compliant DataService with additional FAIR-specific metadata.</p>
587
+
588
+ <p>This class generates RDF metadata (in a DCAT + DQV + FTR vocabulary profile) describing a test that can be used to assess FAIR compliance of digital objects (typically datasets). The resulting graph follows the DCAT-AP style for Data Services, extended with FAIR Test Registry (FTR) semantics.</p>
589
+
590
+ <span id="class-FtrRuby::DCAT_Record-label-Usage" class="legacy-anchor"></span>
591
+ <h2 id="class-ftrruby-dcat_record-usage"><a href="#class-ftrruby-dcat_record-usage">Usage</a></h2>
592
+
593
+ <pre class="ruby"><span class="ruby-identifier">meta</span> = {
594
+ <span class="ruby-value">testid:</span> <span class="ruby-string">&quot;ftr-rda-f1-01m&quot;</span>,
595
+ <span class="ruby-value">testname:</span> <span class="ruby-string">&quot;FAIR Test F1-01M: Persistent Identifier&quot;</span>,
596
+ <span class="ruby-value">description:</span> <span class="ruby-string">&quot;Checks whether the digital object has a globally unique persistent identifier...&quot;</span>,
597
+ <span class="ruby-value">keywords:</span> [<span class="ruby-string">&quot;FAIR&quot;</span>, <span class="ruby-string">&quot;persistent identifier&quot;</span>, <span class="ruby-string">&quot;F1&quot;</span>],
598
+ <span class="ruby-value">creator:</span> <span class="ruby-string">&quot;https://orcid.org/0000-0001-2345-6789&quot;</span>,
599
+ <span class="ruby-value">indicators:</span> [<span class="ruby-string">&quot;https://w3id.org/ftr/indicator/F1-01M&quot;</span>],
600
+ <span class="ruby-value">metric:</span> <span class="ruby-string">&quot;https://w3id.org/ftr/metric/F1-01M&quot;</span>,
601
+ <span class="ruby-value">license:</span> <span class="ruby-string">&quot;https://creativecommons.org/licenses/by/4.0/&quot;</span>,
602
+ <span class="ruby-value">testversion:</span> <span class="ruby-string">&quot;1.0&quot;</span>,
603
+ <span class="ruby-comment"># ... other fields</span>
604
+ }
605
+
606
+ <span class="ruby-identifier">record</span> = <span class="ruby-constant">FtrRuby</span><span class="ruby-operator">::</span><span class="ruby-constant">DCAT_Record</span>.<span class="ruby-identifier">new</span>(<span class="ruby-value">meta:</span> <span class="ruby-identifier">meta</span>)
607
+ <span class="ruby-identifier">graph</span> = <span class="ruby-identifier">record</span>.<span class="ruby-identifier">get_dcat</span>
608
+ </pre>
609
+
610
+ </section>
611
+
612
+
613
+ <span id="5Buntitled-5D" class="legacy-anchor"></span>
614
+ <section class="documentation-section anchor-link">
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+ <section class="attribute-method-details method-section">
623
+ <header>
624
+ <h3 id="untitled-attributes"><a href="#untitled-attributes">Attributes</a></h3>
625
+ </header>
626
+
627
+
628
+ <div id="attribute-i-applicationarea" class="method-detail anchor-link">
629
+ <div class="method-heading attribute-method-heading">
630
+ <a href="#attribute-i-applicationarea" title="Link to this attribute">
631
+ <span class="method-name">applicationarea</span>
632
+ <span class="attribute-access-type">[RW]</span>
633
+ </a>
634
+ </div>
635
+
636
+ <div class="method-description">
637
+
638
+
639
+
640
+
641
+ </div>
642
+ </div>
643
+
644
+ <div id="attribute-i-basePath" class="method-detail anchor-link">
645
+ <div class="method-heading attribute-method-heading">
646
+ <a href="#attribute-i-basePath" title="Link to this attribute">
647
+ <span class="method-name">basePath</span>
648
+ <span class="attribute-access-type">[RW]</span>
649
+ </a>
650
+ </div>
651
+
652
+ <div class="method-description">
653
+
654
+
655
+
656
+
657
+ </div>
658
+ </div>
659
+
660
+ <div id="attribute-i-creator" class="method-detail anchor-link">
661
+ <div class="method-heading attribute-method-heading">
662
+ <a href="#attribute-i-creator" title="Link to this attribute">
663
+ <span class="method-name">creator</span>
664
+ <span class="attribute-access-type">[RW]</span>
665
+ </a>
666
+ </div>
667
+
668
+ <div class="method-description">
669
+
670
+
671
+
672
+
673
+ </div>
674
+ </div>
675
+
676
+ <div id="attribute-i-dctype" class="method-detail anchor-link">
677
+ <div class="method-heading attribute-method-heading">
678
+ <a href="#attribute-i-dctype" title="Link to this attribute">
679
+ <span class="method-name">dctype</span>
680
+ <span class="attribute-access-type">[RW]</span>
681
+ </a>
682
+ </div>
683
+
684
+ <div class="method-description">
685
+
686
+
687
+
688
+
689
+ </div>
690
+ </div>
691
+
692
+ <div id="attribute-i-description" class="method-detail anchor-link">
693
+ <div class="method-heading attribute-method-heading">
694
+ <a href="#attribute-i-description" title="Link to this attribute">
695
+ <span class="method-name">description</span>
696
+ <span class="attribute-access-type">[RW]</span>
697
+ </a>
698
+ </div>
699
+
700
+ <div class="method-description">
701
+
702
+
703
+
704
+
705
+ </div>
706
+ </div>
707
+
708
+ <div id="attribute-i-end_desc" class="method-detail anchor-link">
709
+ <div class="method-heading attribute-method-heading">
710
+ <a href="#attribute-i-end_desc" title="Link to this attribute">
711
+ <span class="method-name">end_desc</span>
712
+ <span class="attribute-access-type">[RW]</span>
713
+ </a>
714
+ </div>
715
+
716
+ <div class="method-description">
717
+
718
+
719
+
720
+
721
+ </div>
722
+ </div>
723
+
724
+ <div id="attribute-i-end_url" class="method-detail anchor-link">
725
+ <div class="method-heading attribute-method-heading">
726
+ <a href="#attribute-i-end_url" title="Link to this attribute">
727
+ <span class="method-name">end_url</span>
728
+ <span class="attribute-access-type">[RW]</span>
729
+ </a>
730
+ </div>
731
+
732
+ <div class="method-description">
733
+
734
+
735
+
736
+
737
+ </div>
738
+ </div>
739
+
740
+ <div id="attribute-i-host" class="method-detail anchor-link">
741
+ <div class="method-heading attribute-method-heading">
742
+ <a href="#attribute-i-host" title="Link to this attribute">
743
+ <span class="method-name">host</span>
744
+ <span class="attribute-access-type">[RW]</span>
745
+ </a>
746
+ </div>
747
+
748
+ <div class="method-description">
749
+
750
+
751
+
752
+
753
+ </div>
754
+ </div>
755
+
756
+ <div id="attribute-i-identifier" class="method-detail anchor-link">
757
+ <div class="method-heading attribute-method-heading">
758
+ <a href="#attribute-i-identifier" title="Link to this attribute">
759
+ <span class="method-name">identifier</span>
760
+ <span class="attribute-access-type">[RW]</span>
761
+ </a>
762
+ </div>
763
+
764
+ <div class="method-description">
765
+
766
+
767
+
768
+
769
+ </div>
770
+ </div>
771
+
772
+ <div id="attribute-i-implementations" class="method-detail anchor-link">
773
+ <div class="method-heading attribute-method-heading">
774
+ <a href="#attribute-i-implementations" title="Link to this attribute">
775
+ <span class="method-name">implementations</span>
776
+ <span class="attribute-access-type">[RW]</span>
777
+ </a>
778
+ </div>
779
+
780
+ <div class="method-description">
781
+
782
+
783
+
784
+
785
+ </div>
786
+ </div>
787
+
788
+ <div id="attribute-i-indicators" class="method-detail anchor-link">
789
+ <div class="method-heading attribute-method-heading">
790
+ <a href="#attribute-i-indicators" title="Link to this attribute">
791
+ <span class="method-name">indicators</span>
792
+ <span class="attribute-access-type">[RW]</span>
793
+ </a>
794
+ </div>
795
+
796
+ <div class="method-description">
797
+
798
+
799
+
800
+
801
+ </div>
802
+ </div>
803
+
804
+ <div id="attribute-i-individuals" class="method-detail anchor-link">
805
+ <div class="method-heading attribute-method-heading">
806
+ <a href="#attribute-i-individuals" title="Link to this attribute">
807
+ <span class="method-name">individuals</span>
808
+ <span class="attribute-access-type">[RW]</span>
809
+ </a>
810
+ </div>
811
+
812
+ <div class="method-description">
813
+
814
+
815
+
816
+
817
+ </div>
818
+ </div>
819
+
820
+ <div id="attribute-i-isapplicablefor" class="method-detail anchor-link">
821
+ <div class="method-heading attribute-method-heading">
822
+ <a href="#attribute-i-isapplicablefor" title="Link to this attribute">
823
+ <span class="method-name">isapplicablefor</span>
824
+ <span class="attribute-access-type">[RW]</span>
825
+ </a>
826
+ </div>
827
+
828
+ <div class="method-description">
829
+
830
+
831
+
832
+
833
+ </div>
834
+ </div>
835
+
836
+ <div id="attribute-i-keywords" class="method-detail anchor-link">
837
+ <div class="method-heading attribute-method-heading">
838
+ <a href="#attribute-i-keywords" title="Link to this attribute">
839
+ <span class="method-name">keywords</span>
840
+ <span class="attribute-access-type">[RW]</span>
841
+ </a>
842
+ </div>
843
+
844
+ <div class="method-description">
845
+
846
+
847
+
848
+
849
+ </div>
850
+ </div>
851
+
852
+ <div id="attribute-i-landingpage" class="method-detail anchor-link">
853
+ <div class="method-heading attribute-method-heading">
854
+ <a href="#attribute-i-landingpage" title="Link to this attribute">
855
+ <span class="method-name">landingpage</span>
856
+ <span class="attribute-access-type">[RW]</span>
857
+ </a>
858
+ </div>
859
+
860
+ <div class="method-description">
861
+
862
+
863
+
864
+
865
+ </div>
866
+ </div>
867
+
868
+ <div id="attribute-i-license" class="method-detail anchor-link">
869
+ <div class="method-heading attribute-method-heading">
870
+ <a href="#attribute-i-license" title="Link to this attribute">
871
+ <span class="method-name">license</span>
872
+ <span class="attribute-access-type">[RW]</span>
873
+ </a>
874
+ </div>
875
+
876
+ <div class="method-description">
877
+
878
+
879
+
880
+
881
+ </div>
882
+ </div>
883
+
884
+ <div id="attribute-i-metric" class="method-detail anchor-link">
885
+ <div class="method-heading attribute-method-heading">
886
+ <a href="#attribute-i-metric" title="Link to this attribute">
887
+ <span class="method-name">metric</span>
888
+ <span class="attribute-access-type">[RW]</span>
889
+ </a>
890
+ </div>
891
+
892
+ <div class="method-description">
893
+
894
+
895
+
896
+
897
+ </div>
898
+ </div>
899
+
900
+ <div id="attribute-i-organizations" class="method-detail anchor-link">
901
+ <div class="method-heading attribute-method-heading">
902
+ <a href="#attribute-i-organizations" title="Link to this attribute">
903
+ <span class="method-name">organizations</span>
904
+ <span class="attribute-access-type">[RW]</span>
905
+ </a>
906
+ </div>
907
+
908
+ <div class="method-description">
909
+
910
+
911
+
912
+
913
+ </div>
914
+ </div>
915
+
916
+ <div id="attribute-i-protocol" class="method-detail anchor-link">
917
+ <div class="method-heading attribute-method-heading">
918
+ <a href="#attribute-i-protocol" title="Link to this attribute">
919
+ <span class="method-name">protocol</span>
920
+ <span class="attribute-access-type">[RW]</span>
921
+ </a>
922
+ </div>
923
+
924
+ <div class="method-description">
925
+
926
+
927
+
928
+
929
+ </div>
930
+ </div>
931
+
932
+ <div id="attribute-i-supportedby" class="method-detail anchor-link">
933
+ <div class="method-heading attribute-method-heading">
934
+ <a href="#attribute-i-supportedby" title="Link to this attribute">
935
+ <span class="method-name">supportedby</span>
936
+ <span class="attribute-access-type">[RW]</span>
937
+ </a>
938
+ </div>
939
+
940
+ <div class="method-description">
941
+
942
+
943
+
944
+
945
+ </div>
946
+ </div>
947
+
948
+ <div id="attribute-i-testid" class="method-detail anchor-link">
949
+ <div class="method-heading attribute-method-heading">
950
+ <a href="#attribute-i-testid" title="Link to this attribute">
951
+ <span class="method-name">testid</span>
952
+ <span class="attribute-access-type">[RW]</span>
953
+ </a>
954
+ </div>
955
+
956
+ <div class="method-description">
957
+
958
+
959
+
960
+
961
+ </div>
962
+ </div>
963
+
964
+ <div id="attribute-i-testname" class="method-detail anchor-link">
965
+ <div class="method-heading attribute-method-heading">
966
+ <a href="#attribute-i-testname" title="Link to this attribute">
967
+ <span class="method-name">testname</span>
968
+ <span class="attribute-access-type">[RW]</span>
969
+ </a>
970
+ </div>
971
+
972
+ <div class="method-description">
973
+
974
+
975
+
976
+
977
+ </div>
978
+ </div>
979
+
980
+ <div id="attribute-i-testversion" class="method-detail anchor-link">
981
+ <div class="method-heading attribute-method-heading">
982
+ <a href="#attribute-i-testversion" title="Link to this attribute">
983
+ <span class="method-name">testversion</span>
984
+ <span class="attribute-access-type">[RW]</span>
985
+ </a>
986
+ </div>
987
+
988
+ <div class="method-description">
989
+
990
+
991
+
992
+
993
+ </div>
994
+ </div>
995
+
996
+ <div id="attribute-i-themes" class="method-detail anchor-link">
997
+ <div class="method-heading attribute-method-heading">
998
+ <a href="#attribute-i-themes" title="Link to this attribute">
999
+ <span class="method-name">themes</span>
1000
+ <span class="attribute-access-type">[RW]</span>
1001
+ </a>
1002
+ </div>
1003
+
1004
+ <div class="method-description">
1005
+
1006
+
1007
+
1008
+
1009
+ </div>
1010
+ </div>
1011
+
1012
+ </section>
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+ <section id="public-class-untitled-method-details" class="method-section anchor-link">
1020
+ <header>
1021
+ <h3 id="public-class-untitled-methods"><a href="#public-class-untitled-methods">Public Class Methods</a></h3>
1022
+ </header>
1023
+
1024
+
1025
+ <div id="method-c-new" class="method-detail anchor-link ">
1026
+ <div class="method-header">
1027
+
1028
+ <div class="method-heading">
1029
+ <a href="#method-c-new" title="Link to this method">
1030
+ <span class="method-name">new</span>
1031
+ <span class="method-args">(meta:)</span>
1032
+ </a>
1033
+ </div>
1034
+
1035
+ </div>
1036
+
1037
+
1038
+ <div class="method-controls">
1039
+ <details class="method-source-toggle">
1040
+ <summary>Source</summary>
1041
+ </details>
1042
+ </div>
1043
+ <div class="method-source-code" id="new-source">
1044
+ <pre class="ruby"><span class="ruby-comment"># File lib/dcat_metadata.rb, line 65</span>
1045
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-value">meta:</span>)
1046
+ <span class="ruby-identifier">indics</span> = [<span class="ruby-identifier">meta</span>[<span class="ruby-value">:indicators</span>]] <span class="ruby-keyword">unless</span> <span class="ruby-identifier">meta</span>[<span class="ruby-value">:indicators</span>].<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
1047
+ <span class="ruby-ivar">@indicators</span> = <span class="ruby-identifier">indics</span>
1048
+ <span class="ruby-ivar">@testid</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:testid</span>]
1049
+ <span class="ruby-ivar">@testname</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:testname</span>]
1050
+ <span class="ruby-ivar">@metric</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:metric</span>]
1051
+ <span class="ruby-ivar">@description</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:description</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&quot;No description provided&quot;</span>
1052
+ <span class="ruby-ivar">@keywords</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:keywords</span>] <span class="ruby-operator">||</span> []
1053
+ <span class="ruby-ivar">@keywords</span> = [<span class="ruby-ivar">@keywords</span>] <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@keywords</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
1054
+ <span class="ruby-ivar">@creator</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:creator</span>]
1055
+ <span class="ruby-ivar">@end_desc</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:end_desc</span>]
1056
+ <span class="ruby-ivar">@end_url</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:end_url</span>]
1057
+ <span class="ruby-ivar">@dctype</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:dctype</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&quot;http://edamontology.org/operation_2428&quot;</span>
1058
+ <span class="ruby-ivar">@supportedby</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:supportedby</span>] <span class="ruby-operator">||</span> [<span class="ruby-string">&quot;https://tools.ostrails.eu/champion&quot;</span>]
1059
+ <span class="ruby-ivar">@applicationarea</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:applicationarea</span>] <span class="ruby-operator">||</span> [<span class="ruby-string">&quot;http://www.fairsharing.org/ontology/subject/SRAO_0000401&quot;</span>]
1060
+ <span class="ruby-ivar">@isapplicablefor</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:isapplicablefor</span>] <span class="ruby-operator">||</span> [<span class="ruby-string">&quot;https://schema.org/Dataset&quot;</span>]
1061
+ <span class="ruby-ivar">@landingpage</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:landingPage</span>] <span class="ruby-operator">||</span> <span class="ruby-ivar">@end_url</span>
1062
+ <span class="ruby-ivar">@license</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:license</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&quot;No License&quot;</span>
1063
+ <span class="ruby-ivar">@themes</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:themes</span>] <span class="ruby-operator">||</span> []
1064
+ <span class="ruby-ivar">@themes</span> = [<span class="ruby-ivar">@themes</span>] <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@themes</span>.<span class="ruby-identifier">is_a?</span> <span class="ruby-constant">Array</span>
1065
+ <span class="ruby-ivar">@testversion</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:testversion</span>] <span class="ruby-operator">||</span> <span class="ruby-string">&quot;unversioned&quot;</span>
1066
+ <span class="ruby-ivar">@organizations</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:organizations</span>] <span class="ruby-operator">||</span> []
1067
+ <span class="ruby-ivar">@individuals</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:individuals</span>] <span class="ruby-operator">||</span> []
1068
+ <span class="ruby-ivar">@protocol</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:protocol</span>]
1069
+ <span class="ruby-ivar">@host</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:host</span>]
1070
+ <span class="ruby-ivar">@basePath</span> = <span class="ruby-identifier">meta</span>[<span class="ruby-value">:basePath</span>]
1071
+ <span class="ruby-identifier">cleanhost</span> = <span class="ruby-ivar">@host</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&quot;/&quot;</span>, <span class="ruby-string">&quot;&quot;</span>)
1072
+ <span class="ruby-identifier">cleanpath</span> = <span class="ruby-ivar">@basePath</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&quot;/&quot;</span>, <span class="ruby-string">&quot;&quot;</span>) <span class="ruby-comment"># TODO: this needs to check only leading and trailing! NOt internal...</span>
1073
+ <span class="ruby-identifier">endpointpath</span> = <span class="ruby-string">&quot;assess/test&quot;</span>
1074
+ <span class="ruby-ivar">@end_url</span> = <span class="ruby-node">&quot;#{protocol}://#{cleanhost}/#{cleanpath}/#{endpointpath}/#{testid}&quot;</span>
1075
+ <span class="ruby-ivar">@end_desc</span> = <span class="ruby-node">&quot;#{protocol}://#{cleanhost}/#{cleanpath}/#{testid}/api&quot;</span>
1076
+ <span class="ruby-ivar">@identifier</span> = <span class="ruby-node">&quot;#{protocol}://#{cleanhost}/#{cleanpath}/#{testid}&quot;</span>
1077
+
1078
+ <span class="ruby-keyword">unless</span> <span class="ruby-ivar">@testid</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@testname</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@description</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@creator</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@end_desc</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@end_url</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@protocol</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@host</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-ivar">@basePath</span>
1079
+ <span class="ruby-identifier">warn</span> <span class="ruby-string">&quot;this record is invalid - it is missing one of testid testname description creator end_desc end_url protocol host basePath&quot;</span>
1080
+ <span class="ruby-keyword">end</span>
1081
+ <span class="ruby-keyword">end</span></pre>
1082
+ </div>
1083
+
1084
+
1085
+
1086
+ <div class="method-description">
1087
+
1088
+
1089
+ <p>Creates a new <a href="DCAT_Record.html"><code>DCAT_Record</code></a> from metadata hash.</p>
1090
+
1091
+ <p>@param meta [Hash] Metadata describing the FAIR test. @option meta [String] :testid Unique identifier for the test (used in URLs) @option meta [String] :testname Human-readable name/title of the test @option meta [String] :description Detailed description of what the test does @option meta [String, Array&lt;String&gt;] :keywords Keywords describing the test @option meta [String] :creator URI or literal identifying the creator @option meta [String, Array&lt;String&gt;] :indicators URIs of the FAIR indicators this test addresses @option meta [String] :metric URI of the metric this test implements @option meta [String] :license License URI for the test @option meta [String, Array&lt;String&gt;] :themes Thematic categories (DCAT themes) @option meta [String] :testversion Version of the test @option meta [Array&lt;Hash&gt;] :individuals List of contact individuals (name, email) @option meta [Array&lt;Hash&gt;] :organizations List of responsible organizations (name, url) @option meta [String] :protocol Protocol (http/https) @option meta [String] :host Hostname of the test service @option meta [String] :basePath Base path of the test service</p>
1092
+
1093
+ <p>@note Several fields have sensible defaults (e.g. <code>dctype</code>, <code>supportedby</code>, <code>applicationarea</code>).</p>
1094
+
1095
+ <pre>The +end_url+ and +identifier+ are automatically constructed from +protocol+, +host+,
1096
+ +basePath+, and +testid+.</pre>
1097
+
1098
+
1099
+ </div>
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+ </div>
1106
+
1107
+
1108
+ </section>
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+ <section id="public-instance-untitled-method-details" class="method-section anchor-link">
1117
+ <header>
1118
+ <h3 id="public-instance-untitled-methods"><a href="#public-instance-untitled-methods">Public Instance Methods</a></h3>
1119
+ </header>
1120
+
1121
+
1122
+ <div id="method-i-get_dcat" class="method-detail anchor-link ">
1123
+ <div class="method-header">
1124
+
1125
+ <div class="method-heading">
1126
+ <a href="#method-i-get_dcat" title="Link to this method">
1127
+ <span class="method-name">get_dcat</span>
1128
+ <span class="method-args">()</span>
1129
+ </a>
1130
+ </div>
1131
+
1132
+ </div>
1133
+
1134
+
1135
+ <div class="method-controls">
1136
+ <details class="method-source-toggle">
1137
+ <summary>Source</summary>
1138
+ </details>
1139
+ </div>
1140
+ <div class="method-source-code" id="get_dcat-source">
1141
+ <pre class="ruby"><span class="ruby-comment"># File lib/dcat_metadata.rb, line 117</span>
1142
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">get_dcat</span>
1143
+ <span class="ruby-identifier">schema</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocab</span><span class="ruby-operator">::</span><span class="ruby-constant">SCHEMA</span>
1144
+ <span class="ruby-identifier">dcterms</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocab</span><span class="ruby-operator">::</span><span class="ruby-constant">DC</span>
1145
+ <span class="ruby-identifier">xsd</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocab</span><span class="ruby-operator">::</span><span class="ruby-constant">XSD</span>
1146
+ <span class="ruby-identifier">dcat</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocab</span><span class="ruby-operator">::</span><span class="ruby-constant">DCAT</span>
1147
+ <span class="ruby-identifier">sio</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocabulary</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;http://semanticscience.org/resource/&quot;</span>)
1148
+ <span class="ruby-identifier">ftr</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocabulary</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;https://w3id.org/ftr#&quot;</span>)
1149
+ <span class="ruby-identifier">dqv</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocabulary</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;http://www.w3.org/ns/dqv#&quot;</span>)
1150
+ <span class="ruby-identifier">vcard</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocabulary</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;http://www.w3.org/2006/vcard/ns#&quot;</span>)
1151
+ <span class="ruby-identifier">dpv</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocabulary</span>.<span class="ruby-identifier">new</span>(<span class="ruby-string">&quot;https://w3id.org/dpv#&quot;</span>)
1152
+
1153
+ <span class="ruby-identifier">g</span> = <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Graph</span>.<span class="ruby-identifier">new</span>
1154
+ <span class="ruby-comment"># me = &quot;#{identifier}/about&quot; # at the hackathon we decided that the test id would return the metadata</span>
1155
+ <span class="ruby-comment"># so now there is no need for /about</span>
1156
+ <span class="ruby-identifier">me</span> = <span class="ruby-node">&quot;#{identifier}&quot;</span>
1157
+
1158
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-constant">RDF</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-constant">DataService</span>, <span class="ruby-identifier">g</span>)
1159
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-constant">RDF</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">ftr</span>.<span class="ruby-constant">Test</span>, <span class="ruby-identifier">g</span>)
1160
+
1161
+ <span class="ruby-comment"># triplify tests and rejects anything that is empty or nil --&gt; SAFE</span>
1162
+ <span class="ruby-comment"># Test Unique Identifier dcterms:identifier Literal</span>
1163
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcterms</span>.<span class="ruby-identifier">identifier</span>, <span class="ruby-identifier">identifier</span>.<span class="ruby-identifier">to_s</span>, <span class="ruby-identifier">g</span>, <span class="ruby-value">datatype:</span> <span class="ruby-identifier">xsd</span>.<span class="ruby-identifier">string</span>)
1164
+
1165
+ <span class="ruby-comment"># Title/Name of the test dcterms:title Literal</span>
1166
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcterms</span>.<span class="ruby-identifier">title</span>, <span class="ruby-identifier">testname</span>, <span class="ruby-identifier">g</span>)
1167
+
1168
+ <span class="ruby-comment"># Description dcterms:description Literal</span>
1169
+ <span class="ruby-comment"># descriptions.each do |d|</span>
1170
+ <span class="ruby-comment"># triplify(me, dcterms.description, d, g)</span>
1171
+ <span class="ruby-comment"># end</span>
1172
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcterms</span>.<span class="ruby-identifier">description</span>, <span class="ruby-identifier">description</span>, <span class="ruby-identifier">g</span>)
1173
+
1174
+ <span class="ruby-comment"># Keywords dcat:keyword Literal</span>
1175
+ <span class="ruby-identifier">keywords</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">kw</span><span class="ruby-operator">|</span>
1176
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">keyword</span>, <span class="ruby-identifier">kw</span>, <span class="ruby-identifier">g</span>)
1177
+ <span class="ruby-keyword">end</span>
1178
+
1179
+ <span class="ruby-comment"># Test creator dcterms:creator dcat:Agent (URI)</span>
1180
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcterms</span>.<span class="ruby-identifier">creator</span>, <span class="ruby-identifier">creator</span>, <span class="ruby-identifier">g</span>)
1181
+
1182
+ <span class="ruby-comment"># Dimension ftr:indicator</span>
1183
+ <span class="ruby-identifier">indicators</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">ind</span><span class="ruby-operator">|</span>
1184
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dqv</span>.<span class="ruby-identifier">inDimension</span>, <span class="ruby-identifier">ind</span>, <span class="ruby-identifier">g</span>)
1185
+ <span class="ruby-keyword">end</span>
1186
+
1187
+ <span class="ruby-comment"># API description dcat:endpointDescription rdfs:Resource</span>
1188
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">endpointDescription</span>, <span class="ruby-identifier">end_desc</span>, <span class="ruby-identifier">g</span>)
1189
+
1190
+ <span class="ruby-comment"># API URL dcat:endpointURL rdfs:Resource</span>
1191
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">endpointURL</span>, <span class="ruby-identifier">end_url</span>, <span class="ruby-identifier">g</span>)
1192
+
1193
+ <span class="ruby-comment"># API URL dcat:landingPage rdfs:Resource</span>
1194
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">landingPage</span>, <span class="ruby-identifier">landingpage</span>, <span class="ruby-identifier">g</span>)
1195
+
1196
+ <span class="ruby-comment"># Source of the test codemeta:hasSourceCode/schema:codeRepository/ doap:repository schema:SoftwareSourceCode/URL</span>
1197
+ <span class="ruby-comment"># TODO</span>
1198
+ <span class="ruby-comment"># FAIRChampion::Output.triplify(me, dcat.endpointDescription, end_desc, g)</span>
1199
+
1200
+ <span class="ruby-comment"># Functional Descriptor/Operation dcterms:type xsd:anyURI</span>
1201
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcterms</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">dctype</span>, <span class="ruby-identifier">g</span>)
1202
+
1203
+ <span class="ruby-comment"># License dcterms:license xsd:anyURI</span>
1204
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcterms</span>.<span class="ruby-identifier">license</span>, <span class="ruby-identifier">license</span>, <span class="ruby-identifier">g</span>)
1205
+
1206
+ <span class="ruby-comment"># Semantic Annotation dcat:theme xsd:anyURI</span>
1207
+ <span class="ruby-identifier">themes</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">theme</span><span class="ruby-operator">|</span>
1208
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">theme</span>, <span class="ruby-identifier">theme</span>, <span class="ruby-identifier">g</span>)
1209
+ <span class="ruby-keyword">end</span>
1210
+
1211
+ <span class="ruby-comment"># Version dcat:version rdfs:Literal</span>
1212
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">Vocab</span><span class="ruby-operator">::</span><span class="ruby-constant">DCAT</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;version&quot;</span>, <span class="ruby-identifier">testversion</span>, <span class="ruby-identifier">g</span>)
1213
+
1214
+ <span class="ruby-comment"># # Version notes adms:versionNotes rdfs:Literal</span>
1215
+ <span class="ruby-comment"># FAIRChampion::Output.triplify(me, dcat.version, version, g)</span>
1216
+
1217
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">sio</span>[<span class="ruby-string">&quot;SIO_000233&quot;</span>], <span class="ruby-identifier">metric</span>, <span class="ruby-identifier">g</span>) <span class="ruby-comment"># is implementation of</span>
1218
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">metric</span>, <span class="ruby-constant">RDF</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">dqv</span>.<span class="ruby-constant">Metric</span>, <span class="ruby-identifier">g</span>) <span class="ruby-comment"># is implementation of</span>
1219
+
1220
+ <span class="ruby-comment"># Responsible dcat:contactPoint dcat:Kind (includes Individual/Organization)</span>
1221
+ <span class="ruby-identifier">individuals</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span>
1222
+ <span class="ruby-comment"># i = {name: &quot;Mark WAilkkinson&quot;, &quot;email&quot;: &quot;asmlkfj;askjf@a;lksdjfas&quot;}</span>
1223
+ <span class="ruby-identifier">guid</span> = <span class="ruby-constant">SecureRandom</span>.<span class="ruby-identifier">uuid</span>
1224
+ <span class="ruby-identifier">cp</span> = <span class="ruby-node">&quot;urn:fairchampion:testmetadata:individual#{guid}&quot;</span>
1225
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">contactPoint</span>, <span class="ruby-identifier">cp</span>, <span class="ruby-identifier">g</span>)
1226
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">cp</span>, <span class="ruby-constant">RDF</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">vcard</span>.<span class="ruby-constant">Individual</span>, <span class="ruby-identifier">g</span>)
1227
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">cp</span>, <span class="ruby-identifier">vcard</span>.<span class="ruby-identifier">fn</span>, <span class="ruby-identifier">i</span>[<span class="ruby-string">&quot;name&quot;</span>], <span class="ruby-identifier">g</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">i</span>[<span class="ruby-string">&quot;name&quot;</span>]
1228
+ <span class="ruby-keyword">next</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">i</span>[<span class="ruby-string">&quot;email&quot;</span>]
1229
+
1230
+ <span class="ruby-identifier">email</span> = <span class="ruby-identifier">i</span>[<span class="ruby-string">&quot;email&quot;</span>].<span class="ruby-identifier">to_s</span>
1231
+ <span class="ruby-identifier">email</span> = <span class="ruby-node">&quot;mailto:#{email}&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">email</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp">/mailto:/</span>
1232
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">cp</span>, <span class="ruby-identifier">vcard</span>.<span class="ruby-identifier">hasEmail</span>, <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">email</span>), <span class="ruby-identifier">g</span>)
1233
+ <span class="ruby-keyword">end</span>
1234
+
1235
+ <span class="ruby-identifier">organizations</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">o</span><span class="ruby-operator">|</span>
1236
+ <span class="ruby-comment"># i = {name: &quot;CBGP&quot;, &quot;url&quot;: &quot;https://dbdsf.orhf&quot;}</span>
1237
+ <span class="ruby-identifier">guid</span> = <span class="ruby-constant">SecureRandom</span>.<span class="ruby-identifier">uuid</span>
1238
+ <span class="ruby-identifier">cp</span> = <span class="ruby-node">&quot;urn:fairchampion:testmetadata:org:#{guid}&quot;</span>
1239
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dcat</span>.<span class="ruby-identifier">contactPoint</span>, <span class="ruby-identifier">cp</span>, <span class="ruby-identifier">g</span>)
1240
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">cp</span>, <span class="ruby-constant">RDF</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">vcard</span>.<span class="ruby-constant">Organization</span>, <span class="ruby-identifier">g</span>)
1241
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">cp</span>, <span class="ruby-identifier">vcard</span>[<span class="ruby-string">&quot;organization-name&quot;</span>], <span class="ruby-identifier">o</span>[<span class="ruby-string">&quot;name&quot;</span>], <span class="ruby-identifier">g</span>)
1242
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">cp</span>, <span class="ruby-identifier">vcard</span>.<span class="ruby-identifier">url</span>, <span class="ruby-constant">RDF</span><span class="ruby-operator">::</span><span class="ruby-constant">URI</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">o</span>[<span class="ruby-string">&quot;url&quot;</span>].<span class="ruby-identifier">to_s</span>), <span class="ruby-identifier">g</span>)
1243
+ <span class="ruby-keyword">end</span>
1244
+
1245
+ <span class="ruby-identifier">supportedby</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">tool</span><span class="ruby-operator">|</span>
1246
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">ftr</span>.<span class="ruby-identifier">supportedBy</span>, <span class="ruby-identifier">tool</span>, <span class="ruby-identifier">g</span>)
1247
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">tool</span>, <span class="ruby-constant">RDF</span>.<span class="ruby-identifier">type</span>, <span class="ruby-identifier">schema</span>.<span class="ruby-constant">SoftwareApplication</span>, <span class="ruby-identifier">g</span>)
1248
+ <span class="ruby-keyword">end</span>
1249
+
1250
+ <span class="ruby-identifier">applicationarea</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">domain</span><span class="ruby-operator">|</span>
1251
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">ftr</span>.<span class="ruby-identifier">applicationArea</span>, <span class="ruby-identifier">domain</span>, <span class="ruby-identifier">g</span>)
1252
+ <span class="ruby-keyword">end</span>
1253
+ <span class="ruby-identifier">isapplicablefor</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">digitalo</span><span class="ruby-operator">|</span>
1254
+ <span class="ruby-identifier">triplify</span>(<span class="ruby-identifier">me</span>, <span class="ruby-identifier">dpv</span>.<span class="ruby-identifier">isApplicableFor</span>, <span class="ruby-identifier">digitalo</span>, <span class="ruby-identifier">g</span>)
1255
+ <span class="ruby-keyword">end</span>
1256
+
1257
+ <span class="ruby-identifier">g</span>
1258
+ <span class="ruby-keyword">end</span></pre>
1259
+ </div>
1260
+
1261
+
1262
+
1263
+ <div class="method-description">
1264
+
1265
+
1266
+ <p>Returns an RDF::Graph containing the DCAT metadata for this test.</p>
1267
+
1268
+ <p>The graph describes the test as both a <code>dcat:DataService</code> and an <code>ftr:Test</code>. It includes:</p>
1269
+ <ul><li>
1270
+ <p>Core DCAT properties (identifier, title, description, keywords, landing page, etc.)</p>
1271
+ </li><li>
1272
+ <p>FAIR-specific extensions via the FTR vocabulary</p>
1273
+ </li><li>
1274
+ <p>Contact points (individuals and organizations) using vCard</p>
1275
+ </li><li>
1276
+ <p>Link to the metric it implements (SIO)</p>
1277
+ </li><li>
1278
+ <p>Supported-by relationships, application areas, and applicability statements</p>
1279
+ </li></ul>
1280
+
1281
+ <p>@return [RDF::Graph] RDF graph with the complete DCAT record</p>
1282
+
1283
+
1284
+ </div>
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+ </div>
1291
+
1292
+
1293
+ </section>
1294
+
1295
+
1296
+
1297
+
1298
+ </section>
1299
+
1300
+ </main>
1301
+
1302
+ <aside class="table-of-contents" role="complementary" aria-label="Table of Contents">
1303
+ <div class="toc-sticky">
1304
+ <h3 class="toc-heading">On This Page</h3>
1305
+ <nav class="toc-nav" id="toc-nav" aria-label="Page sections">
1306
+ <!-- Generated by JavaScript based on page headings -->
1307
+ </nav>
1308
+ </div>
1309
+ </aside>
1310
+
1311
+
1312
+ <footer class="site-footer">
1313
+
1314
+
1315
+ <div class="footer-bottom">
1316
+ <p>
1317
+ Generated by <a href="https://ruby.github.io/rdoc/">RDoc 7.2.0</a>
1318
+ using the Aliki theme by <a href="http://st0012.dev">Stan Lo</a>
1319
+ </p>
1320
+ </div>
1321
+ </footer>
1322
+
1323
+ </body>
1324
+