bolognese 1.0.7 → 1.0.8

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 (39) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/datacite_utils.rb +23 -23
  4. data/lib/bolognese/metadata.rb +5 -1
  5. data/lib/bolognese/metadata_utils.rb +10 -14
  6. data/lib/bolognese/readers/bibtex_reader.rb +9 -9
  7. data/lib/bolognese/readers/citeproc_reader.rb +12 -12
  8. data/lib/bolognese/readers/codemeta_reader.rb +12 -12
  9. data/lib/bolognese/readers/crossref_reader.rb +27 -29
  10. data/lib/bolognese/readers/datacite_json_reader.rb +19 -28
  11. data/lib/bolognese/readers/datacite_reader.rb +37 -37
  12. data/lib/bolognese/readers/ris_reader.rb +9 -9
  13. data/lib/bolognese/readers/schema_org_reader.rb +37 -32
  14. data/lib/bolognese/utils.rb +31 -34
  15. data/lib/bolognese/version.rb +1 -1
  16. data/lib/bolognese/writers/codemeta_writer.rb +1 -1
  17. data/lib/bolognese/writers/crosscite_writer.rb +1 -1
  18. data/lib/bolognese/writers/datacite_json_writer.rb +10 -10
  19. data/lib/bolognese/writers/jats_writer.rb +1 -1
  20. data/lib/bolognese/writers/ris_writer.rb +1 -1
  21. data/lib/bolognese/writers/schema_org_writer.rb +6 -6
  22. data/spec/datacite_utils_spec.rb +1 -1
  23. data/spec/fixtures/crosscite.json +8 -8
  24. data/spec/fixtures/datacite.json +22 -22
  25. data/spec/readers/bibtex_reader_spec.rb +6 -6
  26. data/spec/readers/citeproc_reader_spec.rb +2 -2
  27. data/spec/readers/codemeta_reader_spec.rb +8 -8
  28. data/spec/readers/crosscite_reader_spec.rb +4 -4
  29. data/spec/readers/crossref_reader_spec.rb +56 -59
  30. data/spec/readers/datacite_json_reader_spec.rb +7 -7
  31. data/spec/readers/datacite_reader_spec.rb +193 -194
  32. data/spec/readers/ris_reader_spec.rb +5 -5
  33. data/spec/readers/schema_org_reader_spec.rb +31 -32
  34. data/spec/utils_spec.rb +4 -4
  35. data/spec/writers/crosscite_writer_spec.rb +10 -13
  36. data/spec/writers/datacite_json_writer_spec.rb +9 -9
  37. data/spec/writers/datacite_writer_spec.rb +24 -26
  38. data/spec/writers/schema_org_writer_spec.rb +2 -2
  39. metadata +2 -2
@@ -17,16 +17,16 @@ 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"=>"article", "citeproc"=>"article-journal", "resource_type"=>"BlogPosting", "resource_type_general"=>"Text", "ris"=>"RPRT", "type"=>"ScholarlyArticle")
20
+ expect(subject.types).to eq("bibtex"=>"article", "citeproc"=>"article-journal", "resourceType"=>"BlogPosting", "resourceTypeGeneral"=>"Text", "ris"=>"RPRT", "schemaOrg"=>"ScholarlyArticle")
21
21
  expect(subject.creator).to eq([{"type"=>"Person", "id"=>"http://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
22
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
- 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"}])
23
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"MS-49-3632-5083", "alternateIdentifierType"=>"Local accession number"}])
24
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"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("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
- expect(subject.service_provider).to eq("DataCite")
27
+ expect(subject.related_identifiers.first).to eq("relatedIdentifier"=>"10.5438/0000-00ss", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf")
28
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5438/55e5-t5c0", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
29
+ expect(subject.source).to eq("DataCite")
30
30
  end
31
31
 
32
32
  # it "SoftwareSourceCode" do
@@ -40,7 +40,7 @@ describe Bolognese::Metadata, vcr: true do
40
40
  # expect(subject.dates).to eq([{"date"=>"2016", "date_type"=>"Issued"}])
41
41
  # expect(subject.publication_year).to eq("2016")
42
42
  # expect(subject.publisher).to eq("KNB Data Repository")
43
- # expect(subject.service_provider).to eq("DataCite")
43
+ # expect(subject.source).to eq("DataCite")
44
44
  # end
45
45
 
46
46
  it "SoftwareSourceCode missing_comma" do
@@ -20,21 +20,21 @@ describe Bolognese::Metadata, vcr: true do
20
20
  expect(subject.valid?).to be true
21
21
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
22
22
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
23
- expect(subject.types["type"]).to eq("Dataset")
24
- expect(subject.types["resource_type"]).to eq("DataPackage")
25
- expect(subject.types["resource_type_general"]).to eq("Dataset")
23
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
24
+ expect(subject.types["resourceType"]).to eq("DataPackage")
25
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
26
26
  expect(subject.types["ris"]).to eq("DATA")
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
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"}])
31
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"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.","alternateIdentifierType"=>"citation"}])
32
+ expect(subject.rights_list).to eq([{"rightsUri"=>"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("related_identifier"=>"19478877", "related_identifier_type"=>"PMID", "relation_type"=>"IsSupplementTo")
35
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"19478877", "relatedIdentifierType"=>"PMID", "relationType"=>"IsSupplementTo")
36
36
  expect(subject.publisher).to eq("Dryad Digital Repository")
37
- expect(subject.service_provider).to eq("DataCite")
37
+ expect(subject.source).to eq("DataCite")
38
38
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
39
39
  end
40
40
 
@@ -43,22 +43,22 @@ describe Bolognese::Metadata, vcr: true do
43
43
  subject = Bolognese::Metadata.new(input: input)
44
44
  expect(subject.valid?).to be true
45
45
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
46
- expect(subject.types["type"]).to eq("ScholarlyArticle")
47
- expect(subject.types["resource_type"]).to eq("BlogPosting")
48
- expect(subject.types["resource_type_general"]).to eq("Text")
46
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
47
+ expect(subject.types["resourceType"]).to eq("BlogPosting")
48
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
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
52
  expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
53
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"}])
54
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"MS-49-3632-5083", "alternateIdentifierType"=>"Local accession number"}])
55
55
  expect(subject.descriptions.first["description"]).to start_with("Eating your own dog food")
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"}])
56
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"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("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
59
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5438/0000-00ss", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf")
60
60
  expect(subject.publisher).to eq("DataCite")
61
- expect(subject.service_provider).to eq("DataCite")
61
+ expect(subject.source).to eq("DataCite")
62
62
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
63
63
  end
64
64
 
@@ -67,16 +67,16 @@ describe Bolognese::Metadata, vcr: true do
67
67
  subject = Bolognese::Metadata.new(input: input)
68
68
  expect(subject.valid?).to be true
69
69
  expect(subject.identifier).to eq("https://doi.org/10.4230/lipics.tqc.2013.93")
70
- expect(subject.types["type"]).to eq("ScholarlyArticle")
71
- expect(subject.types["resource_type"]).to eq("ConferencePaper")
72
- expect(subject.types["resource_type_general"]).to eq("Text")
70
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
71
+ expect(subject.types["resourceType"]).to eq("ConferencePaper")
72
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
73
73
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Nathaniel Johnston", "givenName"=>"Nathaniel", "familyName"=>"Johnston"}])
74
74
  expect(subject.titles).to eq([{"title"=>"The Minimum Size of Qubit Unextendible Product Bases"}])
