bolognese 1.6.3 → 1.6.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (51) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +19 -14
  3. data/bolognese.gemspec +4 -4
  4. data/lib/bolognese/datacite_utils.rb +7 -1
  5. data/lib/bolognese/metadata.rb +2 -1
  6. data/lib/bolognese/metadata_utils.rb +8 -1
  7. data/lib/bolognese/readers/bibtex_reader.rb +2 -1
  8. data/lib/bolognese/readers/citeproc_reader.rb +1 -1
  9. data/lib/bolognese/readers/codemeta_reader.rb +2 -2
  10. data/lib/bolognese/readers/crossref_reader.rb +1 -1
  11. data/lib/bolognese/readers/datacite_reader.rb +2 -2
  12. data/lib/bolognese/readers/schema_org_reader.rb +3 -4
  13. data/lib/bolognese/utils.rb +89 -9
  14. data/lib/bolognese/version.rb +1 -1
  15. data/lib/bolognese/writers/bibtex_writer.rb +2 -1
  16. data/lib/bolognese/writers/codemeta_writer.rb +2 -1
  17. data/resources/spdx/licenses.json +5297 -0
  18. data/spec/datacite_utils_spec.rb +5 -1
  19. data/spec/fixtures/datacite-example-affiliation.xml +1 -1
  20. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/not_found.yml +44 -0
  21. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash.yml +44 -0
  22. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +44 -0
  23. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/to_https.yml +44 -0
  24. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +44 -0
  25. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_id.yml +44 -0
  26. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_not_found.yml +44 -0
  27. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_url.yml +44 -0
  28. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_exists.yml +44 -0
  29. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_id.yml +44 -0
  30. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_not_found.yml +44 -0
  31. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/http.yml +44 -0
  32. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/uri.yml +44 -0
  33. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/with_trailing_slash.yml +44 -0
  34. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/software_w/version.yml +52 -0
  35. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml +58 -10
  36. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +65 -28
  37. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +98 -0
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +58 -10
  39. data/spec/readers/bibtex_reader_spec.rb +5 -1
  40. data/spec/readers/codemeta_reader_spec.rb +20 -0
  41. data/spec/readers/crossref_reader_spec.rb +21 -5
  42. data/spec/readers/datacite_reader_spec.rb +50 -10
  43. data/spec/utils_spec.rb +58 -0
  44. data/spec/writers/bibtex_writer_spec.rb +6 -0
  45. data/spec/writers/citation_writer_spec.rb +8 -0
  46. data/spec/writers/citeproc_writer_spec.rb +12 -2
  47. data/spec/writers/crosscite_writer_spec.rb +5 -1
  48. data/spec/writers/datacite_json_writer_spec.rb +5 -1
  49. data/spec/writers/datacite_writer_spec.rb +22 -6
  50. data/spec/writers/schema_org_writer_spec.rb +29 -3
  51. metadata +31 -8
@@ -16,6 +16,7 @@ describe Bolognese::Metadata, vcr: true do
16
16
  expect(bibtex[:author]).to eq("Sankar, Martial and Nieminen, Kaisa and Ragni, Laura and Xenarios, Ioannis and Hardtke, Christian S")
17
17
  expect(bibtex[:journal]).to eq("eLife")
18
18
  expect(bibtex[:year]).to eq("2014")
19
+ expect(bibtex[:copyright]).to eq("Creative Commons Attribution 3.0 Unported")
19
20
  end
20
21
 
21
22
  it "with pages" do
@@ -31,6 +32,7 @@ describe Bolognese::Metadata, vcr: true do
31
32
  expect(bibtex[:journal]).to eq("Pulmonary Medicine")
32
33
  expect(bibtex[:pages]).to eq("1-7")
33
34
  expect(bibtex[:year]).to eq("2012")
35
+ expect(bibtex[:copyright]).to eq("Creative Commons Attribution 3.0 Unported")
34
36
  end
35
37
 
36
38
  it "text" do
@@ -71,6 +73,7 @@ describe Bolognese::Metadata, vcr: true do
71
73
  expect(bibtex[:publisher]).to eq("DataCite")
72
74
  expect(bibtex[:keywords]).to eq("faraday, excon, net/http")
73
75
  expect(bibtex[:year]).to eq("2017")
76
+ expect(bibtex[:copyright]).to eq("MIT License")
74
77
  end
75
78
 
76
79
  it "BlogPosting from string" do
@@ -111,6 +114,7 @@ describe Bolognese::Metadata, vcr: true do
111
114
  expect(bibtex[:author]).to eq("Ollomo, Benjamin and Durand, Patrick and Prugnolle, Franck and Douzery, Emmanuel J. P. and Arnathau, Céline and Nkoghe, Dieudonné and Leroy, Eric and Renaud, François")
112
115
  expect(bibtex[:publisher]).to eq("Dryad Digital Repository")
113
116
  expect(bibtex[:year]).to eq("2011")
117
+ expect(bibtex[:copyright]).to eq("Creative Commons Zero v1.0 Universal")
114
118
  end
115
119
 
