bolognese 2.0.0 → 2.3.5

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.
Files changed (69) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/release.yml +2 -2
  4. data/Gemfile.lock +13 -12
  5. data/bolognese.gemspec +4 -3
  6. data/lib/bolognese/author_utils.rb +5 -5
  7. data/lib/bolognese/datacite_utils.rb +2 -2
  8. data/lib/bolognese/metadata_utils.rb +2 -1
  9. data/lib/bolognese/readers/citeproc_reader.rb +6 -0
  10. data/lib/bolognese/readers/crossref_reader.rb +37 -4
  11. data/lib/bolognese/readers/datacite_reader.rb +1 -1
  12. data/lib/bolognese/readers/schema_org_reader.rb +26 -4
  13. data/lib/bolognese/utils.rb +14 -9
  14. data/lib/bolognese/version.rb +1 -1
  15. data/lib/bolognese/writers/datacite_json_writer.rb +1 -4
  16. data/lib/bolognese/writers/jats_writer.rb +4 -1
  17. data/lib/bolognese/writers/schema_org_writer.rb +5 -1
  18. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +3 -1
  19. data/resources/kernel-4/include/datacite-dateType-v4.xsd +3 -1
  20. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +5 -2
  21. data/resources/kernel-4/include/datacite-relationType-v4.xsd +7 -3
  22. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +5 -1
  23. data/resources/kernel-4/include/datacite-titleType-v4.xsd +1 -1
  24. data/resources/kernel-4/metadata.xsd +2 -1
  25. data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
  26. data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
  27. data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
  28. data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
  29. data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
  30. data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
  31. data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
  32. data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
  33. data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
  34. data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
  35. data/resources/kernel-4.6/include/xml.xsd +286 -0
  36. data/resources/kernel-4.6/metadata.xsd +712 -0
  37. data/spec/author_utils_spec.rb +13 -7
  38. data/spec/datacite_utils_spec.rb +151 -1
  39. data/spec/fixtures/citeproc.json +6 -2
  40. data/spec/fixtures/crossref_schema_4.6_values.xml +183 -0
  41. data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +8 -0
  42. data/spec/fixtures/datacite-example-full-v4.6.xml +114 -0
  43. data/spec/fixtures/datacite-xml-lang.xml +1 -1
  44. data/spec/fixtures/datacite_blank_name_identifier.xml +22 -0
  45. data/spec/fixtures/datacite_blank_publisher.xml +18 -0
  46. data/spec/fixtures/datacite_journal_article.xml +64 -0
  47. data/spec/fixtures/schema_org.json +1 -0
  48. data/spec/fixtures/schema_org_4.6_attributes.json +108 -0
  49. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml +5 -45
  50. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml +71 -0
  51. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml +71 -0
  52. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml +71 -0
  53. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml +71 -0
  54. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml +71 -0
  55. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml +71 -0
  56. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml +71 -0
  57. data/spec/readers/citeproc_reader_spec.rb +1 -0
  58. data/spec/readers/codemeta_reader_spec.rb +1 -1
  59. data/spec/readers/crossref_reader_spec.rb +31 -0
  60. data/spec/readers/datacite_reader_spec.rb +98 -7
  61. data/spec/readers/schema_org_reader_spec.rb +29 -2
  62. data/spec/writers/citation_writer_spec.rb +10 -1
  63. data/spec/writers/citeproc_writer_spec.rb +9 -0
  64. data/spec/writers/crosscite_writer_spec.rb +2 -2
  65. data/spec/writers/datacite_json_writer_spec.rb +16 -32
  66. data/spec/writers/datacite_writer_spec.rb +73 -2
  67. data/spec/writers/jats_writer_spec.rb +8 -1
  68. data/spec/writers/schema_org_writer_spec.rb +51 -2
  69. metadata +58 -25
@@ -89,7 +89,7 @@ describe Bolognese::Metadata, vcr: true do
89
89
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
90
90
  meta = Maremma.from_xml(subject.raw).fetch("resource", {})
91
91
  response = subject.get_authors(meta.dig("creators", "creator"))
92
- expect(response).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)", "nameIdentifiers" => [], "affiliation" => []}])
92
+ expect(response).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University of Chicago); Vavreck, Lynn (UCLA)", "nameIdentifiers" => [], "affiliation" => []}])
93
93
  end
94
94
 
95
95
  it "hyper-authorship" do
@@ -104,7 +104,7 @@ describe Bolognese::Metadata, vcr: true do
104
104
  it "is organization" do
105
105
  author = {"email"=>"info@ucop.edu", "creatorName"=> { "__content__" => "University of California, Santa Barbara", "nameType" => "Organizational" }, "role"=>{"namespace"=>"http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_RoleCode", "roleCode"=>"copyrightHolder"} }
106
106
  response = subject.get_one_author(author)
107
- expect(response).to eq("nameType"=>"Organizational", "name"=>"University Of California, Santa Barbara", "nameIdentifiers" => [], "affiliation" => [])
107
+ expect(response).to eq("nameType"=>"Organizational", "name"=>"University of California, Santa Barbara", "nameIdentifiers" => [], "affiliation" => [])
108
108
  end
109
109
 
110
110
  it "name with affiliation" do
@@ -164,15 +164,16 @@ describe Bolognese::Metadata, vcr: true do
164
164
  input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
165
165
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
166
166
  expect(subject.creators[2]).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[3]).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[4]).to eq("nameType"=>"Organizational", "name"=>"University Of Kivu", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/01qfhxr31", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
167
+ expect(subject.creators[3]).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[4]).to eq("nameType"=>"Organizational", "name"=>"University of Kivu", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/01qfhxr31", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
169
169
  expect(subject.creators[5]).to eq("nameType"=>"Organizational", "name"=>"សាកលវិទ្យាល័យកម្ពុជា", "nameIdentifiers"=> [{"nameIdentifier"=>"http://ror.org/025e3rc84", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
170
170
  expect(subject.creators[6]).to eq("nameType"=>"Organizational", "name"=>"جامعة زاخۆ", "nameIdentifiers"=> [{"nameIdentifier"=>"05sd1pz50", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"RORS"}], "affiliation"=>[])
171
+ expect(subject.creators[9]).to eq("nameType"=>"Organizational", "name"=>"Gump South Pacific Research Station", "nameIdentifiers"=> [{"nameIdentifier"=>"https://ror.org/04sk0et52", "schemeUri"=>"https://ror.org", "nameIdentifierScheme"=>"ROR"}], "affiliation"=>[])
171
172
  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
+ 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
174
  end
174
175
 
175
- context "affiliationIdentifier" do
176
+ context "affiliationIdentifier/nameIdentifier" do
176
177
  let(:input) { fixture_path + 'datacite-example-ROR-nameIdentifiers.xml' }
177
178
  subject { Bolognese::Metadata.new(input: input, from: "datacite") }
178
179
 
@@ -207,6 +208,11 @@ describe Bolognese::Metadata, vcr: true do
207
208
  expect(subject.creators[8]["nameIdentifiers"]).to eq([{"nameIdentifier"=>"https://orcid.org/0000-0001-9998-0118", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}])
208
209
  end
209
210
 
211
+ it "should normalize valid ORCID nameIdentifier with trailing slash" do
212
+ #" 0000-0001-9998-0118 ", # Valid ORCID with leading/trailing spaces
213
+ expect(subject.creators[10]["nameIdentifiers"]).to eq([{"nameIdentifier"=>"https://orcid.org/0000-0001-9998-0117", "schemeUri"=>"https://orcid.org", "nameIdentifierScheme"=>"ORCID"}])
214
+ end
215
+
210
216
  it "should parse non ROR schema's without normalizing them" do
211
217
  input = fixture_path + 'datacite-example-ROR-nameIdentifiers.xml'
212
218
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
@@ -250,4 +256,4 @@ describe Bolognese::Metadata, vcr: true do
250
256
  expect(response).to eq("Matt Jones and Peter Slaughter and {University of California, Santa Barbara}")
251
257
  end
252
258
  end
253
- end
259
+ end
@@ -204,4 +204,154 @@ describe Bolognese::Metadata, vcr: true do
204
204
  )
205
205
  end
206
206
  end
207
- end
207
+
208
+ ### New DataCite 4.6 Features Tests ###
209
+
210
+ context "insert_resource_type with Project" do
211
+ it "supports Project as resourceTypeGeneral" do
212
+ # Mock the `types` hash to include Project
213
+ subject.instance_variable_set(:@types, {
214
+ "resourceTypeGeneral" => "Project",
215
+ "resourceType" => "Research Project"
216
+ })
217
+
218
+ # Generate XML using the insert_resource_type method
219
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_resource_type(xml) }.to_xml
220
+
221
+ response = Maremma.from_xml(xml)
222
+
223
+ # Expect `Project` in resourceTypeGeneral and `Research Project` as the content
224
+ expect(response["resourceType"]).to eq(
225
+ "resourceTypeGeneral" => "Project",
226
+ "__content__" => "Research Project"
227
+ )
228
+ end
229
+ end
230
+
231
+ context "insert_resource_type with Award" do
232
+ it "supports Award as resourceTypeGeneral" do
233
+ # Mock the `types` hash to include Award
234
+ subject.instance_variable_set(:@types, {
235
+ "resourceTypeGeneral" => "Award",
236
+ "resourceType" => "Nobel Prize"
237
+ })
238
+
239
+ # Generate XML using the insert_resource_type method
240
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_resource_type(xml) }.to_xml
241
+
242
+ response = Maremma.from_xml(xml)
243
+
244
+ # Expect `Award` in resourceTypeGeneral and `Nobel Prize` as the content
245
+ expect(response["resourceType"]).to eq(
246
+ "resourceTypeGeneral" => "Award",
247
+ "__content__" => "Nobel Prize"
248
+ )
249
+ end
250
+ end
251
+
252
+ context "insert_resource_type when resourceType is available, but using schemaOrg (via SO_TO_DC_TRANSLATIONS) when resourceTypeGeneral is unavailable" do
253
+ it "supports schemaOrg value as resourceTypeGeneral" do
254
+ # Mock the `types` hash to include the necessary values
255
+ subject.instance_variable_set(:@types, {
256
+ "schemaOrg" => "BlogPosting",
257
+ "resourceType" => "This dataset contains all projects funded by the European Union under the fifth framework programme for research and technological development (FP5) from 1998 to 2002."
258
+ })
259
+
260
+ # Generate XML using the insert_resource_type method
261
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_resource_type(xml) }.to_xml
262
+
263
+ response = Maremma.from_xml(xml)
264
+
265
+ # Expect `Text` in resourceTypeGeneral (via SO_TP_DC_TRANSLATIONS) and `This dataset contains all projects funded...` as the content
266
+ expect(response["resourceType"]).to eq(
267
+ "resourceTypeGeneral" => "Text",
268
+ "__content__" => "This dataset contains all projects funded by the European Union under the fifth framework programme for research and technological development (FP5) from 1998 to 2002."
269
+ )
270
+ end
271
+ end
272
+
273
+ context "insert_resource_type when resourceType is available, 'OTHER' when schemaOrg has no valid translations, and 'resourceTypeGeneral is unavailable" do
274
+ it "supports Other as resourceTypeGeneral" do
275
+ # Mock the `types` hash to include the necessary values
276
+ subject.instance_variable_set(:@types, {
277
+ "schemaOrg" => "Invalid_SO_Value",
278
+ "resourceType" => "This dataset contains all projects funded by the European Union under the fifth framework programme for research and technological development (FP5) from 1998 to 2002."
279
+ })
280
+
281
+ # Generate XML using the insert_resource_type method
282
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_resource_type(xml) }.to_xml
283
+
284
+ response = Maremma.from_xml(xml)
285
+
286
+ # Expect `Text` in resourceTypeGeneral (via SO_TP_DC_TRANSLATIONS) and `This dataset contains all projects funded...` as the content
287
+ expect(response["resourceType"]).to eq(
288
+ "resourceTypeGeneral" => "Other",
289
+ "__content__" => "This dataset contains all projects funded by the European Union under the fifth framework programme for research and technological development (FP5) from 1998 to 2002."
290
+ )
291
+ end
292
+ end
293
+
294
+ # Test case to insert Coverage DateType (new dateType in DataCite 4.6).
295
+ context "insert_dates with Coverage" do
296
+ it "inserts date with dateType Coverage" do
297
+ subject.dates = [{ "date" => "2021-01-01", "dateType" => "Coverage" }]
298
+
299
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_dates(xml) }.to_xml
300
+ response = Maremma.from_xml(xml)
301
+ dates = response.dig("dates", "date")
302
+ expect(dates).to eq("__content__" => "2021-01-01", "dateType" => "Coverage")
303
+ end
304
+ end
305
+
306
+ # Test case to insert Translator contributor (new contributorType in DataCite 4.6)
307
+ context "insert_contributors Translator" do
308
+ it "supports Translator contributorType" do
309
+ subject.contributors = [
310
+ { "contributorName" => "John Translator", "contributorType" => "Translator" }
311
+ ]
312
+
313
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_contributors(xml) }.to_xml
314
+ response = Maremma.from_xml(xml)
315
+ expect(response.dig("contributors", "contributor", "contributorType")).to eq("Translator")
316
+ end
317
+ end
318
+
319
+ # Test case for RRID (new relatedIdentifierType in DataCite 4.6)
320
+ context "insert_related_identifiers RRID" do
321
+ it "supports RRID relatedIdentifierType" do
322
+ subject.related_identifiers = [
323
+ { "relatedIdentifier" => "RRID:AB_90755", "relatedIdentifierType" => "RRID", "relationType" => "References" }
324
+ ]
325
+
326
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_related_identifiers(xml) }.to_xml
327
+ response = Maremma.from_xml(xml)
328
+ expect(response.dig("relatedIdentifiers", "relatedIdentifier")).to eq("__content__" => "RRID:AB_90755", "relatedIdentifierType" => "RRID", "relationType" => "References")
329
+ end
330
+ end
331
+
332
+ ### Test case #2 for adding CSTR ###
333
+ context "insert_related_identifiers CSTR" do
334
+ it "supports CSTR relatedIdentifierType" do
335
+ subject.related_identifiers = [
336
+ { "relatedIdentifier" => "CSTR:AB_12345", "relatedIdentifierType" => "CSTR", "relationType" => "References" }
337
+ ]
338
+
339
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_related_identifiers(xml) }.to_xml
340
+ response = Maremma.from_xml(xml)
341
+ expect(response.dig("relatedIdentifiers", "relatedIdentifier")).to eq("__content__" => "CSTR:AB_12345", "relatedIdentifierType" => "CSTR", "relationType" => "References")
342
+ end
343
+ end
344
+
345
+ # Test case for HasTranslation (new relationType in DataCite 4.6)
346
+ context "insert_related_identifiers HasTranslation" do
347
+ it "supports HasTranslation relationType" do
348
+ subject.related_identifiers = [
349
+ { "relatedIdentifier" => "10.1234/translated-version", "relatedIdentifierType" => "DOI", "relationType" => "HasTranslation" }
350
+ ]
351
+
352
+ xml = Nokogiri::XML::Builder.new(:encoding => 'UTF-8') { |xml| subject.insert_related_identifiers(xml) }.to_xml
353
+ response = Maremma.from_xml(xml)
354
+ expect(response.dig("relatedIdentifiers", "relatedIdentifier")).to eq("__content__" => "10.1234/translated-version", "relatedIdentifierType" => "DOI", "relationType" => "HasTranslation")
355
+ end
356
+ end
357
+ end
@@ -27,6 +27,10 @@
27
27
  "family": "Fenner",
28
28
  "given": "Martin",
29
29
  "literal": "Fenner, Martin"
30
- }
31
- ]
30
+ }],
31
+ "translator": [{
32
+ "family": "Ross",
33
+ "given": "Cody",
34
+ "literal": "Ross, Cody"
35
+ }]
32
36
  }
@@ -0,0 +1,183 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <crossref_result xmlns="http://www.crossref.org/qrschema/3.0" version="3.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.crossref.org/qrschema/3.0 http://www.crossref.org/schemas/crossref_query_output3.0.xsd">
3
+ <query_result>
4
+ <head>
5
+ <doi_batch_id>none</doi_batch_id>
6
+ </head>
7
+ <body>
8
+ <query status="resolved">
9
+ <doi type="journal_article">10.7554/eLife.01567</doi>
10
+ <crm-item name="publisher-name" type="string">eLife Sciences Publications, Ltd</crm-item>
11
+ <crm-item name="prefix-name" type="string">eLife Sciences Publications, Ltd.</crm-item>
12
+ <crm-item name="member-id" type="number">4374</crm-item>
13
+ <crm-item name="citation-id" type="number">67124617</crm-item>
14
+ <crm-item name="journal-id" type="number">189365</crm-item>
15
+ <crm-item name="deposit-timestamp" type="number">20180823133646</crm-item>
16
+ <crm-item name="owner-prefix" type="string">10.7554</crm-item>
17
+ <crm-item name="last-update" type="date">2018-08-23T13:41:49Z</crm-item>
18
+ <crm-item name="created" type="date">2014-02-11T16:29:04Z</crm-item>
19
+ <crm-item name="citedby-count" type="number">13</crm-item>
20
+ <doi_record>
21
+ <crossref xmlns="http://www.crossref.org/xschema/1.1" xsi:schemaLocation="http://www.crossref.org/xschema/1.1 http://doi.crossref.org/schemas/unixref1.1.xsd">
22
+ <journal>
23
+ <journal_metadata language="en">
24
+ <full_title>Journal of Metadata Perfection</full_title>
25
+ <abbrev_title>JOMPer</abbrev_title>
26
+ <doi_data>
27
+ <doi>10.32013/487529</doi>
28
+ <resource>https://www.crossref.org/jomper</resource>
29
+ </doi_data>
30
+ </journal_metadata>
31
+ <journal_issue>
32
+ <publication_date media_type="online">
33
+ <month>08</month>
34
+ <day>13</day>
35
+ <year>2008</year>
36
+ </publication_date>
37
+ <publication_date media_type="print">
38
+ <month>08</month>
39
+ <day>14</day>
40
+ <year>2008</year>
41
+ </publication_date>
42
+ <journal_volume>
43
+ <volume>5</volume>
44
+ </journal_volume>
45
+ <issue>11</issue>
46
+ </journal_issue>
47
+ <journal_article publication_type="full_text">
48
+ <titles>
49
+ <title>Quand vos meilleures métadonnées ne suffisent pas: travailler avec une spécification imparfaite</title>
50
+ <original_language_title language="en">When your best metadata isn't good enough: working with an imperfect specification </original_language_title>
51
+ </titles>
52
+ <contributors>
53
+ <person_name sequence="first" contributor_role="author">
54
+ <given_name>Minerva</given_name>
55
+ <surname>Housecat</surname>
56
+ <affiliation>Crossref University</affiliation>
57
+ <ORCID authenticated="true">https://orcid.org/0000-0002-4011-3590</ORCID>
58
+ </person_name>
59
+ <person_name sequence="additional" contributor_role="author">
60
+ <given_name>Josiah</given_name>
61
+ <surname>Carberry</surname>
62
+ <affiliation>Brown University</affiliation>
63
+ <ORCID authenticated="true">https://orcid.org/0000-0002-1825-0097</ORCID>
64
+ </person_name>
65
+ <person_name contributor_role="editor" sequence="additional">
66
+ <given_name>Ashwini</given_name>
67
+ <surname>Sukale</surname>
68
+ <affiliation>DataCite</affiliation>
69
+ </person_name>
70
+ <person_name contributor_role="translator" sequence="additional">
71
+ <given_name>Cody</given_name>
72
+ <surname>Ross</surname>
73
+ <affiliation>DataCite</affiliation>
74
+ </person_name>
75
+ </contributors>
76
+ <publication_date media_type="online">
77
+ <month>08</month>
78
+ <day>13</day>
79
+ <year>2018</year>
80
+ </publication_date>
81
+ <publication_date media_type="print">
82
+ <month>08</month>
83
+ <day>14</day>
84
+ <year>2018</year>
85
+ </publication_date>
86
+ <acceptance_date>
87
+ <month>05</month>
88
+ <day>21</day>
89
+ <year>2018</year>
90
+ </acceptance_date>
91
+ <pages>
92
+ <first_page>1</first_page>
93
+ <last_page>3</last_page>
94
+ </pages>
95
+ <publisher_item>
96
+ <item_number item_number_type="article_number">2347854-0</item_number>
97
+ </publisher_item>
98
+ <program xmlns="http://www.crossref.org/relations.xsd">
99
+ <related_item>
100
+ <description>English language version</description>
101
+ <intra_work_relation relationship-type="hasTranslation" identifier-type="doi"
102
+ >10.32013/zLl10OQ</intra_work_relation>
103
+ </related_item>
104
+ <related_item>
105
+ <description>Portuguese translation of an article</description>
106
+ <intra_work_relation relationship-type="isTranslationOf" identifier-type="doi">10.5555/original_language</intra_work_relation>
107
+ </related_item>
108
+ </program>
109
+ <archive_locations>
110
+ <archive name="CLOCKSS"/>
111
+ <archive name="Internet Archive"/>
112
+ <archive name="Portico"/>
113
+ <archive name="KB"/>
114
+ </archive_locations>
115
+ <doi_data>
116
+ <doi>10.32013/4859104</doi>
117
+ <resource>https://www.crossref.org/xml-samples/</resource>
118
+ <collection property="crawler-based">
119
+ <item crawler="iParadigms">
120
+ <resource>https://www.crossref.org/faqs.html</resource>
121
+ </item>
122
+ </collection>
123
+ <collection property="text-mining">
124
+ <item>
125
+ <resource content_version="vor" mime_type="text/xml"
126
+ >https://www.crossref.org/example.xml</resource>
127
+ </item>
128
+ </collection>
129
+ <collection property="link-header">
130
+ <item link_header_relationship="dul">
131
+ <resource>http://www.crossref.org/exampleDULendpoint</resource>
132
+ </item>
133
+ </collection>
134
+ </doi_data>
135
+ <citation_list>
136
+ <citation key="ref1">
137
+ <doi>10.1101/144147</doi>
138
+ <unstructured_citation>BioSharing: Harnessing Metadata Standards For The
139
+ Data Commons. Susanna-Assunta Sansone, Alejandra Gonzalez-Beltran,
140
+ Philippe Rocca-Serra, PeterMcQuilton, Massimiliano Izzo, Allyson Lister,
141
+ Milo Thurston. bioRxiv 144147</unstructured_citation>
142
+ </citation>
143
+ <citation key="ref2">
144
+ <doi>10.1515/jdis-2017-0012</doi>
145
+ <unstructured_citation>Greenberg, J. (2017). Big Metadata, Smart Metadata,
146
+ and Metadata Capital: Toward Greater Synergy Between Data Science and
147
+ Metadata, Journal of Data and Information Science, 2(3), 19-36.
148
+ </unstructured_citation>
149
+ </citation>
150
+ <citation key="ref3">
151
+ <doi>10.32013/s4947892</doi>
152
+ </citation>
153
+ <citation key="ref4">
154
+ <doi>10.1108/LHTN-12-2016-0059</doi>
155
+ <unstructured_citation>Jung ran Park, Yuji Tosaka, (2017) “Emerging
156
+ information standards and technologies: cataloging and metadata
157
+ professionals’ perspectives", Library Hi Tech News, Vol. 34 Issue: 4,
158
+ pp.22-26</unstructured_citation>
159
+ </citation>
160
+ <citation key="ref5">
161
+ <journal_title>Information Technology and Libraries</journal_title>
162
+ <author>Park</author>
163
+ <volume>29</volume>
164
+ <issue>3</issue>
165
+ <first_page>104</first_page>
166
+ <cYear>2010</cYear>
167
+ <doi>10.6017/ital.v29i3.3136</doi>
168
+ <article_title>Metadata creation practices in digital repositories and collections: Schemata, selection criteria, and interoperability</article_title>
169
+ </citation>
170
+ <citation key="ref6">
171
+ <unstructured_citation>Riley, J. (2017). Understanding metadata.
172
+ Bethesda,MD: NISO Press.</unstructured_citation>
173
+ </citation>
174
+ </citation_list>
175
+ </journal_article>
176
+ </journal>
177
+
178
+ </crossref>
179
+ </doi_record>
180
+ </query>
181
+ </body>
182
+ </query_result>
183
+ </crossref_result>
@@ -43,6 +43,14 @@
43
43
  <creatorName nameType="Personal">Mike B</creatorName>
44
44
  <nameIdentifier nameIdentifierScheme="ORCID"> 0000-0001-9998-0118 </nameIdentifier>
45
45
  </creator>
46
+ <creator>
47
+ <creatorName nameType="Organizational">Gump South Pacific Research Station</creatorName>
48
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org/">https://ror.org/04sk0et52/</nameIdentifier>
49
+ </creator>
50
+ <creator>
51
+ <creatorName nameType="Personal">Ashwini Sukale</creatorName>
52
+ <nameIdentifier schemeURI="https://orcid.org/" nameIdentifierScheme="ORCID">https://orcid.org/0000-0001-9998-0117/</nameIdentifier>
53
+ </creator>
46
54
  </creators>
47
55
  <titles>
48
56
  <title xml:lang="en-US">Genomic Standards Consortium (GSC) Island Sampling Day: Moorea Reef to Ridges Genomic Transect</title>
@@ -0,0 +1,114 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <resource
3
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4
+ xmlns="http://datacite.org/schema/kernel-4"
5
+ xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4.6/metadata.xsd">
6
+
7
+ <!-- DOI Identifier -->
8
+ <identifier identifierType="DOI">10.82433/B09Z-4K37</identifier>
9
+
10
+ <!-- Creators -->
11
+ <creators>
12
+ <creator>
13
+ <creatorName nameType="Personal">ExampleFamilyName, ExampleGivenName</creatorName>
14
+ <givenName>ExampleGivenName</givenName>
15
+ <familyName>ExampleFamilyName</familyName>
16
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org">https://orcid.org/0000-0001-5727-2427</nameIdentifier>
17
+ <affiliation affiliationIdentifier="https://ror.org/04wxnsj81" affiliationIdentifierScheme="ROR" schemeURI="https://ror.org">ExampleAffiliation</affiliation>
18
+ </creator>
19
+ <creator>
20
+ <creatorName xml:lang="en" nameType="Organizational">ExampleOrganization</creatorName>
21
+ <nameIdentifier nameIdentifierScheme="ROR" schemeURI="https://ror.org">https://ror.org/04wxnsj81</nameIdentifier>
22
+ </creator>
23
+ </creators>
24
+
25
+ <!-- Titles -->
26
+ <titles>
27
+ <title xml:lang="en">Example Title</title>
28
+ <title titleType="Subtitle" xml:lang="en">Example Subtitle</title>
29
+ <title titleType="TranslatedTitle" xml:lang="fr">Example TranslatedTitle</title>
30
+ <title titleType="AlternativeTitle" xml:lang="en">Example AlternativeTitle</title>
31
+ </titles>
32
+
33
+ <!-- Publisher -->
34
+ <publisher xml:lang="en" publisherIdentifier="https://ror.org/04z8jg394" publisherIdentifierScheme="ROR" schemeURI="https://ror.org/">Example Publisher</publisher>
35
+
36
+ <!-- Publication Year -->
37
+ <publicationYear>2023</publicationYear>
38
+
39
+ <!-- New resourceTypeGeneral: Project -->
40
+ <resourceType resourceTypeGeneral="Project">Research Project</resourceType>
41
+
42
+ <!-- Subjects -->
43
+ <subjects>
44
+ <subject subjectScheme="Fields of Science and Technology (FOS)" schemeURI="http://www.oecd.org/science/inno" valueURI="http://www.oecd.org/science/inno/38235147.pdf">FOS: Computer and information sciences</subject>
45
+ <subject subjectScheme="Australian and New Zealand Standard Research Classification (ANZSRC), 2020" schemeURI="https://www.abs.gov.au/statistics/classifications/australian-and-new-zealand-standard-research-classification-anzsrc" classificationCode="461001">Digital curation and preservation</subject>
46
+ <subject>Example Subject</subject>
47
+ </subjects>
48
+
49
+ <!-- New ContributorType: Translator -->
50
+ <contributors>
51
+ <contributor contributorType="Translator">
52
+ <contributorName nameType="Personal">Doe, Jane</contributorName>
53
+ <givenName>Jane</givenName>
54
+ <familyName>Doe</familyName>
55
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org">https://orcid.org/0000-0003-1419-2405</nameIdentifier>
56
+ <affiliation affiliationIdentifier="https://ror.org/04wxnsj81" affiliationIdentifierScheme="ROR" schemeURI="https://ror.org">ExampleAffiliation</affiliation>
57
+ </contributor>
58
+ <contributor contributorType="ContactPerson">
59
+ <contributorName nameType="Personal">Smith, John</contributorName>
60
+ <givenName>John</givenName>
61
+ <familyName>Smith</familyName>
62
+ <affiliation affiliationIdentifier="https://ror.org/04wxnsj81" affiliationIdentifierScheme="ROR" schemeURI="https://ror.org">ExampleAffiliation</affiliation>
63
+ </contributor>
64
+ </contributors>
65
+
66
+ <!-- Dates (Including New dateType "Coverage") -->
67
+ <dates>
68
+ <date dateType="Coverage">2020-01-01</date> <!-- DataCite 4.6: Coverage DateType -->
69
+ <date dateType="Created">2023-01-01</date>
70
+ <date dateType="Issued">2023-01-01</date>
71
+ <date dateType="Submitted">2023-01-01</date>
72
+ <date dateType="Updated">2023-01-01</date>
73
+ </dates>
74
+
75
+ <!-- Related Identifiers (Including CSTR, RRID, HasTranslation) -->
76
+ <relatedIdentifiers>
77
+ <relatedIdentifier relatedIdentifierType="RRID" relationType="References">RRID:AB_90755</relatedIdentifier> <!-- DataCite 4.6: New RRID Identifier -->
78
+ <relatedIdentifier relatedIdentifierType="CSTR" relationType="References">CSTR:AB_12345</relatedIdentifier> <!-- DataCite 4.6: New CSTR Identifier -->
79
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="HasTranslation">10.1234/translated-version</relatedIdentifier> <!-- DataCite 4.6: HasTranslation RelationType -->
80
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="IsTranslationOf">10.1234/other-version</relatedIdentifier> <!-- DataCite 4.6: HasTranslation RelationType -->
81
+ </relatedIdentifiers>
82
+
83
+ <!-- Sizes & Formats -->
84
+ <sizes>
85
+ <size>1 MB</size>
86
+ </sizes>
87
+ <formats>
88
+ <format>application/xml</format>
89
+ </formats>
90
+
91
+ <!-- Version -->
92
+ <version>1</version>
93
+
94
+ <!-- Rights (CC BY 4.0) -->
95
+ <rightsList>
96
+ <rights xml:lang="en" rightsURI="https://creativecommons.org/licenses/by/4.0/">Creative Commons Attribution 4.0 International</rights>
97
+ </rightsList>
98
+
99
+ <!-- Descriptions (Abstract) -->
100
+ <descriptions>
101
+ <description xml:lang="en" descriptionType="Abstract">This dataset illustrates the use of new DataCite fields, including Project and Award resource types, RRID, CSTR, Translator, and others.</description>
102
+ </descriptions>
103
+
104
+ <!-- GeoLocations Example -->
105
+ <geoLocations>
106
+ <geoLocation>
107
+ <geoLocationPlace>Vancouver, British Columbia, Canada</geoLocationPlace>
108
+ <geoLocationPoint>
109
+ <pointLatitude>49.2827</pointLatitude>
110
+ <pointLongitude>-123.1207</pointLongitude>
111
+ </geoLocationPoint>
112
+ </geoLocation>
113
+ </geoLocations>
114
+ </resource>
@@ -15,7 +15,7 @@
15
15
  <title xml:lang="en">DOI Test 2 title content</title>
16
16
  <title xml:lang="en">AAPP</title>
17
17
  </titles>
18
- <publisher>OSI SAF</publisher>
18
+ <publisher xml:lang="en">OSI SAF</publisher>
19
19
  <publicationYear>2004</publicationYear>
20
20
  <resourceType resourceTypeGeneral="Collection">Climate Data Record</resourceType>
21
21
  <dates>
@@ -0,0 +1,22 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://schema.datacite.org/meta/kernel-4.3/metadata.xsd">
3
+ <identifier identifierType="DOI">10.15148/3b68dac4-7688-4fbb-ba64-5f9b3bbab954</identifier>
4
+ <creators>
5
+ <creator>
6
+ <creatorName>SNO KARST</creatorName>
7
+ <nameIdentifier nameIdentifierScheme="ORCID" schemeURI="https://orcid.org"/>
8
+ </creator>
9
+ </creators>
10
+ <publisher>OSU OREME</publisher>
11
+ <titles>
12
+ <title>Time series of type chemistry in Le Tarn basin - PARC NATIONAL CEVENNES observatory - KARST observatory network - OZCAR Critical Zone network Research Infrastructure</title>
13
+ </titles>
14
+ <publicationYear>2023</publicationYear>
15
+ <contributors>
16
+ <contributor contributorType="ProjectMember">
17
+ <contributorName>Manche, Yannick</contributorName>
18
+ <nameIdentifier schemeURI="http://orcid.org/" nameIdentifierScheme="ORCID"></nameIdentifier>
19
+ </contributor>
20
+ </contributors>
21
+ <resourceType resourceTypeGeneral="Dataset">Dataset</resourceType>
22
+ </resource>
@@ -0,0 +1,18 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
3
+ <identifier identifierType="DOI">10.81360/4DVP-KR57</identifier>
4
+ <creators>
5
+ <creator>
6
+ <creatorName nameType="Personal">Møller, Jørgen</creatorName>
7
+ <givenName>Jørgen</givenName>
8
+ <familyName>Møller</familyName>
9
+ </creator>
10
+ </creators>
11
+ <titles>
12
+ <title xml:lang="en">Economic Crisis and Democratic Breakdown in the Interwar Years: A Reassessment</title>
13
+ <title xml:lang="de">Wirtschaftskrise und demokratischer Zusammenbruch in der Zwischenkriegszeit: Eine Neubewertung</title>
14
+ </titles>
15
+ <publisher publisherIdentifier="https://ror.org/04wxnsj81"></publisher>
16
+ <publicationYear>2015</publicationYear>
17
+ <resourceType resourceTypeGeneral="JournalArticle"/>
18
+ </resource>