75
75
  expect(subject.descriptions.first["description"]).to start_with("We investigate the problem of constructing unextendible product bases in the qubit case")
76
- expect(subject.dates).to eq([{"date"=>"2013-11-05", "date_type"=>"Available"}, {"date"=>"2013", "date_type"=>"Issued"}])
76
+ expect(subject.dates).to eq([{"date"=>"2013-11-05", "dateType"=>"Available"}, {"date"=>"2013", "dateType"=>"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")
79
- expect(subject.service_provider).to eq("DataCite")
79
+ expect(subject.source).to eq("DataCite")
80
80
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.1")
81
81
  end
82
82
 
@@ -85,16 +85,16 @@ describe Bolognese::Metadata, vcr: true do
85
85
  subject = Bolognese::Metadata.new(input: input)
86
86
  expect(subject.valid?).to be true
87
87
  expect(subject.identifier).to eq("https://doi.org/10.17630/bb43e6a3-72e0-464c-9fdd-fbe5d3e56a09")
88
- expect(subject.types["type"]).to eq("Dataset")
89
- expect(subject.types["resource_type"]).to eq("Dataset")
90
- expect(subject.types["resource_type_general"]).to eq("Audiovisual")
88
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
89
+ expect(subject.types["resourceType"]).to eq("Dataset")
90
+ expect(subject.types["resourceTypeGeneral"]).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
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
- expect(subject.dates).to eq([{"date"=>"2016-01-20", "date_type"=>"Available"}, {"date"=>"2016", "date_type"=>"Issued"}])
94
+ expect(subject.dates).to eq([{"date"=>"2016-01-20", "dateType"=>"Available"}, {"date"=>"2016", "dateType"=>"Issued"}])
95
95
  expect(subject.publication_year).to eq("2016")
96
96
  expect(subject.publisher).to eq("University of St Andrews")
97
- expect(subject.service_provider).to eq("DataCite")
97
+ expect(subject.source).to eq("DataCite")
98
98
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
99
99
  end
100
100
 
@@ -103,20 +103,20 @@ describe Bolognese::Metadata, vcr: true do
103
103
  subject = Bolognese::Metadata.new(input: input)
104
104
  expect(subject.valid?).to be true
105
105
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.48440")
106
- expect(subject.types["type"]).to eq("SoftwareSourceCode")
107
- expect(subject.types["resource_type_general"]).to eq("Software")
106
+ expect(subject.types["schemaOrg"]).to eq("SoftwareSourceCode")
107
+ expect(subject.types["resourceTypeGeneral"]).to eq("Software")
108
108
  expect(subject.types["ris"]).to eq("COMP")
109
109
  expect(subject.types["citeproc"]).to eq("article")
110
110
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Kristian Garza", "givenName"=>"Kristian", "familyName"=>"Garza"}])
111
111
  expect(subject.titles).to eq([{"title"=>"Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture"}])
112
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
- expect(subject.dates).to eq([{"date"=>"2016-03-27", "date_type"=>"Issued"}])
113
+ expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/licenses/by-nc-sa/4.0", "rights"=>"Creative Commons Attribution-NonCommercial-ShareAlike"}, {"rights"=>"Open Access"}])
114
+ expect(subject.dates).to eq([{"date"=>"2016-03-27", "dateType"=>"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("related_identifier"=>"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("relatedIdentifier"=>"https://github.com/kjgarza/frame_experiment_analysis/tree/v1.0", "relatedIdentifierType"=>"URL", "relationType"=>"IsSupplementTo")
118
118
  expect(subject.publisher).to eq("Zenodo")
119
- expect(subject.service_provider).to eq("DataCite")
119
+ expect(subject.source).to eq("DataCite")
120
120
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
121
121
  end
122
122
 
@@ -125,20 +125,20 @@ describe Bolognese::Metadata, vcr: true do
125
125
  subject = Bolognese::Metadata.new(input: input)
126
126
  expect(subject.valid?).to be true
127
127
  expect(subject.identifier).to eq("https://doi.org/10.6084/m9.figshare.4234751.v1")
128
- expect(subject.types["type"]).to eq("Dataset")
129
- expect(subject.types["resource_type"]).to eq("Dataset")
130
- expect(subject.types["resource_type_general"]).to eq("Dataset")
128
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
129
+ expect(subject.types["resourceType"]).to eq("Dataset")
130
+ expect(subject.types["resourceTypeGeneral"]).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
133
  expect(subject.titles).to eq([{"title"=>"RAIN v1"}])
134
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
- expect(subject.dates).to eq([{"date"=>"2016-11-16", "date_type"=>"Created"}, {"date"=>"2016-11-16", "date_type"=>"Updated"}, {"date"=>"2016", "date_type"=>"Issued"}])
135
+ expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/licenses/by/4.0", "rights"=>"CC-BY"}])
136
+ expect(subject.dates).to eq([{"date"=>"2016-11-16", "dateType"=>"Created"}, {"date"=>"2016-11-16", "dateType"=>"Updated"}, {"date"=>"2016", "dateType"=>"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("related_identifier"=>"10.6084/m9.figshare.4234751", "related_identifier_type"=>"DOI", "relation_type"=>"IsIdenticalTo")
139
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.6084/m9.figshare.4234751", "relatedIdentifierType"=>"DOI", "relationType"=>"IsIdenticalTo")
140
140
  expect(subject.publisher).to eq("Figshare")
141
- expect(subject.service_provider).to eq("DataCite")
141
+ expect(subject.source).to eq("DataCite")
142
142
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
143
143
  end
144
144
 
@@ -147,30 +147,30 @@ describe Bolognese::Metadata, vcr: true do
147
147
  subject = Bolognese::Metadata.new(input: input)
148
148
  expect(subject.valid?).to be true
149
149
  expect(subject.identifier).to eq("https://doi.org/10.5281/zenodo.1239")
150
- expect(subject.types["type"]).to eq("Dataset")
151
- expect(subject.types["resource_type_general"]).to eq("Dataset")
150
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
151
+ expect(subject.types["resourceTypeGeneral"]).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
154
  expect(subject.titles).to eq([{"title"=>"Publication Fp7 Funding Acknowledgment - Plos Openaire"}])
155
155
  expect(subject.descriptions.first["description"]).to start_with("The dataset contains a sample of metadata describing papers")
156
- expect(subject.dates).to eq([{"date"=>"2013-04-03", "date_type"=>"Issued"}])
156
+ expect(subject.dates).to eq([{"date"=>"2013-04-03", "dateType"=>"Issued"}])
157
157
  expect(subject.publication_year).to eq("2013")
158
158
  expect(subject.publisher).to eq("Zenodo")
159
- expect(subject.funding_references).to eq([{"award_number"=>"246686",
160
- "award_title"=>"Open Access Infrastructure for Research in Europe",
161
- "award_uri"=>"info:eu-repo/grantAgreement/EC/FP7/246686/",
162
- "funder_identifier"=>"https://doi.org/10.13039/501100000780",
163
- "funder_identifier_type"=>"Crossref Funder ID",
164
- "funder_name"=>"European Commission"}])
165
- expect(subject.service_provider).to eq("DataCite")
159
+ expect(subject.funding_references).to eq([{"awardNumber"=>"246686",
160
+ "awardTitle"=>"Open Access Infrastructure for Research in Europe",
161
+ "awardUri"=>"info:eu-repo/grantAgreement/EC/FP7/246686/",
162
+ "funderIdentifier"=>"https://doi.org/10.13039/501100000780",
163
+ "funderIdentifierType"=>"Crossref Funder ID",
164
+ "funderName"=>"European Commission"}])
165
+ expect(subject.source).to eq("DataCite")
166
166
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
167
167
  end
168
168
 
169
169
  it "missing resource_type_general" do
170
170
  input = fixture_path + 'vivli.xml'
171
171
  subject = Bolognese::Metadata.new(input: input)
172
- expect(subject.types["type"]).to eq("CreativeWork")
173
- expect(subject.types["resource_type_general"]).to be_nil
172
+ expect(subject.types["schemaOrg"]).to eq("CreativeWork")
173
+ expect(subject.types["resourceTypeGeneral"]).to be_nil
174
174
  expect(subject.valid?).to be false
175
175
  expect(subject.errors).to eq("2:0: ERROR: Element '{http://datacite.org/schema/kernel-4}resource': Missing child element(s). Expected is one of ( {http://datacite.org/schema/kernel-4}resourceType, {http://datacite.org/schema/kernel-4}subjects, {http://datacite.org/schema/kernel-4}contributors, {http://datacite.org/schema/kernel-4}language, {http://datacite.org/schema/kernel-4}alternateIdentifiers, {http://datacite.org/schema/kernel-4}relatedIdentifiers, {http://datacite.org/schema/kernel-4}sizes, {http://datacite.org/schema/kernel-4}formats, {http://datacite.org/schema/kernel-4}rightsList, {http://datacite.org/schema/kernel-4}descriptions ).")
176
176
  end
@@ -180,9 +180,9 @@ describe Bolognese::Metadata, vcr: true do
180
180
  subject = Bolognese::Metadata.new(input: input)
181
181
  expect(subject.valid?).to be true
182
182
  expect(subject.identifier).to eq("https://doi.org/10.6071/z7wc73")
183
- expect(subject.types["type"]).to eq("Dataset")
184
- expect(subject.types["resource_type"]).to eq("dataset")
185
- expect(subject.types["resource_type_general"]).to eq("Dataset")
183
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
184
+ expect(subject.types["resourceType"]).to eq("dataset")
185
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
186
186
  expect(subject.creator.length).to eq(6)
187
187
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
188
188
  end
@@ -199,8 +199,8 @@ describe Bolognese::Metadata, vcr: true do
199
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([{"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"}}])
202
+ expect(subject.related_identifiers).to eq([{"relatedIdentifier"=>"10.5072/timeseries", "relatedIdentifierType"=>"DOI", "relationType"=>"Continues"}])
203
+ expect(subject.geo_locations).to eq([{"geoLocationPlace"=>"Disko Bay", "geoLocationPoint"=>{"pointLatitude"=>"69.000000", "pointLongitude"=>"-52.000000"}}])
204
204
  end
205
205
 
206
206
  it "geo_location_box" do
@@ -214,16 +214,15 @@ describe Bolognese::Metadata, vcr: true do
214
214
  expect(subject.creator.first).to eq("familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Roger Bales", "type"=>"Person")
215
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
- 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"}])
217
+ expect(subject.dates).to eq([{"date"=>"2014-10-17", "dateType"=>"Updated"}, {"date"=>"2016-03-14T17:02:02Z", "dateType"=>"Available"}, {"date"=>"2013", "dateType"=>"Issued"}])
218
218
  expect(subject.publication_year).to eq("2013")
219
- expect(subject.geo_locations).to eq([{"geo_location_box"=>
220
- {"east_bound_longitude"=>"-119.182",
221
- "north_bound_latitude"=>"37.075",
222
- "south_bound_latitude"=>"37.046",
223
- "west_bound_longitude"=>"-119.211"},
224
- "geo_location_place"=>"Providence Creek (Lower, Upper and P301)",
225
- "geo_location_point"=>
226
- {"point_latitude"=>"37.047756", "point_longitude"=>"-119.221094"}}])
219
+ expect(subject.geo_locations).to eq([{"geoLocationBox"=>
220
+ {"eastBoundLongitude"=>"-119.182",
221
+ "northBoundLatitude"=>"37.075",
222
+ "southBoundLatitude"=>"37.046",
223
+ "westBoundLongitude"=>"-119.211"},
224
+ "geoLocationPlace"=>"Providence Creek (Lower, Upper and P301)",
225
+ "geoLocationPoint"=> {"pointLatitude"=>"37.047756", "pointLongitude"=>"-119.221094"}}])
227
226
  end
228
227
 
229
228
  it "author only full name" do
@@ -231,7 +230,7 @@ describe Bolognese::Metadata, vcr: true do
231
230
  subject = Bolognese::Metadata.new(input: input)
232
231
  expect(subject.valid?).to be true
233
232
  expect(subject.identifier).to eq("https://doi.org/10.14457/kmitl.res.2006.17")
234
- expect(subject.types["type"]).to eq("Dataset")
233
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
235
234
  expect(subject.creator.length).to eq(1)
236
235
  expect(subject.creator.first).to eq("name" => "กัญจนา แซ่เตียว")
237
236
  end
@@ -241,7 +240,7 @@ describe Bolognese::Metadata, vcr: true do
241
240
  subject = Bolognese::Metadata.new(input: input)
242
241
  expect(subject.valid?).to be true
243
242
  expect(subject.identifier).to eq("https://doi.org/10.7910/dvn/eqtqyo")
244
- expect(subject.types["type"]).to eq("Dataset")
243
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
245
244
  expect(subject.creator).to eq([{"name" => "Enos, Ryan (Harvard University); Fowler, Anthony (University Of Chicago); Vavreck, Lynn (UCLA)"}])
246
245
  end
247
246
 
@@ -250,7 +249,7 @@ describe Bolognese::Metadata, vcr: true do
250
249
  subject = Bolognese::Metadata.new(input: input)
251
250
  expect(subject.valid?).to be true
252
251
  expect(subject.identifier).to eq("https://doi.org/10.18429/jacow-ipac2016-tupmy003")
253
- expect(subject.types["type"]).to eq("ScholarlyArticle")
252
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
254
253
  expect(subject.creator.length).to eq(12)
255
254
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"http://jacow.org/JACoW-00077389", "name"=>"Masashi Otani", "givenName"=>"Masashi", "familyName"=>"Otani")
256
255
  end
@@ -260,9 +259,9 @@ describe Bolognese::Metadata, vcr: true do
260
259
  subject = Bolognese::Metadata.new(input: input)
261
260
  expect(subject.valid?).to be true
262
261
  expect(subject.identifier).to eq("https://doi.org/10.2314/coscv1")
263
- expect(subject.types["type"]).to eq("ScholarlyArticle")
262
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
264
263
  expect(subject.creator.length).to eq(14)
265
- expect(subject.creator.first).to include("type"=>"Person", "name"=>"Lambert Heller", "givenName"=>"Lambert", "familyName"=>"Heller")
264
+ expect(subject.creator.first).to include("type"=>"Person", "id" => "https://orcid.org/0000-0003-0232-7085", "name"=>"Lambert Heller", "givenName"=>"Lambert", "familyName"=>"Heller")
266
265
  end
267
266
 
268
267
  it "keywords with attributes" do
@@ -270,7 +269,7 @@ describe Bolognese::Metadata, vcr: true do
270
269
  subject = Bolognese::Metadata.new(input: input)
271
270
  expect(subject.valid?).to be true
272
271
  expect(subject.identifier).to eq("https://doi.org/10.21233/n34n5q")
273
- expect(subject.subjects).to eq([{"subject_scheme"=>"Library of Congress", "scheme_uri"=>"http://id.loc.gov/authorities/subjects", "subject"=>"Paleoecology"}])
272
+ expect(subject.subjects).to eq([{"schemeUri"=>"http://id.loc.gov/authorities/subjects", "subject"=>"Paleoecology", "subjectScheme"=>"Library of Congress"}])
274
273
  end
275
274
 
276
275
  it "Funding" do
@@ -278,9 +277,9 @@ describe Bolognese::Metadata, vcr: true do
278
277
  subject = Bolognese::Metadata.new(input: input)
279
278
  expect(subject.valid?).to be true
280
279
  expect(subject.identifier).to eq("https://doi.org/10.15125/bath-00114")
281
- expect(subject.types["type"]).to eq("Dataset")
282
- expect(subject.types["resource_type"]).to eq("Dataset")
283
- expect(subject.types["resource_type_general"]).to eq("Dataset")
280
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
281
+ expect(subject.types["resourceType"]).to eq("Dataset")
282
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
284
283
  expect(subject.creator.length).to eq(2)
285
284
  expect(subject.creator.first).to eq("type"=>"Person", "id"=>"https://orcid.org/0000-0001-8740-8284", "name"=>"Bimbo, Nuno", "givenName"=>"Nuno", "familyName"=>"Bimbo")
286
285
  expect(subject.titles).to eq([{"title"=>"Dataset for \"Direct Evidence for Solid-Like Hydrogen in a Nanoporous Carbon Hydrogen Storage Material at Supercritical Temperatures\""}])
@@ -288,13 +287,13 @@ describe Bolognese::Metadata, vcr: true do
288
287
  expect(subject.publication_year).to eq("2015")
289
288
  expect(subject.publisher).to eq("University of Bath")
290
289
  expect(subject.funding_references.length).to eq(5)
291
- expect(subject.funding_references.first).to eq("award_number" => "EP/J016454/1",
292
- "award_title" => "SUPERGEN Hub Funding",
293
- "award_uri" => "EP/J016454/1",
294
- "funder_identifier" => "https://doi.org/10.13039/501100000266",
295
- "funder_identifier_type" => "Crossref Funder ID",
296
- "funder_name" => "Engineering and Physical Sciences Research Council (EPSRC)")
297
- expect(subject.service_provider).to eq("DataCite")
290
+ expect(subject.funding_references.first).to eq("awardNumber" => "EP/J016454/1",
291
+ "awardTitle" => "SUPERGEN Hub Funding",
292
+ "awardUri" => "EP/J016454/1",
293
+ "funderIdentifier" => "https://doi.org/10.13039/501100000266",
294
+ "funderIdentifierType" => "Crossref Funder ID",
295
+ "funderName" => "Engineering and Physical Sciences Research Council (EPSRC)")
296
+ expect(subject.source).to eq("DataCite")
298
297
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
299
298
  end
300
299
 
@@ -303,9 +302,9 @@ describe Bolognese::Metadata, vcr: true do
303
302
  subject = Bolognese::Metadata.new(input: input)
304
303
  expect(subject.valid?).to be true
305
304
  expect(subject.identifier).to eq("https://doi.org/10.5438/6423")
306
- expect(subject.types["type"]).to eq("Collection")
307
- expect(subject.types["resource_type"]).to eq("Project")
308
- expect(subject.types["resource_type_general"]).to eq("Collection")
305
+ expect(subject.types["schemaOrg"]).to eq("Collection")
306
+ expect(subject.types["resourceType"]).to eq("Project")
307
+ expect(subject.types["resourceTypeGeneral"]).to eq("Collection")
309
308
  expect(subject.types["ris"]).to eq("GEN")
310
309
  expect(subject.types["citeproc"]).to eq("article")
311
310
  expect(subject.creator.length).to eq(24)
@@ -314,13 +313,13 @@ describe Bolognese::Metadata, vcr: true do
314
313
  expect(subject.descriptions.first["description"]).to start_with("Five years ago, a global infrastructure")
315
314
  expect(subject.publication_year).to eq("2015")
316
315
  expect(subject.publisher).to eq("DataCite")
317
- expect(subject.funding_references).to eq([{"award_number"=>"654039",
318
- "award_title"=>"THOR – Technical and Human Infrastructure for Open Research",
319
- "award_uri"=>"http://cordis.europa.eu/project/rcn/194927_en.html",
320
- "funder_identifier"=>"https://doi.org/10.13039/501100000780",
321
- "funder_identifier_type"=>"Crossref Funder ID",
322
- "funder_name"=>"European Commission"}])
323
- expect(subject.service_provider).to eq("DataCite")
316
+ expect(subject.funding_references).to eq([{"awardNumber"=>"654039",
317
+ "awardTitle"=>"THOR – Technical and Human Infrastructure for Open Research",
318
+ "awardUri"=>"http://cordis.europa.eu/project/rcn/194927_en.html",
319
+ "funderIdentifier"=>"https://doi.org/10.13039/501100000780",
320
+ "funderIdentifierType"=>"Crossref Funder ID",
321
+ "funderName"=>"European Commission"}])
322
+ expect(subject.source).to eq("DataCite")
324
323
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
325
324
  end
326
325
 
@@ -329,19 +328,19 @@ describe Bolognese::Metadata, vcr: true do
329
328
  subject = Bolognese::Metadata.new(input: input)
330
329
  expect(subject.valid?).to be true
331
330
  expect(subject.identifier).to eq("https://doi.org/10.5438/4k3m-nyvg")
332
- expect(subject.types["type"]).to eq("ScholarlyArticle")
333
- expect(subject.types["resource_type"]).to eq("BlogPosting")
334
- expect(subject.types["resource_type_general"]).to eq("Text")
331
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
332
+ expect(subject.types["resourceType"]).to eq("BlogPosting")
333
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
335
334
  expect(subject.types["ris"]).to eq("RPRT")
336
335
  expect(subject.types["citeproc"]).to eq("article-journal")
337
336
  expect(subject.creator).to eq([{"type"=>"Person", "id"=>"https://orcid.org/0000-0003-1419-2405", "name"=>"Fenner, Martin", "givenName"=>"Martin", "familyName"=>"Fenner"}])
338
337
  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
- 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"}])
338
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"MS-49-3632-5083", "alternateIdentifierType"=>"Local accession number"}])
339
+ expect(subject.dates).to eq([{"date"=>"2016-12-20", "dateType"=>"Created"}, {"date"=>"2016-12-20", "dateType"=>"Issued"}, {"date"=>"2016-12-20", "dateType"=>"Updated"}])
341
340
  expect(subject.publication_year).to eq("2016")
342
341
  expect(subject.related_identifiers.length).to eq(3)
343
- expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5438/0000-00ss", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
344
- expect(subject.service_provider).to eq("DataCite")
342
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5438/0000-00ss", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf")
343
+ expect(subject.source).to eq("DataCite")
345
344
  end
346
345
 
347
346
  it "Schema 4.1 from string" do
@@ -349,21 +348,21 @@ describe Bolognese::Metadata, vcr: true do
349
348
  subject = Bolognese::Metadata.new(input: input)
350
349
  expect(subject.valid?).to be true
351
350
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
352
- expect(subject.types["type"]).to eq("Book")
353
- expect(subject.types["resource_type"]).to eq("Monograph")
354
- expect(subject.types["resource_type_general"]).to eq("Text")
351
+ expect(subject.types["schemaOrg"]).to eq("Book")
352
+ expect(subject.types["resourceType"]).to eq("Monograph")
353
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
355
354
  expect(subject.types["ris"]).to eq("BOOK")
356
355
  expect(subject.types["citeproc"]).to eq("book")
357
356
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
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"}])
357
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "titleType"=>"TranslatedTitle"}])
358
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"937-0-4523-12357-6", "alternateIdentifierType"=>"ISBN"}])
359
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "dateInformation"=>"Correction", "dateType"=>"Other"}, {"date"=>"2010", "dateType"=>"Issued"}])
361
360
  expect(subject.publication_year).to eq("2010")