116
120
  it "from schema_org" do
@@ -139,6 +143,7 @@ describe Bolognese::Metadata, vcr: true do
139
143
  expect(bibtex[:publisher]).to eq("eyemovement.org")
140
144
  expect(bibtex[:keywords]).to eq("eye tracking; eye movements; scanpaths; eye movement sequence; web pages; visual elements; web pages; scanpath analysis techniques; scanpath analysis; pattern detection; common scanpaths")
141
145
  expect(bibtex[:year]).to eq("2015")
146
+ expect(bibtex[:copyright]).to eq("Creative Commons Attribution 4.0 International")
142
147
  end
143
148
 
144
149
  it "keywords subject scheme" do
@@ -150,6 +155,7 @@ describe Bolognese::Metadata, vcr: true do
150
155
  expect(bibtex[:doi]).to eq("10.1594/pangaea.721193")
151
156
  expect(bibtex[:keywords]).to eq("Animalia, Bottles or small containers/Aquaria ( 20 L), Calcification/Dissolution, Coast and continental shelf, Crassostrea gigas, Development, Growth/Morphology, Laboratory experiment, Mollusca, North Pacific, Pelagos, Single species, Temperate, Zooplankton, Experimental treatment, Carbonate system computation flag, Temperature, water, Salinity, pH, Alkalinity, total, Carbon, inorganic, dissolved, Carbon dioxide, Bicarbonate ion, Carbonate ion, Partial pressure of carbon dioxide (water) at sea surface temperature (wet air), Fugacity of carbon dioxide (water) at sea surface temperature (wet air), Aragonite saturation state, Calcite saturation state, Proportion, Crassostrea gigas, larvae length, Crassostrea gigas, larvae height, Crassostrea gigas, non mineralized, Crassostrea gigas, partially mineralized, Crassostrea gigas, fully mineralized, Calculated using seacarb after Nisumaa et al. (2010), Refractometer (Atago 100-S), pH meter (Mettler Toledo), pH meter (PHM290, Radiometer), Measured, European Project on Ocean Acidification (EPOCA), European network of excellence for Ocean Ecosystems Analysis (EUR-OCEANS), Ocean Acidification International Coordination Centre (OA-ICC)")
152
157
  expect(bibtex[:year]).to eq("2007")
158
+ expect(bibtex[:copyright]).to eq("Creative Commons Attribution 3.0 Unported")
153
159
  end
154
160
 
155
161
  it "author is organization" do
@@ -32,5 +32,13 @@ describe Bolognese::Metadata, vcr: true do
32
32
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
33
33
  expect(subject.citation).to eq("Alexander Kohls, &amp; Salvatore Mele. (2018). Converting the Literature of a Scientific Field to Open Access through Global Collaboration: The Experience of SCOAP3 in Particle Physics. <i>Publications</i>, <i>6</i>(2), 15. https://doi.org/10.3390/publications6020015")
34
34
  end
35
+
36
+ it "software w/version" do
37
+ input = "https://doi.org/10.5281/zenodo.2598836"
38
+ subject = Bolognese::Metadata.new(input: input, from: "datacite")
39
+ expect(subject.style).to eq("apa")
40
+ expect(subject.locale).to eq("en-US")
41
+ expect(subject.citation).to eq("Lab For Exosphere And Near Space Environment Studies. (2019). <i>lenses-lab/LYAO_RT-2018JA026426: Original Release</i> (Version 1.0.0) [Computer software]. Zenodo. https://doi.org/10.5281/zenodo.2598836")
42
+ end
35
43
  end
36
44
  end
@@ -24,6 +24,7 @@ describe Bolognese::Metadata, vcr: true do
24
24
  expect(json["publisher"]).to eq("Dryad Digital Repository")
25
25
  expect(json["issued"]).to eq("date-parts" => [[2011]])
26
26
  expect(json["submitted"]).to be_nil
27
+ expect(json["copyright"]).to eq("Creative Commons Zero v1.0 Universal")
27
28
  end
28
29
 
29
30
  it "BlogPosting" do
@@ -83,6 +84,7 @@ describe Bolognese::Metadata, vcr: true do
83
84
  expect(json["container-title"]).to eq("eLife")
84
85
  expect(json["volume"]).to eq("3")
85
86
  expect(json["issued"]).to eq("date-parts" => [[2014, 2, 11]])
87
+ expect(json["copyright"]).to eq("Creative Commons Attribution 3.0 Unported")
86
88
  end
87
89
 
88
90
  it "software" do
@@ -92,24 +94,27 @@ describe Bolognese::Metadata, vcr: true do
92
94
  expect(json["type"]).to eq("article")
93
95
  expect(json["DOI"]).to eq("10.6084/m9.figshare.4906367.v1")
94
96
  expect(json["title"]).to eq("Scimag catalogue of LibGen as of January 1st, 2014")
97
+ expect(json["copyright"]).to eq("Creative Commons Zero v1.0 Universal")
95
98
  end
96
99
 
97
100
  it "software w/version" do
98
101
  input = "https://doi.org/10.5281/zenodo.2598836"
