bolognese 1.9.14 → 1.9.18

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6ba10d4692952a5c5c4032f160b97fbbdaaf4bfe29bb687a34295bf419ffa8bb
4
- data.tar.gz: 485add29ad628c4ac8ecdf019c42037db3edfa6f7222e5750691b3fe6d6591bf
3
+ metadata.gz: 53a45d740ac30bb235316e61ad8650ae88bd789ca1bafcc09a004b1ac9bf76cc
4
+ data.tar.gz: 771f8867608f7b3984861f10ceecc0b48e8ac17763f1b936e1d9f79002e16f13
5
5
  SHA512:
6
- metadata.gz: 410a666e4784f93feed5053e7c187e1022e2d68d38004cf28e210962a1d21a432ed472bc049b256daf117180fb77f5dcb3c1730f1c43babb322935ce0be17647
7
- data.tar.gz: 550841a2e9ed10210b083702f2a25b0ef5fa968753a39b76d00fa3f63b1817366e52001e19c14fdfeb7a6e46ce5c3df628c42d1f9906aac9227762ea5417363f
6
+ metadata.gz: 1268a2e57636ec811b9004143c7092325e249050ffa4669119491e290604b5cc14c3e13983f2014196919b5bb97bb197e76c7620ced11dc34103e601b923ecb5
7
+ data.tar.gz: fc1a9df23987eb69d5797102fb537bcbe65a5f565d19413e7b018af8442effa295cbaf5efeba04450ac8ae017d8b017141f009694aabde102114bfccafcba5d1
data/.gitignore CHANGED
@@ -57,3 +57,4 @@ coverage/
57
57
  !.env.travis
58
58
 
59
59
  .vscode
60
+ .ruby-version
data/CHANGELOG.md CHANGED
@@ -1,5 +1,48 @@
1
1
  # Changelog
2
2
 