362
361
  expect(subject.related_identifiers.length).to eq(1)
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"}])
362
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5272/oldertestpub", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Text")
363
+ expect(subject.rights_list).to eq([{"lang"=>"eng", "rightsUri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
365
364
  expect(subject.publisher).to eq("Springer")
366
- expect(subject.service_provider).to eq("DataCite")
365
+ expect(subject.source).to eq("DataCite")
367
366
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
368
367
  end
369
368
 
@@ -372,20 +371,20 @@ describe Bolognese::Metadata, vcr: true do
372
371
  subject = Bolognese::Metadata.new(input: input)
373
372
  expect(subject.valid?).to be true
374
373
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
375
- expect(subject.types["type"]).to eq("Book")
376
- expect(subject.types["resource_type"]).to eq("Monograph")
377
- expect(subject.types["resource_type_general"]).to eq("Text")
374
+ expect(subject.types["schemaOrg"]).to eq("Book")
375
+ expect(subject.types["resourceType"]).to eq("Monograph")
376
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
378
377
  expect(subject.types["ris"]).to eq("BOOK")
379
378
  expect(subject.types["citeproc"]).to eq("book")
380
379
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
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"}])
380
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "titleType"=>"TranslatedTitle"}])
381
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"937-0-4523-12357-6", "alternateIdentifierType"=>"ISBN"}])
383
382
  expect(subject.publication_year).to eq("2010")
384
383
  expect(subject.related_identifiers.length).to eq(1)
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"}])
384
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5272/oldertestpub", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf")
385
+ expect(subject.rights_list).to eq([{"rightsUri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
387
386
  expect(subject.publisher).to eq("Springer")
388
- expect(subject.service_provider).to eq("DataCite")
387
+ expect(subject.source).to eq("DataCite")
389
388
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4.0")
390
389
  end
391
390
 
@@ -394,20 +393,20 @@ describe Bolognese::Metadata, vcr: true do
394
393
  subject = Bolognese::Metadata.new(input: input)
395
394
  expect(subject.valid?).to be true
396
395
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
397
- expect(subject.types["type"]).to eq("Book")
398
- expect(subject.types["resource_type"]).to eq("Monograph")
399
- expect(subject.types["resource_type_general"]).to eq("Text")
396
+ expect(subject.types["schemaOrg"]).to eq("Book")
397
+ expect(subject.types["resourceType"]).to eq("Monograph")
398
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
400
399
  expect(subject.types["ris"]).to eq("BOOK")
401
400
  expect(subject.types["citeproc"]).to eq("book")
402
401
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
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"}])
402
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "titleType"=>"TranslatedTitle"}])
403
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"937-0-4523-12357-6", "alternateIdentifierType"=>"ISBN"}])
405
404
  expect(subject.publication_year).to eq("2010")
406
405
  expect(subject.related_identifiers.length).to eq(1)
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"}])
406
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5272/oldertestpub", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf")
407
+ expect(subject.rights_list).to eq([{"rightsUri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
409
408
  expect(subject.publisher).to eq("Springer")
410
- expect(subject.service_provider).to eq("DataCite")
409
+ expect(subject.source).to eq("DataCite")
411
410
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3.0")
412
411
  end
413
412
 
@@ -416,20 +415,20 @@ describe Bolognese::Metadata, vcr: true do
416
415
  subject = Bolognese::Metadata.new(input: input)
417
416
  expect(subject.valid?).to be true
418
417
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub")
419
- expect(subject.types["type"]).to eq("Book")
420
- expect(subject.types["resource_type"]).to eq("Monograph")
421
- expect(subject.types["resource_type_general"]).to eq("Text")
418
+ expect(subject.types["schemaOrg"]).to eq("Book")
419
+ expect(subject.types["resourceType"]).to eq("Monograph")
420
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
422
421
  expect(subject.types["ris"]).to eq("BOOK")
423
422
  expect(subject.types["citeproc"]).to eq("book")
424
423
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
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
- expect(subject.dates).to eq([{"date"=>"2009-04-29", "date_type"=>"StartDate"}, {"date"=>"2010-01-05", "date_type"=>"EndDate"}, {"date"=>"2010", "date_type"=>"Issued"}])
424
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "titleType"=>"TranslatedTitle"}])
425
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"937-0-4523-12357-6", "alternateIdentifierType"=>"ISBN"}])
426
+ expect(subject.dates).to eq([{"date"=>"2009-04-29", "dateType"=>"StartDate"}, {"date"=>"2010-01-05", "dateType"=>"EndDate"}, {"date"=>"2010", "dateType"=>"Issued"}])
428
427
  expect(subject.publication_year).to eq("2010")
429
428
  expect(subject.related_identifiers.length).to eq(1)
430
- expect(subject.related_identifiers.last).to eq("related_identifier"=>"10.5272/oldertestpub", "related_identifier_type"=>"DOI", "relation_type"=>"IsPartOf")
429
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5272/oldertestpub", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf")
431
430
  expect(subject.publisher).to eq("Springer")
432
- expect(subject.service_provider).to eq("DataCite")
431
+ expect(subject.source).to eq("DataCite")
433
432
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
434
433
  end
435
434
 
@@ -438,23 +437,23 @@ describe Bolognese::Metadata, vcr: true do
438
437
  subject = Bolognese::Metadata.new(input: input, doi: "10.5072/testpub2", content_url: "https://example.org/report.pdf")
439
438
  expect(subject.valid?).to be true
440
439
  expect(subject.identifier).to eq("https://doi.org/10.5072/testpub2")
441
- expect(subject.types["type"]).to eq("Book")
442
- expect(subject.types["resource_type"]).to eq("Monograph")
443
- expect(subject.types["resource_type_general"]).to eq("Text")
440
+ expect(subject.types["schemaOrg"]).to eq("Book")
441
+ expect(subject.types["resourceType"]).to eq("Monograph")
442
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
444
443
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"John Smith", "givenName"=>"John", "familyName"=>"Smith"}, {"name"=>"つまらないものですが"}])
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"}])
444
+ expect(subject.titles).to eq([{"title"=>"Właściwości rzutowań podprzestrzeniowych"}, {"title"=>"Translation of Polish titles", "titleType"=>"TranslatedTitle"}])
445
+ expect(subject.alternate_identifiers).to eq([{"alternateIdentifier"=>"937-0-4523-12357-6", "alternateIdentifierType"=>"ISBN"}])
446
+ expect(subject.dates).to eq([{"date"=>"2012-12-13", "dateInformation"=>"Correction", "dateType"=>"Other"}, {"date"=>"2010", "dateType"=>"Issued"}])
448
447
  expect(subject.publication_year).to eq("2010")
449
448
  expect(subject.sizes).to eq(["256 pages"])
450
449
  expect(subject.formats).to eq(["pdf"])
451
450
  expect(subject.content_url).to eq("https://example.org/report.pdf")
452
451
  expect(subject.publication_year).to eq("2010")
453
452
  expect(subject.related_identifiers.length).to eq(1)
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"}])
453
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"10.5272/oldertestpub", "relatedIdentifierType"=>"DOI", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Text")
454
+ expect(subject.rights_list).to eq([{"lang"=>"eng", "rightsUri"=>"http://creativecommons.org/licenses/by-nd/2.0", "rights"=>"Creative Commons Attribution-NoDerivs 2.0 Generic"}])
456
455
  expect(subject.publisher).to eq("Springer")
457
- expect(subject.service_provider).to eq("DataCite")
456
+ expect(subject.source).to eq("DataCite")
458
457
  end
459
458
 
460
459
  it "namespaced xml from string" do
@@ -462,16 +461,16 @@ describe Bolognese::Metadata, vcr: true do
462
461
  subject = Bolognese::Metadata.new(input: input)
463
462
  expect(subject.valid?).to be true
464
463
  expect(subject.identifier).to eq("https://doi.org/10.4231/d38g8fk8b")
465
- expect(subject.types["type"]).to eq("SoftwareSourceCode")
466
- expect(subject.types["resource_type"]).to eq("Simulation Tool")
467
- expect(subject.types["resource_type_general"]).to eq("Software")
464
+ expect(subject.types["schemaOrg"]).to eq("SoftwareSourceCode")
465
+ expect(subject.types["resourceType"]).to eq("Simulation Tool")
466
+ expect(subject.types["resourceTypeGeneral"]).to eq("Software")
468
467
  expect(subject.creator.length).to eq(5)
469
468
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"Carlos PatiñO", "givenName"=>"Carlos", "familyName"=>"PatiñO")
470
469
  expect(subject.titles).to eq([{"title"=>"LAMMPS Data-File Generator"}])
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"}])
470
+ expect(subject.dates).to eq([{"date"=>"2018-07-18", "dateType"=>"Valid"}, {"date"=>"2018-07-18", "dateType"=>"Accepted"}, {"date"=>"2018", "dateType"=>"Issued"}])
472
471
  expect(subject.publication_year).to eq("2018")
473
472
  expect(subject.publisher).to eq("nanoHUB")
474
- expect(subject.service_provider).to eq("DataCite")
473
+ expect(subject.source).to eq("DataCite")
475
474
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
476
475
  end
477
476
 
@@ -480,13 +479,13 @@ describe Bolognese::Metadata, vcr: true do
480
479
  subject = Bolognese::Metadata.new(input: input)
481
480
  expect(subject.valid?).to be true
482
481
  expect(subject.identifier).to eq("https://doi.org/10.5067/terra+aqua/ceres/cldtyphist_l3.004")
483
- expect(subject.types["type"]).to eq("Dataset")
484
- expect(subject.types["resource_type_general"]).to eq("Dataset")
482
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
483
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
485
484
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Takmeng Wong", "givenName"=>"Takmeng", "familyName"=>"Wong"}])
486
485
  expect(subject.titles).to eq([{"title"=>"CERES Level 3 Cloud Type Historgram Terra+Aqua HDF file - Edition4"}])
487
486
  expect(subject.publication_year).to eq("2016")
488
487
  expect(subject.publisher).to eq("NASA Langley Atmospheric Science Data Center DAAC")
489
- expect(subject.service_provider).to eq("DataCite")
488
+ expect(subject.source).to eq("DataCite")
490
489
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
491
490
  end
492
491
 
@@ -495,15 +494,15 @@ describe Bolognese::Metadata, vcr: true do
495
494
  subject = Bolognese::Metadata.new(input: input)
496
495
  expect(subject.valid?).to be true
497
496
  expect(subject.identifier).to eq("https://doi.org/10.4232/1.2745")
498
- expect(subject.types["type"]).to eq("Dataset")
499
- expect(subject.types["resource_type_general"]).to eq("Dataset")
497
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
498
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
500
499
  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
- expect(subject.dates).to eq([{"date"=>"1995-12", "date_type"=>"Collected"}, {"date"=>"1996", "date_type"=>"Issued"}])
500
+ expect(subject.titles).to eq([{"lang"=>"de", "title"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"lang"=>"en", "title"=>"Flash Eurobarometer 54 (Madrid Summit)"}, {"titleType"=>"Subtitle","lang"=>"de", "title"=>"The Common European Currency"}, {"titleType"=>"Subtitle", "lang"=>"en", "title"=>"The Common European Currency"}])
501
+ expect(subject.subjects).to eq([{"subjectScheme"=>"ZA", "lang"=>"en", "subject"=>"KAT12 International Institutions, Relations, Conditions"}])
502
+ expect(subject.dates).to eq([{"date"=>"1995-12", "dateType"=>"Collected"}, {"date"=>"1996", "dateType"=>"Issued"}])
504
503
  expect(subject.publication_year).to eq("1996")
505
504
  expect(subject.publisher).to eq("GESIS Data Archive")
506
- expect(subject.service_provider).to eq("DataCite")
505
+ expect(subject.source).to eq("DataCite")
507
506
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
508
507
  end
509
508
 
@@ -512,18 +511,18 @@ describe Bolognese::Metadata, vcr: true do
512
511
  subject = Bolognese::Metadata.new(input: input)
513
512
  expect(subject.valid?).to be true
514
513
  expect(subject.identifier).to eq("https://doi.org/10.4229/23rdeupvsec2008-5co.8.3")
515
- expect(subject.types["type"]).to eq("ScholarlyArticle")
516
- expect(subject.types["resource_type"]).to eq("Article")
517
- expect(subject.types["resource_type_general"]).to eq("Text")
514
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
515
+ expect(subject.types["resourceType"]).to eq("Article")
516
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
518
517
  expect(subject.creator.length).to eq(3)
519
518
  expect(subject.creator.first).to eq("type"=>"Person", "name"=>"P. Llamas", "givenName"=>"P.", "familyName"=>"Llamas")
520
519
  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
- expect(subject.dates).to eq([{"date"=>"2008-11-01", "date_type"=>"Valid"}, {"date"=>"2008", "date_type"=>"Issued"}])
520
+ expect(subject.dates).to eq([{"date"=>"2008-11-01", "dateType"=>"Valid"}, {"date"=>"2008", "dateType"=>"Issued"}])
522
521
  expect(subject.publication_year).to eq("2008")
523
522
  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
523
  expect(subject.descriptions.first["description"]).to start_with("Aim of this paper is the presentation")
525
524
  expect(subject.publisher).to eq("WIP-Munich")
526
- expect(subject.service_provider).to eq("DataCite")
525
+ expect(subject.source).to eq("DataCite")
527
526
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-2.2")
528
527
  end
529
528
 
@@ -534,7 +533,7 @@ describe Bolognese::Metadata, vcr: true do
534
533
  expect(subject.doi).to eq("10.23725/8na3-9s47")
535
534
  expect(subject.identifier).to eq("https://doi.org/10.23725/8na3-9s47")
536
535
  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")
536
+ expect(subject.alternate_identifiers.first).to eq("alternateIdentifier"=>"ark:/99999/fk41CrU4eszeLUDe", "alternateIdentifierType"=>"minid")
538
537
  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")
539
538
  end
540
539
 
@@ -543,15 +542,15 @@ describe Bolognese::Metadata, vcr: true do
543
542
  subject = Bolognese::Metadata.new(input: input)
544
543
  expect(subject.valid?).to be true
545
544
  expect(subject.identifier).to eq("https://doi.org/10.18169/papdeottx00502")
546
- expect(subject.types["type"]).to eq("Dataset")
547
- expect(subject.types["resource_type"]).to eq("Disclosure")
548
- expect(subject.types["resource_type_general"]).to eq("Dataset")
545
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
546
+ expect(subject.types["resourceType"]).to eq("Disclosure")
547
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
549
548
  expect(subject.creator).to eq([{"name"=>"Anonymous"}])
550
549
  expect(subject.titles).to eq([{"title"=>"Messung der Bildunschaerfe in H.264-codierten Bildern und Videosequenzen"}])
551
- expect(subject.dates).to eq([{"date"=>"07.04.2017", "date_type"=>"Available"}, {"date"=>"2017", "date_type"=>"Issued"}])
550
+ expect(subject.dates).to eq([{"date"=>"07.04.2017", "dateType"=>"Available"}, {"date"=>"2017", "dateType"=>"Issued"}])
552
551
  expect(subject.publication_year).to eq("2017")
553
552
  expect(subject.publisher).to eq("Siemens AG")
554
- expect(subject.service_provider).to eq("DataCite")
553
+ expect(subject.source).to eq("DataCite")
555
554
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
556
555
  end
557
556
 
@@ -560,9 +559,9 @@ describe Bolognese::Metadata, vcr: true do
560
559
  subject = Bolognese::Metadata.new(input: input)
561
560
  expect(subject.valid?).to be true
562
561
  expect(subject.identifier).to eq("https://doi.org/10.21944/temis-ozone-msr2")
563
- expect(subject.types["type"]).to eq("Dataset")
564
- expect(subject.types["resource_type"]).to eq("Satellite data")
565
- expect(subject.types["resource_type_general"]).to eq("Dataset")
562
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
563
+ expect(subject.types["resourceType"]).to eq("Satellite data")
564
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
566
565
  expect(subject.creator).to eq([{"type"=>"Person",
567
566
  "id"=>"https://orcid.org/0000-0002-0077-5338",
568
567
  "name"=>"Ronald Van Der A",
@@ -579,10 +578,10 @@ describe Bolognese::Metadata, vcr: true do
579
578
  "familyName"=>"Eskes"}])
580
579
  expect(subject.titles).to eq([{"title"=>"Multi-Sensor Reanalysis (MSR) of total ozone, version 2"}])
581
580
  expect(subject.version).to eq("2")
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"}])
581
+ expect(subject.dates).to eq([{"date"=>"2014-04-25", "dateType"=>"Available"}, {"date"=>"1970-04-01 / (:tba)", "dateType"=>"Collected"}, {"date"=>"2015", "dateType"=>"Issued"}])
583
582
  expect(subject.publication_year).to eq("2015")
584
583
  expect(subject.publisher).to eq("Royal Netherlands Meteorological Institute (KNMI)")
585
- expect(subject.service_provider).to eq("DataCite")
584
+ expect(subject.source).to eq("DataCite")
586
585
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
587
586
  end
588
587
 
@@ -592,7 +591,7 @@ describe Bolognese::Metadata, vcr: true do
592
591
  expect(subject.valid?).to be false
593
592
  expect(subject.identifier).to eq("https://doi.org/10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
594
593
  expect(subject.doi).to eq("10.4124/05f6c379-dd68-4cdb-880d-33d3e9576d52/1")
595
- expect(subject.service_provider).to eq("DataCite")
594
+ expect(subject.source).to eq("DataCite")
596
595
  expect(subject.state).to eq("not_found")
597
596
  end
598
597
 
@@ -601,14 +600,14 @@ describe Bolognese::Metadata, vcr: true do
601
600
  subject = Bolognese::Metadata.new(input: input, sandbox: true)
602
601
  expect(subject.valid?).to be true
603
602
  expect(subject.identifier).to eq("https://handle.test.datacite.org/10.22002/d1.694")
604
- expect(subject.types["type"]).to eq("Dataset")
605
- expect(subject.types["resource_type_general"]).to eq("Dataset")
603
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
604
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
606
605
  expect(subject.creator).to eq([{"name"=>"Tester"}])
607
606
  expect(subject.titles).to eq([{"title"=>"Test license"}])
608
- expect(subject.dates).to eq([{"date"=>"2018-01-12", "date_type"=>"Issued"}])
607
+ expect(subject.dates).to eq([{"date"=>"2018-01-12", "dateType"=>"Issued"}])
609
608
  expect(subject.publication_year).to eq("2018")
610
609
  expect(subject.publisher).to eq("CaltechDATA")
611
- expect(subject.service_provider).to eq("DataCite")
610
+ expect(subject.source).to eq("DataCite")
612
611
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-4")
613
612
  expect(subject.state).to eq("findable")
614
613
  end
@@ -618,8 +617,8 @@ describe Bolognese::Metadata, vcr: true do
618
617
  subject = Bolognese::Metadata.new(input: input, sandbox: true)
619
618
  expect(subject.valid?).to be true
620
619
  expect(subject.identifier).to eq("https://handle.test.datacite.org/10.21956/gatesopenres.530.r190")
621
- expect(subject.types["type"]).to eq("ScholarlyArticle")
622
- expect(subject.types["resource_type_general"]).to eq("Text")
620
+ expect(subject.types["schemaOrg"]).to eq("ScholarlyArticle")
621
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
623
622
  expect(subject.types["ris"]).to eq("RPRT")
624
623
  expect(subject.types["citeproc"]).to eq("article-journal")
625
624
  expect(subject.creator.length).to eq(5)
@@ -627,7 +626,7 @@ describe Bolognese::Metadata, vcr: true do
627
626
  expect(subject.titles).to eq([{"title"=>"Referee report. For: Gates - add article keywords to the metatags [version 2; referees: 1 approved]"}])
628
627
  expect(subject.publication_year).to eq("2018")
629
628
  expect(subject.publisher).to eq("Gates Open Research")
630
- expect(subject.service_provider).to eq("DataCite")
629
+ expect(subject.source).to eq("DataCite")
631
630
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
632
631
  end
633
632
 
@@ -651,7 +650,7 @@ describe Bolognese::Metadata, vcr: true do
651
650
  input = fixture_path + "funding_reference.xml"
652
651
  subject = Bolognese::Metadata.new(input: input, regenerate: false)
653
652
  expect(subject.valid?).to be false
654
- expect(subject.funding_references).to eq([{"funder_name"=>"Agency for Science, Technology and Research (Singapore)"}])
653
+ expect(subject.funding_references).to eq([{"funderName"=>"Agency for Science, Technology and Research (Singapore)"}])
655
654
  expect(subject.errors.first).to eq("31:0: ERROR: Element '{http://datacite.org/schema/kernel-4}fundingReference': Missing child element(s). Expected is one of ( {http://datacite.org/schema/kernel-4}funderName, {http://datacite.org/schema/kernel-4}funderIdentifier, {http://datacite.org/schema/kernel-4}awardNumber, {http://datacite.org/schema/kernel-4}awardTitle ).")
656
655
  end
657
656
 
@@ -660,19 +659,19 @@ describe Bolognese::Metadata, vcr: true do
660
659
  subject = Bolognese::Metadata.new(input: input)
661
660
  expect(subject.valid?).to be true
662
661
  expect(subject.identifier).to eq("https://doi.org/10.3204/desy-2014-01645")
663
- expect(subject.types["resource_type_general"]).to eq("Text")
664
- expect(subject.types["resource_type"]).to eq("Dissertation")
665
- expect(subject.types["type"]).to eq("Thesis")
662
+ expect(subject.types["resourceTypeGeneral"]).to eq("Text")
663
+ expect(subject.types["resourceType"]).to eq("Dissertation")
664
+ expect(subject.types["schemaOrg"]).to eq("Thesis")
666
665
  expect(subject.types["bibtex"]).to eq("phdthesis")
667
666
  expect(subject.types["citeproc"]).to eq("thesis")
668
667
  expect(subject.creator).to eq([{"type"=>"Person", "name"=>"Heiko Conrad", "givenName"=>"Heiko", "familyName"=>"Conrad"}])
669
668
  expect(subject.titles).to eq([{"title"=>"Dynamics of colloids in molecular glass forming liquids studied via X-ray photon correlation spectroscopy"}])
670
- expect(subject.dates).to eq([{"date"=>"2014", "date_type"=>"Issued"},
671
- {"date"=>"2014", "date_type"=>"Copyrighted"},
672
- {"date"=>"2009-10-01/2014-01-23", "date_type"=>"Created"}])
669
+ expect(subject.dates).to eq([{"date"=>"2014", "dateType"=>"Issued"},
670
+ {"date"=>"2014", "dateType"=>"Copyrighted"},
671
+ {"date"=>"2009-10-01/2014-01-23", "dateType"=>"Created"}])
673
672
  expect(subject.publication_year).to eq("2014")
674
673
  expect(subject.publisher).to eq("Deutsches Elektronen-Synchrotron, DESY, Hamburg")
675
- expect(subject.service_provider).to eq("DataCite")
674
+ expect(subject.source).to eq("DataCite")
676
675
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
677
676
  end
678
677
 
@@ -681,10 +680,10 @@ describe Bolognese::Metadata, vcr: true do
681
680
  subject = Bolognese::Metadata.new(input: input)
682
681
  expect(subject.valid?).to be true
683
682
  expect(subject.identifier).to eq("https://doi.org/10.4121/uuid:3926db30-f712-4394-aebc-75976070e91f")
684
- expect(subject.types["type"]).to eq("Dataset")
685
- expect(subject.types["resource_type_general"]).to eq("Dataset")
683
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
684
+ expect(subject.types["resourceTypeGeneral"]).to eq("Dataset")
686
685
  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"}])
686
+ expect(subject.dates).to eq([{"date"=>"2011-10-01/2012-03-14", "dateInformation"=>"Temporal coverage of this dataset.", "dateType"=>"Other"}, {"date"=>"2012", "dateType"=>"Issued"}])
688
687
  expect(subject.publication_year).to eq("2012")
689
688
  expect(subject.state).to eq("findable")
690
689
  end
@@ -697,7 +696,7 @@ describe Bolognese::Metadata, vcr: true do
697
696
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
698
697
  expect(subject.doi).to eq("10.5061/dryad.8515")
699
698
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
700
- expect(subject.types["type"]).to eq("Dataset")
699
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
701
700
  expect(subject.titles).to eq([{"title"=> "A new malaria agent in African hominids." }])
702
701
  end
703
702
 
@@ -707,7 +706,7 @@ describe Bolognese::Metadata, vcr: true do
707
706
  expect(subject.identifier).to eq("https://doi.org/10.5061/dryad.8515")
708
707
  expect(subject.doi).to eq("10.5061/dryad.8515")
709
708
  expect(subject.url).to eq("http://datadryad.org/resource/doi:10.5061/dryad.8515")
710
- expect(subject.types["type"]).to eq("Dataset")
709
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
711
710
  expect(subject.titles).to eq([{"title"=>"Data from: A new malaria agent in African hominids."}])
712
711
  expect(subject.state).to eq("registered")
713
712
  end
@@ -738,20 +737,20 @@ describe Bolognese::Metadata, vcr: true do
738
737
  expect(subject.identifier).to eq("https://doi.org/10.25491/9hx8-ke93")
739
738
  expect(subject.url).to eq("https://ors.datacite.org/doi:/10.25491/9hx8-ke93")
740
739
  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")
741
- expect(subject.types["type"]).to eq("Dataset")
742
- expect(subject.types["resource_type"]).to eq("DroNc-seq data")
740
+ expect(subject.types["schemaOrg"]).to eq("Dataset")
741
+ expect(subject.types["resourceType"]).to eq("DroNc-seq data")
743
742
  expect(subject.creator).to eq([{"name"=>"The GTEx Consortium", "type"=>"Organization"}])
744
743
  expect(subject.titles).to eq([{"title"=>"DroNc-seq data"}])
745
744
  expect(subject.subjects).to eq([{"subject"=>"gtex"}, {"subject"=>"annotation"}, {"subject"=>"phenotype"}, {"subject"=>"gene regulation"}, {"subject"=>"transcriptomics"}])
746
- expect(subject.dates).to eq([{"date"=>"2017", "date_type"=>"Issued"}])
745
+ expect(subject.dates).to eq([{"date"=>"2017", "dateType"=>"Issued"}])
747
746
  expect(subject.publication_year).to eq("2017")
748
747
  expect(subject.related_identifiers.length).to eq(4)
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")
748
+ expect(subject.related_identifiers.last).to eq("relatedIdentifier"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "relatedIdentifierType"=>"URL", "relationType"=>"IsPartOf")
750
749
  expect(subject.formats).to eq(["application/tar"])
751
750
  expect(subject.sizes).to eq(["15.7M"])
752
751
  expect(subject.periodical).to eq("id"=>"https://www.ebi.ac.uk/miriam/main/datatypes/MIR:00000663", "title"=>"GTEx", "type"=>"DataCatalog")
753
752
  expect(subject.publisher).to eq("GTEx")
754
753
  expect(subject.funding_references.count).to eq(7)
755
- expect(subject.funding_references.first).to eq("funder_identifier"=>"https://doi.org/10.13039/100000052", "funder_identifier_type"=>"Crossref Funder ID", "funder_name"=>"Common Fund of the Office of the Director of the NIH")
754
+ expect(subject.funding_references.first).to eq("funderIdentifier"=>"https://doi.org/10.13039/100000052", "funderIdentifierType"=>"Crossref Funder ID", "funderName"=>"Common Fund of the Office of the Director of the NIH")
756
755
  end
757
756
  end