99
102
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
100
103
  json = JSON.parse(subject.citeproc)
101
- expect(json["type"]).to eq("article")
104
+ expect(json["type"]).to eq("book")
102
105
  expect(json["DOI"]).to eq("10.5281/zenodo.2598836")
103
106
  expect(json["version"]).to eq("1.0.0")
107
+ expect(json["copyright"]).to eq("Open Access")
104
108
  end
105
109
 
106
110
  it "software w/version from datacite_json" do
107
111
  input = fixture_path + "datacite_software_version.json"
108
112
  subject = Bolognese::Metadata.new(input: input, from: "datacite_json")
109
113
  json = JSON.parse(subject.citeproc)
110
- expect(json["type"]).to eq("article")
114
+ expect(json["type"]).to eq("book")
111
115
  expect(json["DOI"]).to eq("10.5281/ZENODO.2598836")
112
116
  expect(json["version"]).to eq("1.0.0")
117
+ expect(json["copyright"]).to eq("Open Access")
113
118
  end
114
119
 
115
120
  it "multiple abstracts" do
@@ -141,6 +146,7 @@ describe Bolognese::Metadata, vcr: true do
141
146
  expect(json["volume"]).to eq("2012")
142
147
  expect(json["page"]).to eq("1-7")
143
148
  expect(json["issued"]).to eq("date-parts"=>[[2012]])
149
+ expect(json["copyright"]).to eq("Creative Commons Attribution 3.0 Unported")
144
150
  end
145
151
 
146
152
  it "with only first page" do
@@ -157,6 +163,7 @@ describe Bolognese::Metadata, vcr: true do
157
163
  expect(json["volume"]).to eq("14")
158
164
  expect(json["page"]).to eq("e0214986")
159
165
  expect(json["issued"]).to eq("date-parts"=>[[2019, 5, 8]])
166
+ expect(json["copyright"]).to eq("Creative Commons Zero v1.0 Universal")
160
167
  end
161
168
 
162
169
  it "missing creator" do
@@ -173,6 +180,7 @@ describe Bolognese::Metadata, vcr: true do
173
180
  expect(json["publisher"]).to eq("MDPI AG")
174
181
  expect(json["page"]).to eq("15")
175
182
  expect(json["issued"]).to eq("date-parts"=>[[2018, 4, 9]])
183
+ expect(json["copyright"]).to eq("Creative Commons Attribution 4.0 International")
176
184
  end
177
185
 
178
186
  it "container title" do
@@ -226,6 +234,7 @@ describe Bolognese::Metadata, vcr: true do
226
234
  expect(json["author"]).to eq([{"family"=>"Fenner", "given"=>"Martin"}])
227
235
  expect(json["publisher"]).to eq("DataCite")
228
236
  expect(json["issued"]).to eq("date-parts" => [[2017, 2, 24]])
237
+ expect(json["copyright"]).to eq("MIT License")
229
238
  end
230
239
 
231
240
  it "keywords subject scheme" do
@@ -236,6 +245,7 @@ describe Bolognese::Metadata, vcr: true do
236
245
  expect(json["id"]).to eq("https://doi.org/10.1594/pangaea.721193")
237
246
  expect(json["DOI"]).to eq("10.1594/pangaea.721193")
238
247
  expect(json["categories"]).to include("Animalia", "Bottles or small containers/Aquaria ( 20 L)", "Calcification/Dissolution", "Coast and continental shelf", "Development", "Growth/Morphology", "Laboratory experiment", "Mollusca", "Pelagos", "Single species", "Temperate", "Zooplankton", "Experimental treatment", "Carbonate system computation flag", "Temperature, water", "Salinity", "pH", "Alkalinity, total", "Carbon, inorganic, dissolved", "Carbon dioxide", "Bicarbonate ion", "Carbonate ion", "Partial pressure of carbon dioxide (water) at sea surface temperature (wet air)", "Fugacity of carbon dioxide (water) at sea surface temperature (wet air)", "Aragonite saturation state", "Calcite saturation state", "Proportion", "Crassostrea gigas, larvae length", "Crassostrea gigas, larvae height", "Crassostrea gigas, non mineralized", "Crassostrea gigas, partially mineralized", "Crassostrea gigas, fully mineralized", "Calculated using seacarb after Nisumaa et al. (2010)", "Refractometer (Atago 100-S)", "pH meter (Mettler Toledo)", "pH meter (PHM290, Radiometer)", "Measured", "European Project on Ocean Acidification (EPOCA)", "European network of excellence for Ocean Ecosystems Analysis (EUR-OCEANS)", "Ocean Acidification International Coordination Centre (OA-ICC)")
248
+ expect(json["copyright"]).to eq("Creative Commons Attribution 3.0 Unported")
239
249
  end
240
250
 
241
251
  it "organization author" do
@@ -14,7 +14,11 @@ describe Bolognese::Metadata, vcr: true do
14
14
  expect(crosscite.fetch("related_identifiers").length).to eq(27)
15
15
  expect(crosscite.fetch("related_identifiers").first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
16
16
  expect(crosscite.fetch("related_identifiers").last).to eq("relatedIdentifier"=>"10.1038/ncb2764", "relatedIdentifierType"=>"DOI", "relationType"=>"References")
17
- expect(crosscite.fetch("rights_list")).to eq([{"rightsUri"=>"http://creativecommons.org/licenses/by/3.0"}])
17
+ expect(crosscite.fetch("rights_list")).to eq([{"rights"=>"Creative Commons Attribution 3.0 Unported",
18
+ "rightsIdentifier"=>"CC-BY-3.0",
19
+ "rightsIdentifierScheme"=>"SPDX",
20
+ "rightsUri"=>"https://creativecommons.org/licenses/by/3.0/legalcode",
21
+ "schemeUri"=>"https://spdx.org/licenses/"}])
18
22
  end
19
23
 
20
24
  it "with ORCID ID" do
@@ -13,7 +13,11 @@ describe Bolognese::Metadata, vcr: true do
13
13
  expect(datacite.fetch("titles")).to eq([{"title"=>"Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth"}])
14
14
  expect(datacite.fetch("relatedIdentifiers").length).to eq(27)
15
15
  expect(datacite.fetch("relatedIdentifiers").first).to eq("relatedIdentifier"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
16
- expect(datacite.fetch("rightsList")).to eq([{"rightsUri"=>"http://creativecommons.org/licenses/by/3.0"}])
16
+ expect(datacite.fetch("rightsList")).to eq([{"rights"=>"Creative Commons Attribution 3.0 Unported",
17
+ "rightsIdentifier"=>"CC-BY-3.0",
18
+ "rightsIdentifierScheme"=>"SPDX",
19
+ "rightsUri"=>"https://creativecommons.org/licenses/by/3.0/legalcode",
20
+ "schemeUri"=>"https://spdx.org/licenses/"}])
17
21
  end
18
22
 
19
23
  it "with ORCID ID" do
@@ -14,7 +14,7 @@ describe Bolognese::Metadata, vcr: true do
14
14
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").length).to eq(27)
15
15
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").first).to eq("relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "__content__"=>"2050-084X", "resourceTypeGeneral"=>"Collection")
16
16
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier")[1]).to eq("relatedIdentifierType"=>"DOI", "relationType"=>"References", "__content__"=>"10.1038/nature02100")
17
- expect(datacite.dig("rightsList")).to eq("rights"=>{"rightsURI"=>"http://creativecommons.org/licenses/by/3.0"})
17
+ expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by/3.0/legalcode", "rightsIdentifier"=>"CC-BY-3.0", "rightsIdentifierScheme"=>"SPDX", "schemeURI"=>"https://spdx.org/licenses/", "__content__"=>"Creative Commons Attribution 3.0 Unported")
18
18
  expect(datacite.dig("fundingReferences", "fundingReference").count).to eq(4)
19
19
  expect(datacite.dig("fundingReferences", "fundingReference").last).to eq("funderName"=>"University of Lausanne", "funderIdentifier" => {"funderIdentifierType"=>"Crossref Funder ID", "__content__"=>"https://doi.org/10.13039/501100006390"})
20
20
  end
@@ -160,7 +160,11 @@ describe Bolognese::Metadata, vcr: true do
160
160
  expect(subject.creators.length).to eq(20)
161
161
  expect(subject.creators.first).to eq("nameType"=>"Personal", "familyName" => "Paglione", "givenName" => "Laura", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-3188-6273", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}], "name" => "Paglione, Laura", "affiliation" => [])
162
162
  expect(subject.titles).to eq([{"title"=>"Recommendation of: ORCID Works Metadata Working Group"}])
163
- expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
163
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Zero v1.0 Universal",
164
+ "rightsIdentifier"=>"CC0-1.0",
165
+ "rightsIdentifierScheme"=>"SPDX",
166
+ "rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0/legalcode",
167
+ "schemeUri"=>"https://spdx.org/licenses/"}])
164
168
  expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
165
169
  expect(subject.publication_year).to eq("2017")
166
170
  expect(subject.publisher).to eq("Figshare")
@@ -182,7 +186,11 @@ describe Bolognese::Metadata, vcr: true do
182
186
  expect(subject.creators.length).to eq(20)
183
187
  expect(subject.creators.first).to eq("nameType" => "Personal", "familyName" => "Paglione", "givenName" => "Laura", "name" => "Paglione, Laura", "nameIdentifiers" => [{"nameIdentifier"=>"https://orcid.org/0000-0003-3188-6273", "nameIdentifierScheme"=>"ORCID", "schemeUri"=>"https://orcid.org"}],"affiliation" => [])
184
188
  expect(subject.titles).to eq([{"title"=>"Recommendation of: ORCID Works Metadata Working Group"}])
185
- expect(subject.rights_list).to eq([{"rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0", "rights"=>"CC-0"}])
189
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Zero v1.0 Universal",
190
+ "rightsIdentifier"=>"CC0-1.0",
191
+ "rightsIdentifierScheme"=>"SPDX",
192
+ "rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0/legalcode",
193
+ "schemeUri"=>"https://spdx.org/licenses/"}])
186
194
  expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
