bolognese 1.6 → 1.6.2

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 (27) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +10 -7
  3. data/lib/bolognese/readers/citeproc_reader.rb +4 -2
  4. data/lib/bolognese/readers/codemeta_reader.rb +4 -2
  5. data/lib/bolognese/readers/datacite_reader.rb +18 -13
  6. data/lib/bolognese/readers/ris_reader.rb +4 -2
  7. data/lib/bolognese/readers/schema_org_reader.rb +7 -2
  8. data/lib/bolognese/utils.rb +95 -0
  9. data/lib/bolognese/version.rb +1 -1
  10. data/resources/oecd/for-mappings.json +1101 -0
  11. data/resources/oecd/fos-mappings.json +198 -0
  12. data/spec/fixtures/datacite-funderIdentifier.xml +4 -0
  13. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_match.yml +44 -0
  14. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_match.yml +44 -0
  15. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_no_match.yml +44 -0
  16. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_for_match.yml +44 -0
  17. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_match.yml +44 -0
  18. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_no_match.yml +44 -0
  19. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +97 -0
  20. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +107 -0
  21. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +110 -0
  22. data/spec/readers/datacite_reader_spec.rb +101 -1
  23. data/spec/readers/schema_org_reader_spec.rb +15 -1
  24. data/spec/utils_spec.rb +50 -0
  25. data/spec/writers/datacite_writer_spec.rb +8 -0
  26. data/spec/writers/schema_org_writer_spec.rb +2 -0
  27. metadata +13 -2
@@ -78,6 +78,18 @@ describe Bolognese::Metadata, vcr: true do
78
78
  "nameType" => "Personal", "givenName"=>"Matthias", "familyName"=>"Staib", "affiliation" => [{"name"=>"University of Zurich, Zurich, Switzerland"}])
79
79
  expect(subject.publisher).to be_nil
80
80
  expect(subject.publication_year).to eq("2018")
81
+ expect(subject.subjects).to eq([{"subject"=>"Pupil Size Response"},
82
+ {"subject"=>"Skin Conductance Response"},
83
+ {"subject"=>"Electrocardiogram"},
84
+ {"subject"=>"Electromyogram"},
85
+ {"subject"=>"Electrodermal Activity"},
86
+ {"subject"=>"Galvanic Skin Response"},
87
+ {"subject"=>"PSR"},
88
+ {"subject"=>"SCR"},
89
+ {"subject"=>"ECG"},
90
+ {"subject"=>"EMG"},
91
+ {"subject"=>"EDA"},
92
+ {"subject"=>"GSR"}])
81
93
  end
82
94
 
83
95
  it "pangaea" do
@@ -119,6 +131,9 @@ describe Bolognese::Metadata, vcr: true do
119
131
  expect(subject.titles).to eq([{"title"=>"Summary data ankylosing spondylitis GWAS"}])
120
132
  expect(subject.container).to eq("identifier"=>"https://dataverse.harvard.edu", "identifierType"=>"URL", "title"=>"Harvard Dataverse", "type"=>"DataRepository")
121
133
  expect(subject.creators).to eq([{"name" => "International Genetics Of Ankylosing Spondylitis Consortium (IGAS)", "nameIdentifiers"=>[], "affiliation" => []}])
134
+ expect(subject.subjects).to eq([{"subject"=>"Medicine, Health and Life Sciences"},
135
+ {"subject"=>"Genome-Wide Association Studies"},
136
+ {"subject"=>"Ankylosing spondylitis"}])
122
137
  end
123
138
 
124
139
  it "harvard dataverse via identifiers.org" do
@@ -285,7 +300,6 @@ describe Bolognese::Metadata, vcr: true do
285
300
  expect(subject.id).to eq("https://doi.org/10.23698/aida/drov")
286
301
  end
287
302
 
288
-
289
303
  it "from attributes" do
290
304
  subject = Bolognese::Metadata.new(input: nil,
291
305
  from: "schema_org",
@@ -481,4 +481,54 @@ describe Bolognese::Metadata, vcr: true do
481
481
  expect(response).to eq("https://raw.githubusercontent.com/datacite/metadata-reports/master/software/codemeta.json")
482
482
  end
483
483
  end
484
+
485
+ context "fos" do
486
+ it "name_to_fos match" do
487
+ name = "Biological sciences"
488
+ response = subject.name_to_fos(name)
489
+ expect(response).to eq([{"subject"=>"Biological sciences"},
490
+ {"schemeUri"=>"http://www.oecd.org/science/inno/38235147.pdf",
491
+ "subject"=>"FOS: Biological sciences",
492
+ "subjectScheme"=>"Fields of Science and Technology (FOS)"}])
493
+ end
494
+
495
+ it "name_to_fos for match" do
496
+ name = "Statistics"
497
+ response = subject.name_to_fos(name)
498
+ expect(response).to eq([{"subject"=>"Statistics"},
499
+ {"schemeUri"=>"http://www.oecd.org/science/inno/38235147.pdf",
500
+ "subject"=>"FOS: Mathematics",
501
+ "subjectScheme"=>"Fields of Science and Technology (FOS)"}])
502
+ end
503
+
504
+ it "name_to_fos no match" do
505
+ name = "Random tag"
506
+ response = subject.name_to_fos(name)
507
+ expect(response).to eq([{"subject"=>"Random tag"}])
508
+ end
509
+
510
+ it "hsh_to_fos match" do
511
+ hsh = { "__content__" => "Biological sciences" }
512
+ response = subject.hsh_to_fos(hsh)
513
+ expect(response).to eq([{"subject"=>"Biological sciences"},
514
+ {"schemeUri"=>"http://www.oecd.org/science/inno/38235147.pdf",
515
+ "subject"=>"FOS: Biological sciences",
516
+ "subjectScheme"=>"Fields of Science and Technology (FOS)"}])
517
+ end
518
+
519
+ it "hsh_to_fos for match" do
520
+ hsh = { "__content__" => "Statistics" }
521
+ response = subject.hsh_to_fos(hsh)
522
+ expect(response).to eq([{"subject"=>"Statistics"},
523
+ {"schemeUri"=>"http://www.oecd.org/science/inno/38235147.pdf",
524
+ "subject"=>"FOS: Mathematics",
525
+ "subjectScheme"=>"Fields of Science and Technology (FOS)"}])
526
+ end
527
+
528
+ it "hsh_to_fos no match" do
529
+ hsh = { "__content__"=>"Random tag" }
530
+ response = subject.hsh_to_fos(hsh)
531
+ expect(response).to eq([{"subject"=>"Random tag"}])
532
+ end
533
+ end
484
534
  end
@@ -165,6 +165,10 @@ describe Bolognese::Metadata, vcr: true do
165
165
  expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
166
166
  expect(subject.publication_year).to eq("2017")
167
167
  expect(subject.publisher).to eq("Figshare")
168
+ expect(subject.subjects).to eq([{"subject"=>"Information Systems"},
169
+ {"schemeUri"=>"http://www.oecd.org/science/inno/38235147.pdf",
170
+ "subject"=>"FOS: Computer and information sciences",
171
+ "subjectScheme"=>"Fields of Science and Technology (FOS)"}])
168
172
  expect(subject.agency).to eq("DataCite")
169
173
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
170
174
  expect(subject.datacite).to end_with("</resource>")
@@ -183,6 +187,10 @@ describe Bolognese::Metadata, vcr: true do
183
187
  expect(subject.dates).to eq([{"date"=>"2017-06-28", "dateType"=>"Created"}, {"date"=>"2017-06-28", "dateType"=>"Updated"}, {"date"=>"2017", "dateType"=>"Issued"}])
184
188
  expect(subject.publication_year).to eq("2017")
185
189
  expect(subject.publisher).to eq("Figshare")
190
+ expect(subject.subjects).to eq([{"subject"=>"Information Systems"},
191
+ {"schemeUri"=>"http://www.oecd.org/science/inno/38235147.pdf",
192
+ "subject"=>"FOS: Computer and information sciences",
193
+ "subjectScheme"=>"Fields of Science and Technology (FOS)"}])
186
194
  expect(subject.agency).to eq("DataCite")
187
195
  expect(subject.schema_version).to eq("http://datacite.org/schema/kernel-3")
188
196
  expect(subject.datacite).to end_with("</resource>")
@@ -50,6 +50,7 @@ describe Bolognese::Metadata, vcr: true do
50
50
  expect(json["@id"]).to eq("https://doi.org/10.5061/dryad.8515")
51
51
  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
52
  "isBasedOn" => [{"@id"=>"https://doi.org/10.1371/journal.ppat.1000446", "@type"=>"ScholarlyArticle"}, {"@type"=>"ScholarlyArticle", "identifier"=>{"@type"=>"PropertyValue", "propertyID"=>"PMID", "value"=>"19478877"}}])
53
+ expect(json["keywords"]).to eq("Phylogeny, Malaria, Parasites, Taxonomy, Mitochondrial genome, Africa, Plasmodium")
53
54
  end
54
55
 
55
56
  it "Schema.org JSON IsSupplementTo" do
@@ -81,6 +82,7 @@ describe Bolognese::Metadata, vcr: true do
81
82
  "affiliation"=>{"@type"=>"Organization", "name"=>"NCEAS"}},
82
83
  {"name"=>"University Of California, Santa Barbara", "@type"=>"Organization"}])
83
84
  expect(json["version"]).to eq("2.0.0")
85
+ expect(json["keywords"]).to eq("data sharing, data repository, DataONE")
84
86
  end
85
87
 
86
88
  it "Funding" 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'
4
+ version: 1.6.2
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-05-16 00:00:00.000000000 Z
11
+ date: 2020-06-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: maremma
@@ -722,6 +722,8 @@ files:
722
722
  - resources/kernel-4/include/datacite-titleType-v4.xsd
723
723
  - resources/kernel-4/include/xml.xsd
724
724
  - resources/kernel-4/metadata.xsd
725
+ - resources/oecd/for-mappings.json
726
+ - resources/oecd/fos-mappings.json
725
727
  - resources/schema_org/jsonldcontext.json
726
728
  - resources/xml.xsd
727
729
  - spec/array_spec.rb
@@ -874,6 +876,12 @@ files:
874
876
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml
875
877
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml
876
878
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml
879
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_match.yml
880
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_match.yml
881
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_no_match.yml
882
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_for_match.yml
883
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_match.yml
884
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_no_match.yml
877
885
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml
878
886
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/with_affiliation.yml
879
887
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/without_affiliation.yml
@@ -935,15 +943,18 @@ files:
935
943
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/dissertation.yml
936
944
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/doi_with_sign.yml
937
945
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/empty_subject.yml
946
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml
938
947
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_references.yml
939
948
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_schema_version_3.yml
940
949
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/is_identical_to.yml
941
950
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml
942
951
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml
952
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml
943
953
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml
944
954
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml
945
955
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml
946
956
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml
957
+ - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme_FOR.yml
947
958
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/xs_string_attributes.yml
948
959
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml
949
960
  - spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml