bolognese 1.0.6 → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/author_utils.rb +1 -1
  4. data/lib/bolognese/datacite_utils.rb +51 -55
  5. data/lib/bolognese/metadata.rb +16 -16
  6. data/lib/bolognese/metadata_utils.rb +5 -5
  7. data/lib/bolognese/readers/bibtex_reader.rb +4 -4
  8. data/lib/bolognese/readers/citeproc_reader.rb +9 -6
  9. data/lib/bolognese/readers/codemeta_reader.rb +7 -4
  10. data/lib/bolognese/readers/crossref_reader.rb +23 -17
  11. data/lib/bolognese/readers/datacite_json_reader.rb +21 -19
  12. data/lib/bolognese/readers/datacite_reader.rb +30 -66
  13. data/lib/bolognese/readers/ris_reader.rb +6 -3
  14. data/lib/bolognese/readers/schema_org_reader.rb +12 -9
  15. data/lib/bolognese/utils.rb +15 -14
  16. data/lib/bolognese/version.rb +1 -1
  17. data/lib/bolognese/writers/bibtex_writer.rb +2 -2
  18. data/lib/bolognese/writers/codemeta_writer.rb +3 -3
  19. data/lib/bolognese/writers/crosscite_writer.rb +6 -6
  20. data/lib/bolognese/writers/datacite_json_writer.rb +9 -9
  21. data/lib/bolognese/writers/jats_writer.rb +4 -4
  22. data/lib/bolognese/writers/ris_writer.rb +4 -4
  23. data/lib/bolognese/writers/schema_org_writer.rb +6 -6
  24. data/spec/author_utils_spec.rb +1 -1
  25. data/spec/datacite_utils_spec.rb +2 -2
  26. data/spec/fixtures/crosscite.json +26 -16
  27. data/spec/fixtures/datacite.json +20 -14
  28. data/spec/fixtures/datacite_software.json +10 -6
  29. data/spec/readers/bibtex_reader_spec.rb +6 -6
  30. data/spec/readers/citeproc_reader_spec.rb +3 -3
  31. data/spec/readers/codemeta_reader_spec.rb +14 -14
  32. data/spec/readers/crosscite_reader_spec.rb +8 -9
  33. data/spec/readers/crossref_reader_spec.rb +31 -28
  34. data/spec/readers/datacite_json_reader_spec.rb +20 -6
  35. data/spec/readers/datacite_reader_spec.rb +94 -93
  36. data/spec/readers/ris_reader_spec.rb +5 -5
  37. data/spec/readers/schema_org_reader_spec.rb +41 -34
  38. data/spec/utils_spec.rb +3 -3
  39. data/spec/writers/bibtex_writer_spec.rb +1 -1
  40. data/spec/writers/citeproc_writer_spec.rb +1 -1
  41. data/spec/writers/codemeta_writer_spec.rb +15 -15
  42. data/spec/writers/crosscite_writer_spec.rb +16 -16
  43. data/spec/writers/datacite_json_writer_spec.rb +17 -17
  44. data/spec/writers/datacite_writer_spec.rb +26 -26
  45. data/spec/writers/ris_writer_spec.rb +2 -1
  46. metadata +2 -2
@@ -17,18 +17,32 @@ describe Bolognese::Metadata, vcr: true do
17
17
  it "BlogPosting" do
18
18
  expect(subject.valid?).to be true
19
19
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
20
- expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article", "ris"=>"GEN", "type"=>"CreativeWork")
21
- expect(subject.creator).to eq("type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
22
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
23
- expect(subject.alternate_identifiers).to eq([{"alternate-identifier"=>"MS-49-3632-5083", "alternate-identifier-type"=>"Local accession number"}])
20
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resource_type"=>"BlogPosting", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
21
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
22
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
23
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"MS-49-3632-5083", "alternate_identifier_type"=>"Local accession number"}])
24
24
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
25
25
  expect(subject.publication_year).to eq("2016")
26
26
  expect(subject.related_identifiers.length).to eq(3)
27
- expect(subject.related_identifiers.first).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
28
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
27
+ expect(subject.related_identifiers.first).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
28
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/55e5-t5c0", "related_identifier_type"=>"DOI", "relation_type"=>"References")
29
29
  expect(subject.service_provider).to eq("DataCite")
30
30
  end
31
31
 
32
+ # it "SoftwareSourceCode" do
33
+ # input = fixture_path + "datacite_software.json"
34
+ # subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
35
+ # expect(subject.valid?).to be true
36
+ # expect(subject.identifier).to eq("https://doi.org/10.5063/f1m61h5x")
37
+ # expect(subject.types).to eq("bibtex"=>"misc", "citeproc"=>"article", "resource_type"=>"Software", "resource_type_general"=>"Software", "ris"=>"COMP", "type"=>"SoftwareSourceCode")
38
+ # expect(subject.creator).to eq([{"familyName"=>"Jones", "givenName"=>"Matthew B.", "name"=>"Matthew B. Jones", "type"=>"Person"}])
39
+ # expect(subject.titles).to eq([{"title"=>"dataone: R interface to the DataONE network of data repositories"}])
40
+ # expect(subject.dates).to eq([{"date"=>"2016", "date_type"=>"Issued"}])
41
+ # expect(subject.publication_year).to eq("2016")
42
+ # expect(subject.publisher).to eq("KNB Data Repository")
43
+ # expect(subject.service_provider).to eq("DataCite")
44
+ # end
45
+
32
46
  it "SoftwareSourceCode missing_comma" do
33
47
  input = fixture_path + "datacite_software_missing_comma.json"
34
48
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
@@ -27,12 +27,12 @@ describe Bolognese::Metadata, vcr: true do
27
27
  expect(subject.types["citeproc"]).to eq("dataset")
28
28
  expect(subject.creator.length).to eq(8)
29
29
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Benjamin Ollomo", "givenName"=>"Benjamin", "familyName"=>"Ollomo")
30
- expect(subject.title).to eq([{"text"=>"Data from: A new malaria agent in African hominids."}])
31
- expect(subject.alternate_identifiers).to eq("type"=>"citation", "name"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.")
32
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
30
+ expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
31
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.","alternate_identifier_type"=>"citation"}])
32
+ expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
33
33
  expect(subject.publication_year).to eq("2011")
34
34
  expect(subject.related_identifiers.length).to eq(6)
35
- expect(subject.related_identifiers.last).to eq("id"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
35
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
36
36
  expect(subject.publisher).to eq("Dryad Digital Repository")
37
37
  expect(subject.service_provider).to eq("DataCite")
38
38
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -49,14 +49,14 @@ describe Bolognese::Metadata, vcr: true do
49
49
  expect(subject.types["ris"]).to eq("RPRT")
50
50
  expect(subject.types["bibtex"]).to eq("article")
51
51
  expect(subject.types["citeproc"]).to eq("article-journal")
52
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
53
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
54
- expect(subject.alternate_identifiers).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
55
- expect(subject.description.first["text"]).to start_with("Eating your own dog food")
52
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
53
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
54
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"MS-49-3632-5083", "alternate_identifier_type"=>"Local accession number"}])
55
+ expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
56
56
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
57
57
  expect(subject.publication_year).to eq("2016")
58
58
  expect(subject.related_identifiers.length).to eq(3)
59
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
59
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
60
60
  expect(subject.publisher).to eq("DataCite")
61
61
  expect(subject.service_provider).to eq("DataCite")
62
62
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -70,9 +70,9 @@ describe Bolognese::Metadata, vcr: true do
70
70
  expect(subject.types["type"]).to eq("ScholarlyArticle")
71
71
  expect(subject.types["resource_type"]).to eq("ConferencePaper")
72
72
  expect(subject.types["resource_type_general"]).to eq("Text")
73
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston")
74
- expect(subject.title).to eq([{"text"=>"The Minimum Size of Qubit Unextendible Product Bases"}])
75
- expect(subject.description.first["text"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
73
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston"}])
74
+ expect(subject.titles).to eq([{"title"=>"The Minimum Size of Qubit Unextendible Product Bases"}])
75
+ expect(subject.descriptions.first["description"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
76
76
  expect(subject.dates).to eq([{"date"=>"2013-11-05", "date_type"=>"Available"}, {"date"=>"2013", "date_type"=>"Issued"}])
77
77
  expect(subject.publication_year).to eq("2013")
78
78
  expect(subject.publisher).to eq("Schloss Dagstuhl - Leibniz-Zentrum fuer Informatik GmbH, Wadern/Saarbruecken, Germany")
@@ -90,7 +90,7 @@ describe Bolognese::Metadata, vcr: true do
90
90
  expect(subject.types["resource_type_general"]).to eq("Audiovisual")
91
91
  expect(subject.creator.length).to eq(14)
92
92
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Haywood, Raphaelle Dawn", "givenName"=>"Raphaelle Dawn", "familyName"=>"Haywood")
93
- expect(subject.title).to eq([{"lang"=>"en", "text"=>"Data underpinning - The Sun as a planet-host star: Proxies from SDO images for HARPS radial-velocity variations"}])
93
+ expect(subject.titles).to eq([{"lang"=>"en", "title"=>"Data underpinning - The Sun as a planet-host star: Proxies from SDO images for HARPS radial-velocity variations"}])
94
94
  expect(subject.dates).to eq([{"date"=>"2016-01-20", "date_type"=>"Available"}, {"date"=>"2016", "date_type"=>"Issued"}])
95
95
  expect(subject.publication_year).to eq("2016")
96
96
  expect(subject.publisher).to eq("University of St Andrews")
@@ -107,14 +107,14 @@ describe Bolognese::Metadata, vcr: true do
107
107
  expect(subject.types["resource_type_general"]).to eq("Software")
108
108
  expect(subject.types["ris"]).to eq("COMP")
109
109
  expect(subject.types["citeproc"]).to eq("article")
110
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza")
111
- expect(subject.title).to eq([{"text"=>"Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture"}])
112
- expect(subject.description.first["text"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
113
- expect(subject.rights).to eq([{"id"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "name"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}, {"name"=>"Open Access"}])
110
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza"}])
111
+ expect(subject.titles).to eq([{"title"=>"Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture"}])
112
+ expect(subject.descriptions.first["description"]).to start_with("This tools are used to analyse the data produced by the Crosssover Experiment")
113
+ expect(subject.rights_list).to eq([{"rights_uri"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "rights"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}, {"rights"=>"Open Access"}])
114
114
  expect(subject.dates).to eq([{"date"=>"2016-03-27", "date_type"=>"Issued"}])
115
115
  expect(subject.publication_year).to eq("2016")
116
116
  expect(subject.related_identifiers.length).to eq(1)
117
- expect(subject.related_identifiers.last).to eq("id"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "related_identifier_type"=>"URL", "relation_type"=>"IsSupplementTo")
117
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "related_identifier_type"=>"URL", "relation_type"=>"IsSupplementTo")
118
118
  expect(subject.publisher).to eq("Zenodo")
119
119
  expect(subject.service_provider).to eq("DataCite")
120
120
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -130,13 +130,13 @@ describe Bolognese::Metadata, vcr: true do
130
130
  expect(subject.types["resource_type_general"]).to eq("Dataset")
131
131
  expect(subject.creator.count).to eq(11)
132
132
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0002-2410-9671", "name"=>"Alexander Junge", "givenName"=>"Alexander", "familyName"=>"Junge")
133
- expect(subject.title).to eq([{"text"=>"RAIN v1"}])
134
- expect(subject.description.first["text"]).to start_with("<b>RAIN: RNA–protein Association and Interaction Networks")
135
- expect(subject.rights).to eq([{"id"=>"https://creativecommons.org/licenses/by/4.0", "name"=>"CC-BY"}])
133
+ expect(subject.titles).to eq([{"title"=>"RAIN v1"}])
134
+ expect(subject.descriptions.first["description"]).to start_with("<b>RAIN: RNA–protein Association and Interaction Networks")
135
+ expect(subject.rights_list).to eq([{"rights_uri"=>"https://creativecommons.org/licenses/by/4.0", "rights"=>"CC-BY"}])
136
136
  expect(subject.dates).to eq([{"date"=>"2016-11-16", "date_type"=>"Created"}, {"date"=>"2016-11-16", "date_type"=>"Updated"}, {"date"=>"2016", "date_type"=>"Issued"}])
137
137
  expect(subject.publication_year).to eq("2016")
138
138
  expect(subject.related_identifiers.length).to eq(1)
139
- expect(subject.related_identifiers.last).to eq("id"=>"10.6084/m9.figshare.4234751", "related_identifier_type"=>"DOI", "relation_type"=>"IsIdenticalTo")
139
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.6084/m9.figshare.4234751", "related_identifier_type"=>"DOI", "relation_type"=>"IsIdenticalTo")
140
140
  expect(subject.publisher).to eq("Figshare")
141
141
  expect(subject.service_provider).to eq("DataCite")
142
142
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
@@ -151,8 +151,8 @@ describe Bolognese::Metadata, vcr: true do
151
151
  expect(subject.types["resource_type_general"]).to eq("Dataset")
152
152
  expect(subject.creator.length).to eq(4)
153
153
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Jahn, Najko", "givenName"=>"Najko", "familyName"=>"Jahn")
154
- expect(subject.title).to eq([{"text"=>"Publication Fp7 Funding Acknowledgment - Plos Openaire"}])
155
- expect(subject.description.first["text"]).to start_with("The dataset contains a sample of metadata describing papers")
154
+ expect(subject.titles).to eq([{"title"=>"Publication Fp7 Funding Acknowledgment - Plos Openaire"}])
155
+ expect(subject.descriptions.first["description"]).to start_with("The dataset contains a sample of metadata describing papers")
156
156
  expect(subject.dates).to eq([{"date"=>"2013-04-03", "date_type"=>"Issued"}])
157
157
  expect(subject.publication_year).to eq("2013")
158
158
  expect(subject.publisher).to eq("Zenodo")
@@ -196,11 +196,11 @@ describe Bolognese::Metadata, vcr: true do
196
196
  expect(subject.doi).to eq("10.5072/geopointexample")
197
197
  expect(subject.creator.length).to eq(3)
198
198
  expect(subject.creator.first).to eq("familyName"=>"Schumann", "givenName"=>"Kai", "name"=>"Kai Schumann", "type"=>"Person")
199
- expect(subject.title).to eq([{"text"=>"Gridded results of swath bathymetric mapping of Disko Bay, Western Greenland, 2007-2008"}])
199
+ expect(subject.titles).to eq([{"title"=>"Gridded results of swath bathymetric mapping of Disko Bay, Western Greenland, 2007-2008"}])
200
200
  expect(subject.publisher).to eq("PANGAEA - Data Publisher for Earth & Environmental Science")
201
201
  expect(subject.publication_year).to eq("2011")
202
- expect(subject.related_identifiers).to eq([{"id"=>"10.5072/timeseries", "related_identifier_type"=>"DOI", "relation_type"=>"Continues"}])
203
- expect(subject.geo_location).to eq([{"geo_location_place"=>"Disko Bay", "geo_location_point"=>{"point_latitude"=>"69.000000", "point_longitude"=>"-52.000000"}}])
202
+ expect(subject.related_identifiers).to eq([{"related_identifier"=>"10.5072/timeseries", "related_identifier_type"=>"DOI", "relation_type"=>"Continues"}])
203
+ expect(subject.geo_locations).to eq([{"geo_location_place"=>"Disko Bay", "geo_location_point"=>{"point_latitude"=>"69.000000", "point_longitude"=>"-52.000000"}}])
204
204
  end
205
205
 
206
206
  it "geo_location_box" do
@@ -212,11 +212,11 @@ describe Bolognese::Metadata, vcr: true do
212
212
  expect(subject.doi).to eq("10.6071/z7wc73")
213
213
  expect(subject.creator.length).to eq(6)
214
214
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
215
- expect(subject.title).to eq([{"text"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek\n meteorological data, soil moisture and temperature, snow depth and air\n temperature"}])
215
+ expect(subject.titles).to eq([{"title"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek\n meteorological data, soil moisture and temperature, snow depth and air\n temperature"}])
216
216
  expect(subject.publisher).to eq("UC Merced")
217
217
  expect(subject.dates).to eq([{"date"=>"2014-10-17", "date_type"=>"Updated"}, {"date"=>"2016-03-14T17:02:02Z", "date_type"=>"Available"}, {"date"=>"2013", "date_type"=>"Issued"}])
218
218
  expect(subject.publication_year).to eq("2013")
219
- expect(subject.geo_location).to eq([{"geo_location_box"=>
219
+ expect(subject.geo_locations).to eq([{"geo_location_box"=>
220
220
  {"east_bound_longitude"=>"-119.182",
221
221
  "north_bound_latitude"=>"37.075",
222
222
  "south_bound_latitude"=>"37.046",
@@ -233,7 +233,7 @@ describe Bolognese::Metadata, vcr: true do
233
233
  expect(subject.identifier).to eq("https://doi.org/10.14457/kmitl.res.2006.17")
234
234
  expect(subject.types["type"]).to eq("Dataset")
235
235
  expect(subject.creator.length).to eq(1)
236
- expect(subject.creator.first).to eq(["name", "กัญจนา แซ่เตียว"])
236
+ expect(subject.creator.first).to eq("name" => "กัญจนา แซ่เตียว")
237
237
  end
238
238
 
239
239
  it "multiple author names in one creatorName" do
@@ -242,7 +242,7 @@ describe Bolognese::Metadata, vcr: true do
242
242
  expect(subject.valid?).to be true
243
243
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/eqtqyo")
244
244
  expect(subject.types["type"]).to eq("Dataset")
245
- expect(subject.creator).to eq("name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)")
245
+ expect(subject.creator).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)"}])
246
246
  end
247
247
 
248
248
  it "author with scheme" do
@@ -270,7 +270,7 @@ describe Bolognese::Metadata, vcr: true do
270
270
  subject = Bolognese::Metadata.new(input: input)
271
271
  expect(subject.valid?).to be true
272
272
  expect(subject.identifier).to eq("https://doi.org/10.21233/n34n5q")
273
- expect(subject.keywords).to eq([{"subject_scheme"=>"Library of Congress", "scheme_uri"=>"http://id.loc.gov/authorities/subjects", "text"=>"Paleoecology"}])
273
+ expect(subject.subjects).to eq([{"subject_scheme"=>"Library of Congress", "scheme_uri"=>"http://id.loc.gov/authorities/subjects", "subject"=>"Paleoecology"}])
274
274
  end
275
275
 
276
276
  it "Funding" do
@@ -283,8 +283,8 @@ describe Bolognese::Metadata, vcr: true do
283
283
  expect(subject.types["resource_type_general"]).to eq("Dataset")
284
284
  expect(subject.creator.length).to eq(2)
285
285
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-8740-8284", "name"=>"Bimbo, Nuno", "givenName"=>"Nuno", "familyName"=>"Bimbo")
286
- expect(subject.title).to eq([{"text"=>"Dataset for \"Direct Evidence for Solid-Like Hydrogen in a Nanoporous Carbon Hydrogen Storage Material at Supercritical Temperatures\""}])
287
- expect(subject.description.first["text"]).to start_with("Dataset for Direct Evidence for Solid-Like Hydrogen")
286
+ expect(subject.titles).to eq([{"title"=>"Dataset for \"Direct Evidence for Solid-Like Hydrogen in a Nanoporous Carbon Hydrogen Storage Material at Supercritical Temperatures\""}])
287
+ expect(subject.descriptions.first["description"]).to start_with("Dataset for Direct Evidence for Solid-Like Hydrogen")
288
288
  expect(subject.publication_year).to eq("2015")
289
289
  expect(subject.publisher).to eq("University of Bath")
290
290
  expect(subject.funding_references.length).to eq(5)
@@ -310,8 +310,8 @@ describe Bolognese::Metadata, vcr: true do
310
310
  expect(subject.types["citeproc"]).to eq("article")
311
311
  expect(subject.creator.length).to eq(24)
312
312
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-5331-6592", "name"=>"Farquhar, Adam", "givenName"=>"Adam", "familyName"=>"Farquhar")
313
- expect(subject.title).to eq([{"text"=>"Technical and Human Infrastructure for Open Research (THOR)"}])
314
- expect(subject.description.first["text"]).to start_with("Five years ago, a global infrastructure")
313
+ expect(subject.titles).to eq([{"title"=>"Technical and Human Infrastructure for Open Research (THOR)"}])
314
+ expect(subject.descriptions.first["description"]).to start_with("Five years ago, a global infrastructure")
315
315
  expect(subject.publication_year).to eq("2015")
316
316
  expect(subject.publisher).to eq("DataCite")
317
317
  expect(subject.funding_references).to eq([{"award_number"=>"654039",
@@ -334,13 +334,13 @@ describe Bolognese::Metadata, vcr: true do
334
334
  expect(subject.types["resource_type_general"]).to eq("Text")
335
335
  expect(subject.types["ris"]).to eq("RPRT")
336
336
  expect(subject.types["citeproc"]).to eq("article-journal")
337
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
338
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
339
- expect(subject.alternate_identifiers).to eq("type"=>"Local accession number", "name"=>"MS-49-3632-5083")
337
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
338
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
339
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"MS-49-3632-5083", "alternate_identifier_type"=>"Local accession number"}])
340
340
  expect(subject.dates).to eq([{"date"=>"2016-12-20", "date_type"=>"Created"}, {"date"=>"2016-12-20", "date_type"=>"Issued"}, {"date"=>"2016-12-20", "date_type"=>"Updated"}])
341
341
  expect(subject.publication_year).to eq("2016")
342
342
  expect(subject.related_identifiers.length).to eq(3)
343
- expect(subject.related_identifiers.last).to eq("id"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
343
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
344
344
  expect(subject.service_provider).to eq("DataCite")
345
345
  end
346
346
 
@@ -355,13 +355,13 @@ describe Bolognese::Metadata, vcr: true do
355
355
  expect(subject.types["ris"]).to eq("BOOK")
356
356
  expect(subject.types["citeproc"]).to eq("book")
357
357
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
358
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
359
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
360
- expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
358
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
359
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
360
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_information"=>"Correction", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
361
361
  expect(subject.publication_year).to eq("2010")
362
362
  expect(subject.related_identifiers.length).to eq(1)
363
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
364
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
363
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
364
+ expect(subject.rights_list).to eq([{"lang"=>"eng", "rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
365
365
  expect(subject.publisher).to eq("Springer")
366
366
  expect(subject.service_provider).to eq("DataCite")
367
367
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
@@ -378,12 +378,12 @@ describe Bolognese::Metadata, vcr: true do
378
378
  expect(subject.types["ris"]).to eq("BOOK")
379
379
  expect(subject.types["citeproc"]).to eq("book")
380
380
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
381
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
382
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
381
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
382
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
383
383
  expect(subject.publication_year).to eq("2010")
384
384
  expect(subject.related_identifiers.length).to eq(1)
385
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
386
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
385
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
386
+ expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
387
387
  expect(subject.publisher).to eq("Springer")
388
388
  expect(subject.service_provider).to eq("DataCite")
389
389
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4.0")
@@ -400,12 +400,12 @@ describe Bolognese::Metadata, vcr: true do
400
400
  expect(subject.types["ris"]).to eq("BOOK")
401
401
  expect(subject.types["citeproc"]).to eq("book")
402
402
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
403
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
404
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
403
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
404
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
405
405
  expect(subject.publication_year).to eq("2010")
406
406
  expect(subject.related_identifiers.length).to eq(1)
407
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
408
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
407
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
408
+ expect(subject.rights_list).to eq([{"rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
409
409
  expect(subject.publisher).to eq("Springer")
410
410
  expect(subject.service_provider).to eq("DataCite")
411
411
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3.0")
@@ -422,12 +422,12 @@ describe Bolognese::Metadata, vcr: true do
422
422
  expect(subject.types["ris"]).to eq("BOOK")
423
423
  expect(subject.types["citeproc"]).to eq("book")
424
424
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
425
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
426
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
425
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
426
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
427
427
  expect(subject.dates).to eq([{"date"=>"2009-04-29", "date_type"=>"StartDate"}, {"date"=>"2010-01-05", "date_type"=>"EndDate"}, {"date"=>"2010", "date_type"=>"Issued"}])
428
428
  expect(subject.publication_year).to eq("2010")
429
429
  expect(subject.related_identifiers.length).to eq(1)
430
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
430
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
431
431
  expect(subject.publisher).to eq("Springer")
432
432
  expect(subject.service_provider).to eq("DataCite")
433
433
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
@@ -442,17 +442,17 @@ describe Bolognese::Metadata, vcr: true do
442
442
  expect(subject.types["resource_type"]).to eq("Monograph")
443
443
  expect(subject.types["resource_type_general"]).to eq("Text")
444
444
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
445
- expect(subject.title).to eq([{"text"=>"Właściwości rzutowań podprzestrzeniowych"}, {"text"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
446
- expect(subject.alternate_identifiers).to eq("type"=>"ISBN", "name"=>"937-0-4523-12357-6")
447
- expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
445
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "title_type"=>"TranslatedTitle"}])
446
+ expect(subject.alternate_identifiers).to eq([{"alternate_identifier"=>"937-0-4523-12357-6", "alternate_identifier_type"=>"ISBN"}])
447
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "date_information"=>"Correction", "date_type"=>"Other"}, {"date"=>"2010", "date_type"=>"Issued"}])
448
448
  expect(subject.publication_year).to eq("2010")
449
- expect(subject.size).to eq(["256 pages"])
449
+ expect(subject.sizes).to eq(["256 pages"])
450
450
  expect(subject.formats).to eq(["pdf"])
451
451
  expect(subject.content_url).to eq("https://example.org/report.pdf")
452
452
  expect(subject.publication_year).to eq("2010")
453
453
  expect(subject.related_identifiers.length).to eq(1)
454
- expect(subject.related_identifiers.last).to eq("id"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
455
- expect(subject.rights).to eq([{"id"=>"http://creativecommons.org/licenses/by-nd/2.0", "name"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
454
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf", "resource_type_general"=>"Text")
455
+ expect(subject.rights_list).to eq([{"lang"=>"eng", "rights_uri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
456
456
  expect(subject.publisher).to eq("Springer")
457
457
  expect(subject.service_provider).to eq("DataCite")
458
458
  end
@@ -467,7 +467,7 @@ describe Bolognese::Metadata, vcr: true do
467
467
  expect(subject.types["resource_type_general"]).to eq("Software")
468
468
  expect(subject.creator.length).to eq(5)
469
469
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Carlos PatiñO", "givenName"=>"Carlos", "familyName"=>"PatiñO")
470
- expect(subject.title).to eq([{"text"=>"LAMMPS Data-File Generator"}])
470
+ expect(subject.titles).to eq([{"title"=>"LAMMPS Data-File Generator"}])
471
471
  expect(subject.dates).to eq([{"date"=>"2018-07-18", "date_type"=>"Valid"}, {"date"=>"2018-07-18", "date_type"=>"Accepted"}, {"date"=>"2018", "date_type"=>"Issued"}])
472
472
  expect(subject.publication_year).to eq("2018")
473
473
  expect(subject.publisher).to eq("nanoHUB")
@@ -482,8 +482,8 @@ describe Bolognese::Metadata, vcr: true do
482
482
  expect(subject.identifier).to eq("https://doi.org/10.5067/terra+aqua/ceres/cldtyphist_l3.004")
483
483
  expect(subject.types["type"]).to eq("Dataset")
484
484
  expect(subject.types["resource_type_general"]).to eq("Dataset")
485
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Takmeng Wong", "givenName"=>"Takmeng", "familyName"=>"Wong")
486
- expect(subject.title).to eq([{"text"=>"CERES Level 3 Cloud Type Historgram Terra+Aqua HDF file - Edition4"}])
485
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Takmeng Wong", "givenName"=>"Takmeng", "familyName"=>"Wong"}])
486
+ expect(subject.titles).to eq([{"title"=>"CERES Level 3 Cloud Type Historgram Terra+Aqua HDF file - Edition4"}])
487
487
  expect(subject.publication_year).to eq("2016")
488
488
  expect(subject.publisher).to eq("NASA Langley Atmospheric Science Data Center DAAC")
489
489
  expect(subject.service_provider).to eq("DataCite")
@@ -497,9 +497,9 @@ describe Bolognese::Metadata, vcr: true do
497
497
  expect(subject.identifier).to eq("https://doi.org/10.4232/1.2745")
498
498
  expect(subject.types["type"]).to eq("Dataset")
499
499
  expect(subject.types["resource_type_general"]).to eq("Dataset")
500
- expect(subject.creator).to eq("type"=>"Organization", "name"=>"Europäische Kommission")
501
- expect(subject.title).to eq([{"lang"=>"de", "text"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"lang"=>"en", "text"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"title_type"=>"Subtitle","lang"=>"de", "text"=>"The Common European Currency"}, {"title_type"=>"Subtitle", "lang"=>"en", "text"=>"The Common European Currency"}])
502
- expect(subject.keywords).to eq([{"subject_scheme"=>"ZA", "text"=>"KAT12 International Institutions, Relations, Conditions"}])
500
+ expect(subject.creator).to eq([{"type"=>"Organization", "name"=>"Europäische Kommission"}])
501
+ expect(subject.titles).to eq([{"lang"=>"de", "title"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"lang"=>"en", "title"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"title_type"=>"Subtitle","lang"=>"de", "title"=>"The Common European Currency"}, {"title_type"=>"Subtitle", "lang"=>"en", "title"=>"The Common European Currency"}])
502
+ expect(subject.subjects).to eq([{"subject_scheme"=>"ZA", "lang"=>"en", "subject"=>"KAT12 International Institutions, Relations, Conditions"}])
503
503
  expect(subject.dates).to eq([{"date"=>"1995-12", "date_type"=>"Collected"}, {"date"=>"1996", "date_type"=>"Issued"}])
504
504
  expect(subject.publication_year).to eq("1996")
505
505
  expect(subject.publisher).to eq("GESIS Data Archive")
@@ -517,11 +517,11 @@ describe Bolognese::Metadata, vcr: true do
517
517
  expect(subject.types["resource_type_general"]).to eq("Text")
518
518
  expect(subject.creator.length).to eq(3)
519
519
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"P. Llamas", "givenName"=>"P.", "familyName"=>"Llamas")
520
- expect(subject.title).to eq([{"text"=>"Rural Electrification With Hybrid Power Systems Based on Renewables - Technical System Configurations From the Point of View of the European Industry"}])
520
+ expect(subject.titles).to eq([{"title"=>"Rural Electrification With Hybrid Power Systems Based on Renewables - Technical System Configurations From the Point of View of the European Industry"}])
521
521
  expect(subject.dates).to eq([{"date"=>"2008-11-01", "date_type"=>"Valid"}, {"date"=>"2008", "date_type"=>"Issued"}])
522
522
  expect(subject.publication_year).to eq("2008")
523
523
  expect(subject.periodical).to eq("title"=>"23rd European Photovoltaic Solar Energy Conference and Exhibition, 1-5 September 2008, Valencia, Spain; 3353-3356", "type"=>"Periodical")
524
- expect(subject.description.first["text"]).to start_with("Aim of this paper is the presentation")
524
+ expect(subject.descriptions.first["description"]).to start_with("Aim of this paper is the presentation")
525
525
  expect(subject.publisher).to eq("WIP-Munich")
526
526
  expect(subject.service_provider).to eq("DataCite")
527
527
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
@@ -533,7 +533,8 @@ describe Bolognese::Metadata, vcr: true do
533
533
  expect(subject.valid?).to be true
534
534
  expect(subject.doi).to eq("10.23725/8na3-9s47")
535
535
  expect(subject.identifier).to eq("https://doi.org/10.23725/8na3-9s47")
536
- expect(subject.alternate_identifiers).to include({"name"=>"3b33f6b9338fccab0901b7d317577ea3", "type"=>"md5"}, {"name"=>"ark:/99999/fk41CrU4eszeLUDe", "type"=>"minid"}, {"name"=>"dg.4503/c3d66dc9-58da-411c-83c4-dd656aa3c4b7", "type"=>"dataguid"})
536
+ expect(subject.alternate_identifiers.length).to eq(3)
537
+ expect(subject.alternate_identifiers.first).to eq("alternate_identifier"=>"ark:/99999/fk41CrU4eszeLUDe", "alternate_identifier_type"=>"minid")
537
538
  expect(subject.content_url).to include("s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram", "gs://topmed-irc-share/public/NWD165827.recab.cram")
538
539
  end
539
540
 
@@ -545,8 +546,8 @@ describe Bolognese::Metadata, vcr: true do
545
546
  expect(subject.types["type"]).to eq("Dataset")
546
547
  expect(subject.types["resource_type"]).to eq("Disclosure")
547
548
  expect(subject.types["resource_type_general"]).to eq("Dataset")
548
- expect(subject.creator).to eq("name"=>"Anonymous")
549
- expect(subject.title).to eq([{"text"=>"Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen"}])
549
+ expect(subject.creator).to eq([{"name"=>"Anonymous"}])
550
+ expect(subject.titles).to eq([{"title"=>"Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen"}])
550
551
  expect(subject.dates).to eq([{"date"=>"07.04.2017", "date_type"=>"Available"}, {"date"=>"2017", "date_type"=>"Issued"}])
551
552
  expect(subject.publication_year).to eq("2017")
552
553
  expect(subject.publisher).to eq("Siemens AG")
@@ -576,7 +577,7 @@ describe Bolognese::Metadata, vcr: true do
576
577
  "name"=>"Henk Eskes",
577
578
  "givenName"=>"Henk",
578
579
  "familyName"=>"Eskes"}])
579
- expect(subject.title).to eq([{"text"=>"Multi-Sensor Reanalysis (MSR) of total ozone, version 2"}])
580
+ expect(subject.titles).to eq([{"title"=>"Multi-Sensor Reanalysis (MSR) of total ozone, version 2"}])
580
581
  expect(subject.version).to eq("2")
581
582
  expect(subject.dates).to eq([{"date"=>"2014-04-25", "date_type"=>"Available"}, {"date"=>"1970-04-01 / (:tba)", "date_type"=>"Collected"}, {"date"=>"2015", "date_type"=>"Issued"}])
582
583
  expect(subject.publication_year).to eq("2015")
@@ -602,8 +603,8 @@ describe Bolognese::Metadata, vcr: true do
602
603
  expect(subject.identifier).to eq("https://handle.test.datacite.org/10.22002/d1.694")
603
604
  expect(subject.types["type"]).to eq("Dataset")
604
605
  expect(subject.types["resource_type_general"]).to eq("Dataset")
605
- expect(subject.creator).to eq("name"=>"Tester")
606
- expect(subject.title).to eq([{"text"=>"Test license"}])
606
+ expect(subject.creator).to eq([{"name"=>"Tester"}])
607
+ expect(subject.titles).to eq([{"title"=>"Test license"}])
607
608
  expect(subject.dates).to eq([{"date"=>"2018-01-12", "date_type"=>"Issued"}])
608
609
  expect(subject.publication_year).to eq("2018")
609
610
  expect(subject.publisher).to eq("CaltechDATA")
@@ -623,7 +624,7 @@ describe Bolognese::Metadata, vcr: true do
623
624
  expect(subject.types["citeproc"]).to eq("article-journal")
624
625
  expect(subject.creator.length).to eq(5)
625
626
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Lina Patel", "givenName"=>"Lina", "familyName"=>"Patel")
626
- expect(subject.title).to eq([{"text"=>"Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]"}])
627
+ expect(subject.titles).to eq([{"title"=>"Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]"}])
627
628
  expect(subject.publication_year).to eq("2018")
628
629
  expect(subject.publisher).to eq("Gates Open Research")
629
630
  expect(subject.service_provider).to eq("DataCite")
@@ -633,7 +634,7 @@ describe Bolognese::Metadata, vcr: true do
633
634
  it "missing creator" do
634
635
  input = fixture_path + "datacite_missing_creator.xml"
635
636
  subject = Bolognese::Metadata.new(input: input, regenerate: true)
636
- expect(subject.creator).to be_nil
637
+ expect(subject.creator).to be_blank
637
638
  expect(subject.valid?).to be false
638
639
  expect(subject.errors).to eq("4:0: ERROR: Element '{http://datacite.org/schema/kernel-4}creators': Missing child element(s). Expected is ( {http://datacite.org/schema/kernel-4}creator ).")
639
640
  end
@@ -641,7 +642,7 @@ describe Bolognese::Metadata, vcr: true do
641
642
  it "malformed creator" do
642
643
  input = fixture_path + "datacite_malformed_creator.xml"
643
644
  subject = Bolognese::Metadata.new(input: input, regenerate: false)
644
- expect(subject.creator).to be_nil
645
+ expect(subject.creator).to be_blank
645
646
  expect(subject.valid?).to be false
646
647
  expect(subject.errors).to eq("16:0: ERROR: Element '{http://datacite.org/schema/kernel-4}creatorName': This element is not expected. Expected is ( {http://datacite.org/schema/kernel-4}affiliation ).")
647
648
  end
@@ -664,8 +665,8 @@ describe Bolognese::Metadata, vcr: true do
664
665
  expect(subject.types["type"]).to eq("Thesis")
665
666
  expect(subject.types["bibtex"]).to eq("phdthesis")
666
667
  expect(subject.types["citeproc"]).to eq("thesis")
667
- expect(subject.creator).to eq("type"=>"Person", "name"=>"Heiko Conrad", "givenName"=>"Heiko", "familyName"=>"Conrad")
668
- expect(subject.title).to eq([{"text"=>"Dynamics of colloids in molecular glass forming liquids studied via X-ray photon correlation spectroscopy"}])
668
+ expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Heiko Conrad", "givenName"=>"Heiko", "familyName"=>"Conrad"}])
669
+ expect(subject.titles).to eq([{"title"=>"Dynamics of colloids in molecular glass forming liquids studied via X-ray photon correlation spectroscopy"}])
669
670
  expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"},
670
671
  {"date"=>"2014", "date_type"=>"Copyrighted"},
671
672
  {"date"=>"2009-10-01/2014-01-23", "date_type"=>"Created"}])
@@ -682,8 +683,8 @@ describe Bolognese::Metadata, vcr: true do
682
683
  expect(subject.identifier).to eq("https://doi.org/10.4121/uuid:3926db30-f712-4394-aebc-75976070e91f")
683
684
  expect(subject.types["type"]).to eq("Dataset")
684
685
  expect(subject.types["resource_type_general"]).to eq("Dataset")
685
- expect(subject.title).to eq([{"text"=>"BPI Challenge 2012"}])
686
- expect(subject.dates).to eq([{"date"=>"2011-10-01/2012-03-14", "date_type"=>"Other"}, {"date"=>"2012", "date_type"=>"Issued"}])
686
+ expect(subject.titles).to eq([{"title"=>"BPI Challenge 2012"}])
687
+ expect(subject.dates).to eq([{"date"=>"2011-10-01/2012-03-14", "date_information"=>"Temporal coverage of this dataset.", "date_type"=>"Other"}, {"date"=>"2012", "date_type"=>"Issued"}])
687
688
  expect(subject.publication_year).to eq("2012")
688
689
  expect(subject.state).to eq("findable")
689
690
  end
@@ -691,13 +692,13 @@ describe Bolognese::Metadata, vcr: true do
691
692
 
692
693
  context "change datacite metadata" do
693
694
  it "change title" do
694
- subject.title = "A new malaria agent in African hominids."
695
+ subject.titles = [{"title"=> "A new malaria agent in African hominids." }]
695
696
  expect(subject.valid?).to be true
696
697
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
697
698
  expect(subject.doi).to eq("10.5061/dryad.8515")
698
699
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
699
700
  expect(subject.types["type"]).to eq("Dataset")
700
- expect(subject.title).to eq("A new malaria agent in African hominids.")
701
+ expect(subject.titles).to eq([{"title"=> "A new malaria agent in African hominids." }])
701
702
  end
702
703
 
703
704
  it "change state" do
@@ -707,7 +708,7 @@ describe Bolognese::Metadata, vcr: true do
707
708
  expect(subject.doi).to eq("10.5061/dryad.8515")
708
709
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
709
710
  expect(subject.types["type"]).to eq("Dataset")
710
- expect(subject.title).to eq([{"text"=>"Data from: A new malaria agent in African hominids."}])
711
+ expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
711
712
  expect(subject.state).to eq("registered")
712
713
  end
713
714
  end
@@ -720,8 +721,8 @@ describe Bolognese::Metadata, vcr: true do
720
721
  expect(subject.valid?).to be true
721
722
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
722
723
  expect(subject.doi).to eq("10.5061/dryad.8515")
723
- expect(subject.creator).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner")
724
- expect(subject.title).to eq([{"text"=>"Eating your own Dog Food"}])
724
+ expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
725
+ expect(subject.titles).to eq([{"title"=>"Eating your own Dog Food"}])
725
726
  expect(subject.publisher).to eq("DataCite")
726
727
  expect(subject.publication_year).to eq("2016")
727
728
  end
@@ -739,15 +740,15 @@ describe Bolognese::Metadata, vcr: true do
739
740
  expect(subject.content_url).to eq("https://storage.googleapis.com/gtex_analysis_v7/single_tissue_eqtl_data/GTEx_Analysis_v7_eQTL_expression_matrices.tar.gz")
740
741
  expect(subject.types["type"]).to eq("Dataset")
741
742
  expect(subject.types["resource_type"]).to eq("DroNc-seq data")
742
- expect(subject.creator).to eq("name"=>"The GTEx Consortium", "type"=>"Organization")
743
- expect(subject.title).to eq([{"text"=>"DroNc-seq data"}])
744
- expect(subject.keywords).to eq([{"text"=>"gtex"}, {"text"=>"annotation"}, {"text"=>"phenotype"}, {"text"=>"gene regulation"}, {"text"=>"transcriptomics"}])
743
+ expect(subject.creator).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
744
+ expect(subject.titles).to eq([{"title"=>"DroNc-seq data"}])
745
+ expect(subject.subjects).to eq([{"subject"=>"gtex"}, {"subject"=>"annotation"}, {"subject"=>"phenotype"}, {"subject"=>"gene regulation"}, {"subject"=>"transcriptomics"}])
745
746
  expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
746
747
  expect(subject.publication_year).to eq("2017")
747
748
  expect(subject.related_identifiers.length).to eq(4)
748
- expect(subject.related_identifiers.last).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "related_identifier_type"=>"URL", "relation_type"=>"IsPartOf")
749
+ expect(subject.related_identifiers.last).to eq("related_identifier"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "related_identifier_type"=>"URL", "relation_type"=>"IsPartOf")
749
750
  expect(subject.formats).to eq(["application/tar"])
750
- expect(subject.size).to eq(["15.7M"])
751
+ expect(subject.sizes).to eq(["15.7M"])
751
752
  expect(subject.periodical).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "title"=>"GTEx", "type"=>"DataCatalog")
752
753
  expect(subject.publisher).to eq("GTEx")
753
754
  expect(subject.funding_references.count).to eq(7)