187
195
  expect(subject.publication_year).to eq("2017")
188
196
  expect(subject.publisher).to eq("Figshare")
@@ -207,7 +215,11 @@ describe Bolognese::Metadata, vcr: true do
207
215
  {"identifier"=>
208
216
  "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.",
209
217
  "identifierType"=>"citation"}])
210
- expect(subject.rights_list).to eq([{"rightsUri"=>"http://creativecommons.org/publicdomain/zero/1.0"}])
218
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Zero v1.0 Universal",
219
+ "rightsIdentifier"=>"CC0-1.0",
220
+ "rightsIdentifierScheme"=>"SPDX",
221
+ "rightsUri"=>"https://creativecommons.org/publicdomain/zero/1.0/legalcode",
222
+ "schemeUri"=>"https://spdx.org/licenses/"}])
211
223
  expect(subject.dates).to eq([{"date"=>"2011", "dateType"=>"Issued"}])
212
224
  expect(subject.publication_year).to eq("2011")
213
225
  expect(subject.related_identifiers.length).to eq(6)
@@ -230,7 +242,11 @@ describe Bolognese::Metadata, vcr: true do
230
242
  expect(subject.creators.first).to eq("affiliation"=>[{"name"=>"UC Merced"}, {"name"=>"NSF"}], "familyName"=>"Bales", "givenName"=>"Roger", "name"=>"Bales, Roger", "nameType"=>"Personal", "nameIdentifiers"=>[])
231
243
  expect(subject.titles).to eq([{"title"=>"Southern Sierra Critical Zone Observatory (SSCZO), Providence Creek meteorological data, soil moisture and temperature, snow depth and air temperature"}])
232
244
  expect(subject.identifiers).to eq([{"identifier"=>"https://doi.org/10.6071/z7wc73", "identifierType"=>"DOI"}])
233
- expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 4.0 International (CC BY 4.0)", "rightsUri"=>"https://creativecommons.org/licenses/by/4.0"}])
245
+ expect(subject.rights_list).to eq([{"rights"=>"Creative Commons Attribution 4.0 International",
246
+ "rightsIdentifier"=>"CC-BY-4.0",
247
+ "rightsIdentifierScheme"=>"SPDX",
248
+ "rightsUri"=>"https://creativecommons.org/licenses/by/4.0/legalcode",
249
+ "schemeUri"=>"https://spdx.org/licenses/"}])
234
250
  expect(subject.dates).to eq([{"date"=>"2014-10-17", "dateType"=>"Updated"}, {"date"=>"2016-03-14T17:02:02Z", "dateType"=>"Available"}, {"date"=>"2013", "dateType"=>"Issued"}])
235
251
  expect(subject.publication_year).to eq("2013")
236
252
  expect(subject.publisher).to eq("UC Merced")
@@ -290,7 +306,7 @@ describe Bolognese::Metadata, vcr: true do
290
306
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").length).to eq(27)
291
307
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier").first).to eq("__content__"=>"2050-084X", "relatedIdentifierType"=>"ISSN", "relationType"=>"IsPartOf", "resourceTypeGeneral"=>"Collection")
292
308
  expect(datacite.dig("relatedIdentifiers", "relatedIdentifier")[1]).to eq("relatedIdentifierType"=>"DOI", "relationType"=>"References", "__content__"=>"10.1038/nature02100")
293
- expect(datacite.dig("rightsList")).to eq("rights"=>{"rightsURI"=>"http://creativecommons.org/licenses/by/3.0"})
309
+ expect(datacite.dig("rightsList", "rights")).to eq("rightsURI"=>"https://creativecommons.org/licenses/by/3.0/legalcode", "rightsIdentifier"=>"CC-BY-3.0", "rightsIdentifierScheme"=>"SPDX", "schemeURI"=>"https://spdx.org/licenses/", "__content__"=>"Creative Commons Attribution 3.0 Unported")
294
310
  expect(datacite.dig("fundingReferences", "fundingReference").count).to eq(4)
295
311
  expect(datacite.dig("fundingReferences", "fundingReference").last).to eq("funderName"=>"University of Lausanne", "funderIdentifier" => {"funderIdentifierType"=>"Crossref Funder ID", "__content__"=>"https://doi.org/10.13039/501100006390"})
296
312
  end
@@ -9,6 +9,7 @@ describe Bolognese::Metadata, vcr: true do
9
9
  subject = Bolognese::Metadata.new(input: input, from: "crossref")
10
10
  json = JSON.parse(subject.schema_org)
11
11
  expect(json["@id"]).to eq("https://doi.org/10.7554/elife.01567")
12
+ expect(json["@type"]).to eq("ScholarlyArticle")
12
13
  expect(json["isPartOf"]).to eq("@type"=>"Periodical", "issn"=>"2050-084X")
13
14
  expect(json["periodical"]).to eq("@type"=>"Journal", "identifier"=>"2050-084X", "identifierType"=>"ISSN", "name"=>"eLife", "volume"=>"3")
14
15
  expect(json["citation"].length).to eq(26)
@@ -23,6 +24,7 @@ describe Bolognese::Metadata, vcr: true do
23
24
  {"name"=>"University of Lausanne",
24
25
  "@type"=>"Organization",
25
26
  "@id"=>"https://doi.org/10.13039/501100006390"}])
27
+ expect(json["license"]).to eq("https://creativecommons.org/licenses/by/3.0/legalcode")
26
28
  end
27
29
 
28
30
  it "maremma schema.org JSON" do
@@ -40,7 +42,9 @@ describe Bolognese::Metadata, vcr: true do
40
42
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
41
43
  json = JSON.parse(subject.schema_org)
42
44
  expect(json["@id"]).to eq("https://doi.org/10.5281/zenodo.48440")
45
+ expect(json["@type"]).to eq("SoftwareSourceCode")
43
46
  expect(json["name"]).to eq("Analysis Tools For Crossover Experiment Of Ui Using Choice Architecture")
47
+ expect(json["license"]).to eq(["https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode", "info:eu-repo/semantics/openAccess"])
44
48
  end
45
49
 
46
50
  it "Schema.org JSON isReferencedBy" do
@@ -48,19 +52,30 @@ describe Bolognese::Metadata, vcr: true do
48
52
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
49
53
  json = JSON.parse(subject.schema_org)
50
54
  expect(json["@id"]).to eq("https://doi.org/10.5061/dryad.8515")
55
+ expect(json["@type"]).to eq("Dataset")
51
56
  expect(json["@reverse"]).to eq("citation" => [{"@id"=>"https://doi.org/10.1371/journal.ppat.1000446", "@type"=>"ScholarlyArticle"}, {"@type"=>"ScholarlyArticle", "identifier"=>{"@type"=>"PropertyValue", "propertyID"=>"PMID", "value"=>"19478877"}}],
52
57
  "isBasedOn" => [{"@id"=>"https://doi.org/10.1371/journal.ppat.1000446", "@type"=>"ScholarlyArticle"}, {"@type"=>"ScholarlyArticle", "identifier"=>{"@type"=>"PropertyValue", "propertyID"=>"PMID", "value"=>"19478877"}}])
58
+ expect(json["license"]).to eq("https://creativecommons.org/publicdomain/zero/1.0/legalcode")
53
59
  expect(json["keywords"]).to eq("Phylogeny, Malaria, Parasites, Taxonomy, Mitochondrial genome, Africa, Plasmodium")
54
60
  end
55
61
 
56
62
  it "Schema.org JSON IsSupplementTo" do
57
63
  input = "https://doi.org/10.5517/CC8H01S"
58
- subject = Bolognese::Metadata.new(input: input, from: "datacite")
64
+ subject = Bolognese::Metadata.new(input: input)
59
65
  json = JSON.parse(subject.schema_org)
60
66
  expect(json["@id"]).to eq("https://doi.org/10.5517/cc8h01s")
67
+ expect(json["@type"]).to eq("Dataset")
61
68
  expect(json["@reverse"]).to eq("isBasedOn"=>{"@id"=>"https://doi.org/10.1107/s1600536804021154", "@type"=>"ScholarlyArticle"})
62
69
  end
63
70
 
71
+ it "Schema.org JSON Cyark" do
72
+ input = "https://doi.org/10.26301/jgf3-jm06"
73
+ subject = Bolognese::Metadata.new(input: input)
74
+ json = JSON.parse(subject.schema_org)
75
+ expect(json["@id"]).to eq("https://doi.org/10.26301/jgf3-jm06")
76
+ expect(json["@type"]).to eq("Dataset")
77
+ end
78
+
64
79
  it "rdataone" do
65
80
  input = fixture_path + 'codemeta.json'
66
81
  subject = Bolognese::Metadata.new(input: input, from: "codemeta")
@@ -87,20 +102,24 @@ describe Bolognese::Metadata, vcr: true do
87
102
 
88
103
  it "Funding" do
89
104
  input = "https://doi.org/10.5438/6423"
90
- subject = Bolognese::Metadata.new(input: input, from: "datacite")
105
+ subject = Bolognese::Metadata.new(input: input)
91
106
  json = JSON.parse(subject.schema_org)
92
107
  expect(json["@id"]).to eq("https://doi.org/10.5438/6423")
108
+ expect(json["@type"]).to eq("Collection")
93
109
  expect(json["hasPart"].length).to eq(25)
94
110
  expect(json["hasPart"].first).to eq("@type"=>"CreativeWork", "@id"=>"https://doi.org/10.5281/zenodo.30799")
95
111
  expect(json["funder"]).to eq("@id"=>"https://doi.org/10.13039/501100000780", "@type"=>"Organization", "name"=>"European Commission")
112
+ expect(json["license"]).to eq("https://creativecommons.org/licenses/by/4.0/legalcode")
96
113
  end
97
114
 
98
115
  it "Funding OpenAIRE" do
99
116
  input = "https://doi.org/10.5281/ZENODO.1239"
100
- subject = Bolognese::Metadata.new(input: input, from: "datacite")
117
+ subject = Bolognese::Metadata.new(input: input)
101
118
  json = JSON.parse(subject.schema_org)
102
119
  expect(json["@id"]).to eq("https://doi.org/10.5281/zenodo.1239")
120
+ expect(json["@type"]).to eq("Dataset")
103
121
  expect(json["funder"]).to eq("@id"=>"https://doi.org/10.13039/501100000780", "@type"=>"Organization", "name"=>"European Commission")
122
+ expect(json["license"]).to eq(["https://creativecommons.org/publicdomain/zero/1.0/legalcode", "info:eu-repo/semantics/openAccess"])
104
123
  end
105
124
 
106
125
  it "subject scheme" do
@@ -108,6 +127,7 @@ describe Bolognese::Metadata, vcr: true do
108
127
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
109
128
  json = JSON.parse(subject.schema_org)
110
129
  expect(json["@id"]).to eq("https://doi.org/10.4232/1.2745")
130
+ expect(json["@type"]).to eq("Dataset")
111
131
  expect(json["name"]).to eq("Flash Eurobarometer 54 (Madrid Summit)")
112
132
  expect(json["keywords"]).to eq("KAT12 International Institutions, Relations, Conditions")
113
133
  end
@@ -117,8 +137,10 @@ describe Bolognese::Metadata, vcr: true do
117
137
  subject = Bolognese::Metadata.new(input: input, from: "datacite")
118
138
  json = JSON.parse(subject.schema_org)
119
139
  expect(json["@id"]).to eq("https://doi.org/10.1594/pangaea.721193")
140
+ expect(json["@type"]).to eq("Dataset")
120
141
  expect(json["name"]).to eq("Seawater carbonate chemistry and processes during experiments with Crassostrea gigas, 2007, supplement to: Kurihara, Haruko; Kato, Shoji; Ishimatsu, Atsushi (2007): Effects of increased seawater pCO2 on early development of the oyster Crassostrea gigas. Aquatic Biology, 1(1), 91-98")
121
142
  expect(json["keywords"]).to eq("Animalia, Bottles or small containers/Aquaria ( 20 L), Calcification/Dissolution, Coast and continental shelf, Crassostrea gigas, Development, Growth/Morphology, Laboratory experiment, Mollusca, North Pacific, Pelagos, Single species, Temperate, Zooplankton, Experimental treatment, Carbonate system computation flag, Temperature, water, Salinity, pH, Alkalinity, total, Carbon, inorganic, dissolved, Carbon dioxide, Bicarbonate ion, Carbonate ion, Partial pressure of carbon dioxide (water) at sea surface temperature (wet air), Fugacity of carbon dioxide (water) at sea surface temperature (wet air), Aragonite saturation state, Calcite saturation state, Proportion, Crassostrea gigas, larvae length, Crassostrea gigas, larvae height, Crassostrea gigas, non mineralized, Crassostrea gigas, partially mineralized, Crassostrea gigas, fully mineralized, Calculated using seacarb after Nisumaa et al. (2010), Refractometer (Atago 100-S), pH meter (Mettler Toledo), pH meter (PHM290, Radiometer), Measured, European Project on Ocean Acidification (EPOCA), European network of excellence for Ocean Ecosystems Analysis (EUR-OCEANS), Ocean Acidification International Coordination Centre (OA-ICC)")
143
+ expect(json["license"]).to eq("https://creativecommons.org/licenses/by/3.0/legalcode")
122
144
  end
123
145
 
124
146
  it "author is organization" do
@@ -128,6 +150,7 @@ describe Bolognese::Metadata, vcr: true do
128
150
  subject = Bolognese::Metadata.new(input: input, url: url, content_url: content_url, from: "datacite")
129
151
  json = JSON.parse(subject.schema_org)
130
152
  expect(json["@id"]).to eq("https://doi.org/10.25491/9hx8-ke93")
153
+ expect(json["@type"]).to eq("Dataset")
131
154
  expect(json["author"]).to eq("@type"=>"Organization", "name"=>"The GTEx Consortium")
132
155
  expect(json["url"]).to eq("https://ors.datacite.org/doi:/10.25491/9hx8-ke93")
133
156
  expect(json["encodingFormat"]).to eq("application/tar")
@@ -210,6 +233,7 @@ describe Bolognese::Metadata, vcr: true do
210
233
  "propertyID"=>"URL",
211
234
  "value"=>"https://schema.datacite.org/meta/kernel-4.2/example/datacite-example-full-v4.2.xml"}]
212
235
  )
236
+ expect(json["license"]).to eq("https://creativecommons.org/publicdomain/zero/1.0/legalcode")
213
237
  end
214
238
 
215
239
  it "geo_location_point" do
@@ -234,6 +258,7 @@ describe Bolognese::Metadata, vcr: true do
234
258
  {"@type"=>"GeoShape",
235
259
  "address"=>"Providence Creek (Lower, Upper and P301)",
236
260
  "box"=>"37.046 -119.211 37.075 -119.182"}}])
261
+ expect(json["license"]).to eq("https://creativecommons.org/licenses/by/4.0/legalcode")
237
262
  end
238
263
 
239
264
  it "geo_location_box" do
@@ -252,6 +277,7 @@ describe Bolognese::Metadata, vcr: true do
252
277
  expect(json["includedInDataCatalog"]).to be_nil
253
278
  expect(json["identifier"]).to eq("@type"=>"PropertyValue", "propertyID"=>"DOI", "value"=>"https://doi.org/10.1594/pangaea.842237")
254
279
  expect(json["spatialCoverage"]).to eq("@type"=>"Place", "geo"=>{"@type"=>"GeoShape", "box"=>"-64.3088 -168.5182 79.6753 174.9006"})
280
+ expect(json["license"]).to eq("https://creativecommons.org/licenses/by/3.0/legalcode")
255
281
  end
256
282
 
257
283
  it "geo_location_polygon" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bolognese
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.6.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Martin Fenner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-02 00:00:00.000000000 Z
11
+ date: 2020-06-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -132,14 +132,20 @@ dependencies:
132
132
  requirements:
133
133
  - - "~>"
134
134
  - !ruby/object:Gem::Version
135
- version: '0.19'
135
+ version: '1.0'
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 1.0.1
136
139
  type: :runtime
137
140
  prerelease: false
138
141
  version_requirements: !ruby/object:Gem::Requirement
139
142
  requirements:
140
143
  - - "~>"
141
144
  - !ruby/object:Gem::Version
142
- version: '0.19'
145
+ version: '1.0'
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 1.0.1
143
149
  - !ruby/object:Gem::Dependency
144
150
  name: colorize
145
151
  requirement: !ruby/object:Gem::Requirement
@@ -268,20 +274,20 @@ dependencies:
268
274
  requirements:
269
275
  - - "~>"
270
276
  - !ruby/object:Gem::Version
271
- version: '2.2'
277
+ version: '3.1'
272
278
  - - ">="
273
279
  - !ruby/object:Gem::Version
274
- version: 2.2.1
280
+ version: 3.1.4
275
281
  type: :runtime
276
282
  prerelease: false
277
283
  version_requirements: !ruby/object:Gem::Requirement
278
284
  requirements:
279
285
  - - "~>"
280
286
  - !ruby/object:Gem::Version
281
- version: '2.2'
287
+ version: '3.1'
282
288
  - - ">="
283
289
  - !ruby/object:Gem::Version
284
- version: 2.2.1
290
+ version: 3.1.4
285
291
  - !ruby/object:Gem::Dependency
286
292
  name: jsonlint
287
293
  requirement: !ruby/object:Gem::Requirement
@@ -725,6 +731,7 @@ files:
725
731
  - resources/oecd/for-mappings.json
726
732
  - resources/oecd/fos-mappings.json
727
733
  - resources/schema_org/jsonldcontext.json
734
+ - resources/spdx/licenses.json
728
735
  - resources/xml.xsd
729
736
  - spec/array_spec.rb
730
737
  - spec/author_utils_spec.rb
@@ -1033,6 +1040,9 @@ files:
1033
1040
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/nil.yml
1034
1041
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/overlapping_keys.yml
1035
1042
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/valid.yml
1043
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/not_found.yml
1044
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash.yml
1045
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml
1036
1046
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/SICI_doi.yml
1037
1047
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi.yml
1038
1048
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_force_datacite_sandbox.yml
@@ -1060,8 +1070,10 @@ files:
1060
1070
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_empty_array.yml
1061
1071
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_hash.yml
1062
1072
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_string.yml
1073
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/to_https.yml
1063
1074
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/uri.yml
1064
1075
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash.yml
1076
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash_and_to_https.yml
1065
1077
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array.yml
1066
1078
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array_of_strings.yml
1067
1079
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/first.yml
@@ -1070,8 +1082,17 @@ files:
1070
1082
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/string.yml
1071
1083
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_only_keep_specific_tags.yml
1072
1084
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_remove_a_tags.yml
1085
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_id.yml
1086
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_not_found.yml
1087
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_url.yml
1088
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_exists.yml
1089
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_id.yml
1090
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_not_found.yml
1073
1091
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org/with_id.yml
1074
1092
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org_identifiers/with_identifiers.yml
1093
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/http.yml
1094
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/uri.yml
1095
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/url_to_https/with_trailing_slash.yml
1075
1096
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_doi/doi.yml
1076
1097
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi.yml
1077
1098
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi_without_prefix.yml
@@ -1108,6 +1129,7 @@ files:
1108
1129
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Dataset.yml
1109
1130
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article.yml
1110
1131
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Missing_author.yml
1132
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/software_w/version.yml
1111
1133
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting.yml
1112
1134
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml
1113
1135
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Dataset.yml
@@ -1174,6 +1196,7 @@ files:
1174
1196
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml
1175
1197
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml
1176
1198
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml
1199
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml
1177
1200
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml
1178
1201
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml
1179
1202
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml