bolognese 1.10.0 → 2.3.3
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.
- checksums.yaml +4 -4
- data/.github/workflows/build.yml +0 -14
- data/.github/workflows/ci.yml +1 -1
- data/.github/workflows/release.yml +2 -12
- data/CHANGELOG.md +2 -2
- data/Gemfile.lock +69 -53
- data/bolognese.gemspec +6 -4
- data/lib/bolognese/author_utils.rb +17 -4
- data/lib/bolognese/datacite_utils.rb +19 -11
- data/lib/bolognese/metadata.rb +1 -1
- data/lib/bolognese/metadata_utils.rb +3 -2
- data/lib/bolognese/readers/bibtex_reader.rb +2 -2
- data/lib/bolognese/readers/citeproc_reader.rb +7 -1
- data/lib/bolognese/readers/codemeta_reader.rb +2 -2
- data/lib/bolognese/readers/crosscite_reader.rb +4 -1
- data/lib/bolognese/readers/crossref_reader.rb +40 -7
- data/lib/bolognese/readers/datacite_json_reader.rb +4 -1
- data/lib/bolognese/readers/datacite_reader.rb +25 -9
- data/lib/bolognese/readers/npm_reader.rb +1 -1
- data/lib/bolognese/readers/ris_reader.rb +2 -2
- data/lib/bolognese/readers/schema_org_reader.rb +27 -4
- data/lib/bolognese/utils.rb +36 -14
- data/lib/bolognese/version.rb +1 -1
- data/lib/bolognese/writers/bibtex_writer.rb +1 -1
- data/lib/bolognese/writers/codemeta_writer.rb +1 -1
- data/lib/bolognese/writers/csv_writer.rb +1 -1
- data/lib/bolognese/writers/datacite_json_writer.rb +3 -1
- data/lib/bolognese/writers/jats_writer.rb +6 -3
- data/lib/bolognese/writers/ris_writer.rb +2 -2
- data/lib/bolognese/writers/schema_org_writer.rb +6 -2
- data/resources/kernel-4/include/datacite-contributorType-v4.xsd +3 -1
- data/resources/kernel-4/include/datacite-dateType-v4.xsd +3 -1
- data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +5 -2
- data/resources/kernel-4/include/datacite-relationType-v4.xsd +9 -3
- data/resources/kernel-4/include/datacite-resourceType-v4.xsd +7 -1
- data/resources/kernel-4/include/datacite-titleType-v4.xsd +1 -1
- data/resources/kernel-4/metadata.xsd +12 -7
- data/resources/kernel-4.5/include/datacite-contributorType-v4.xsd +35 -0
- data/resources/kernel-4.5/include/datacite-dateType-v4.xsd +25 -0
- data/resources/kernel-4.5/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.5/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.5/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd +34 -0
- data/resources/kernel-4.5/include/datacite-relationType-v4.xsd +53 -0
- data/resources/kernel-4.5/include/datacite-resourceType-v4.xsd +45 -0
- data/resources/kernel-4.5/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.5/include/xml.xsd +286 -0
- data/resources/kernel-4.5/metadata.xsd +711 -0
- data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
- data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
- data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
- data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
- data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
- data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.6/include/xml.xsd +286 -0
- data/resources/kernel-4.6/metadata.xsd +712 -0
- data/spec/author_utils_spec.rb +59 -6
- data/spec/datacite_utils_spec.rb +156 -2
- data/spec/fixtures/citeproc.json +7 -1
- data/spec/fixtures/crossref_schema_4.6_values.xml +183 -0
- data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +24 -1
- data/spec/fixtures/datacite-example-full-v4.5.xml +255 -0
- data/spec/fixtures/datacite-example-full-v4.6.xml +114 -0
- data/spec/fixtures/datacite-example-relateditems-with-attributes.xml +61 -0
- data/spec/fixtures/datacite-seriesinformation.xml +7 -2
- data/spec/fixtures/datacite-xml-lang.xml +1 -1
- data/spec/fixtures/datacite.json +9 -3
- data/spec/fixtures/datacite_blank_name_identifier.xml +22 -0
- data/spec/fixtures/datacite_blank_publisher.xml +18 -0
- data/spec/fixtures/datacite_journal_article.xml +64 -0
- data/spec/fixtures/schema_org.json +1 -0
- data/spec/fixtures/schema_org_4.6_attributes.json +108 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml +71 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +32 -14
- data/spec/readers/bibtex_reader_spec.rb +2 -0
- data/spec/readers/citeproc_reader_spec.rb +4 -0
- data/spec/readers/codemeta_reader_spec.rb +4 -4
- data/spec/readers/crosscite_reader_spec.rb +2 -0
- data/spec/readers/crossref_reader_spec.rb +72 -41
- data/spec/readers/datacite_json_reader_spec.rb +2 -0
- data/spec/readers/datacite_reader_spec.rb +209 -44
- data/spec/readers/npm_reader_spec.rb +2 -0
- data/spec/readers/ris_reader_spec.rb +3 -0
- data/spec/readers/schema_org_reader_spec.rb +38 -11
- data/spec/spec_helper.rb +1 -0
- data/spec/writers/citation_writer_spec.rb +9 -0
- data/spec/writers/citeproc_writer_spec.rb +9 -0
- data/spec/writers/crosscite_writer_spec.rb +7 -0
- data/spec/writers/datacite_json_writer_spec.rb +22 -0
- data/spec/writers/datacite_writer_spec.rb +155 -5
- data/spec/writers/jats_writer_spec.rb +16 -1
- data/spec/writers/rdf_xml_writer_spec.rb +7 -0
- data/spec/writers/schema_org_writer_spec.rb +49 -0
- data/spec/writers/turtle_writer_spec.rb +18 -0
- metadata +84 -37
|
@@ -11,6 +11,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
11
11
|
expect(jats.dig("publication_type")).to eq("journal")
|
|
12
12
|
expect(jats.dig("article_title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
|
|
13
13
|
expect(jats.dig("source")).to eq("eLife")
|
|
14
|
+
expect(jats.dig("publisher_name")).to eq("eLife Sciences Publications, Ltd")
|
|
14
15
|
expect(jats.dig("person_group", "name").length).to eq(5)
|
|
15
16
|
expect(jats.dig("person_group", "name").first).to eq("surname"=>"Sankar", "given_names"=>"Martial")
|
|
16
17
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2014-02-11", "__content__"=>"2014")
|
|
@@ -25,6 +26,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
25
26
|
expect(jats.dig("publication_type")).to eq("journal")
|
|
26
27
|
expect(jats.dig("article_title")).to eq("Delineating a Retesting Zone Using Receiver Operating Characteristic Analysis on Serial QuantiFERON Tuberculosis Test Results in US Healthcare Workers")
|
|
27
28
|
expect(jats.dig("source")).to eq("Pulmonary Medicine")
|
|
29
|
+
expect(jats.dig("publisher_name")).to eq("Hindawi Limited")
|
|
28
30
|
expect(jats.dig("person_group", "name").length).to eq(7)
|
|
29
31
|
expect(jats.dig("person_group", "name").first).to eq("surname"=>"Thanassi", "given_names"=>"Wendy")
|
|
30
32
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2012", "__content__"=>"2012")
|
|
@@ -37,6 +39,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
37
39
|
expect(jats.dig("publication_type")).to eq("journal")
|
|
38
40
|
expect(jats.dig("article_title")).to eq("Triose Phosphate Isomerase Deficiency Is Caused by Altered Dimerization???Not Catalytic Inactivity???of the Mutant Enzymes")
|
|
39
41
|
expect(jats.dig("source")).to eq("PLoS ONE")
|
|
42
|
+
expect(jats.dig("publisher_name")).to eq("Public Library of Science (PLoS)")
|
|
40
43
|
expect(jats.dig("person_group", 0, "name").length).to eq(5)
|
|
41
44
|
expect(jats.dig("person_group", 0, "name").first).to eq("surname"=>"Ralser", "given_names"=>"Markus")
|
|
42
45
|
expect(jats.dig("person_group", 1, "name")).to eq("surname"=>"Janbon", "given_names"=>"Guilhem")
|
|
@@ -54,6 +57,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
54
57
|
expect(jats.dig("publication_type")).to eq("chapter")
|
|
55
58
|
expect(jats.dig("chapter_title")).to eq("Physical Examinations")
|
|
56
59
|
expect(jats.dig("source")).to eq("Jaypee Brothers Medical Publishing")
|
|
60
|
+
expect(jats.dig("publisher_name")).to eq("Jaypee Brothers Medical Publishing")
|
|
57
61
|
expect(jats.dig("person_group", "name")).to eq("surname"=>"Saha", "given_names"=>"Ashis")
|
|
58
62
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2015", "__content__"=>"2015")
|
|
59
63
|
expect(jats.dig("fpage")).to eq("27")
|
|
@@ -68,6 +72,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
68
72
|
expect(jats.dig("publication_type")).to eq("journal")
|
|
69
73
|
expect(jats.dig("article_title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
|
|
70
74
|
expect(jats.dig("source")).to eq("eLife")
|
|
75
|
+
expect(jats.dig("publisher_name")).to eq("{eLife} Sciences Organisation, Ltd.")
|
|
71
76
|
expect(jats.dig("person_group", "name").length).to eq(5)
|
|
72
77
|
expect(jats.dig("person_group", "name").first).to eq("surname"=>"Sankar", "given_names"=>"Martial")
|
|
73
78
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2014", "__content__"=>"2014")
|
|
@@ -82,7 +87,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
82
87
|
expect(jats.dig("publication_type")).to be_nil
|
|
83
88
|
expect(jats.dig("source")).to eq("Eating your own Dog Food")
|
|
84
89
|
expect(jats.dig("publisher_name")).to eq("DataCite")
|
|
85
|
-
expect(jats.dig("person_group", "name")).to eq("surname"=>"Fenner", "given_names"=>"Martin")
|
|
90
|
+
expect(jats.dig("person_group", 0, "name")).to eq("surname"=>"Fenner", "given_names"=>"Martin")
|
|
86
91
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2016-12-20", "__content__"=>"2016")
|
|
87
92
|
expect(jats.dig("month")).to eq("12")
|
|
88
93
|
expect(jats.dig("day")).to eq("20")
|
|
@@ -126,6 +131,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
126
131
|
expect(jats.dig("publication_type")).to eq("journal")
|
|
127
132
|
expect(jats.dig("article_title")).to eq("Recommendation of: ORCID Works Metadata Working Group")
|
|
128
133
|
expect(jats.dig("source")).to eq("Figshare")
|
|
134
|
+
expect(jats.dig("publisher_name")).to eq("Figshare")
|
|
129
135
|
expect(jats.dig("person_group", "name").length).to eq(20)
|
|
130
136
|
expect(jats.dig("person_group", "name").first).to eq("surname"=>"Paglione", "given_names"=>"Laura")
|
|
131
137
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2017", "__content__"=>"2017")
|
|
@@ -139,6 +145,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
139
145
|
expect(jats.dig("publication_type")).to eq("data")
|
|
140
146
|
expect(jats.dig("data_title")).to eq("Data from: A new malaria agent in African hominids.")
|
|
141
147
|
expect(jats.dig("source")).to eq("Dryad")
|
|
148
|
+
expect(jats.dig("publisher_name")).to eq(nil)
|
|
142
149
|
expect(jats.dig("person_group", "name").length).to eq(8)
|
|
143
150
|
expect(jats.dig("person_group", "name").first).to eq("surname"=>"Ollomo", "given_names"=>"Benjamin")
|
|
144
151
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2011", "__content__"=>"2011")
|
|
@@ -172,6 +179,13 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
172
179
|
expect(jats.dig("day")).to be_nil
|
|
173
180
|
expect(jats.dig("pub_id")).to eq("pub_id_type"=>"doi", "__content__"=>"10.34747/g6yb-3412")
|
|
174
181
|
end
|
|
182
|
+
|
|
183
|
+
it "with publisher with language" do
|
|
184
|
+
input = fixture_path + 'datacite-xml-lang.xml'
|
|
185
|
+
subject = Bolognese::Metadata.new(input: input)
|
|
186
|
+
jats = Maremma.from_xml(subject.jats).fetch("element_citation", {})
|
|
187
|
+
expect(jats.dig("publisher_name")).to eq({"xml:lang"=>"en", "__content__"=>"OSI SAF"})
|
|
188
|
+
end
|
|
175
189
|
end
|
|
176
190
|
|
|
177
191
|
context "change metadata as datacite xml" do
|
|
@@ -182,6 +196,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
182
196
|
expect(jats.dig("publication_type")).to eq("journal")
|
|
183
197
|
expect(jats.dig("article_title")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
|
|
184
198
|
expect(jats.dig("source")).to eq("eLife")
|
|
199
|
+
expect(jats.dig("publisher_name")).to eq("eLife Sciences Publications, Ltd")
|
|
185
200
|
expect(jats.dig("person_group", "name").length).to eq(5)
|
|
186
201
|
expect(jats.dig("person_group", "name").first).to eq("surname"=>"Sankar", "given_names"=>"Martial")
|
|
187
202
|
expect(jats.dig("year")).to eq("iso_8601_date"=>"2014-02-11", "__content__"=>"2014")
|
|
@@ -12,6 +12,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
12
12
|
expect(rdf_xml.dig("ScholarlyArticle", "rdf:about")).to eq("https://doi.org/10.7554/elife.01567")
|
|
13
13
|
expect(rdf_xml.dig("ScholarlyArticle", "name")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
|
|
14
14
|
expect(rdf_xml.dig("ScholarlyArticle", "datePublished", "__content__")).to eq("2014-02-11")
|
|
15
|
+
expect(rdf_xml.dig("ScholarlyArticle", "publisher", "Organization", "name")).to eq("eLife Sciences Publications, Ltd")
|
|
15
16
|
end
|
|
16
17
|
|
|
17
18
|
it "with pages" do
|
|
@@ -24,6 +25,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
24
25
|
expect(rdf_xml.dig("ScholarlyArticle", "datePublished", "__content__")).to eq("2012")
|
|
25
26
|
expect(rdf_xml.dig("ScholarlyArticle", "pageStart")).to eq("1")
|
|
26
27
|
expect(rdf_xml.dig("ScholarlyArticle", "pageEnd")).to eq("7")
|
|
28
|
+
expect(rdf_xml.dig("ScholarlyArticle", "publisher", "Organization", "name")).to eq("Hindawi Limited")
|
|
27
29
|
end
|
|
28
30
|
|
|
29
31
|
it "Crossref DOI" do
|
|
@@ -36,6 +38,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
36
38
|
expect(rdf_xml.dig("ScholarlyArticle", "name")).to eq("Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth")
|
|
37
39
|
expect(rdf_xml.dig("ScholarlyArticle", "datePublished", "__content__")).to eq("2014")
|
|
38
40
|
expect(rdf_xml.dig("ScholarlyArticle", "periodical", "Journal", "name")).to eq("eLife")
|
|
41
|
+
expect(rdf_xml.dig("ScholarlyArticle", "publisher", "Organization", "name")).to eq("{eLife} Sciences Organisation, Ltd.")
|
|
39
42
|
end
|
|
40
43
|
|
|
41
44
|
it "BlogPosting" do
|
|
@@ -47,6 +50,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
47
50
|
expect(rdf_xml.dig("ScholarlyArticle", "name")).to eq("Eating your own Dog Food")
|
|
48
51
|
expect(rdf_xml.dig("ScholarlyArticle", "keywords")).to eq("datacite, doi, metadata, FOS: Computer and information sciences, FOS: Computer and information sciences")
|
|
49
52
|
expect(rdf_xml.dig("ScholarlyArticle", "datePublished", "__content__")).to eq("2016-12-20")
|
|
53
|
+
expect(rdf_xml.dig("ScholarlyArticle", "publisher", "Organization", "name")).to eq("DataCite")
|
|
50
54
|
end
|
|
51
55
|
|
|
52
56
|
it "BlogPosting Citeproc JSON" do
|
|
@@ -56,6 +60,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
56
60
|
expect(rdf_xml.dig("BlogPosting", "rdf:about")).to eq("https://doi.org/10.5438/4k3m-nyvg")
|
|
57
61
|
expect(rdf_xml.dig("BlogPosting", "name")).to eq("Eating your own Dog Food")
|
|
58
62
|
expect(rdf_xml.dig("BlogPosting", "datePublished", "__content__")).to eq("2016-12-20")
|
|
63
|
+
expect(rdf_xml.dig("BlogPosting", "publisher", "Organization", "name")).to eq("DataCite")
|
|
59
64
|
end
|
|
60
65
|
|
|
61
66
|
it "maremma" do
|
|
@@ -68,6 +73,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
68
73
|
expect(rdf_xml.dig("SoftwareSourceCode", "name")).to eq("Maremma: a Ruby library for simplified network calls")
|
|
69
74
|
expect(rdf_xml.dig("SoftwareSourceCode", "keywords")).to eq("faraday, excon, net/http")
|
|
70
75
|
expect(rdf_xml.dig("SoftwareSourceCode", "datePublished", "__content__")).to eq("2017-02-24")
|
|
76
|
+
expect(rdf_xml.dig("SoftwareSourceCode", "publisher", "Organization", "name")).to eq("DataCite")
|
|
71
77
|
end
|
|
72
78
|
|
|
73
79
|
it "BlogPosting schema.org" do
|
|
@@ -81,6 +87,7 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
81
87
|
expect(rdf_xml.dig("BlogPosting", "name")).to eq("Eating your own Dog Food")
|
|
82
88
|
expect(rdf_xml.dig("BlogPosting", "keywords")).to eq("datacite, doi, metadata, featured")
|
|
83
89
|
expect(rdf_xml.dig("BlogPosting", "datePublished", "__content__")).to eq("2016-12-20")
|
|
90
|
+
expect(rdf_xml.dig("BlogPosting", "publisher", "Organization", "name")).to eq("DataCite")
|
|
84
91
|
end
|
|
85
92
|
end
|
|
86
93
|
end
|
|
@@ -365,5 +365,54 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
365
365
|
expect(json["@type"]).to eq("CreativeWork")
|
|
366
366
|
expect(json["datePublished"]).to eq("2019")
|
|
367
367
|
end
|
|
368
|
+
|
|
369
|
+
it "from Schema 4.5 with publisher attributes" do
|
|
370
|
+
input = fixture_path + 'datacite-example-full-v4.5.xml'
|
|
371
|
+
subject = Bolognese::Metadata.new(input: input)
|
|
372
|
+
json = JSON.parse(subject.schema_org)
|
|
373
|
+
expect(json["publisher"]).to eq(
|
|
374
|
+
{
|
|
375
|
+
"@type" => "Organization",
|
|
376
|
+
"@id" => "https://ror.org/04z8jg394",
|
|
377
|
+
"name" => "Example Publisher"
|
|
378
|
+
}
|
|
379
|
+
)
|
|
380
|
+
end
|
|
381
|
+
|
|
382
|
+
it "from Schema 4.6 with Translator contributor, workTranslation, translationOfWork, and temporalCoverage" do
|
|
383
|
+
input = fixture_path + 'datacite-example-full-v4.6.xml'
|
|
384
|
+
subject = Bolognese::Metadata.new(input: input)
|
|
385
|
+
json = JSON.parse(subject.schema_org)
|
|
386
|
+
|
|
387
|
+
expect(json["@type"]).to eq(
|
|
388
|
+
"Project"
|
|
389
|
+
)
|
|
390
|
+
expect(json["translator"]).to eq(
|
|
391
|
+
{
|
|
392
|
+
"name" => "Jane Doe",
|
|
393
|
+
"givenName" => "Jane",
|
|
394
|
+
"familyName" => "Doe",
|
|
395
|
+
"affiliation" => {
|
|
396
|
+
"@type" => "Organization",
|
|
397
|
+
"@id" => "https://ror.org/04wxnsj81",
|
|
398
|
+
"name" => "ExampleAffiliation"
|
|
399
|
+
},
|
|
400
|
+
"contributorType" => "Translator",
|
|
401
|
+
"@type" => "Person",
|
|
402
|
+
"@id" => "https://orcid.org/0000-0003-1419-2405"
|
|
403
|
+
}
|
|
404
|
+
)
|
|
405
|
+
expect(json["workTranslation"]).to eq(
|
|
406
|
+
"@id" => "https://doi.org/10.1234/translated-version",
|
|
407
|
+
"@type" => "CreativeWork"
|
|
408
|
+
)
|
|
409
|
+
expect(json["translationOfWork"]).to eq(
|
|
410
|
+
"@id" => "https://doi.org/10.1234/other-version",
|
|
411
|
+
"@type" => "CreativeWork"
|
|
412
|
+
)
|
|
413
|
+
expect(json["temporalCoverage"]).to eq(
|
|
414
|
+
"2020-01-01"
|
|
415
|
+
)
|
|
416
|
+
end
|
|
368
417
|
end
|
|
369
418
|
end
|
|
@@ -10,6 +10,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
10
10
|
ttl = subject.turtle.split("\n")
|
|
11
11
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
12
12
|
expect(ttl[2]).to eq("<https://doi.org/10.7554/elife.01567> a schema:ScholarlyArticle;")
|
|
13
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
14
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"{eLife} Sciences Organisation, Ltd.\"")
|
|
13
15
|
end
|
|
14
16
|
|
|
15
17
|
it "Dataset" do
|
|
@@ -19,6 +21,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
19
21
|
ttl = subject.turtle.split("\n")
|
|
20
22
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
21
23
|
expect(ttl[2]).to eq("<https://doi.org/10.5061/dryad.8515> a schema:Dataset;")
|
|
24
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
25
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"Dryad\"")
|
|
22
26
|
end
|
|
23
27
|
|
|
24
28
|
it "BlogPosting" do
|
|
@@ -28,6 +32,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
28
32
|
ttl = subject.turtle.split("\n")
|
|
29
33
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
30
34
|
expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:ScholarlyArticle;")
|
|
35
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
36
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
|
|
31
37
|
end
|
|
32
38
|
|
|
33
39
|
it "BlogPosting Citeproc JSON" do
|
|
@@ -36,6 +42,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
36
42
|
ttl = subject.turtle.split("\n")
|
|
37
43
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
38
44
|
expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:BlogPosting;")
|
|
45
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
46
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
|
|
39
47
|
end
|
|
40
48
|
|
|
41
49
|
it "BlogPosting DataCite JSON" do
|
|
@@ -44,6 +52,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
44
52
|
ttl = subject.turtle.split("\n")
|
|
45
53
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
46
54
|
expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:ScholarlyArticle;")
|
|
55
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
56
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
|
|
47
57
|
end
|
|
48
58
|
|
|
49
59
|
it "BlogPosting schema.org" do
|
|
@@ -53,6 +63,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
53
63
|
ttl = subject.turtle.split("\n")
|
|
54
64
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
55
65
|
expect(ttl[2]).to eq("<https://doi.org/10.5438/4k3m-nyvg> a schema:BlogPosting;")
|
|
66
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
67
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"DataCite\"")
|
|
56
68
|
end
|
|
57
69
|
|
|
58
70
|
it "DataONE" do
|
|
@@ -61,6 +73,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
61
73
|
ttl = subject.turtle.split("\n")
|
|
62
74
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
63
75
|
expect(ttl[2]).to eq("<https://doi.org/10.5063/f1m61h5x> a schema:SoftwareSourceCode;")
|
|
76
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
77
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"https://cran.r-project.org\"")
|
|
64
78
|
end
|
|
65
79
|
|
|
66
80
|
it "journal article" do
|
|
@@ -70,6 +84,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
70
84
|
ttl = subject.turtle.split("\n")
|
|
71
85
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
72
86
|
expect(ttl[2]).to eq("<https://doi.org/10.7554/elife.01567> a schema:ScholarlyArticle;")
|
|
87
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
88
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"eLife Sciences Publications, Ltd\"")
|
|
73
89
|
end
|
|
74
90
|
|
|
75
91
|
it "with pages" do
|
|
@@ -79,6 +95,8 @@ describe Bolognese::Metadata, vcr: true do
|
|
|
79
95
|
ttl = subject.turtle.split("\n")
|
|
80
96
|
expect(ttl[0]).to eq("@prefix schema: <http://schema.org/> .")
|
|
81
97
|
expect(ttl[2]).to eq("<https://doi.org/10.1155/2012/291294> a schema:ScholarlyArticle;")
|
|
98
|
+
publisher_line = ttl.find_index(' schema:publisher [') + 2
|
|
99
|
+
expect(ttl[publisher_line]).to eq(" schema:name \"Hindawi Limited\"")
|
|
82
100
|
end
|
|
83
101
|
end
|
|
84
102
|
end
|
metadata
CHANGED
|
@@ -1,69 +1,49 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: bolognese
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 2.3.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Martin Fenner
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2025-05-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: maremma
|
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
|
16
|
-
requirements:
|
|
17
|
-
- - ">="
|
|
18
|
-
- !ruby/object:Gem::Version
|
|
19
|
-
version: 4.9.4
|
|
20
|
-
- - "<"
|
|
21
|
-
- !ruby/object:Gem::Version
|
|
22
|
-
version: '5'
|
|
23
|
-
type: :runtime
|
|
24
|
-
prerelease: false
|
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
26
|
-
requirements:
|
|
27
|
-
- - ">="
|
|
28
|
-
- !ruby/object:Gem::Version
|
|
29
|
-
version: 4.9.4
|
|
30
|
-
- - "<"
|
|
31
|
-
- !ruby/object:Gem::Version
|
|
32
|
-
version: '5'
|
|
33
|
-
- !ruby/object:Gem::Dependency
|
|
34
|
-
name: faraday
|
|
35
15
|
requirement: !ruby/object:Gem::Requirement
|
|
36
16
|
requirements:
|
|
37
17
|
- - "~>"
|
|
38
18
|
- !ruby/object:Gem::Version
|
|
39
|
-
version: 0
|
|
19
|
+
version: '5.0'
|
|
40
20
|
type: :runtime
|
|
41
21
|
prerelease: false
|
|
42
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
43
23
|
requirements:
|
|
44
24
|
- - "~>"
|
|
45
25
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 0
|
|
26
|
+
version: '5.0'
|
|
47
27
|
- !ruby/object:Gem::Dependency
|
|
48
28
|
name: nokogiri
|
|
49
29
|
requirement: !ruby/object:Gem::Requirement
|
|
50
30
|
requirements:
|
|
51
|
-
- - "
|
|
31
|
+
- - "~>"
|
|
52
32
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 1.
|
|
54
|
-
- - "
|
|
33
|
+
version: '1.16'
|
|
34
|
+
- - ">="
|
|
55
35
|
- !ruby/object:Gem::Version
|
|
56
|
-
version:
|
|
36
|
+
version: 1.16.2
|
|
57
37
|
type: :runtime
|
|
58
38
|
prerelease: false
|
|
59
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
60
40
|
requirements:
|
|
61
|
-
- - "
|
|
41
|
+
- - "~>"
|
|
62
42
|
- !ruby/object:Gem::Version
|
|
63
|
-
version: 1.
|
|
64
|
-
- - "
|
|
43
|
+
version: '1.16'
|
|
44
|
+
- - ">="
|
|
65
45
|
- !ruby/object:Gem::Version
|
|
66
|
-
version:
|
|
46
|
+
version: 1.16.2
|
|
67
47
|
- !ruby/object:Gem::Dependency
|
|
68
48
|
name: loofah
|
|
69
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -556,6 +536,34 @@ dependencies:
|
|
|
556
536
|
- - "<"
|
|
557
537
|
- !ruby/object:Gem::Version
|
|
558
538
|
version: 2.0.0
|
|
539
|
+
- !ruby/object:Gem::Dependency
|
|
540
|
+
name: byebug
|
|
541
|
+
requirement: !ruby/object:Gem::Requirement
|
|
542
|
+
requirements:
|
|
543
|
+
- - ">="
|
|
544
|
+
- !ruby/object:Gem::Version
|
|
545
|
+
version: '0'
|
|
546
|
+
type: :development
|
|
547
|
+
prerelease: false
|
|
548
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
549
|
+
requirements:
|
|
550
|
+
- - ">="
|
|
551
|
+
- !ruby/object:Gem::Version
|
|
552
|
+
version: '0'
|
|
553
|
+
- !ruby/object:Gem::Dependency
|
|
554
|
+
name: json-canonicalization
|
|
555
|
+
requirement: !ruby/object:Gem::Requirement
|
|
556
|
+
requirements:
|
|
557
|
+
- - '='
|
|
558
|
+
- !ruby/object:Gem::Version
|
|
559
|
+
version: 0.3.1
|
|
560
|
+
type: :development
|
|
561
|
+
prerelease: false
|
|
562
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
563
|
+
requirements:
|
|
564
|
+
- - '='
|
|
565
|
+
- !ruby/object:Gem::Version
|
|
566
|
+
version: 0.3.1
|
|
559
567
|
description: Ruby gem and command-line utility for conversion of DOI metadata from
|
|
560
568
|
and to different metadata formats, including schema.org.
|
|
561
569
|
email: mfenner@datacite.org
|
|
@@ -734,6 +742,30 @@ files:
|
|
|
734
742
|
- resources/kernel-4.4/include/datacite-titleType-v4.xsd
|
|
735
743
|
- resources/kernel-4.4/include/xml.xsd
|
|
736
744
|
- resources/kernel-4.4/metadata.xsd
|
|
745
|
+
- resources/kernel-4.5/include/datacite-contributorType-v4.xsd
|
|
746
|
+
- resources/kernel-4.5/include/datacite-dateType-v4.xsd
|
|
747
|
+
- resources/kernel-4.5/include/datacite-descriptionType-v4.xsd
|
|
748
|
+
- resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd
|
|
749
|
+
- resources/kernel-4.5/include/datacite-nameType-v4.xsd
|
|
750
|
+
- resources/kernel-4.5/include/datacite-numberType-v4.xsd
|
|
751
|
+
- resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd
|
|
752
|
+
- resources/kernel-4.5/include/datacite-relationType-v4.xsd
|
|
753
|
+
- resources/kernel-4.5/include/datacite-resourceType-v4.xsd
|
|
754
|
+
- resources/kernel-4.5/include/datacite-titleType-v4.xsd
|
|
755
|
+
- resources/kernel-4.5/include/xml.xsd
|
|
756
|
+
- resources/kernel-4.5/metadata.xsd
|
|
757
|
+
- resources/kernel-4.6/include/datacite-contributorType-v4.xsd
|
|
758
|
+
- resources/kernel-4.6/include/datacite-dateType-v4.xsd
|
|
759
|
+
- resources/kernel-4.6/include/datacite-descriptionType-v4.xsd
|
|
760
|
+
- resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd
|
|
761
|
+
- resources/kernel-4.6/include/datacite-nameType-v4.xsd
|
|
762
|
+
- resources/kernel-4.6/include/datacite-numberType-v4.xsd
|
|
763
|
+
- resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd
|
|
764
|
+
- resources/kernel-4.6/include/datacite-relationType-v4.xsd
|
|
765
|
+
- resources/kernel-4.6/include/datacite-resourceType-v4.xsd
|
|
766
|
+
- resources/kernel-4.6/include/datacite-titleType-v4.xsd
|
|
767
|
+
- resources/kernel-4.6/include/xml.xsd
|
|
768
|
+
- resources/kernel-4.6/metadata.xsd
|
|
737
769
|
- resources/kernel-4/include/datacite-contributorType-v4.xsd
|
|
738
770
|
- resources/kernel-4/include/datacite-dateType-v4.xsd
|
|
739
771
|
- resources/kernel-4/include/datacite-descriptionType-v4.xsd
|
|
@@ -770,6 +802,7 @@ files:
|
|
|
770
802
|
- spec/fixtures/crossref.bib
|
|
771
803
|
- spec/fixtures/crossref.ris
|
|
772
804
|
- spec/fixtures/crossref.xml
|
|
805
|
+
- spec/fixtures/crossref_schema_4.6_values.xml
|
|
773
806
|
- spec/fixtures/datacite-empty-sizes.xml
|
|
774
807
|
- spec/fixtures/datacite-example-ROR-nameIdentifiers.xml
|
|
775
808
|
- spec/fixtures/datacite-example-affiliation.xml
|
|
@@ -781,10 +814,13 @@ files:
|
|
|
781
814
|
- spec/fixtures/datacite-example-dissertation-v4.4.xml
|
|
782
815
|
- spec/fixtures/datacite-example-escaped-text.xml
|
|
783
816
|
- spec/fixtures/datacite-example-full-v4.4.xml
|
|
817
|
+
- spec/fixtures/datacite-example-full-v4.5.xml
|
|
818
|
+
- spec/fixtures/datacite-example-full-v4.6.xml
|
|
784
819
|
- spec/fixtures/datacite-example-geolocation-2.xml
|
|
785
820
|
- spec/fixtures/datacite-example-geolocation.xml
|
|
786
821
|
- spec/fixtures/datacite-example-nameIdentifier-with-schemeURI.xml
|
|
787
822
|
- spec/fixtures/datacite-example-polygon-v4.1.xml
|
|
823
|
+
- spec/fixtures/datacite-example-relateditems-with-attributes.xml
|
|
788
824
|
- spec/fixtures/datacite-example-relateditems.xml
|
|
789
825
|
- spec/fixtures/datacite-example-xs-string.xml
|
|
790
826
|
- spec/fixtures/datacite-formats-with-xs.xml
|
|
@@ -800,7 +836,10 @@ files:
|
|
|
800
836
|
- spec/fixtures/datacite-xml-lang.xml
|
|
801
837
|
- spec/fixtures/datacite.json
|
|
802
838
|
- spec/fixtures/datacite.xml
|
|
839
|
+
- spec/fixtures/datacite_blank_name_identifier.xml
|
|
840
|
+
- spec/fixtures/datacite_blank_publisher.xml
|
|
803
841
|
- spec/fixtures/datacite_dataset.xml
|
|
842
|
+
- spec/fixtures/datacite_journal_article.xml
|
|
804
843
|
- spec/fixtures/datacite_malformed_creator.xml
|
|
805
844
|
- spec/fixtures/datacite_missing_creator.xml
|
|
806
845
|
- spec/fixtures/datacite_schema_3.xml
|
|
@@ -820,6 +859,7 @@ files:
|
|
|
820
859
|
- spec/fixtures/ris_bug.ris
|
|
821
860
|
- spec/fixtures/schema_4.0.xml
|
|
822
861
|
- spec/fixtures/schema_org.json
|
|
862
|
+
- spec/fixtures/schema_org_4.6_attributes.json
|
|
823
863
|
- spec/fixtures/schema_org_geolocation.json
|
|
824
864
|
- spec/fixtures/schema_org_geoshape.json
|
|
825
865
|
- spec/fixtures/schema_org_gtex.json
|
|
@@ -1039,8 +1079,10 @@ files:
|
|
|
1039
1079
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml
|
|
1040
1080
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/unknown_DOI_prefix.yml
|
|
1041
1081
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors/none.yml
|
|
1082
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml
|
|
1042
1083
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_creators/insert.yml
|
|
1043
1084
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates/insert.yml
|
|
1085
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml
|
|
1044
1086
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_descriptions/insert.yml
|
|
1045
1087
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_identifier/doi.yml
|
|
1046
1088
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_language/insert.yml
|
|
@@ -1049,8 +1091,13 @@ files:
|
|
|
1049
1091
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml
|
|
1050
1092
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml
|
|
1051
1093
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml
|
|
1094
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml
|
|
1095
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml
|
|
1096
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml
|
|
1052
1097
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_items/insert.yml
|
|
1053
1098
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml
|
|
1099
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml
|
|
1100
|
+
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml
|
|
1054
1101
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml
|
|
1055
1102
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_sizes/insert.yml
|
|
1056
1103
|
- spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml
|
|
@@ -1283,7 +1330,7 @@ homepage: https://github.com/datacite/bolognese
|
|
|
1283
1330
|
licenses:
|
|
1284
1331
|
- MIT
|
|
1285
1332
|
metadata: {}
|
|
1286
|
-
post_install_message:
|
|
1333
|
+
post_install_message:
|
|
1287
1334
|
rdoc_options: []
|
|
1288
1335
|
require_paths:
|
|
1289
1336
|
- lib
|
|
@@ -1291,15 +1338,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1291
1338
|
requirements:
|
|
1292
1339
|
- - ">="
|
|
1293
1340
|
- !ruby/object:Gem::Version
|
|
1294
|
-
version: '
|
|
1341
|
+
version: '3.0'
|
|
1295
1342
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1296
1343
|
requirements:
|
|
1297
1344
|
- - ">="
|
|
1298
1345
|
- !ruby/object:Gem::Version
|
|
1299
1346
|
version: '0'
|
|
1300
1347
|
requirements: []
|
|
1301
|
-
rubygems_version: 3.
|
|
1302
|
-
signing_key:
|
|
1348
|
+
rubygems_version: 3.3.26
|
|
1349
|
+
signing_key:
|
|
1303
1350
|
specification_version: 4
|
|
1304
1351
|
summary: Ruby client library for conversion of DOI Metadata
|
|
1305
1352
|
test_files: []
|