3
+ ## [Unreleased](https://github.com/datacite/bolognese/tree/HEAD)
4
+
5
+ [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.18...HEAD)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - Fix related items handling to not include elements when they are blank [\#140](https://github.com/datacite/bolognese/issues/140)
10
+ - Related Items error out if RelatedItemIdentifier is nil [\#139](https://github.com/datacite/bolognese/issues/139)
11
+
12
+ ## [1.9.18](https://github.com/datacite/bolognese/tree/1.9.18) (2022-10-11)
13
+
14
+ [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.17...1.9.18)
15
+
16
+ **Merged pull requests:**
17
+
18
+ - Fix relatedItems handling [\#144](https://github.com/datacite/bolognese/pull/144) ([digitaldogsbody](https://github.com/digitaldogsbody))
19
+ - Fixes normalization behavior that omitted non-URL funding identifiers when reading from DataCite XML. Adds normalization for Crossref Funder ID and ROR funderIdentifierTypes. [\#143](https://github.com/datacite/bolognese/pull/143) ([codycooperross](https://github.com/codycooperross))
20
+ - Including a schemeURI with a nameIdentifier that is a URL will concat… [\#137](https://github.com/datacite/bolognese/pull/137) ([codycooperross](https://github.com/codycooperross))
21
+
22
+ ## [1.9.17](https://github.com/datacite/bolognese/tree/1.9.17) (2022-07-04)
23
+
24
+ [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.16...1.9.17)
25
+
26
+ ## [1.9.16](https://github.com/datacite/bolognese/tree/1.9.16) (2022-07-04)
27
+
28
+ [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.15...1.9.16)
29
+
30
+ ## [1.9.15](https://github.com/datacite/bolognese/tree/1.9.15) (2022-07-04)
31
+
32
+ [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.14...1.9.15)
33
+
34
+ **Merged pull requests:**
35
+
36
+ - Fix issue Bracco 521 [\#138](https://github.com/datacite/bolognese/pull/138) ([richardhallett](https://github.com/richardhallett))
37
+
38
+ ## [1.9.14](https://github.com/datacite/bolognese/tree/1.9.14) (2022-05-25)
39
+
40
+ [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.13...1.9.14)
41
+
42
+ **Merged pull requests:**
43
+
44
+ - Update critical dependencies [\#134](https://github.com/datacite/bolognese/pull/134) ([jrhoads](https://github.com/jrhoads))
45
+
3
46
  ## [1.9.13](https://github.com/datacite/bolognese/tree/1.9.13) (2022-01-06)
4
47
 
5
48
  [Full Changelog](https://github.com/datacite/bolognese/compare/1.9.12...1.9.13)
@@ -116,6 +159,7 @@
116
159
 
117
160
  **Merged pull requests:**
118
161
 
162
+ - Support returning single geoLocationPolygon [\#111](https://github.com/datacite/bolognese/pull/111) ([richardhallett](https://github.com/richardhallett))
119
163
  - Change detection for crosscite format [\#107](https://github.com/datacite/bolognese/pull/107) ([richardhallett](https://github.com/richardhallett))
120
164
  - Add support for multiple geolocation polygons [\#106](https://github.com/datacite/bolognese/pull/106) ([richardhallett](https://github.com/richardhallett))
121
165
  - Support schema 4 4 [\#105](https://github.com/datacite/bolognese/pull/105) ([richardhallett](https://github.com/richardhallett))
@@ -187,7 +231,6 @@
187
231
 
188
232
  **Merged pull requests:**
189
233
 
190
- - Support returning single geoLocationPolygon [\#111](https://github.com/datacite/bolognese/pull/111) ([richardhallett](https://github.com/richardhallett))
191
234
  - Allow some pre-1.0 versions of thor [\#102](https://github.com/datacite/bolognese/pull/102) ([cjcolvar](https://github.com/cjcolvar))
192
235
 
193
236
  ## [1.8.5](https://github.com/datacite/bolognese/tree/1.8.5) (2020-07-30)
@@ -339,6 +382,10 @@
339
382
 
340
383
  [Full Changelog](https://github.com/datacite/bolognese/compare/1.5.17...1.5.18)
341
384
 
385
+ **Merged pull requests:**
386
+
387
+ - fixes missing version attribute when data comes from datacite\_json [\#85](https://github.com/datacite/bolognese/pull/85) ([kjgarza](https://github.com/kjgarza))
388
+
342
389
  ## [1.5.17](https://github.com/datacite/bolognese/tree/1.5.17) (2020-04-18)
343
390
 
344
391
  [Full Changelog](https://github.com/datacite/bolognese/compare/1.5.16...1.5.17)
@@ -445,7 +492,6 @@
445
492
 
446
493
  **Merged pull requests:**
447
494
 
448
- - fixes missing version attribute when data comes from datacite\_json [\#85](https://github.com/datacite/bolognese/pull/85) ([kjgarza](https://github.com/kjgarza))
449
495
  - Bump rack from 2.0.7 to 2.0.8 [\#79](https://github.com/datacite/bolognese/pull/79) ([dependabot[bot]](https://github.com/apps/dependabot))
450
496
 
451
497
  ## [v.1.4.1](https://github.com/datacite/bolognese/tree/v.1.4.1) (2019-12-15)
@@ -1334,15 +1380,15 @@
1334
1380
 
1335
1381
  ## [v.0.9.70](https://github.com/datacite/bolognese/tree/v.0.9.70) (2018-01-12)
1336
1382
 
1337
- [Full Changelog](https://github.com/datacite/bolognese/compare/v.0.9.69...v.0.9.70)
1383
+ [Full Changelog](https://github.com/datacite/bolognese/compare/v.0.6.69...v.0.9.70)
1338
1384
 
1339
- ## [v.0.9.69](https://github.com/datacite/bolognese/tree/v.0.9.69) (2018-01-11)
1385
+ ## [v.0.6.69](https://github.com/datacite/bolognese/tree/v.0.6.69) (2018-01-11)
1340
1386
 
1341
- [Full Changelog](https://github.com/datacite/bolognese/compare/v.0.6.69...v.0.9.69)
1387
+ [Full Changelog](https://github.com/datacite/bolognese/compare/v.0.9.69...v.0.6.69)
1342
1388
 
1343
- ## [v.0.6.69](https://github.com/datacite/bolognese/tree/v.0.6.69) (2018-01-11)
1389
+ ## [v.0.9.69](https://github.com/datacite/bolognese/tree/v.0.9.69) (2018-01-11)
1344
1390
 
1345
- [Full Changelog](https://github.com/datacite/bolognese/compare/v.0.9.68...v.0.6.69)
1391
+ [Full Changelog](https://github.com/datacite/bolognese/compare/v.0.9.68...v.0.9.69)
1346
1392
 
1347
1393
  ## [v.0.9.68](https://github.com/datacite/bolognese/tree/v.0.9.68) (2018-01-11)
1348
1394
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (1.9.14)
4
+ bolognese (1.9.18)
5
5
  activesupport (>= 4.2.5)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (>= 5.1.0)
@@ -30,7 +30,7 @@ PATH
30
30
  GEM
31
31
  remote: https://rubygems.org/
32
32
  specs:
33
- activesupport (6.1.6)
33
+ activesupport (6.1.7)
34
34
  concurrent-ruby (~> 1.0, >= 1.0.2)
35
35
  i18n (>= 1.6, < 2)
36
36
  minitest (>= 5.1)
@@ -67,7 +67,7 @@ GEM
67
67
  scanf (~> 1.0)
68
68
  sxp (~> 1.2)
69
69
  unicode-types (~> 1.7)
70
- edtf (3.0.8)
70
+ edtf (3.1.0)
71
71
  activesupport (>= 3.0, < 8.0)
72
72
  excon (0.71.1)
73
73
  faraday (0.17.5)
@@ -83,27 +83,27 @@ GEM
83
83
  tilt
84
84
  hashdiff (1.0.1)
85
85
  htmlentities (4.3.4)
86
- i18n (1.10.0)
86
+ i18n (1.12.0)
87
87
  concurrent-ruby (~> 1.0)
88
88
  iso8601 (0.9.1)
89
89
  json (2.6.2)
90
90
  json-canonicalization (0.3.0)
91
- json-ld (3.2.1)
91
+ json-ld (3.2.3)
92
92
  htmlentities (~> 4.3)
93
93
  json-canonicalization (~> 0.3)
94
94
  link_header (~> 0.0, >= 0.0.8)
95
95
  multi_json (~> 1.15)
96
96
  rack (~> 2.2)
97
- rdf (~> 3.2)
98
- json-ld-preloaded (3.2.0)
97
+ rdf (~> 3.2, >= 3.2.9)
98
+ json-ld-preloaded (3.2.1)
99
99
  json-ld (~> 3.2)
100
100
  rdf (~> 3.2)
101
101
  jsonlint (0.3.0)
102
102
  oj (~> 3)
103
103
  optimist (~> 3)
104
- latex-decode (0.3.2)
104
+ latex-decode (0.4.0)
105
105
  link_header (0.0.8)
106
- loofah (2.18.0)
106
+ loofah (2.19.0)
107
107
  crass (~> 1.0.2)
108
108
  nokogiri (>= 1.5.9)
109
109
  maremma (4.9.8)
@@ -119,14 +119,14 @@ GEM
119
119
  oj_mimic_json (~> 1.0, >= 1.0.1)
120
120
  matrix (0.4.2)
121
121
  mini_portile2 (2.8.0)
122
- minitest (5.15.0)
122
+ minitest (5.16.3)
123
123
  multi_json (1.15.0)
124
- multipart-post (2.1.1)
124
+ multipart-post (2.2.3)
125
125
  namae (1.1.1)
126
126
  nokogiri (1.13.6)
127
127
  mini_portile2 (~> 2.8.0)
128
128
  racc (~> 1.4)
129
- oj (3.13.13)
129
+ oj (3.13.21)
130
130
  oj_mimic_json (1.0.1)
131
131
  optimist (3.0.1)
132
132
  postrank-uri (1.0.24)
@@ -135,13 +135,13 @@ GEM
135
135
  public_suffix (>= 2.0.0, < 2.1)
136
136
  public_suffix (2.0.5)
137
137
  racc (1.6.0)
138
- rack (2.2.3)
138
+ rack (2.2.3.1)
139
139
  rack-test (0.8.3)
140
140
  rack (>= 1.0, < 3)
141
141
  rake (12.3.3)
142
- rdf (3.2.7)
142
+ rdf (3.2.9)
143
143
  link_header (~> 0.0, >= 0.0.8)
144
- rdf-aggregate-repo (3.2.0)
144
+ rdf-aggregate-repo (3.2.1)
145
145
  rdf (~> 3.2)
146
146
  rdf-rdfa (3.2.0)
147
147
  haml (~> 5.2)
@@ -155,10 +155,10 @@ GEM
155
155
  rdf (~> 3.2)
156
156
  rdf-rdfa (~> 3.2)
157
157
  rdf-xsd (~> 3.2)
158
- rdf-turtle (3.2.0)
158
+ rdf-turtle (3.2.1)
159
159
  ebnf (~> 2.3)
160
160
  rdf (~> 3.2)
161
- rdf-vocab (3.2.1)
161
+ rdf-vocab (3.2.2)
162
162
  rdf (~> 3.2, >= 3.2.4)
163
163
  rdf-xsd (3.2.1)
164
164
  rdf (~> 3.2)
@@ -191,17 +191,17 @@ GEM
191
191
  rdf (~> 3.2)
192
192
  temple (0.8.2)
193
193
  thor (1.2.1)
194
- tilt (2.0.10)
195
- tzinfo (2.0.4)
194
+ tilt (2.0.11)
195
+ tzinfo (2.0.5)
196
196
  concurrent-ruby (~> 1.0)
197
- unicode-types (1.7.0)
197
+ unicode-types (1.8.0)
198
198
  unicode_utils (1.4.0)
199
199
  vcr (3.0.3)
200
200
  webmock (3.14.0)
201
201
  addressable (>= 2.8.0)
202
202
  crack (>= 0.3.2)
203
203
  hashdiff (>= 0.4.0, < 2.0.0)
204
- zeitwerk (2.5.4)
204
+ zeitwerk (2.6.1)
205
205
 
206
206
  PLATFORMS
207
207
  ruby
@@ -219,4 +219,4 @@ DEPENDENCIES
219
219
  webmock (~> 3.0, >= 3.0.1)
220
220
 
221
221
  BUNDLED WITH
222
- 2.3.14
222
+ 2.3.23
@@ -35,15 +35,15 @@ module Bolognese
35
35
  "nameIdentifier" => normalize_orcid(ni["__content__"]),
36
36
  "schemeUri" => "https://orcid.org",
37
37
  "nameIdentifierScheme" => "ORCID" }.compact
38
- elsif ni["schemeURI"].present?
38
+ elsif ni["nameIdentifierScheme"] == "ROR"
39
39
  {
40
- "nameIdentifier" => ni["schemeURI"].to_s + ni["__content__"].to_s,
41
- "schemeUri" => ni["schemeURI"].to_s,
42
- "nameIdentifierScheme" => ni["nameIdentifierScheme"] }.compact
40
+ "nameIdentifier" => normalize_ror(ni["__content__"]),
41
+ "schemeUri" => "https://ror.org",
42
+ "nameIdentifierScheme" => "ROR" }.compact
43
43
  else
44
44
  {
45
45
  "nameIdentifier" => ni["__content__"],
46
- "schemeUri" => nil,
46
+ "schemeUri" => ni.fetch("schemeURI", nil),
47
47
  "nameIdentifierScheme" => ni["nameIdentifierScheme"] }.compact
48
48
  end
49
49
  end.presence
@@ -222,19 +222,23 @@ module Bolognese
222
222
 
223
223
  xml.relatedItem(related_item["relatedItem"], attributes) do
224
224
 
225
- xml.relatedItemIdentifier(related_item["relatedItemIdentifier"]['relatedItemIdentifier'],
226
- {
227
- 'relatedItemIdentifierType' => related_item["relatedItemIdentifier"]["relatedItemIdentifierType"],
228
- 'relatedMetadataScheme' => related_item["relatedItemIdentifier"]["relatedMetadataScheme"],
229
- 'schemeURI' => related_item["relatedItemIdentifier"]["schemeURI"],
230
- 'schemeType' => related_item["relatedItemIdentifier"]["schemeType"],
231
- }.compact
232
- )
233
-
234
- xml.creators do
235
- Array.wrap(related_item['creators']).each do |au|
236
- xml.creator do
237
- insert_person(xml, au, "creator")
225
+ if related_item["relatedItemIdentifier"].present?
226
+ xml.relatedItemIdentifier(related_item["relatedItemIdentifier"]['relatedItemIdentifier'],
227
+ {
228
+ 'relatedItemIdentifierType' => related_item["relatedItemIdentifier"]["relatedItemIdentifierType"],
229
+ 'relatedMetadataScheme' => related_item["relatedItemIdentifier"]["relatedMetadataScheme"],
230
+ 'schemeURI' => related_item["relatedItemIdentifier"]["schemeURI"],
231
+ 'schemeType' => related_item["relatedItemIdentifier"]["schemeType"],
232
+ }.compact
233
+ )
234
+ end
235
+
236
+ if related_item["creators"].present?
237
+ xml.creators do
238
+ Array.wrap(related_item['creators']).each do |au|
239
+ xml.creator do
240
+ insert_person(xml, au, "creator")
241
+ end
238
242
  end
239
243
  end
240
244
  end
@@ -253,19 +257,21 @@ module Bolognese
253
257
  end
254
258
  end
255
259
 
256
- xml.publicationYear(related_item['publicationYear'])
257
- xml.volume(related_item['volume'])
258
- xml.issue(related_item['issue'])
259
- xml.number(related_item['number'], {'numberType' => related_item['numberType']}.compact)
260
- xml.firstPage(related_item['firstPage'])
261
- xml.lastPage(related_item['lastPage'])
262
- xml.publisher(related_item['publisher'])
263
- xml.edition(related_item['edition'])
264
-
265
- xml.contributors do
266
- Array.wrap(related_item["contributors"]).each do |con|
267
- xml.contributor("contributorType" => con["contributorType"] || "Other") do
268
- insert_person(xml, con, "contributor")
260
+ xml.publicationYear(related_item['publicationYear']) if related_item["publicationYear"].present?
261
+ xml.volume(related_item['volume']) if related_item["volume"].present?
262
+ xml.issue(related_item['issue']) if related_item["issue"].present?
263
+ xml.number(related_item['number'], {'numberType' => related_item['numberType']}.compact) if related_item["number"].present?
264
+ xml.firstPage(related_item['firstPage']) if related_item["firstPage"].present?
265
+ xml.lastPage(related_item['lastPage']) if related_item["lastPage"].present?
266
+ xml.publisher(related_item['publisher']) if related_item["publisher"].present?
267
+ xml.edition(related_item['edition']) if related_item["edition"].present?
268
+
269
+ if related_item["contributors"].present?
270
+ xml.contributors do
271
+ Array.wrap(related_item["contributors"]).each do |con|
272
+ xml.contributor("contributorType" => con["contributorType"] || "Other") do
273
+ insert_person(xml, con, "contributor")
274
+ end
269
275
  end
270
276
  end
271
277
  end
@@ -157,14 +157,21 @@ module Bolognese
157
157
  scheme_uri = parse_attributes(fr["funderIdentifier"], content: "schemeURI")
158
158
  funder_identifier = parse_attributes(fr["funderIdentifier"])
159
159
  funder_identifier_type = parse_attributes(fr["funderIdentifier"], content: "funderIdentifierType")
160
- if funder_identifier_type != "Other"
161
- funder_identifier = !funder_identifier.to_s.start_with?("https://","http://") && scheme_uri.present? ? normalize_id(scheme_uri + funder_identifier) : normalize_id(funder_identifier)
160
+
161
+ if funder_identifier_type == "Crossref Funder ID"
162
+ funder_identifier = validate_funder_doi(funder_identifier)
163
+ elsif funder_identifier_type == "ROR"
164
+ funder_identifier = normalize_ror(funder_identifier)
165
+ scheme_uri = "https://ror.org"
166
+ else
167
+ funder_identifier = normalize_id(funder_identifier) ? normalize_id(funder_identifier) : funder_identifier
162
168
  end
163
169
 
164
170
  {
165
171
  "funderName" => fr["funderName"],
166
172
  "funderIdentifier" => funder_identifier,
167
173
  "funderIdentifierType" => funder_identifier_type,
174
+ "schemeUri" => scheme_uri,
168
175
  "awardNumber" => parse_attributes(fr["awardNumber"]),
169
176
  "awardUri" => parse_attributes(fr["awardNumber"], content: "awardURI"),
170
177
  "awardTitle" => fr["awardTitle"] }.compact
@@ -28,11 +28,10 @@ module Bolognese
28
28
 
29
29
  url = normalize_id(id)
30
30
  response = Maremma.get(url)
31
- doc = Nokogiri::XML(response.body.fetch("data", nil), nil, 'UTF-8')
32
31
 
33
- # workaround for xhtml documents
34
- nodeset = doc.css("script")
35
- string = nodeset.find { |element| element["type"] == "application/ld+json" }
32
+ # Find the schema.org json from the html body
33
+ doc = Nokogiri::HTML(response.body.fetch("data", nil))
34
+ string = doc.at('script[type="application/ld+json"]')
36
35
  string = string.text if string.present?
37
36
 
38
37
  { "string" => string }
@@ -578,6 +578,10 @@ module Bolognese
578
578
  orcid.gsub(/[[:space:]]/, "-") if orcid.present?
579
579
  end
580
580
 
581
+ def validate_ror(ror)
582
+ Array(/^(?:(?:(?:http|https):\/\/)?ror\.org\/)?(0\w{6}\d{2})$/.match(ror)).last
583
+ end
584
+
581
585
  def validate_orcid_scheme(orcid_scheme)
582
586
  Array(/\A(http|https):\/\/(www\.)?(orcid\.org)/.match(orcid_scheme)).last
583
587
  end
@@ -659,6 +663,14 @@ module Bolognese
659
663
  "https://orcid.org/" + Addressable::URI.encode(orcid)
660
664
  end
661
665
 
666
+ def normalize_ror(ror)
667
+ ror = validate_ror(ror)
668
+ return nil unless ror.present?
669
+
670
+ # turn ROR into URL
671
+ "https://ror.org/" + Addressable::URI.encode(ror)
672
+ end
673
+
662
674
  def normalize_ids(ids: nil, relation_type: nil)
663
675
  Array.wrap(ids).select { |idx| idx["@id"].present? }.map do |idx|
664
676
  id = normalize_id(idx["@id"])
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "1.9.14"
2
+ VERSION = "1.9.18"
3
3
  end
@@ -133,7 +133,7 @@ describe Bolognese::Metadata, vcr: true do
133
133
  "familyName" => "Schumacher",
134
134
  "givenName" => "Heinrich Christian",
135
135
  "name" => "Schumacher, Heinrich Christian",
136
- "nameIdentifiers" => [{"nameIdentifier"=>"http://d-nb.info/gnd/118611593", "nameIdentifierScheme"=>"GND", "schemeUri"=>"http://d-nb.info/gnd/"}],
136
+ "nameIdentifiers" => [{"nameIdentifier"=>"118611593", "nameIdentifierScheme"=>"GND", "schemeUri"=>"http://d-nb.info/gnd/"}],
137
137
  "nameType" => "Personal")
138
138
  end
139
139
 
@@ -142,7 +142,7 @@ describe Bolognese::Metadata, vcr: true do
142
142
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
143
143
  meta = Maremma.from_xml(subject.raw).fetch("resource", {})
144
144
  response = subject.get_one_author(meta.dig("creators", "creator"))
145
- expect(response).to eq("nameType"=>"Personal", "name"=>"Dubos, Thomas", "givenName"=>"Thomas", "familyName"=>"Dubos", "affiliation" => [{"name"=>"&#201;cole Polytechnique Laboratoire de M&#233;t&#233;orologie Dynamique"}], "nameIdentifiers" => [{"nameIdentifier"=>"http://isni.org/isni/0000 0003 5752 6882", "nameIdentifierScheme"=>"ISNI", "schemeUri"=>"http://isni.org/isni/"}, {"nameIdentifier"=>"https://orcid.org/0000-0003-4514-4211", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}])
145
+ expect(response).to eq("nameType"=>"Personal", "name"=>"Dubos, Thomas", "givenName"=>"Thomas", "familyName"=>"Dubos", "affiliation" => [{"name"=>"&#201;cole Polytechnique Laboratoire de M&#233;t&#233;orologie Dynamique"}], "nameIdentifiers" => [{"nameIdentifier"=>"0000 0003 5752 6882", "nameIdentifierScheme"=>"ISNI", "schemeUri"=>"http://isni.org/isni/"}, {"nameIdentifier"=>"https://orcid.org/0000-0003-4514-4211", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}])
146
146
  end
147
147
 
148
148
  it "nameType organizational" do
@@ -160,6 +160,18 @@ describe Bolognese::Metadata, vcr: true do
160
160
  end
161
161
  end
162
162
 
163
+ it "has ROR nameIdentifiers" do
164
+ input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
165
+ subject = Bolognese::Metadata.new(input: input, from: "datacite")
166
+ expect(subject.creators[1]).to eq("nameType"=>"Organizational", "name"=>"Gump South Pacific Research Station", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04sk0et52", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
167
+ expect(subject.creators[2]).to eq("nameType"=>"Organizational", "name"=>"University Of Vic", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/006zjws59", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
168
+ expect(subject.creators[3]).to eq("nameType"=>"Organizational", "name"=>"University Of Kivu", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/01qfhxr31", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
169
+ expect(subject.creators[4]).to eq("nameType"=>"Organizational", "name"=>"សាកលវិទ្យាល័យកម្ពុជា", "nameIdentifiers"=> [{"nameIdentifier"=>"http://ror.org/025e3rc84", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
170
+ expect(subject.creators[5]).to eq("nameType"=>"Organizational", "name"=>"جامعة زاخۆ", "nameIdentifiers"=> [{"nameIdentifier"=>"05sd1pz50", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
171
+ expect(subject.contributors.first).to eq("nameType"=>"Organizational", "name"=>" Nawroz University ", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04gp75d48", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[], "contributorType"=>"Producer")
172
+ expect(subject.contributors.last).to eq("nameType"=>"Organizational", "name"=>"University Of Greenland (Https://Www.Uni.Gl/)", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/00t5j6b61", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}],"affiliation"=>[], "contributorType"=>"Sponsor")
173
+ end
174
+
163
175
  context "authors_as_string" do
164
176
  let(:author_with_organization) { [{"type"=>"Person",
165
177
  "id"=>"http://orcid.org/0000-0003-0077-4738",
@@ -175,4 +175,29 @@ describe Bolognese::Metadata, vcr: true do
175
175
  expect(response.dig("descriptions", "description")).to eq("descriptionType" => "Abstract", "__content__" => "Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for...")
176
176
  end
177
177
  end
178
+
179
+ context "insert_related_items" do
180
+ let(:input) { IO.read(fixture_path + 'datacite-example-relateditems.xml') }
181
+ it "insert" do
182
+ subject = Bolognese::Metadata.new(input: input, from: "datacite")
183
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_related_items(xml) }.to_xml
184
+ response = Maremma.from_xml(xml)
185
+ expect(response.dig("relatedItems", "relatedItem")).to eq(
186
+ "relationType" => "IsPublishedIn",
187
+ "relatedItemType" => "Journal",
188
+ "relatedItemIdentifier" => {"__content__"=>"10.5072/john-smiths-1234", "relatedItemIdentifierType"=>"DOI", "relatedMetadataScheme"=>"citeproc+json", "schemeType"=>"URL", "schemeURI"=>"https://github.com/citation-style-language/schema/raw/master/csl-data.json"},
189
+ "creators" => {"creator"=>{"creatorName"=>{"__content__"=>"Smith, John", "nameType"=>"Personal"}, "familyName"=>"Smith", "givenName"=>"John"}},
190
+ "titles" => {"title"=>["Understanding the fictional John Smith", {"__content__"=>"A detailed look", "titleType"=>"Subtitle"}]},
191
+ "publicationYear" => "1776",
192
+ "volume" => "776",
193
+ "issue" => "1",
194
+ "number" => {"__content__"=>"1", "numberType"=>"Chapter"},
195
+ "firstPage" => "50",
196
+ "lastPage" => "60",
197
+ "publisher" => "Example Inc",
198
+ "edition" => "1",
199
+ "contributors" => {"contributor"=>{"contributorName"=>"Hallett, Richard", "contributorType"=>"ProjectLeader", "familyName"=>"Hallett", "givenName"=>"Richard"}}
200
+ )
201
+ end
202
+ end
178
203
  end
@@ -0,0 +1,102 @@
1
+ <?xml version="1.0"?>
2
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+ xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-%s http://schema.datacite.org/meta/kernel-4/metadata.xsd">
4
+ <identifier identifierType="DOI">10.48321/D1Z60Q</identifier>
5
+ <creators>
6
+ <creator>
7
+ <creatorName nameType="Personal">Erin Robinson</creatorName>
8
+ <nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0114 </nameIdentifier>
9
+ <affiliation schemeURI="https://ror.org" affiliationIdentifier="https://ror.org/05bp8ka05" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
10
+ </creator>
11
+ <creator>
12
+ <creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
13
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org/">https://ror.org/04sk0et52</nameIdentifier>
14
+ </creator>
15
+ <creator>
16
+ <creatorName nameType="Organizational">University of Vic</creatorName>
17
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org">006zjws59</nameIdentifier>
18
+ </creator>
19
+ <creator>
20
+ <creatorName nameType="Organizational">University of Kivu</creatorName>
21
+ <nameIdentifier nameIdentifierScheme="ROR">http://ror.org/01qfhxr31</nameIdentifier>
22
+ </creator>
23
+ <creator>
24
+ <creatorName nameType="Organizational">សាកលវិទ្យាល័យកម្ពុជា</creatorName>
25
+ <nameIdentifier nameIdentifierScheme="RORS">http://ror.org/025e3rc84</nameIdentifier>
26
+ </creator>
27
+ <creator>
28
+ <creatorName nameType="Organizational">جامعة زاخۆ</creatorName>
29
+ <nameIdentifier nameIdentifierScheme="RORS" schemeURI="https://ror.org">05sd1pz50</nameIdentifier>
30
+ </creator>
31
+ </creators>
32
+ <titles>
33
+ <title xml:lang="en-US">Genomic Standards Consortium (GSC) Island Sampling Day: Moorea Reef to Ridges Genomic Transect</title>
34
+ </titles>
35
+ <publisher xml:lang="en-US">DMPHub</publisher>
36
+ <publicationYear>2022</publicationYear>
37
+ <contributors>
38
+ <contributor contributorType="Producer">
39
+ <contributorName nameType="Organizational"> Nawroz University </contributorName>
40
+ <nameIdentifier nameIdentifierScheme="ROR">04gp75d48</nameIdentifier>
41
+ </contributor>
42
+ <contributor contributorType="ProjectLeader">
43
+ <contributorName nameType="Personal">Neil Davies</contributorName>
44
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0001-8085-5014</nameIdentifier>
45
+ <affiliation affiliationIdentifier="https://ror.org/01an7q238" affiliationIdentifierScheme="ROR"> University of California, Berkeley </affiliation>
46
+ </contributor>
47
+ <contributor contributorType="ProjectLeader">
48
+ <contributorName nameType="Personal">Ramona Walls</contributorName>
49
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0001-8815-0078</nameIdentifier>
50
+ <affiliation affiliationIdentifier="https://ror.org/03m2x1q45" affiliationIdentifierScheme="ROR"> University of Arizona </affiliation>
51
+ </contributor>
52
+ <contributor contributorType="ProjectLeader">
53
+ <contributorName nameType="Personal">Serge Planes</contributorName>
54
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-5689-5371</nameIdentifier>
55
+ <affiliation affiliationIdentifier="https://ror.org/02feahw73" affiliationIdentifierScheme="ROR"> French National Centre for Scientific Research </affiliation>
56
+ </contributor>
57
+ <contributor contributorType="ProjectLeader">
58
+ <contributorName nameType="Personal">Chris Meyer</contributorName>
59
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0003-2501-7952</nameIdentifier>
60
+ <affiliation affiliationIdentifier="https://ror.org/01pp8nd67" affiliationIdentifierScheme="ROR"> Smithsonian Institution </affiliation>
61
+ </contributor>
62
+ <contributor contributorType="ProjectLeader">
63
+ <contributorName nameType="Personal">Lynn Schriml</contributorName>
64
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0001-8910-9851</nameIdentifier>
65
+ <affiliation affiliationIdentifier="https://ror.org/04rq5mt64" affiliationIdentifierScheme="ROR"> University of Maryland, Baltimore </affiliation>
66
+ </contributor>
67
+ <contributor contributorType="ProjectMember">
68
+ <contributorName nameType="Personal">Scott Tighe</contributorName>
69
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-3988-0741</nameIdentifier>
70
+ <affiliation affiliationIdentifier="https://ror.org/0155zta11" affiliationIdentifierScheme="ROR"> University of Vermont </affiliation>
71
+ </contributor>
72
+ <contributor contributorType="ProjectMember">
73
+ <contributorName nameType="Personal">Pier Luigi Buttigieg</contributorName>
74
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-4366-3088</nameIdentifier>
75
+ <affiliation affiliationIdentifier="https://ror.org/02h2x0161" affiliationIdentifierScheme="ROR"> GEOMAR Helmholtz Centre for Ocean Research Kiel </affiliation>
76
+ </contributor>
77
+ <contributor contributorType="ProjectMember">
78
+ <contributorName nameType="Personal">Raïssa Meyer</contributorName>
79
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-2996-719X</nameIdentifier>
80
+ <affiliation affiliationIdentifier="https://ror.org/032e6b942" affiliationIdentifierScheme="ROR"> Alfred Wegener Institute for Polar and Marine Research </affiliation>
81
+ </contributor>
82
+ <contributor contributorType="Sponsor">
83
+ <contributorName nameType="Organizational">University of Greenland (https://www.uni.gl/)</contributorName>
84
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org/">https://ror.org/00t5j6b61</nameIdentifier>
85
+ </contributor>
86
+ </contributors>
87
+ <language>en-US</language>
88
+ <resourceType resourceTypeGeneral="OutputManagementPlan">Data Management Plan</resourceType>
89
+ <descriptions>
90
+ <description xml:lang="en-US" descriptionType="Abstract"> &lt;p&gt;Here we describe a project that supports the mission of the Genomic Standards Consortium (GSC) and contributes to the “Ocean Biomolecular Observations Network” (OBON) and the “Ocean Best Practice System” (OBPS - Omics Task Team), flagship programs of the UN Ocean Decade of Ocean Science for Sustainable Development. The project serves as a test case for two related infrastructure projects that aim to improve standards, policies, and best practices in sample collection: Sampling Nature (SN) Research Coordination Network and the Internet of Samples (iSamples).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The project’s primary goal (first paper) is methodologica&lt;/strong&gt;l: (i) to demonstrate the value of genomic standards for both genomic research and secondary interdisciplinary research, (ii) to highlight the importance of data curation workflows that follow FAIR+CARE principles maximizing the potential for appropriate reuse of data and material samples, (iii) to illustrate the challenges that remain in implementing those standards - including ethical, legal, and social aspects, and (iv) to demonstrate some of the tools, infrastructures, and best-practices available for overcoming these challenges. This paper will include all the elements of a data paper (primary publication of the initial data collected), but with broader discussion around it as a use case for metadata standards and best practices in multi-omic sampling.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The project’s secondary goal (second paper) is to address research questions including&lt;/strong&gt;: (1) To what extent can one day of environmental sampling, and subsequent multi-omic analyses, characterize the ecological state of an island (coupled marine-terrestrial ecosystem)? (2) To what extent might such surveys serve as baselines for futuromic study (future analysis of biomolecules from the material samples archived), and (3) if repeated, could these surveys help address long-term changes in genomic biodiversity? (4) How does marine and terrestrial eDNA change across a transect? Moorea is one of the most well-described biotas in the world and has one of the longest and most intensive time-series of ecological data, particularly for coral reef ecosystems. It thus serves as a powerful calibration site for such a study.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;The project’s broader impact goal is public outreach &lt;/strong&gt;– if possible engage local citizen scientists/schools, ideally through Fare Natura (ecomuseum at entrance to the Opunohu Valley. (Also perhaps local Associations that might be interested, e.g., Te Pu Atitia). Sampling Nature will produce an outreach videos based on this Island Sampling Day.&lt;/p&gt; </description>
91
+ </descriptions>
92
+ <fundingReferences>
93
+ <fundingReference>
94
+ <funderName>Genomic Standards Consortium</funderName>
95
+ </fundingReference>
96
+ </fundingReferences>
97
+ <relatedIdentifiers>
98
+ <relatedIdentifier relationType="IsMetadataFor" relatedIdentifierType="URL"> https://dmptool.org/api/v2/plans/74309.pdf </relatedIdentifier>
99
+ <relatedIdentifier relationType="Cites" relatedIdentifierType="URL"> https://n2t.net/ark:/21547/EBW2 </relatedIdentifier>
100
+ <relatedIdentifier relationType="Cites" relatedIdentifierType="URL"> https://docs.google.com/document/d/1EYgEEUroMBiTNc5Px11_44G-B17JtTgyssyNkK3hV_U/edit#heading=h.ckwz8v2yry1q </relatedIdentifier>
101
+ </relatedIdentifiers>
102
+ </resource>
@@ -0,0 +1,94 @@
1
+ <?xml version="1.0"?>
2
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3
+ xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-%s http://schema.datacite.org/meta/kernel-4/metadata.xsd">
4
+ <identifier identifierType="DOI">10.48321/D1Z60Q</identifier>
5
+ <creators>
6
+ <creator>
7
+ <creatorName nameType="Personal">Erin Robinson</creatorName>
8
+ <nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID"> https://orcid.org/0000-0001-9998-0114 </nameIdentifier>
9
+ <affiliation schemeURI="https://ror.org" affiliationIdentifier="https://ror.org/05bp8ka05" affiliationIdentifierScheme="ROR"> Metadata Game Changers </affiliation>
10
+ </creator>
11
+ <creator>
12
+ <creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
13
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org/">https://ror.org/04sk0et52</nameIdentifier>
14
+ </creator>
15
+ <creator>
16
+ <creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
17
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org">04sk0et52</nameIdentifier>
18
+ </creator>
19
+ <creator>
20
+ <creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
21
+ <nameIdentifier nameIdentifierScheme="ROR">04sk0et52</nameIdentifier>
22
+ </creator>
23
+ </creators>
24
+ <titles>
25
+ <title xml:lang="en-US">Genomic Standards Consortium (GSC) Island Sampling Day: Moorea Reef to Ridges Genomic Transect</title>
26
+ </titles>
27
+ <publisher xml:lang="en-US">DMPHub</publisher>
28
+ <publicationYear>2022</publicationYear>
29
+ <contributors>
30
+ <contributor contributorType="Producer">
31
+ <contributorName nameType="Organizational"> Gump South Pacific Research Station </contributorName>
32
+ <nameIdentifier nameIdentifierScheme="ROR">https://ror.org/04sk0et52</nameIdentifier>
33
+ </contributor>
34
+ <contributor contributorType="ProjectLeader">
35
+ <contributorName nameType="Personal">Neil Davies</contributorName>
36
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0001-8085-5014</nameIdentifier>
37
+ <affiliation affiliationIdentifier="https://ror.org/01an7q238" affiliationIdentifierScheme="ROR"> University of California, Berkeley </affiliation>
38
+ </contributor>
39
+ <contributor contributorType="ProjectLeader">
40
+ <contributorName nameType="Personal">Ramona Walls</contributorName>
41
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0001-8815-0078</nameIdentifier>
42
+ <affiliation affiliationIdentifier="https://ror.org/03m2x1q45" affiliationIdentifierScheme="ROR"> University of Arizona </affiliation>
43
+ </contributor>
44
+ <contributor contributorType="ProjectLeader">
45
+ <contributorName nameType="Personal">Serge Planes</contributorName>
46
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-5689-5371</nameIdentifier>
47
+ <affiliation affiliationIdentifier="https://ror.org/02feahw73" affiliationIdentifierScheme="ROR"> French National Centre for Scientific Research </affiliation>
48
+ </contributor>
49
+ <contributor contributorType="ProjectLeader">
50
+ <contributorName nameType="Personal">Chris Meyer</contributorName>
51
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0003-2501-7952</nameIdentifier>
52
+ <affiliation affiliationIdentifier="https://ror.org/01pp8nd67" affiliationIdentifierScheme="ROR"> Smithsonian Institution </affiliation>
53
+ </contributor>
54
+ <contributor contributorType="ProjectLeader">
55
+ <contributorName nameType="Personal">Lynn Schriml</contributorName>
56
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0001-8910-9851</nameIdentifier>
57
+ <affiliation affiliationIdentifier="https://ror.org/04rq5mt64" affiliationIdentifierScheme="ROR"> University of Maryland, Baltimore </affiliation>
58
+ </contributor>
59
+ <contributor contributorType="ProjectMember">
60
+ <contributorName nameType="Personal">Scott Tighe</contributorName>
61
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-3988-0741</nameIdentifier>
62
+ <affiliation affiliationIdentifier="https://ror.org/0155zta11" affiliationIdentifierScheme="ROR"> University of Vermont </affiliation>
63
+ </contributor>
64
+ <contributor contributorType="ProjectMember">
65
+ <contributorName nameType="Personal">Pier Luigi Buttigieg</contributorName>
66
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-4366-3088</nameIdentifier>
67
+ <affiliation affiliationIdentifier="https://ror.org/02h2x0161" affiliationIdentifierScheme="ROR"> GEOMAR Helmholtz Centre for Ocean Research Kiel </affiliation>
68
+ </contributor>
69
+ <contributor contributorType="ProjectMember">
70
+ <contributorName nameType="Personal">Raïssa Meyer</contributorName>
71
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org/">https://orcid.org/0000-0002-2996-719X</nameIdentifier>
72
+ <affiliation affiliationIdentifier="https://ror.org/032e6b942" affiliationIdentifierScheme="ROR"> Alfred Wegener Institute for Polar and Marine Research </affiliation>
73
+ </contributor>
74
+ <contributor contributorType="Sponsor">
75
+ <contributorName nameType="Organizational">Gump South Pacific Research Station (moorea.berkeley.edu)</contributorName>
76
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org/">https://ror.org/04sk0et52</nameIdentifier>
77
+ </contributor>
78
+ </contributors>
79
+ <language>en-US</language>
80
+ <resourceType resourceTypeGeneral="OutputManagementPlan">Data Management Plan</resourceType>
81
+ <descriptions>
82
+ <description xml:lang="en-US" descriptionType="Abstract"> &lt;p&gt;Here we describe a project that supports the mission of the Genomic Standards Consortium (GSC) and contributes to the “Ocean Biomolecular Observations Network” (OBON) and the “Ocean Best Practice System” (OBPS - Omics Task Team), flagship programs of the UN Ocean Decade of Ocean Science for Sustainable Development. The project serves as a test case for two related infrastructure projects that aim to improve standards, policies, and best practices in sample collection: Sampling Nature (SN) Research Coordination Network and the Internet of Samples (iSamples).&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The project’s primary goal (first paper) is methodologica&lt;/strong&gt;l: (i) to demonstrate the value of genomic standards for both genomic research and secondary interdisciplinary research, (ii) to highlight the importance of data curation workflows that follow FAIR+CARE principles maximizing the potential for appropriate reuse of data and material samples, (iii) to illustrate the challenges that remain in implementing those standards - including ethical, legal, and social aspects, and (iv) to demonstrate some of the tools, infrastructures, and best-practices available for overcoming these challenges. This paper will include all the elements of a data paper (primary publication of the initial data collected), but with broader discussion around it as a use case for metadata standards and best practices in multi-omic sampling.&lt;/p&gt; &lt;p&gt;&lt;strong&gt;The project’s secondary goal (second paper) is to address research questions including&lt;/strong&gt;: (1) To what extent can one day of environmental sampling, and subsequent multi-omic analyses, characterize the ecological state of an island (coupled marine-terrestrial ecosystem)? (2) To what extent might such surveys serve as baselines for futuromic study (future analysis of biomolecules from the material samples archived), and (3) if repeated, could these surveys help address long-term changes in genomic biodiversity? (4) How does marine and terrestrial eDNA change across a transect? Moorea is one of the most well-described biotas in the world and has one of the longest and most intensive time-series of ecological data, particularly for coral reef ecosystems. It thus serves as a powerful calibration site for such a study.&lt;/p&gt; &lt;p&gt;&lt;br&gt;&lt;strong&gt;The project’s broader impact goal is public outreach &lt;/strong&gt;– if possible engage local citizen scientists/schools, ideally through Fare Natura (ecomuseum at entrance to the Opunohu Valley. (Also perhaps local Associations that might be interested, e.g., Te Pu Atitia). Sampling Nature will produce an outreach videos based on this Island Sampling Day.&lt;/p&gt; </description>
83
+ </descriptions>
84
+ <fundingReferences>
85
+ <fundingReference>
86
+ <funderName>Genomic Standards Consortium</funderName>
87
+ </fundingReference>
88
+ </fundingReferences>
89
+ <relatedIdentifiers>
90
+ <relatedIdentifier relationType="IsMetadataFor" relatedIdentifierType="URL"> https://dmptool.org/api/v2/plans/74309.pdf </relatedIdentifier>
91
+ <relatedIdentifier relationType="Cites" relatedIdentifierType="URL"> https://n2t.net/ark:/21547/EBW2 </relatedIdentifier>
92
+ <relatedIdentifier relationType="Cites" relatedIdentifierType="URL"> https://docs.google.com/document/d/1EYgEEUroMBiTNc5Px11_44G-B17JtTgyssyNkK3hV_U/edit#heading=h.ckwz8v2yry1q </relatedIdentifier>
93
+ </relatedIdentifiers>
94
+ </resource>
@@ -59,6 +59,26 @@
59
59
  <funderName>European Commission</funderName>
60
60
  <funderIdentifier funderIdentifierType="Crossref Funder ID" schemeURI="https://doi.org/">https://doi.org/10.13039/501100000780</funderIdentifier>
61
61
  </fundingReference>
62
+ <fundingReference>
63
+ <funderName>University of Washington</funderName>
64
+ <funderIdentifier funderIdentifierType="ISNI" schemeURI="http://www.isni.org/isni/">0000 0001 2298 6657</funderIdentifier>
65
+ </fundingReference>
66
+ <fundingReference>
67
+ <funderName>National Library of Ireland.</funderName>
68
+ <funderIdentifier funderIdentifierType="Other" schemeURI="http://viaf.org/viaf/">127467345</funderIdentifier>
69
+ </fundingReference>
70
+ <fundingReference>
71
+ <funderName>DataCite</funderName>
72
+ <funderIdentifier funderIdentifierType="ROR" schemeURI="https://ror.org/">https://ror.org/04wxnsj81</funderIdentifier>
73
+ </fundingReference>
74
+ <fundingReference>
75
+ <funderName>Department of Agriculture</funderName>
76
+ <funderIdentifier funderIdentifierType="ROR">038wwg650</funderIdentifier>
77
+ </fundingReference>
78
+ <fundingReference>
79
+ <funderName>Tottori University</funderName>
80
+ <funderIdentifier funderIdentifierType="Crossref Funder ID">10.13039/501100005695</funderIdentifier>
81
+ </fundingReference>
62
82
  </fundingReferences>
63
83
  <rightsList>
64
84
  <rights xml:lang="eng" rightsURI="http://creativecommons.org/licenses/by-nd/2.0/">Creative Commons
@@ -0,0 +1,73 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.stage.datacite.org/dois/10.70048/290320201351?include=media,client
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.8; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 30 Sep 2022 18:54:43 GMT
23
+ Content-Type:
24
+ - application/json; charset=utf-8
25
+ Connection:
26
+ - keep-alive
27
+ Status:
28
+ - 200 OK
29
+ X-Anonymous-Consumer:
30
+ - 'true'
31
+ Cache-Control:
32
+ - max-age=0, private, must-revalidate
33
+ Vary:
34
+ - Accept-Encoding
35
+ Content-Encoding:
36
+ - gzip
37
+ Referrer-Policy:
38
+ - strict-origin-when-cross-origin
39
+ X-Permitted-Cross-Domain-Policies:
40
+ - none
41
+ X-Xss-Protection:
42
+ - 1; mode=block
43
+ X-Request-Id:
44
+ - e5175ead-ec58-459c-a35e-dcdb834c09ca
45
+ X-Download-Options:
46
+ - noopen
47
+ Etag:
48
+ - W/"0aa74c09b0b6e8f485e8160c0c8079c7"
49
+ X-Frame-Options:
50
+ - SAMEORIGIN
51
+ X-Runtime:
52
+ - '0.031155'
53
+ X-Content-Type-Options:
54
+ - nosniff
55
+ X-Powered-By:
56
+ - Phusion Passenger(R) 6.0.15
57
+ Server:
58
+ - nginx/1.18.0 + Phusion Passenger(R) 6.0.15
59
+ Access-Control-Allow-Credentials:
60
+ - 'true'
61
+ Access-Control-Allow-Methods:
62
+ - GET, POST, PUT, PATCH, DELETE, OPTIONS
63
+ Access-Control-Allow-Headers:
64
+ - Accept,Access-Control-Allow-Origin,Access-Control-Expose-Headers,Access-Control-Allow-Methods,Access-Control-Allow-Headers,Authorization,Cache-Control,Content-Type,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With
65
+ Access-Control-Expose-Headers:
66
+ - Authorization
67
+ body:
68
+ encoding: ASCII-8BIT
69
+ string: !binary |-
70
+ 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
71
+ http_version:
72
+ recorded_at: Fri, 30 Sep 2022 18:54:43 GMT
73
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,65 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.crossref.org/works/10.1101/097196/transform/application/vnd.crossref.unixsd+xml
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.8; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/xml;charset=utf-8
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 30 Sep 2022 18:44:43 GMT
23
+ Content-Length:
24
+ - '3783'
25
+ Set-Cookie:
26
+ - AWSALB=n9ERtwhJjVWBndwsAJjh2idG1XQOFntDaQIw+VdwZzi1odvEL7VG2SYDq/HtCfZAQVy4H951YNxrTWGVmP01S7bwI6uXrCgmsLelHOzEAhd4ih2D62RRKKXQi32x;
27
+ Expires=Fri, 07 Oct 2022 18:44:43 GMT; Path=/, AWSALBCORS=n9ERtwhJjVWBndwsAJjh2idG1XQOFntDaQIw+VdwZzi1odvEL7VG2SYDq/HtCfZAQVy4H951YNxrTWGVmP01S7bwI6uXrCgmsLelHOzEAhd4ih2D62RRKKXQi32x;
28
+ Expires=Fri, 07 Oct 2022 18:44:43 GMT; Path=/; SameSite=None
29
+ Link:
30
+ - !binary |-
31
+ PGh0dHA6Ly9keC5kb2kub3JnLzEwLjExMDEvMDk3MTk2PjsgcmVsPSJjYW5vbmljYWwiLCA8aHR0cHM6Ly9zeW5kaWNhdGlvbi5oaWdod2lyZS5vcmcvY29udGVudC9kb2kvMTAuMTEwMS8wOTcxOTY+OyB2ZXJzaW9uPSJ2b3IiOyByZWw9Iml0ZW0iLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDMtMTQxOS0yNDA1PjsgdGl0bGU9Ik1hcnRpbiBGZW5uZXIiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMy0xMzA0LTE5Mzk+OyB0aXRsZT0iTWVyY+ggQ3Jvc2FzIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDEtNTIxMi03MDUyPjsgdGl0bGU9IkplZmZyZXkgR3JldGhlIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDItOTM3Ny0wNzk3PjsgdGl0bGU9IkRhdmlkIEtlbm5lZHkiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMS04NDc5LTAyNjI+OyB0aXRsZT0iSGVubmluZyBIZXJtamFrb2IiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMS05ODUzLTU2Njg+OyB0aXRsZT0iUGhpbGlwcGUgUm9jY2EtU2VycmEiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMi0yMTg4LTI1NzA+OyB0aXRsZT0iR3VzdGF2byBEdXJhbmQiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMi0xNzMxLTUzNDY+OyB0aXRsZT0iUm9iaW4gQmVyam9uIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDEtODI0OS03Mzg4PjsgdGl0bGU9IlNlYmFzdGlhbiBLYXJjaGVyIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDItODQwNi0zODcxPjsgdGl0bGU9Ik1hcnlhbm4gTWFydG9uZSI7IHJlbD0iYXV0aG9yIiwgPGh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTQwNjAtNzM2MD47IHRpdGxlPSJUaW1vdGh5IENsYXJrIjsgcmVsPSJhdXRob3Ii
32
+ Access-Control-Expose-Headers:
33
+ - Link
34
+ Access-Control-Allow-Headers:
35
+ - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language,
36
+ Accept-Ranges, Cache-Control
37
+ Access-Control-Allow-Origin:
38
+ - "*"
39
+ Vary:
40
+ - Accept-Encoding
41
+ Content-Encoding:
42
+ - gzip
43
+ Server:
44
+ - Jetty(9.4.40.v20210413)
45
+ X-Ratelimit-Limit:
46
+ - '50'
47
+ X-Ratelimit-Interval:
48
+ - 1s
49
+ X-Api-Pool:
50
+ - polite
51
+ X-Rate-Limit-Limit:
52
+ - '50'
53
+ X-Rate-Limit-Interval:
54
+ - 1s
55
+ Permissions-Policy:
56
+ - interest-cohort=()
57
+ Connection:
58
+ - close
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ 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
63
+ http_version:
64
+ recorded_at: Fri, 30 Sep 2022 18:44:43 GMT
65
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,65 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.crossref.org/works/10.1101/097196/transform/application/vnd.crossref.unixsd+xml
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ User-Agent:
11
+ - Mozilla/5.0 (compatible; Maremma/4.9.8; mailto:info@datacite.org)
12
+ Accept:
13
+ - text/xml;charset=utf-8
14
+ Accept-Encoding:
15
+ - gzip,deflate
16
+ response:
17
+ status:
18
+ code: 200
19
+ message: OK
20
+ headers:
21
+ Date:
22
+ - Fri, 30 Sep 2022 18:44:44 GMT
23
+ Content-Length:
24
+ - '3783'
25
+ Set-Cookie:
26
+ - AWSALB=iJGErAy0XSxzz7Rp+pUDQ8MyMi1tGm5gCiEvr92UmNaXtiVux8b2vcVHyI4oqK+WYJdbd9Zpa4myqYbI7CKZoCkN8oDUiZ2xS7lXCoLlNArH4TiqjOTESJMjgpCk;
27
+ Expires=Fri, 07 Oct 2022 18:44:44 GMT; Path=/, AWSALBCORS=iJGErAy0XSxzz7Rp+pUDQ8MyMi1tGm5gCiEvr92UmNaXtiVux8b2vcVHyI4oqK+WYJdbd9Zpa4myqYbI7CKZoCkN8oDUiZ2xS7lXCoLlNArH4TiqjOTESJMjgpCk;
28
+ Expires=Fri, 07 Oct 2022 18:44:44 GMT; Path=/; SameSite=None
29
+ Link:
30
+ - !binary |-
31
+ PGh0dHA6Ly9keC5kb2kub3JnLzEwLjExMDEvMDk3MTk2PjsgcmVsPSJjYW5vbmljYWwiLCA8aHR0cHM6Ly9zeW5kaWNhdGlvbi5oaWdod2lyZS5vcmcvY29udGVudC9kb2kvMTAuMTEwMS8wOTcxOTY+OyB2ZXJzaW9uPSJ2b3IiOyByZWw9Iml0ZW0iLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDMtMTQxOS0yNDA1PjsgdGl0bGU9Ik1hcnRpbiBGZW5uZXIiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMy0xMzA0LTE5Mzk+OyB0aXRsZT0iTWVyY+ggQ3Jvc2FzIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDEtNTIxMi03MDUyPjsgdGl0bGU9IkplZmZyZXkgR3JldGhlIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDItOTM3Ny0wNzk3PjsgdGl0bGU9IkRhdmlkIEtlbm5lZHkiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMS04NDc5LTAyNjI+OyB0aXRsZT0iSGVubmluZyBIZXJtamFrb2IiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMS05ODUzLTU2Njg+OyB0aXRsZT0iUGhpbGlwcGUgUm9jY2EtU2VycmEiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMi0yMTg4LTI1NzA+OyB0aXRsZT0iR3VzdGF2byBEdXJhbmQiOyByZWw9ImF1dGhvciIsIDxodHRwOi8vb3JjaWQub3JnLzAwMDAtMDAwMi0xNzMxLTUzNDY+OyB0aXRsZT0iUm9iaW4gQmVyam9uIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDEtODI0OS03Mzg4PjsgdGl0bGU9IlNlYmFzdGlhbiBLYXJjaGVyIjsgcmVsPSJhdXRob3IiLCA8aHR0cDovL29yY2lkLm9yZy8wMDAwLTAwMDItODQwNi0zODcxPjsgdGl0bGU9Ik1hcnlhbm4gTWFydG9uZSI7IHJlbD0iYXV0aG9yIiwgPGh0dHA6Ly9vcmNpZC5vcmcvMDAwMC0wMDAzLTQwNjAtNzM2MD47IHRpdGxlPSJUaW1vdGh5IENsYXJrIjsgcmVsPSJhdXRob3Ii
32
+ Access-Control-Expose-Headers:
33
+ - Link
34
+ Access-Control-Allow-Headers:
35
+ - X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language,
36
+ Accept-Ranges, Cache-Control
37
+ Access-Control-Allow-Origin:
38
+ - "*"
39
+ Vary:
40
+ - Accept-Encoding
41
+ Content-Encoding:
42
+ - gzip
43
+ Server:
44
+ - Jetty(9.4.40.v20210413)
45
+ X-Ratelimit-Limit:
46
+ - '50'
47
+ X-Ratelimit-Interval:
48
+ - 1s
49
+ X-Api-Pool:
50
+ - polite
51
+ X-Rate-Limit-Limit:
52
+ - '50'
53
+ X-Rate-Limit-Interval:
54
+ - 1s
55
+ Permissions-Policy:
56
+ - interest-cohort=()
57
+ Connection:
58
+ - close
59
+ body:
60
+ encoding: ASCII-8BIT
61
+ string: !binary |-
62
+ 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
63
+ http_version:
64
+ recorded_at: Fri, 30 Sep 2022 18:44:44 GMT
65
+ recorded_with: VCR 3.0.3
@@ -153,7 +153,7 @@ describe Bolognese::Metadata, vcr: true do
153
153
  it "missing_comma" do
154
154
  json = IO.read(fixture_path + "datacite_software_missing_comma.json")
155
155
  response = subject.jsonlint(json)
156
- expect(response).to eq(["expected comma, not a string (after doi) at line 4, column 11 [parse.c:388]"])
156
+ expect(response.first).to include("expected comma, not a string (after doi)")
157
157
  end
158
158
 
159
159
  it "overlapping_keys" do
@@ -46,7 +46,7 @@ describe Bolognese::Metadata, vcr: true do
46
46
  input = fixture_path + "datacite_software_missing_comma.json"
47
47
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json", show_errors: true)
48
48
  expect(subject.valid?).to be false
49
- expect(subject.errors).to eq(["expected comma, not a string (after doi) at line 4, column 11 [parse.c:388]"])
49
+ expect(subject.errors.first).to include("expected comma, not a string (after doi)")
50
50
  expect(subject.codemeta).to be_nil
51
51
  end
52
52
 
@@ -141,6 +141,7 @@ describe Bolognese::Metadata, vcr: true do
141
141
  "awardTitle"=>"Full DataCite XML Example",
142
142
  "funderIdentifier"=>"https://doi.org/10.13039/100000001",
143
143
  "funderIdentifierType"=>"Crossref Funder ID",
144
+ "schemeUri"=>"https://doi.org/",
144
145
  "funderName"=>"National Science Foundation"}])
145
146
  expect(subject.related_identifiers.length).to eq(2)
146
147
  expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"https://data.datacite.org/application/citeproc+json/10.5072/example-full", "relatedIdentifierType"=>"URL", "relationType"=>"HasMetadata", "relatedMetadataScheme"=>"citeproc+json", "schemeUri"=>"https://github.com/citation-style-language/schema/raw/master/csl-data.json")
@@ -420,10 +421,12 @@ describe Bolognese::Metadata, vcr: true do
420
421
  expect(subject.funding_references.first).to eq({
421
422
  "funderIdentifier"=>"http://www.isni.org/isni/0000000119587073",
422
423
  "funderIdentifierType"=>"ISNI",
424
+ "schemeUri"=>"http://www.isni.org/isni/",
423
425
  "funderName"=>"National Science Foundation (NSF)"})
424
- expect(subject.funding_references.last).to eq({
426
+ expect(subject.funding_references[2]).to eq({
425
427
  "funderIdentifier"=>"https://doi.org/10.13039/501100000780",
426
428
  "funderIdentifierType"=>"Crossref Funder ID",
429
+ "schemeUri"=>"https://doi.org/",
427
430
  "funderName"=>"European Commission"})
428
431
  expect(subject.funding_references[1]).to eq({
429
432
  "funderIdentifier"=>"1234",
@@ -431,6 +434,35 @@ describe Bolognese::Metadata, vcr: true do
431
434
  "funderName"=>"Acme Inc"})
432
435
  end
433
436
 
437
+ it "funder identifier with normalized identifiers and non-normalized identifiers" do
438
+ input = fixture_path + 'datacite-funderIdentifier.xml'
439
+ subject = Bolognese::Metadata.new(input: input)
440
+ expect(subject.funding_references[3]).to eq({
441
+ "funderIdentifier"=>"0000 0001 2298 6657",
442
+ "funderIdentifierType"=>"ISNI",
443
+ "schemeUri"=>"http://www.isni.org/isni/",
444
+ "funderName"=>"University of Washington"})
445
+ expect(subject.funding_references[4]).to eq({
446
+ "funderIdentifier"=>"127467345",
447
+ "funderIdentifierType"=>"Other",
448
+ "schemeUri"=>"http://viaf.org/viaf/",
449
+ "funderName"=>"National Library of Ireland."})
450
+ expect(subject.funding_references[5]).to eq({
451
+ "funderIdentifier"=>"https://ror.org/04wxnsj81",
452
+ "funderIdentifierType"=>"ROR",
453
+ "schemeUri"=>"https://ror.org",
454
+ "funderName"=>"DataCite"})
455
+ expect(subject.funding_references[6]).to eq({
456
+ "funderIdentifier"=>"https://ror.org/038wwg650",
457
+ "funderIdentifierType"=>"ROR",
458
+ "schemeUri"=>"https://ror.org",
459
+ "funderName"=>"Department of Agriculture"})
460
+ expect(subject.funding_references[7]).to eq({
461
+ "funderIdentifier"=>"https://doi.org/10.13039/501100005695",
462
+ "funderIdentifierType"=>"Crossref Funder ID",
463
+ "funderName"=>"Tottori University"})
464
+ end
465
+
434
466
  it "geo_location empty" do
435
467
  input = fixture_path + 'datacite-geolocation-empty.xml'
436
468
  subject = Bolognese::Metadata.new(input: input)
@@ -592,7 +624,7 @@ describe Bolognese::Metadata, vcr: true do
592
624
  expect(subject.id).to eq("https://doi.org/10.18429/jacow-ipac2016-tupmy003")
593
625
  expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
594
626
  expect(subject.creators.length).to eq(12)
595
- expect(subject.creators.first).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"http://jacow.org/JACoW-00077389", "nameIdentifierScheme"=>"JACoW-ID", "schemeUri"=>"http://jacow.org/"}], "name"=>"Otani, Masashi", "givenName"=>"Masashi", "familyName"=>"Otani", "affiliation" => [{"name"=>"KEK, Tsukuba, Japan"}])
627
+ expect(subject.creators.first).to eq("nameType"=>"Personal", "nameIdentifiers" => [{"nameIdentifier"=>"JACoW-00077389", "nameIdentifierScheme"=>"JACoW-ID", "schemeUri"=>"http://jacow.org/"}], "name"=>"Otani, Masashi", "givenName"=>"Masashi", "familyName"=>"Otani", "affiliation" => [{"name"=>"KEK, Tsukuba, Japan"}])
596
628
  end
597
629
 
598
630
  it "author with wrong orcid scheme" do
@@ -722,7 +754,7 @@ describe Bolognese::Metadata, vcr: true do
722
754
  expect(subject.types["ris"]).to eq("BOOK")
723
755
  expect(subject.types["citeproc"]).to eq("book")
724
756
  expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Smith, John", "givenName"=>"John", "familyName"=>"Smith", "nameIdentifiers" => [], "affiliation" => []}, {"name"=>"つまらないものですが","nameIdentifiers"=>
725
- [{"nameIdentifier"=>"http://isni.org/isni/0000000134596520",
757
+ [{"nameIdentifier"=>"0000000134596520",
726
758
  "nameIdentifierScheme"=>"ISNI",
727
759
  "schemeUri"=>"http://isni.org/isni/"}],
728
760
  "affiliation" => []}])
@@ -753,7 +785,7 @@ describe Bolognese::Metadata, vcr: true do
753
785
  expect(subject.types["ris"]).to eq("BOOK")
754
786
  expect(subject.types["citeproc"]).to eq("book")
755
787
  expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Smith, John", "givenName"=>"John", "familyName"=>"Smith", "nameIdentifiers" => [], "affiliation" => []}, {"name"=>"つまらないものですが","nameIdentifiers"=>
756
- [{"nameIdentifier"=>"http://isni.org/isni/0000000134596520",
788
+ [{"nameIdentifier"=>"0000000134596520",
757
789
  "nameIdentifierScheme"=>"ISNI",
758
790
  "schemeUri"=>"http://isni.org/isni/"}],
759
791
  "affiliation" => []}])
@@ -812,7 +844,7 @@ describe Bolognese::Metadata, vcr: true do
812
844
  expect(subject.types["ris"]).to eq("BOOK")
813
845
  expect(subject.types["citeproc"]).to eq("book")
814
846
  expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Smith, John", "givenName"=>"John", "familyName"=>"Smith", "nameIdentifiers" => [], "affiliation" => []}, {"name"=>"つまらないものですが","nameIdentifiers"=>
815
- [{"nameIdentifier"=>"http://isni.org/isni/0000000134596520",
847
+ [{"nameIdentifier"=>"0000000134596520",
816
848
  "nameIdentifierScheme"=>"ISNI",
817
849
  "schemeUri"=>"http://isni.org/isni/"}],
818
850
  "affiliation" => []}])
@@ -864,7 +896,7 @@ describe Bolognese::Metadata, vcr: true do
864
896
  expect(subject.types["resourceType"]).to eq("Monograph")
865
897
  expect(subject.types["resourceTypeGeneral"]).to eq("Text")
866
898
  expect(subject.creators).to eq([{"nameType"=>"Personal", "name"=>"Smith, John", "givenName"=>"John", "familyName"=>"Smith", "nameIdentifiers" => [], "affiliation" => []}, {"name"=>"つまらないものですが","nameIdentifiers"=>
867
- [{"nameIdentifier"=>"http://isni.org/isni/0000000134596520",
899
+ [{"nameIdentifier"=>"0000000134596520",
868
900
  "nameIdentifierScheme"=>"ISNI",
869
901
  "schemeUri"=>"http://isni.org/isni/"}],
870
902
  "affiliation" => []}])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.9.14
4
+ version: 1.9.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-05-25 00:00:00.000000000 Z
11
+ date: 2022-10-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -770,6 +770,7 @@ files:
770
770
  - spec/fixtures/crossref.ris
771
771
  - spec/fixtures/crossref.xml
772
772
  - spec/fixtures/datacite-empty-sizes.xml
773
+ - spec/fixtures/datacite-example-ROR-nameIdentifiers.xml
773
774
  - spec/fixtures/datacite-example-affiliation.xml
774
775
  - spec/fixtures/datacite-example-ancientdates-v4.3.xml
775
776
  - spec/fixtures/datacite-example-complicated-tba.xml
@@ -781,6 +782,7 @@ files:
781
782
  - spec/fixtures/datacite-example-full-v4.4.xml
782
783
  - spec/fixtures/datacite-example-geolocation-2.xml
783
784
  - spec/fixtures/datacite-example-geolocation.xml
785
+ - spec/fixtures/datacite-example-nameIdentifier-with-schemeURI.xml
784
786
  - spec/fixtures/datacite-example-polygon-v4.1.xml
785
787
  - spec/fixtures/datacite-example-relateditems.xml
786
788
  - spec/fixtures/datacite-example-xs-string.xml
@@ -1046,6 +1048,7 @@ files:
1046
1048
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml
1047
1049
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml
1048
1050
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml
1051
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_items/insert.yml
1049
1052
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml
1050
1053
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml
1051
1054
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_sizes/insert.yml
@@ -1129,6 +1132,8 @@ files:
1129
1132
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid.yml
1130
1133
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_https.yml
1131
1134
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_id.yml
1135
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_sandbox.yml
1136
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_sandbox_https.yml
1132
1137
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_with_spaces.yml
1133
1138
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_wrong_id.yml
1134
1139
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_www.yml