commonmeta-ruby 3.3.7 → 3.3.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.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/commonmeta/author_utils.rb +7 -5
- data/lib/commonmeta/crossref_utils.rb +14 -31
- data/lib/commonmeta/schema_utils.rb +1 -1
- data/lib/commonmeta/version.rb +1 -1
- data/resources/{commonmeta_v0.9.1.json → commonmeta_v0.9.2.json} +19 -5
- data/spec/author_utils_spec.rb +145 -104
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post_with_anonymous_author.yml +62 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/affiliation_is_space.yml +303 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_anonymous_author.yml +62 -0
- data/spec/readers/json_feed_reader_spec.rb +26 -2
- data/spec/writers/crossref_xml_writer_spec.rb +34 -1
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e717e42ba9e8264cfc3ebb4bcb774c58b7f003afad4ffea7da385cd66e84eb27
|
4
|
+
data.tar.gz: bee1fe28c91acb00e3b5afae8b4305d6036dd4924f554b44d49145ac388fcf69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1cc77541969f79992f5e8b6f0677939e64397ffbedfbb75c40d2d534c2a64ad2f8a29b86df1570d76cdd0245f2f80a01e422052c065ca5e45085b85fb9dda7ec
|
7
|
+
data.tar.gz: 1389f97cf9c919eda5a384a247b7cddb142b0bfb50ce4c7bb77d83f8c1da6812a20c3277a1a0860d42b4952c63c8862d29c6061e0c11cf2a1436ea0424cd3fc9
|
data/Gemfile.lock
CHANGED
@@ -49,7 +49,11 @@ module Commonmeta
|
|
49
49
|
# DataCite metadata
|
50
50
|
type = type[0..-3] if type.is_a?(String) && type.end_with?('al')
|
51
51
|
|
52
|
-
if type.blank? && id.is_a?(String) && URI.parse(id).host == 'ror.org'
|
52
|
+
if type.blank? && name.blank? && id.is_a?(String) && URI.parse(id).host == 'ror.org'
|
53
|
+
type = 'Person'
|
54
|
+
author['affiliation'] = { 'affiliationIdentifier' => id }
|
55
|
+
id = nil
|
56
|
+
elsif type.blank? && id.is_a?(String) && URI.parse(id).host == 'ror.org'
|
53
57
|
type = 'Organization'
|
54
58
|
elsif type.blank? && author['type'] == 'Organization'
|
55
59
|
type = 'Organization'
|
@@ -65,7 +69,7 @@ module Commonmeta
|
|
65
69
|
contributor_type = parse_attributes(author.fetch('contributorType', nil))
|
66
70
|
|
67
71
|
# split name for type Person into given/family name if not already provided
|
68
|
-
if type == 'Person' && given_name.blank? && family_name.blank?
|
72
|
+
if type == 'Person' && name.present? && given_name.blank? && family_name.blank?
|
69
73
|
Namae.options[:include_particle_in_family] = true
|
70
74
|
names = Namae.parse(name)
|
71
75
|
parsed_name = names.first
|
@@ -181,9 +185,7 @@ module Commonmeta
|
|
181
185
|
name = (a['name'] || a['__content__']).to_s.squish.presence
|
182
186
|
end
|
183
187
|
|
184
|
-
|
185
|
-
|
186
|
-
{ 'id' => affiliation_identifier, 'name' => name }.compact
|
188
|
+
{ 'id' => affiliation_identifier, 'name' => name }.compact.presence
|
187
189
|
end.compact.presence
|
188
190
|
end
|
189
191
|
|
@@ -95,21 +95,22 @@ module Commonmeta
|
|
95
95
|
def insert_crossref_creators(xml)
|
96
96
|
xml.contributors do
|
97
97
|
Array.wrap(creators).each_with_index do |creator, index|
|
98
|
-
if creator["type"] == "Organization"
|
99
|
-
xml.organization("contributor_role" => "author",
|
100
|
-
"sequence" => index.zero? ? "first" : "additional")
|
101
|
-
insert_crossref_organization(xml, creator)
|
102
|
-
end
|
98
|
+
if creator["type"] == "Organization" && creator["name"].present?
|
99
|
+
xml.organization(creator["name"], "contributor_role" => "author",
|
100
|
+
"sequence" => index.zero? ? "first" : "additional")
|
103
101
|
elsif creator["givenName"].present? || creator["familyName"].present?
|
104
102
|
xml.person_name("contributor_role" => "author",
|
105
103
|
"sequence" => index.zero? ? "first" : "additional") do
|
106
104
|
insert_crossref_person(xml, creator)
|
107
105
|
end
|
108
|
-
|
109
|
-
xml.
|
110
|
-
|
106
|
+
elsif creator["affiliation"].present?
|
107
|
+
xml.anonymous("contributor_role" => "author",
|
108
|
+
"sequence" => index.zero? ? "first" : "additional") do
|
111
109
|
insert_crossref_anonymous(xml, creator)
|
112
110
|
end
|
111
|
+
else
|
112
|
+
xml.anonymous("contributor_role" => "author",
|
113
|
+
"sequence" => index.zero? ? "first" : "additional")
|
113
114
|
end
|
114
115
|
end
|
115
116
|
end
|
@@ -125,36 +126,18 @@ module Commonmeta
|
|
125
126
|
xml.affiliations do
|
126
127
|
xml.institution do
|
127
128
|
xml.institution_name(creator.dig("affiliation", 0, "name")) if creator.dig("affiliation", 0, "name").present?
|
128
|
-
xml.institution_id(creator.dig("affiliation", 0, "
|
129
|
-
end
|
130
|
-
end
|
131
|
-
end
|
132
|
-
end
|
133
|
-
|
134
|
-
def insert_crossref_organization(xml, creator)
|
135
|
-
xml.name(creator["name"]) if creator["name"].present?
|
136
|
-
if creator["affiliation"].present?
|
137
|
-
xml.affiliations do
|
138
|
-
xml.institution do
|
139
|
-
xml.institution_name(creator.dig("affiliation", 0, "name")) if creator.dig("affiliation", 0, "name").present?
|
140
|
-
xml.institution_id(creator.dig("affiliation", 0, "affiliationIdentifier"), "type" => creator.dig("affiliation", 0, "affiliationIdentifierScheme")) if creator.dig("affiliation", 0, "affiliationIdentifier").present?
|
129
|
+
xml.institution_id(creator.dig("affiliation", 0, "id"), 'type' => "ror") if creator.dig("affiliation", 0, "id").present?
|
141
130
|
end
|
142
131
|
end
|
143
132
|
end
|
144
133
|
end
|
145
134
|
|
146
135
|
def insert_crossref_anonymous(xml, creator)
|
147
|
-
|
148
|
-
xml.
|
149
|
-
xml.
|
150
|
-
|
151
|
-
xml.institution_name(creator.dig("affiliation", 0, "name")) if creator.dig("affiliation", 0, "name").present?
|
152
|
-
xml.institution_id(creator.dig("affiliation", 0, "affiliationIdentifier"), "type" => creator.dig("affiliation", 0, "affiliationIdentifierScheme")) if creator.dig("affiliation", 0, "affiliationIdentifier").present?
|
153
|
-
end
|
154
|
-
end
|
136
|
+
xml.affiliations do
|
137
|
+
xml.institution do
|
138
|
+
xml.institution_name(creator.dig("affiliation", 0, "name")) if creator.dig("affiliation", 0, "name").present?
|
139
|
+
xml.institution_id(creator.dig("affiliation", 0, "id"), 'type' => "ror") if creator.dig("affiliation", 0, "id").present?
|
155
140
|
end
|
156
|
-
else
|
157
|
-
xml.anonymous
|
158
141
|
end
|
159
142
|
end
|
160
143
|
|
@@ -5,7 +5,7 @@ require "pathname"
|
|
5
5
|
|
6
6
|
module Commonmeta
|
7
7
|
module SchemaUtils
|
8
|
-
COMMONMETA = File.read(File.expand_path("../../resources/commonmeta_v0.9.
|
8
|
+
COMMONMETA = File.read(File.expand_path("../../resources/commonmeta_v0.9.2.json",
|
9
9
|
__dir__))
|
10
10
|
|
11
11
|
def json_schema_errors
|
data/lib/commonmeta/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
{
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
3
|
-
"$id": "https://commonmeta.org/commonmeta_v0.9.
|
4
|
-
"title": "Commonmeta v0.9.
|
3
|
+
"$id": "https://commonmeta.org/commonmeta_v0.9.2.json",
|
4
|
+
"title": "Commonmeta v0.9.2",
|
5
5
|
"description": "JSON representation of the Commonmeta schema.",
|
6
6
|
"additionalProperties": false,
|
7
7
|
"definitions": {
|
@@ -13,7 +13,14 @@
|
|
13
13
|
"id": { "type": "string", "format": "uri" },
|
14
14
|
"name": { "type": "string" }
|
15
15
|
},
|
16
|
-
"
|
16
|
+
"anyOf": [
|
17
|
+
{
|
18
|
+
"required": ["id"]
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"required": ["name"]
|
22
|
+
}
|
23
|
+
]
|
17
24
|
},
|
18
25
|
"uniqueItems": true
|
19
26
|
},
|
@@ -78,7 +85,7 @@
|
|
78
85
|
"description": "The additional type of the resource.",
|
79
86
|
"type": "string"
|
80
87
|
},
|
81
|
-
|
88
|
+
|
82
89
|
"url": {
|
83
90
|
"description": "The URL of the resource.",
|
84
91
|
"type": "string",
|
@@ -168,7 +175,14 @@
|
|
168
175
|
"type": {
|
169
176
|
"description": "The type of the container.",
|
170
177
|
"type": "string",
|
171
|
-
"enum": [
|
178
|
+
"enum": [
|
179
|
+
"Book",
|
180
|
+
"BookSeries",
|
181
|
+
"Journal",
|
182
|
+
"Periodical",
|
183
|
+
"ProceedingsSeries",
|
184
|
+
"Series"
|
185
|
+
]
|
172
186
|
},
|
173
187
|
"title": {
|
174
188
|
"description": "The title of the container.",
|
data/spec/author_utils_spec.rb
CHANGED
@@ -1,181 +1,222 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "spec_helper"
|
4
4
|
|
5
5
|
describe Commonmeta::Metadata, vcr: true do
|
6
6
|
let(:subject) do
|
7
7
|
described_class.new
|
8
8
|
end
|
9
9
|
|
10
|
-
context
|
11
|
-
it
|
12
|
-
author = {
|
13
|
-
expect(subject.is_personal_name?(name: author[
|
10
|
+
context "is_personal_name?" do
|
11
|
+
it "has id" do
|
12
|
+
author = { "id" => "http://orcid.org/0000-0003-1419-2405", "givenName" => "Martin", "familyName" => "Fenner", "name" => "Martin Fenner" }
|
13
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
14
14
|
end
|
15
15
|
|
16
|
-
it
|
17
|
-
author = {
|
18
|
-
|
19
|
-
expect(subject.is_personal_name?(name: author[
|
16
|
+
it "has orcid id" do
|
17
|
+
author = { "creatorName" => "Fenner, Martin", "givenName" => "Martin", "familyName" => "Fenner",
|
18
|
+
"nameIdentifier" => { "schemeURI" => "http://orcid.org/", "nameIdentifierScheme" => "ORCID", "__content__" => "0000-0003-1419-2405" } }
|
19
|
+
expect(subject.is_personal_name?(name: author["creatorName"])).to be true
|
20
20
|
end
|
21
21
|
|
22
|
-
it
|
23
|
-
author = {
|
24
|
-
expect(subject.is_personal_name?(name: author[
|
22
|
+
it "has family name" do
|
23
|
+
author = { "givenName" => "Martin", "familyName" => "Fenner", "name" => "Martin Fenner" }
|
24
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
25
25
|
end
|
26
26
|
|
27
|
-
it
|
28
|
-
author = {
|
29
|
-
expect(subject.is_personal_name?(name: author[
|
27
|
+
it "has comma" do
|
28
|
+
author = { "name" => "Fenner, Martin" }
|
29
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
30
30
|
end
|
31
31
|
|
32
|
-
it
|
33
|
-
author = {
|
34
|
-
expect(subject.is_personal_name?(name: author[
|
32
|
+
it "has known given name" do
|
33
|
+
author = { "name" => "Martin Fenner" }
|
34
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
35
35
|
end
|
36
36
|
|
37
|
-
it
|
38
|
-
author = {
|
39
|
-
expect(subject.is_personal_name?(name: author[
|
37
|
+
it "has unknown given name" do
|
38
|
+
author = { "name" => "Rintze Zelle" }
|
39
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
40
40
|
end
|
41
41
|
|
42
|
-
it
|
43
|
-
author = {
|
44
|
-
expect(subject.is_personal_name?(name: author[
|
42
|
+
it "has middle initial" do
|
43
|
+
author = { "name" => "Martin H. Fenner" }
|
44
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
45
45
|
end
|
46
46
|
|
47
|
-
it
|
48
|
-
author = {
|
49
|
-
expect(subject.is_personal_name?(name: author[
|
47
|
+
it "has unknown given name and middle initial" do
|
48
|
+
author = { "name" => "Tejas S. Sathe" }
|
49
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
50
50
|
end
|
51
51
|
|
52
|
-
it
|
53
|
-
author = {
|
54
|
-
expect(subject.is_personal_name?(name: author[
|
52
|
+
it "has no info" do
|
53
|
+
author = { "name" => "M Fenner" }
|
54
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
55
55
|
end
|
56
56
|
|
57
|
-
it
|
58
|
-
author = {
|
59
|
-
expect(subject.is_personal_name?(name: author[
|
57
|
+
it "name with title" do
|
58
|
+
author = { "name" => "Tejas S. Sathe, MD" }
|
59
|
+
expect(subject.is_personal_name?(name: author["name"])).to be true
|
60
60
|
end
|
61
61
|
end
|
62
62
|
|
63
|
-
context
|
64
|
-
it
|
65
|
-
author =
|
66
|
-
expect(subject.cleanup_author(author)).to eq(
|
63
|
+
context "cleanup_author" do
|
64
|
+
it "Smith J." do
|
65
|
+
author = "Smith J."
|
66
|
+
expect(subject.cleanup_author(author)).to eq("Smith, J.")
|
67
67
|
end
|
68
68
|
|
69
|
-
it
|
70
|
-
author =
|
71
|
-
expect(subject.cleanup_author(author)).to eq(
|
69
|
+
it "Smith, John" do
|
70
|
+
author = "Smith, John"
|
71
|
+
expect(subject.cleanup_author(author)).to eq("Smith, John")
|
72
72
|
end
|
73
73
|
|
74
|
-
it
|
75
|
-
author =
|
76
|
-
expect(subject.cleanup_author(author)).to eq(
|
74
|
+
it "John Smith" do
|
75
|
+
author = "John Smith"
|
76
|
+
expect(subject.cleanup_author(author)).to eq("John Smith")
|
77
77
|
end
|
78
78
|
|
79
|
-
it
|
80
|
-
author =
|
81
|
-
expect(subject.cleanup_author(author)).to eq(
|
79
|
+
it "with email" do
|
80
|
+
author = "noreply@blogger.com (Roderic Page)"
|
81
|
+
expect(subject.cleanup_author(author)).to eq("Roderic Page")
|
82
82
|
end
|
83
83
|
end
|
84
84
|
|
85
|
-
context
|
86
|
-
it
|
87
|
-
author = {
|
88
|
-
|
85
|
+
context "get_one_author" do
|
86
|
+
it "has type organization" do
|
87
|
+
author = { "email" => "info@ucop.edu", "name" => "University of California, Santa Barbara",
|
88
|
+
"role" => { "namespace" => "http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_RoleCode", "roleCode" => "copyrightHolder" }, "type" => "Organization" }
|
89
89
|
response = subject.get_one_author(author)
|
90
|
-
expect(response).to eq(
|
90
|
+
expect(response).to eq("name" => "University of California, Santa Barbara", "type" => "Organization")
|
91
91
|
end
|
92
92
|
|
93
|
-
it
|
94
|
-
input =
|
93
|
+
it "has familyName" do
|
94
|
+
input = "https://doi.org/10.5438/4K3M-NYVG"
|
95
95
|
subject = described_class.new(input: input)
|
96
|
-
meta = JSON.parse(subject.raw).dig(
|
97
|
-
response = subject.get_one_author(meta.dig(
|
96
|
+
meta = JSON.parse(subject.raw).dig("data", "attributes")
|
97
|
+
response = subject.get_one_author(meta.dig("creators").first)
|
98
98
|
expect(response).to eq(
|
99
|
-
|
100
|
-
|
99
|
+
"id" => "https://orcid.org/0000-0003-1419-2405",
|
100
|
+
"givenName" => "Martin", "familyName" => "Fenner", "type" => "Person",
|
101
101
|
)
|
102
102
|
end
|
103
103
|
|
104
|
-
it
|
105
|
-
author = {
|
104
|
+
it "has name with title" do
|
105
|
+
author = { "name" => "Tejas S. Sathe, MD" }
|
106
106
|
response = subject.get_one_author(author)
|
107
|
-
expect(response).to eq(
|
107
|
+
expect(response).to eq("givenName" => "Tejas S.", "familyName" => "Sathe", "type" => "Person")
|
108
108
|
end
|
109
109
|
|
110
|
-
it
|
111
|
-
input =
|
110
|
+
it "has name in display-order with ORCID" do
|
111
|
+
input = "https://doi.org/10.6084/M9.FIGSHARE.4700788"
|
112
112
|
subject = described_class.new(input: input)
|
113
|
-
meta = JSON.parse(subject.raw).dig(
|
114
|
-
response = subject.get_one_author(meta.dig(
|
115
|
-
expect(response).to eq(
|
116
|
-
|
117
|
-
|
113
|
+
meta = JSON.parse(subject.raw).dig("data", "attributes")
|
114
|
+
response = subject.get_one_author(meta.dig("creators").first)
|
115
|
+
expect(response).to eq("type" => "Person",
|
116
|
+
"id" => "https://orcid.org/0000-0003-4881-1606",
|
117
|
+
"givenName" => "Andrea", "familyName" => "Bedini")
|
118
118
|
end
|
119
119
|
|
120
|
-
it
|
121
|
-
author = {
|
122
|
-
|
123
|
-
|
120
|
+
it "is organization" do
|
121
|
+
author = { "email" => "info@ucop.edu",
|
122
|
+
"name" => { "__content__" => "University of California, Santa Barbara" },
|
123
|
+
"type" => "Organization", "role" => { "namespace" => "http://www.ngdc.noaa.gov/metadata/published/xsd/schema/resources/Codelist/gmxCodelists.xml#CI_RoleCode", "roleCode" => "copyrightHolder" } }
|
124
124
|
response = subject.get_one_author(author)
|
125
|
-
expect(response).to eq(
|
126
|
-
|
125
|
+
expect(response).to eq("name" => "University of California, Santa Barbara",
|
126
|
+
"type" => "Organization")
|
127
127
|
end
|
128
128
|
|
129
|
-
it
|
130
|
-
|
131
|
-
|
129
|
+
it "is another organization" do
|
130
|
+
author = { "name" => "University of California, Santa Barbara",
|
131
|
+
"id" => "https://ror.org/02t274463" }
|
132
|
+
response = subject.get_one_author(author)
|
133
|
+
expect(response).to eq("id" => "https://ror.org/02t274463", "name" => "University of California, Santa Barbara", "type" => "Organization")
|
134
|
+
end
|
135
|
+
|
136
|
+
it "is anonymous" do
|
137
|
+
author = { "id" => "https://ror.org/05745n787" }
|
138
|
+
response = subject.get_one_author(author)
|
139
|
+
expect(response).to eq("type" => "Person", "affiliation" => [{"id"=>"https://ror.org/05745n787"}])
|
140
|
+
end
|
141
|
+
|
142
|
+
it "name with affiliation crossref" do
|
143
|
+
input = "10.7554/elife.01567"
|
144
|
+
subject = described_class.new(input: input, from: "crossref")
|
132
145
|
response = subject.get_one_author(subject.creators.first)
|
133
|
-
expect(response).to eq(
|
134
|
-
|
135
|
-
|
146
|
+
expect(response).to eq("affiliation" => [{ "name" => "Department of Plant Molecular Biology, University of Lausanne, Lausanne, Switzerland" }], "familyName" => "Sankar",
|
147
|
+
"givenName" => "Martial",
|
148
|
+
"type" => "Person")
|
136
149
|
end
|
137
150
|
|
138
|
-
it
|
139
|
-
input =
|
140
|
-
subject = described_class.new(input: input, from:
|
151
|
+
it "only familyName and givenName" do
|
152
|
+
input = "https://doi.pangaea.de/10.1594/PANGAEA.836178"
|
153
|
+
subject = described_class.new(input: input, from: "schema_org")
|
141
154
|
response = subject.get_one_author(subject.creators.first)
|
142
|
-
expect(response).to eq(
|
155
|
+
expect(response).to eq("type" => "Person", "givenName" => "Emma", "familyName" => "Johansson")
|
156
|
+
end
|
157
|
+
|
158
|
+
it "affiliation is space" do
|
159
|
+
input = "10.1177/0042098011428175"
|
160
|
+
subject = described_class.new(input: input)
|
161
|
+
response = subject.get_one_author(subject.creators.first)
|
162
|
+
expect(response).to eq("familyName"=>"Petrovici", "givenName"=>"Norbert", "type"=>"Person")
|
143
163
|
end
|
144
164
|
end
|
145
165
|
|
146
|
-
context
|
166
|
+
context "authors_as_string" do
|
147
167
|
let(:authors) do
|
148
|
-
[{
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
{
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
{
|
157
|
-
|
158
|
-
|
159
|
-
end
|
160
|
-
|
161
|
-
it
|
168
|
+
[{ "type" => "Person",
|
169
|
+
"id" => "https://orcid.org/0000-0003-0077-4738",
|
170
|
+
"givenName" => "Matt",
|
171
|
+
"familyName" => "Jones" },
|
172
|
+
{ "type" => "Person",
|
173
|
+
"id" => "https://orcid.org/0000-0002-2192-403X",
|
174
|
+
"givenName" => "Peter",
|
175
|
+
"familyName" => "Slaughter" },
|
176
|
+
{ "type" => "Organization",
|
177
|
+
"id" => "https://ror.org/02t274463",
|
178
|
+
"name" => "University of California, Santa Barbara" }]
|
179
|
+
end
|
180
|
+
|
181
|
+
it "authors" do
|
162
182
|
response = subject.authors_as_string(authors[0..1])
|
163
|
-
expect(response).to eq(
|
183
|
+
expect(response).to eq("Jones, Matt and Slaughter, Peter")
|
164
184
|
end
|
165
185
|
|
166
|
-
it
|
186
|
+
it "single author" do
|
167
187
|
response = subject.authors_as_string(authors.first)
|
168
|
-
expect(response).to eq(
|
188
|
+
expect(response).to eq("Jones, Matt")
|
169
189
|
end
|
170
190
|
|
171
|
-
it
|
191
|
+
it "no author" do
|
172
192
|
response = subject.authors_as_string(nil)
|
173
193
|
expect(response.nil?).to be(true)
|
174
194
|
end
|
175
195
|
|
176
|
-
it
|
196
|
+
it "with organization" do
|
177
197
|
response = subject.authors_as_string(authors)
|
178
|
-
expect(response).to eq(
|
198
|
+
expect(response).to eq("Jones, Matt and Slaughter, Peter and {University of California, Santa Barbara}")
|
199
|
+
end
|
200
|
+
end
|
201
|
+
|
202
|
+
context "get_affiliations" do
|
203
|
+
it "name" do
|
204
|
+
affiliation = [{ 'name' => 'University of Zurich, Zurich, Switzerland' }]
|
205
|
+
response = subject.get_affiliations(affiliation)
|
206
|
+
expect(response).to eq([{ 'name' => 'University of Zurich, Zurich, Switzerland' }])
|
207
|
+
end
|
208
|
+
|
209
|
+
it "name and ROR ID" do
|
210
|
+
affiliation = { "id" => "https://ror.org/02t274463",
|
211
|
+
"name" => "University of California, Santa Barbara" }
|
212
|
+
response = subject.get_affiliations(affiliation)
|
213
|
+
expect(response).to eq([{ "name" => "University of California, Santa Barbara" }])
|
214
|
+
end
|
215
|
+
|
216
|
+
it "only ROR ID" do
|
217
|
+
affiliation = { "affiliationIdentifier" => "https://ror.org/02t274463" }
|
218
|
+
response = subject.get_affiliations(affiliation)
|
219
|
+
expect(response).to eq([{"id"=>"https://ror.org/02t274463"}])
|
179
220
|
end
|
180
221
|
end
|
181
222
|
end
|
@@ -0,0 +1,62 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/a163e340-5b3c-4736-9ab0-8c54fdff6a3c
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '2017'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Tue, 20 Jun 2023 19:17:19 GMT
|
31
|
+
Etag:
|
32
|
+
- '"hpv2dd3pyd1jt"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[slug]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::jwz7p-1687288639219-41a872c06d7b
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: "{\"id\":\"https://doi.org/10.59350/g6bth-b6f85\",\"uuid\":\"a163e340-5b3c-4736-9ab0-8c54fdff6a3c\",\"url\":\"https://lab.sub.uni-goettingen.de/welcome.html\",\"title\":\"Welcome
|
48
|
+
to the Lab\",\"summary\":\"Welcome everyone! This is the place to read about
|
49
|
+
projects, resources and all the things we deal with at our work on digital
|
50
|
+
collections, databases, APIs, tools and esoteric programming languages we
|
51
|
+
prefer to write in. It is not meant for a single subject, but covers all topics
|
52
|
+
we \U0001F496. So I hope you don’t mind if the next post is about one of my
|
53
|
+
adorable cute rabbits.\",\"date_published\":\"2017-01-01T00:00:01Z\",\"date_modified\":\"2017-01-01T00:00:01Z\",\"date_indexed\":\"2023-06-20T09:15:18+00:00\",\"authors\":[{\"url\":\"https://ror.org/05745n787\",\"name\":null}],\"image\":\"https://lab.sub.uni-goettingen.de/assets/images/Bibliothek_der_UNI_Goettingen-wikiCommons-Suhaknoke.webp\",\"content_html\":\"<p>Welcome
|
54
|
+
everyone!</p> <p>This is the place to read about projects, resources and all
|
55
|
+
the things we deal with at our work on digital collections, databases, APIs,
|
56
|
+
tools and esoteric programming languages we prefer to write in. It is <em>not</em>
|
57
|
+
meant for a single subject, but covers all topics we \U0001F496. So I hope
|
58
|
+
you don’t mind if the next post is about one of my adorable cute rabbits.</p>\",\"tags\":[\"meta\"],\"language\":\"en\",\"references\":null,\"blog_id\":\"6hezn63\",\"blog\":{\"id\":\"6hezn63\",\"title\":\"lab.sub
|
59
|
+
- Articles\",\"description\":\"Better sit thus, and observe thy strange things\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://lab.sub.uni-goettingen.de/atom.xml\",\"home_page_url\":\"https://lab.sub.uni-goettingen.de/\",\"user_id\":\"8498eaf6-8c58-4b58-bc15-27eda292b1aa\",\"created_at\":\"2023-06-11T08:09:50+00:00\",\"indexed_at\":\"2023-04-24\",\"feed_format\":\"application/atom+xml\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"generator\":\"Jekyll\",\"category\":\"Engineering
|
60
|
+
and Technology\",\"prefix\":\"10.59350\",\"modified_at\":\"2023-06-01T00:00:01+00:00\",\"version\":\"https://jsonfeed.org/version/1.1\",\"backlog\":false,\"authors\":null}}"
|
61
|
+
recorded_at: Tue, 20 Jun 2023 19:17:19 GMT
|
62
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,303 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://doi.org/ra/10.1177
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- doi.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Date:
|
22
|
+
- Wed, 21 Jun 2023 06:59:57 GMT
|
23
|
+
Content-Type:
|
24
|
+
- application/json;charset=UTF-8
|
25
|
+
Transfer-Encoding:
|
26
|
+
- chunked
|
27
|
+
Connection:
|
28
|
+
- close
|
29
|
+
Permissions-Policy:
|
30
|
+
- interest-cohort=(),browsing-topics=()
|
31
|
+
Cf-Cache-Status:
|
32
|
+
- DYNAMIC
|
33
|
+
Report-To:
|
34
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=WU%2FllRC0hBlvN%2BLUIqA5%2BpFmmTvjgA9UpuYKwtTSGR9wNtn%2BBm3WDuXw0nJZp2KAsMUk8vPlHwYo2DVBHZraAkB9xnnlHKWG2wDoY0OuZx%2BWIjgu%2FJoB62ox8a%2FaYk%2B%2BNrCbUYE%3D"}],"group":"cf-nel","max_age":604800}'
|
35
|
+
Nel:
|
36
|
+
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
37
|
+
Strict-Transport-Security:
|
38
|
+
- max-age=31536000; includeSubDomains; preload
|
39
|
+
Server:
|
40
|
+
- cloudflare
|
41
|
+
Cf-Ray:
|
42
|
+
- 7daa5f2ad84d0a69-AMS
|
43
|
+
Alt-Svc:
|
44
|
+
- h3=":443"; ma=86400
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: |-
|
48
|
+
[
|
49
|
+
{
|
50
|
+
"DOI": "10.1177",
|
51
|
+
"RA": "Crossref"
|
52
|
+
}
|
53
|
+
]
|
54
|
+
recorded_at: Wed, 21 Jun 2023 06:59:57 GMT
|
55
|
+
- request:
|
56
|
+
method: get
|
57
|
+
uri: https://api.crossref.org/works/10.1177/0042098011428175
|
58
|
+
body:
|
59
|
+
encoding: UTF-8
|
60
|
+
string: ''
|
61
|
+
headers:
|
62
|
+
Connection:
|
63
|
+
- close
|
64
|
+
Host:
|
65
|
+
- api.crossref.org
|
66
|
+
User-Agent:
|
67
|
+
- http.rb/5.1.1
|
68
|
+
response:
|
69
|
+
status:
|
70
|
+
code: 200
|
71
|
+
message: OK
|
72
|
+
headers:
|
73
|
+
Date:
|
74
|
+
- Wed, 21 Jun 2023 06:59:57 GMT
|
75
|
+
Content-Type:
|
76
|
+
- application/json
|
77
|
+
Transfer-Encoding:
|
78
|
+
- chunked
|
79
|
+
Access-Control-Expose-Headers:
|
80
|
+
- Link
|
81
|
+
Access-Control-Allow-Headers:
|
82
|
+
- X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language,
|
83
|
+
Accept-Ranges, Cache-Control
|
84
|
+
Access-Control-Allow-Origin:
|
85
|
+
- "*"
|
86
|
+
Server:
|
87
|
+
- Jetty(9.4.40.v20210413)
|
88
|
+
X-Ratelimit-Limit:
|
89
|
+
- '50'
|
90
|
+
X-Ratelimit-Interval:
|
91
|
+
- 1s
|
92
|
+
X-Api-Pool:
|
93
|
+
- public
|
94
|
+
X-Rate-Limit-Limit:
|
95
|
+
- '50'
|
96
|
+
X-Rate-Limit-Interval:
|
97
|
+
- 1s
|
98
|
+
Permissions-Policy:
|
99
|
+
- interest-cohort=()
|
100
|
+
Connection:
|
101
|
+
- close
|
102
|
+
body:
|
103
|
+
encoding: UTF-8
|
104
|
+
string: '{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2023,5,7]],"date-time":"2023-05-07T19:48:38Z","timestamp":1683488918534},"reference-count":54,"publisher":"SAGE
|
105
|
+
Publications","issue":"11","license":[{"start":{"date-parts":[[2011,12,22]],"date-time":"2011-12-22T00:00:00Z","timestamp":1324512000000},"content-version":"tdm","delay-in-days":0,"URL":"http:\/\/journals.sagepub.com\/page\/policies\/text-and-data-mining-license"}],"content-domain":{"domain":["journals.sagepub.com"],"crossmark-restriction":true},"short-container-title":["Urban
|
106
|
+
Studies"],"published-print":{"date-parts":[[2012,11]]},"abstract":"<jats:p>
|
107
|
+
In this article, the case of Cluj\/Kolozsvar, regional capital of Transylvania,
|
108
|
+
is analysed in order to uncover the geographies of power in which the workers,
|
109
|
+
a category that has often been analytically silenced, have had an important
|
110
|
+
role in reframing the landscape of the city. Principal component analysis
|
111
|
+
is used to clarify the city\u2019s socialist and post-socialist urbanisation
|
112
|
+
processes, and the qualitative data show how the workers appropriated the
|
113
|
+
urban space in a nationalist manner. The workers\u2019 tactics had an important
|
114
|
+
impact, from a relational perspective, on the spatial strategies of the emerging
|
115
|
+
post-socialist middle class. <\/jats:p>","DOI":"10.1177\/0042098011428175","type":"journal-article","created":{"date-parts":[[2011,12,23]],"date-time":"2011-12-23T05:16:52Z","timestamp":1324617412000},"page":"2377-2397","update-policy":"http:\/\/dx.doi.org\/10.1177\/sage-journals-update-policy","source":"Crossref","is-referenced-by-count":16,"title":["Workers
|
116
|
+
and the City: Rethinking the Geographies of Power in Post-socialist Urbanisation"],"prefix":"10.1177","volume":"49","author":[{"given":"Norbert","family":"Petrovici","sequence":"first","affiliation":[{"name":"\u00a0"}]}],"member":"179","published-online":{"date-parts":[[2011,12,22]]},"reference":[{"issue":"3","key":"atypb1","first-page":"110","volume":"5","author":"Belkis\u00a0D.","year":"2003","journal-title":"IDEA
|
117
|
+
Arta \u015fi Societate"},{"key":"atypb2","unstructured":"Bodnar\u00a0J.Evil
|
118
|
+
Paradises: Dreamworlds of Neoliberalism. Davis\u00a0M., Monk\u00a0D., ed.
|
119
|
+
New York: New Press; 2007:140-151."},{"issue":"2","key":"atypb3","first-page":"53","volume":"19","author":"Burawoy\u00a0M.","year":"1989","journal-title":"Socialist
|
120
|
+
Review"},{"issue":"4","key":"atypb4","doi-asserted-by":"crossref","first-page":"1099","DOI":"10.1086\/320299","volume":"106","author":"Burawoy\u00a0M.","year":"2001","journal-title":"American
|
121
|
+
Journal of Sociology"},{"key":"atypb5","doi-asserted-by":"publisher","DOI":"10.1086\/210402"},{"key":"atypb6","doi-asserted-by":"publisher","DOI":"10.1017\/S0010417503000331"},{"key":"atypb7","volume-title":"Privatizing
|
122
|
+
Poland: Baby Food, Big Business, and the Remaking of Labor","author":"Dunn\u00a0E.
|
123
|
+
C.","year":"2004"},{"key":"atypb8","volume-title":"Making Capitalism without
|
124
|
+
Capitalists: Class Formation and Elite Struggles in Post-communist Central
|
125
|
+
Europe","author":"Eyal\u00a0G.","year":"1998"},{"key":"atypb9","doi-asserted-by":"publisher","DOI":"10.1086\/320300"},{"key":"atypb10","volume-title":"From
|
126
|
+
the Cult of Waste to the Trash Heap of History: The Politics of Waste in Socialist
|
127
|
+
and Postsocialist Hungary","author":"Gille\u00a0Z.","year":"2007"},{"key":"atypb11","volume-title":"Transformation
|
128
|
+
of Cities in Central and Eastern Europe","author":"Hamilton\u00a0F. E. I.","year":"2006"},{"key":"atypb12","doi-asserted-by":"publisher","DOI":"10.1080\/13604810903298672"},{"key":"atypb13","doi-asserted-by":"publisher","DOI":"10.1080\/13604810903579287"},{"key":"atypb14","doi-asserted-by":"publisher","DOI":"10.1525\/9780520936102"},{"key":"atypb15","doi-asserted-by":"publisher","DOI":"10.1017\/S0020859009990630"},{"key":"atypb16","unstructured":"Hirt\u00a0S.,Kovachev\u00a0A.The
|
129
|
+
Urban Mosaic of Post-socialist Eastern Europe. Tsenkova\u00a0S., Nedovic-Budic\u00a0Z.,
|
130
|
+
ed. Dordrecht: Springer; 2006:112-130."},{"key":"atypb17","doi-asserted-by":"publisher","DOI":"10.1017\/S0147547905000189"},{"key":"atypb18","doi-asserted-by":"publisher","DOI":"10.1146\/annurev.so.06.080180.002245"},{"key":"atypb19","doi-asserted-by":"publisher","DOI":"10.1007\/BF00993596"},{"key":"atypb20","volume-title":"Expanding
|
131
|
+
Class: Power and Everyday Politics in Industrial Communities","author":"Kalb\u00a0D.","year":"1997"},{"key":"atypb21","volume-title":"Working-class
|
132
|
+
Formation: Nineteenth-century Patterns in Western Europe and the United States","author":"Katznelson\u00a0I.","year":"1986"},{"issue":"4","key":"atypb22","first-page":"399","volume":"12","author":"Kideckel\u00a0D.","year":"1988","journal-title":"Dialectical
|
133
|
+
Anthropology"},{"key":"atypb23","unstructured":"Kideckel\u00a0D.Postsocialism:
|
134
|
+
Ideals, Ideologies, and Practices in Eurasia. Hann\u00a0C., ed. London: Routledge;
|
135
|
+
2002:114-132."},{"key":"atypb24","volume-title":"Getting by in Postsocialist
|
136
|
+
Romania: Labor, the Body, and Working Class Culture","author":"Kideckel\u00a0D.","year":"2008"},{"key":"atypb25","doi-asserted-by":"publisher","DOI":"10.1016\/j.cities.2006.02.002"},{"key":"atypb26","first-page":"70","volume":"46","author":"Lascu\u00a0N.","year":"2006","journal-title":"Arhitectura"},{"key":"atypb27","first-page":"13","volume":"1","author":"Lascu\u00a0N.","year":"1979","journal-title":"Arhitectura"},{"key":"atypb28","first-page":"125","volume":"15","author":"Lazar\u00a0M.","year":"2003","journal-title":"IDEA
|
137
|
+
Arts and Society"},{"key":"atypb29","volume-title":"Vital statistics in the
|
138
|
+
city of Cluj-Napoca","year":"2007"},{"key":"atypb30","volume-title":"The Social
|
139
|
+
Impact of Informal Economies in Eastern Europe","author":"Neef\u00a0R.","year":"2002"},{"key":"atypb31","volume-title":"The
|
140
|
+
Defeat of Solidarity: Anger and Politics in Postcommunist Europe","author":"Ost\u00a0D.","year":"2005"},{"issue":"2","key":"atypb32","first-page":"9","volume":"53","author":"Ourednicek\u00a0M.","year":"2009","journal-title":"Studia
|
141
|
+
Sociologie"},{"key":"atypb33","doi-asserted-by":"publisher","DOI":"10.4324\/9780203881927"},{"key":"atypb34","unstructured":"Petrovici\u00a0N.Headlines
|
142
|
+
of Nationalism, Subtexts of Class. Kalb\u00a0D., Halmai\u00a0G., ed. New York:
|
143
|
+
Berghahn Books; 2011:57-77."},{"key":"atypb35","doi-asserted-by":"publisher","DOI":"10.1017\/S0147547905000165"},{"issue":"1","key":"atypb36","doi-asserted-by":"crossref","first-page":"130","DOI":"10.1163\/187633009X411539","volume":"36","author":"Poenaru\u00a0F.","year":"2009","journal-title":"East
|
144
|
+
Central Europe"},{"issue":"1","key":"atypb37","first-page":"55","volume":"17","author":"Riabchuk\u00a0A.","year":"2009","journal-title":"Debatte"},{"key":"atypb38","doi-asserted-by":"publisher","DOI":"10.1023\/A:1022435000258"},{"key":"atypb39","doi-asserted-by":"publisher","DOI":"10.1177\/0011392104046619"},{"key":"atypb40","doi-asserted-by":"publisher","DOI":"10.1080\/13604810902982250"},{"key":"atypb41","doi-asserted-by":"publisher","DOI":"10.1080\/13604811003633719"},{"key":"atypb42","doi-asserted-by":"publisher","DOI":"10.1111\/j.1467-8330.2008.00592.x"},{"key":"atypb43","doi-asserted-by":"publisher","DOI":"10.1002\/9780470712733.ch3"},{"key":"atypb44","doi-asserted-by":"publisher","DOI":"10.1007\/978-1-4020-6053-3"},{"key":"atypb45","doi-asserted-by":"publisher","DOI":"10.1111\/j.1467-8330.2008.00573.x"},{"key":"atypb46","doi-asserted-by":"publisher","DOI":"10.1080\/02673039982678"},{"key":"atypb47","unstructured":"Szel\u00e9nyi\u00a0I.,Kostello\u00a0E.The
|
145
|
+
New Institutionalism in Sociology. Nee\u00a0V., Brinton\u00a0M., ed. New York:
|
146
|
+
Russell Sage Foundation; 1998:305-326."},{"key":"atypb48","volume-title":"The
|
147
|
+
Poverty of Theory and Other Essays","author":"Thompson\u00a0E. P.","year":"1978"},{"key":"atypb49","volume-title":"Stalinism
|
148
|
+
for All Seasons: A Political History of Romanian Communism","author":"Tism\u0103neanu\u00a0V.","year":"2003"},{"key":"atypb50","unstructured":"Tosics\u00a0I.Transformation
|
149
|
+
of Cities in Central and Eastern Europe. Hamilton\u00a0F. E. I., Dimitrowska
|
150
|
+
Andrews\u00a0K., Pichler-Milanovic\u00a0N., ed. Tokyo: United Nations University
|
151
|
+
Press; 2006:47-78."},{"key":"atypb51","volume-title":"S\u0103p\u0103tor \u00een
|
152
|
+
Pia\u0163a Discordiei","author":"Tripon\u00a0M.","year":"2005"},{"issue":"3","key":"atypb52","first-page":"130","volume":"5","author":"Troc\u00a0G.","year":"2003","journal-title":"IDEA
|
153
|
+
Arta \u015fi Societate"},{"key":"atypb53","doi-asserted-by":"publisher","DOI":"10.1007\/3-7908-1727-9"},{"key":"atypb54","doi-asserted-by":"publisher","DOI":"10.1017\/S0010417500019903"}],"container-title":["Urban
|
154
|
+
Studies"],"original-title":[],"language":"en","link":[{"URL":"http:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/0042098011428175","content-type":"application\/pdf","content-version":"vor","intended-application":"text-mining"},{"URL":"http:\/\/journals.sagepub.com\/doi\/pdf\/10.1177\/0042098011428175","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2021,5,16]],"date-time":"2021-05-16T13:53:27Z","timestamp":1621173207000},"score":1,"resource":{"primary":{"URL":"http:\/\/journals.sagepub.com\/doi\/10.1177\/0042098011428175"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2011,12,22]]},"references-count":54,"journal-issue":{"issue":"11","published-print":{"date-parts":[[2012,11]]}},"alternative-id":["10.1177\/0042098011428175"],"URL":"http:\/\/dx.doi.org\/10.1177\/0042098011428175","relation":{},"ISSN":["0042-0980","1360-063X"],"issn-type":[{"value":"0042-0980","type":"print"},{"value":"1360-063X","type":"electronic"}],"subject":["Urban
|
155
|
+
Studies","Environmental Science (miscellaneous)"],"published":{"date-parts":[[2011,12,22]]}}}'
|
156
|
+
recorded_at: Wed, 21 Jun 2023 06:59:57 GMT
|
157
|
+
- request:
|
158
|
+
method: get
|
159
|
+
uri: https://api.crossref.org/members/179
|
160
|
+
body:
|
161
|
+
encoding: UTF-8
|
162
|
+
string: ''
|
163
|
+
headers:
|
164
|
+
Connection:
|
165
|
+
- close
|
166
|
+
Host:
|
167
|
+
- api.crossref.org
|
168
|
+
User-Agent:
|
169
|
+
- http.rb/5.1.1
|
170
|
+
response:
|
171
|
+
status:
|
172
|
+
code: 200
|
173
|
+
message: OK
|
174
|
+
headers:
|
175
|
+
Date:
|
176
|
+
- Wed, 21 Jun 2023 06:59:58 GMT
|
177
|
+
Content-Type:
|
178
|
+
- application/json
|
179
|
+
Transfer-Encoding:
|
180
|
+
- chunked
|
181
|
+
Access-Control-Expose-Headers:
|
182
|
+
- Link
|
183
|
+
Access-Control-Allow-Headers:
|
184
|
+
- X-Requested-With, Accept, Accept-Encoding, Accept-Charset, Accept-Language,
|
185
|
+
Accept-Ranges, Cache-Control
|
186
|
+
Access-Control-Allow-Origin:
|
187
|
+
- "*"
|
188
|
+
Server:
|
189
|
+
- Jetty(9.4.40.v20210413)
|
190
|
+
X-Ratelimit-Limit:
|
191
|
+
- '50'
|
192
|
+
X-Ratelimit-Interval:
|
193
|
+
- 1s
|
194
|
+
X-Api-Pool:
|
195
|
+
- public
|
196
|
+
X-Rate-Limit-Limit:
|
197
|
+
- '50'
|
198
|
+
X-Rate-Limit-Interval:
|
199
|
+
- 1s
|
200
|
+
Permissions-Policy:
|
201
|
+
- interest-cohort=()
|
202
|
+
Connection:
|
203
|
+
- close
|
204
|
+
body:
|
205
|
+
encoding: UTF-8
|
206
|
+
string: '{"status":"ok","message-type":"member","message-version":"1.0.0","message":{"last-status-check-time":1687303488709,"primary-name":"SAGE
|
207
|
+
Publications","counts":{"current-dois":212065,"backfile-dois":2784347,"total-dois":2996412},"breakdowns":{"dois-by-issued-year":[[2020,91760],[2022,87882],[2021,86441],[2014,86188],[2016,84799],[2013,82548],[2017,82500],[2018,80619],[2019,80361],[2012,79247],[2009,76596],[2011,76586],[2015,76217],[2010,75226],[2008,74866],[2007,68850],[2006,65904],[2005,65225],[2004,63509],[2003,55361],[2002,53945],[2001,51620],[2000,50472],[1999,47214],[1998,44564],[1997,44102],[1996,42534],[1995,39264],[2023,37732],[1993,37730],[1994,37125],[1992,35237],[1991,33677],[1990,33622],[1989,31761],[1988,30972],[1987,29341],[1986,27580],[1985,25638],[1984,25249],[1983,24813],[1982,23828],[1981,22728],[1980,22144],[1979,21740],[1978,21186],[1977,20376],[1976,19956],[1974,19050],[1975,18677],[1973,18466],[1972,18370],[1971,16532],[1970,16120],[1969,16059],[1968,15300],[1967,14944],[1966,14403],[1965,13894],[1964,13126],[1963,12000],[1962,11394],[1961,10670],[1960,10444],[1959,9742],[1958,9005],[1957,8667],[1956,7941],[1955,7757],[1954,7639],[1953,6995],[1951,6892],[1952,6747],[1950,6551],[1949,6338],[1948,5844],[1939,5417],[1947,5211],[1930,5117],[1938,5020],[1931,4982],[1941,4851],[1936,4823],[1940,4736],[1935,4689],[1928,4633],[1946,4630],[1929,4583],[1942,4582],[1937,4557],[1933,4546],[1927,4451],[1932,4398],[1934,4358],[1926,4278],[1945,4173],[1924,4015],[1944,4008],[1943,3997],[1925,3994],[1921,3774],[1922,3719],[1923,3691],[1914,3646],[1913,3378],[1920,3362],[1909,3324],[1915,3231],[1912,3138],[1911,3113],[1919,3080],[1910,3051],[1916,3026],[1908,3016],[1917,2930],[1918,2640],[1906,2434],[1907,2428],[1904,2023],[1903,1796],[1902,1650],[1898,1648],[1899,1632],[1905,1602],[1896,1554],[1894,1433],[1901,1320],[1895,1257],[1892,864],[1897,653],[1893,512],[1900,449],[1891,355],[1890,268],[1887,193],[1886,193],[1885,189],[1881,172],[1888,170],[1884,167],[1889,154],[1883,146],[1882,132],[1879,80],[1880,77],[1856,65],[1858,54],[1853,54],[1847,54],[1823,54],[1860,53],[1859,53],[1850,53],[1878,52],[1852,52],[1857,51],[1851,51],[1877,50],[1862,50],[1827,49],[1855,48],[1876,47],[1873,47],[1864,47],[1871,46],[1869,45],[1867,45],[1874,44],[1861,44],[1865,43],[1816,43],[1863,42],[1875,41],[1866,41],[1848,41],[1868,40],[1854,39],[1821,39],[1872,38],[1870,33],[1818,33],[1811,33],[1844,32],[1819,31],[1815,29],[1814,29],[1817,28],[1813,28],[1843,27],[1838,26],[1840,25],[1839,25],[1849,24],[1845,24],[1812,24],[1831,23],[1842,22],[1835,22],[1809,22],[1846,21],[1837,20],[1841,19],[1832,18],[1829,17],[1828,17],[1833,14],[2024,8],[2103,2]]},"prefixes":["10.1528","10.1606","10.12679","10.3821","10.4137","10.1345","10.2511","10.1106","10.1622","10.1369","10.4219","10.14240","10.4135","10.5126","10.5367","10.5301","10.1243","10.7182","10.2190","10.47515","10.3818","10.2968","10.47594","10.1630","10.1354","10.1258","10.15256","10.3317","10.31124","10.5034","10.2182","10.17322","10.5153","10.1177","10.2189","10.1191","10.5193"],"coverage":{"affiliations-current":0.8446796972626317,"similarity-checking-current":0.9263103293801429,"descriptions-current":0.002791596916039893,"ror-ids-current":0.0,"funders-backfile":0.02452567873185347,"licenses-backfile":0.8441020461889269,"funders-current":0.2638672105250749,"affiliations-backfile":0.6015457125135624,"resource-links-backfile":0.8432594787934119,"orcids-backfile":0.04384295491905283,"update-policies-current":0.914752552283498,"ror-ids-backfile":0.0,"orcids-current":0.716247376983472,"similarity-checking-backfile":0.8617988346998418,"references-backfile":0.4934201807461498,"descriptions-backfile":0.002570441112404452,"award-numbers-backfile":0.01977698900316663,"update-policies-backfile":0.2589666446028458,"licenses-current":0.924914530922123,"award-numbers-current":0.2116945276212482,"abstracts-backfile":0.420136570621406,"resource-links-current":0.9181335911159314,"abstracts-current":0.7917808219178082,"references-current":0.8106854030603824},"prefix":[{"name":"Sage
|
208
|
+
Publications- Academy of Traumatology","value":"10.1528"},{"name":"Alliance
|
209
|
+
for Children and Families","value":"10.1606"},{"name":"Alliance for Children
|
210
|
+
and Families","value":"10.12679"},{"name":"Canadian Pharmacists Journal","value":"10.3821"},{"name":"Libertas
|
211
|
+
Academica, Ltd.","value":"10.4137"},{"name":"Harvey Whitney Books Co.","value":"10.1345"},{"name":"TASH","value":"10.2511"},{"name":"Sage
|
212
|
+
Publications - Technomic Publishing Company","value":"10.1106"},{"name":"SagePublications
|
213
|
+
- National Association of School Nurses","value":"10.1622"},{"name":"Journal
|
214
|
+
of Histochemistry & Cytochemistry","value":"10.1369"},{"name":"Sage Publications
|
215
|
+
(Prufrock Press, Inc.)","value":"10.4219"},{"name":"SAGE","value":"10.14240"},{"name":"Sage
|
216
|
+
Publications - Reference E-Books","value":"10.4135"},{"name":"Excellus Health
|
217
|
+
Plan, Inc.","value":"10.5126"},{"name":"IP Publishing","value":"10.5367"},{"name":"Wichtig
|
218
|
+
Publishing, SRL","value":"10.5301"},{"name":"Research Publishing Services
|
219
|
+
- Professional Engineering Publishing","value":"10.1243"},{"name":"North American
|
220
|
+
Transplant Coordinators Organization","value":"10.7182"},{"name":"Baywood
|
221
|
+
Publishing","value":"10.2190"},{"name":"SAGE Publications","value":"10.47515"},{"name":"Justice
|
222
|
+
Research & Statistics Association","value":"10.3818"},{"name":"Sage Publications
|
223
|
+
- Bulletin of the Atomic Scientists","value":"10.2968"},{"name":"Adam Matthew
|
224
|
+
Digital","value":"10.47594"},{"name":"Sage Publications-International Institute
|
225
|
+
for Environment and Development","value":"10.1630"},{"name":"American College
|
226
|
+
of Veterinary Pathologists","value":"10.1354"},{"name":"The Royal Society
|
227
|
+
of Medicine","value":"10.1258"},{"name":"Swiss Medical Press, GmbH","value":"10.15256"},{"name":"Sage
|
228
|
+
Publications (JRAAS Limited)","value":"10.3317"},{"name":"SAGE Publications","value":"10.31124"},{"name":"Excellus
|
229
|
+
Health Plan, Inc.","value":"10.5034"},{"name":"Canadian Association of Occupational
|
230
|
+
Therapists","value":"10.2182"},{"name":"Sage - Corwin","value":"10.17322"},{"name":"Sociological
|
231
|
+
Research Online","value":"10.5153"},{"name":"SAGE Publications","value":"10.1177"},{"name":"Johnson
|
232
|
+
Graduate School of Management, Cornell University","value":"10.2189"},{"name":"Arnold
|
233
|
+
Publishers","value":"10.1191"},{"name":"Association for Experimental Education","value":"10.5193"}],"id":179,"tokens":["sage","publications"],"counts-type":{"all":{"book-section":618,"monograph":4954,"report":109,"peer-review":3263,"journal-article":2730067,"other":2412,"book":4438,"reference-entry":138463,"journal":153,"component":250,"book-chapter":98893,"database":524,"reference-book":8645,"posted-content":3226,"journal-issue":3015,"edited-book":29},"backfile":{"monograph":4812,"report":98,"journal-article":2534652,"other":99,"book":3065,"reference-entry":131213,"component":24,"book-chapter":91329,"database":325,"reference-book":7126,"posted-content":1788,"journal-issue":2992,"edited-book":13},"current":{"monograph":142,"report":11,"peer-review":3263,"journal-article":195415,"other":1957,"book":1373,"reference-entry":2415,"book-chapter":3901,"database":199,"reference-book":1519,"posted-content":1438,"journal-issue":23,"edited-book":16}},"coverage-type":{"all":{"book-section":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1731391585760518,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"monograph":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":6.055712555510698E-4,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1626968106580541,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"report":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.009174311926605505,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"peer-review":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-article":{"last-status-check-time":1687303488709,"affiliations":0.6791097068313708,"abstracts":0.4888063186727652,"orcids":0.0999975458477759,"licenses":0.9311731177293451,"references":0.5662025877020601,"funders":0.04550987210203999,"similarity-checking":0.9372458624641813,"award-numbers":0.03661411972673198,"ror-ids":0.0,"update-policies":0.3351712613646478,"resource-links":0.9309687271411288,"descriptions":0.0},"other":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.01990049751243781,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.002478593961243804,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1266336187471834,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"reference-entry":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1040855679856713,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.07189542483660132,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"component":{"last-status-check-time":1687303488709,"affiliations":0.096,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.26,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.2},"book-chapter":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1480691252161427,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"database":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.9980916030534351},"reference-book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.2202429149797571,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"posted-content":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":1.0,"orcids":0.2991320520768754,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.9820210787352759,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-issue":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.3396351575456053,"references":0.0,"funders":0.0,"similarity-checking":0.2530679933665008,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.3396351575456053,"descriptions":0.0},"edited-book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.03448275862068966,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0}},"backfile":{"monograph":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1674979218620116,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"report":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.01020408163265306,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-article":{"last-status-check-time":1687303488709,"affiliations":0.6607960382727096,"abstracts":0.4608198679739862,"orcids":0.04795253944131186,"licenses":0.9261472580851337,"references":0.5420282547663348,"funders":0.02694176557570822,"similarity-checking":0.9325556328837253,"award-numbers":0.02172527037242193,"ror-ids":0.0,"update-policies":0.284478105870155,"resource-links":0.9259271095203602,"descriptions":0.0},"other":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0303030303030303,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1833605220228385,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"reference-entry":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1071235319671069,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"component":{"last-status-check-time":1687303488709,"affiliations":1.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.9583333333333333,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":1.0},"book-chapter":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.1518575698847026,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"database":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.9969230769230769},"reference-book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.2671905697445972,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"posted-content":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":1.0,"orcids":0.2969798657718121,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.9899328859060403,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-issue":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.3422459893048128,"references":0.0,"funders":0.0,"similarity-checking":0.2550133689839572,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.3422459893048128,"descriptions":0.0},"edited-book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0}},"current":{"monograph":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.02112676056338028,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"report":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"peer-review":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-article":{"last-status-check-time":1687303488709,"affiliations":0.9166491825090193,"abstracts":0.8518076913235934,"orcids":0.7750530921372464,"licenses":0.996361589437863,"references":0.8797584627587443,"funders":0.2863495637489446,"similarity-checking":0.9980810070874805,"award-numbers":0.2297315968579689,"ror-ids":0.0,"update-policies":0.9926924749891257,"resource-links":0.996361589437863,"descriptions":0.0},"other":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.008011653313911142,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"reference-entry":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"book-chapter":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"database":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":1.0},"reference-book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"posted-content":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":1.0,"orcids":0.301808066759388,"licenses":1.0,"references":0.0,"funders":0.0,"similarity-checking":0.972183588317107,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"journal-issue":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0},"edited-book":{"last-status-check-time":1687303488709,"affiliations":0.0,"abstracts":0.0625,"orcids":0.0,"licenses":0.0,"references":0.0,"funders":0.0,"similarity-checking":0.0,"award-numbers":0.0,"ror-ids":0.0,"update-policies":0.0,"resource-links":0.0,"descriptions":0.0}}},"flags":{"deposits-abstracts-current":true,"deposits-orcids-current":true,"deposits":true,"deposits-affiliations-backfile":true,"deposits-update-policies-backfile":true,"deposits-similarity-checking-backfile":true,"deposits-award-numbers-current":true,"deposits-resource-links-current":true,"deposits-ror-ids-current":false,"deposits-articles":true,"deposits-affiliations-current":true,"deposits-funders-current":true,"deposits-references-backfile":true,"deposits-ror-ids-backfile":false,"deposits-abstracts-backfile":true,"deposits-licenses-backfile":true,"deposits-award-numbers-backfile":true,"deposits-descriptions-current":true,"deposits-references-current":true,"deposits-resource-links-backfile":true,"deposits-descriptions-backfile":true,"deposits-orcids-backfile":true,"deposits-funders-backfile":true,"deposits-update-policies-current":true,"deposits-similarity-checking-current":true,"deposits-licenses-current":true},"location":"Thousand
|
234
|
+
Oaks, CA, United States","names":["SAGE Publications","Sage Publications-
|
235
|
+
Academy of Traumatology","Alliance for Children and Families","Canadian Pharmacists
|
236
|
+
Journal","Libertas Academica, Ltd.","Harvey Whitney Books Co.","TASH","Sage
|
237
|
+
Publications - Technomic Publishing Company","SagePublications - National
|
238
|
+
Association of School Nurses","Journal of Histochemistry & Cytochemistry","Sage
|
239
|
+
Publications (Prufrock Press, Inc.)","SAGE","Sage Publications - Reference
|
240
|
+
E-Books","Excellus Health Plan, Inc.","IP Publishing","Wichtig Publishing,
|
241
|
+
SRL","Research Publishing Services - Professional Engineering Publishing","North
|
242
|
+
American Transplant Coordinators Organization","Baywood Publishing","Justice
|
243
|
+
Research & Statistics Association","Sage Publications - Bulletin of the Atomic
|
244
|
+
Scientists","Adam Matthew Digital","Sage Publications-International Institute
|
245
|
+
for Environment and Development","American College of Veterinary Pathologists","The
|
246
|
+
Royal Society of Medicine","Swiss Medical Press, GmbH","Sage Publications
|
247
|
+
(JRAAS Limited)","Canadian Association of Occupational Therapists","Sage -
|
248
|
+
Corwin","Sociological Research Online","Johnson Graduate School of Management,
|
249
|
+
Cornell University","Arnold Publishers","Association for Experimental Education"]}}'
|
250
|
+
recorded_at: Wed, 21 Jun 2023 06:59:58 GMT
|
251
|
+
- request:
|
252
|
+
method: get
|
253
|
+
uri: https://doi.org/ra/10.1177
|
254
|
+
body:
|
255
|
+
encoding: UTF-8
|
256
|
+
string: ''
|
257
|
+
headers:
|
258
|
+
Connection:
|
259
|
+
- close
|
260
|
+
Host:
|
261
|
+
- doi.org
|
262
|
+
User-Agent:
|
263
|
+
- http.rb/5.1.1
|
264
|
+
response:
|
265
|
+
status:
|
266
|
+
code: 200
|
267
|
+
message: OK
|
268
|
+
headers:
|
269
|
+
Date:
|
270
|
+
- Wed, 21 Jun 2023 06:59:59 GMT
|
271
|
+
Content-Type:
|
272
|
+
- application/json;charset=UTF-8
|
273
|
+
Transfer-Encoding:
|
274
|
+
- chunked
|
275
|
+
Connection:
|
276
|
+
- close
|
277
|
+
Permissions-Policy:
|
278
|
+
- interest-cohort=(),browsing-topics=()
|
279
|
+
Cf-Cache-Status:
|
280
|
+
- DYNAMIC
|
281
|
+
Report-To:
|
282
|
+
- '{"endpoints":[{"url":"https:\/\/a.nel.cloudflare.com\/report\/v3?s=bNbXRHfVukPPYrYk5wu4g0iPpSEzVd6QktB0GY1pi0vzya1wxGq3qXom7Z08n4sqBwgUc2hkYILxL1FOyAVDgh%2FSPJrsDIeyK0hzTPlV1%2FZEB23Lu4sZm3RpnGSyLNQ7vbSuY6U%3D"}],"group":"cf-nel","max_age":604800}'
|
283
|
+
Nel:
|
284
|
+
- '{"success_fraction":0,"report_to":"cf-nel","max_age":604800}'
|
285
|
+
Strict-Transport-Security:
|
286
|
+
- max-age=31536000; includeSubDomains; preload
|
287
|
+
Server:
|
288
|
+
- cloudflare
|
289
|
+
Cf-Ray:
|
290
|
+
- 7daa5f363859b76c-AMS
|
291
|
+
Alt-Svc:
|
292
|
+
- h3=":443"; ma=86400
|
293
|
+
body:
|
294
|
+
encoding: UTF-8
|
295
|
+
string: |-
|
296
|
+
[
|
297
|
+
{
|
298
|
+
"DOI": "10.1177",
|
299
|
+
"RA": "Crossref"
|
300
|
+
}
|
301
|
+
]
|
302
|
+
recorded_at: Wed, 21 Jun 2023 06:59:59 GMT
|
303
|
+
recorded_with: VCR 6.1.0
|
@@ -0,0 +1,62 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://rogue-scholar.org/api/posts/a163e340-5b3c-4736-9ab0-8c54fdff6a3c
|
6
|
+
body:
|
7
|
+
encoding: UTF-8
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
Connection:
|
11
|
+
- close
|
12
|
+
Host:
|
13
|
+
- rogue-scholar.org
|
14
|
+
User-Agent:
|
15
|
+
- http.rb/5.1.1
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Age:
|
22
|
+
- '0'
|
23
|
+
Cache-Control:
|
24
|
+
- public, max-age=0, must-revalidate
|
25
|
+
Content-Length:
|
26
|
+
- '2017'
|
27
|
+
Content-Type:
|
28
|
+
- application/json; charset=utf-8
|
29
|
+
Date:
|
30
|
+
- Tue, 20 Jun 2023 19:25:14 GMT
|
31
|
+
Etag:
|
32
|
+
- '"hpv2dd3pyd1jt"'
|
33
|
+
Server:
|
34
|
+
- Vercel
|
35
|
+
Strict-Transport-Security:
|
36
|
+
- max-age=63072000
|
37
|
+
X-Matched-Path:
|
38
|
+
- "/api/posts/[slug]"
|
39
|
+
X-Vercel-Cache:
|
40
|
+
- MISS
|
41
|
+
X-Vercel-Id:
|
42
|
+
- fra1::iad1::rfqk5-1687289113815-cb42220988ef
|
43
|
+
Connection:
|
44
|
+
- close
|
45
|
+
body:
|
46
|
+
encoding: UTF-8
|
47
|
+
string: "{\"id\":\"https://doi.org/10.59350/g6bth-b6f85\",\"uuid\":\"a163e340-5b3c-4736-9ab0-8c54fdff6a3c\",\"url\":\"https://lab.sub.uni-goettingen.de/welcome.html\",\"title\":\"Welcome
|
48
|
+
to the Lab\",\"summary\":\"Welcome everyone! This is the place to read about
|
49
|
+
projects, resources and all the things we deal with at our work on digital
|
50
|
+
collections, databases, APIs, tools and esoteric programming languages we
|
51
|
+
prefer to write in. It is not meant for a single subject, but covers all topics
|
52
|
+
we \U0001F496. So I hope you don’t mind if the next post is about one of my
|
53
|
+
adorable cute rabbits.\",\"date_published\":\"2017-01-01T00:00:01Z\",\"date_modified\":\"2017-01-01T00:00:01Z\",\"date_indexed\":\"2023-06-20T09:15:18+00:00\",\"authors\":[{\"url\":\"https://ror.org/05745n787\",\"name\":null}],\"image\":\"https://lab.sub.uni-goettingen.de/assets/images/Bibliothek_der_UNI_Goettingen-wikiCommons-Suhaknoke.webp\",\"content_html\":\"<p>Welcome
|
54
|
+
everyone!</p> <p>This is the place to read about projects, resources and all
|
55
|
+
the things we deal with at our work on digital collections, databases, APIs,
|
56
|
+
tools and esoteric programming languages we prefer to write in. It is <em>not</em>
|
57
|
+
meant for a single subject, but covers all topics we \U0001F496. So I hope
|
58
|
+
you don’t mind if the next post is about one of my adorable cute rabbits.</p>\",\"tags\":[\"meta\"],\"language\":\"en\",\"references\":null,\"blog_id\":\"6hezn63\",\"blog\":{\"id\":\"6hezn63\",\"title\":\"lab.sub
|
59
|
+
- Articles\",\"description\":\"Better sit thus, and observe thy strange things\",\"language\":\"en\",\"favicon\":null,\"feed_url\":\"https://lab.sub.uni-goettingen.de/atom.xml\",\"home_page_url\":\"https://lab.sub.uni-goettingen.de/\",\"user_id\":\"8498eaf6-8c58-4b58-bc15-27eda292b1aa\",\"created_at\":\"2023-06-11T08:09:50+00:00\",\"indexed_at\":\"2023-04-24\",\"feed_format\":\"application/atom+xml\",\"license\":\"https://creativecommons.org/licenses/by/4.0/legalcode\",\"generator\":\"Jekyll\",\"category\":\"Engineering
|
60
|
+
and Technology\",\"prefix\":\"10.59350\",\"modified_at\":\"2023-06-01T00:00:01+00:00\",\"version\":\"https://jsonfeed.org/version/1.1\",\"backlog\":false,\"authors\":null}}"
|
61
|
+
recorded_at: Tue, 20 Jun 2023 19:25:14 GMT
|
62
|
+
recorded_with: VCR 6.1.0
|
@@ -228,8 +228,7 @@ describe Commonmeta::Metadata, vcr: true do
|
|
228
228
|
it "ghost post with organizational author" do
|
229
229
|
input = "https://rogue-scholar.org/api/posts/5561f8e4-2ff1-4186-a8d5-8dacb3afe414"
|
230
230
|
subject = described_class.new(input: input)
|
231
|
-
|
232
|
-
# expect(subject.valid?).to be true
|
231
|
+
expect(subject.valid?).to be true
|
233
232
|
expect(subject.id).to eq("https://libscie.org/ku-leuven-supports-researchequals")
|
234
233
|
expect(subject.url).to eq("https://libscie.org/ku-leuven-supports-researchequals")
|
235
234
|
expect(subject.alternate_identifiers).to eq([{ "alternateIdentifier" => "5561f8e4-2ff1-4186-a8d5-8dacb3afe414", "alternateIdentifierType" => "UUID" }])
|
@@ -251,6 +250,31 @@ describe Commonmeta::Metadata, vcr: true do
|
|
251
250
|
expect(subject.references).to be_nil
|
252
251
|
end
|
253
252
|
|
253
|
+
it "jekyll post with anonymous author" do
|
254
|
+
input = "https://rogue-scholar.org/api/posts/a163e340-5b3c-4736-9ab0-8c54fdff6a3c"
|
255
|
+
subject = described_class.new(input: input)
|
256
|
+
expect(subject.valid?).to be true
|
257
|
+
expect(subject.id).to eq("https://doi.org/10.59350/g6bth-b6f85")
|
258
|
+
expect(subject.url).to eq("https://lab.sub.uni-goettingen.de/welcome.html")
|
259
|
+
expect(subject.alternate_identifiers).to eq([{ "alternateIdentifier" => "a163e340-5b3c-4736-9ab0-8c54fdff6a3c", "alternateIdentifierType" => "UUID" }])
|
260
|
+
expect(subject.type).to eq("Article")
|
261
|
+
expect(subject.creators.length).to eq(1)
|
262
|
+
expect(subject.creators.first).to eq("affiliation"=>[{"id"=>"https://ror.org/05745n787"}], "type"=>"Person")
|
263
|
+
expect(subject.titles).to eq([{ "title" => "Welcome to the Lab" }])
|
264
|
+
expect(subject.license).to eq("id" => "CC-BY-4.0",
|
265
|
+
"url" => "https://creativecommons.org/licenses/by/4.0/legalcode")
|
266
|
+
expect(subject.date).to eq("published"=>"2017-01-01", "updated"=>"2017-01-01")
|
267
|
+
expect(subject.descriptions.first["description"]).to start_with("Welcome everyone!")
|
268
|
+
expect(subject.publisher).to eq("name" => "lab.sub - Articles")
|
269
|
+
expect(subject.subjects).to eq([{ "subject" => "Engineering and technology" },
|
270
|
+
{ "schemeUri" => "http://www.oecd.org/science/inno/38235147.pdf",
|
271
|
+
"subject" => "FOS: Engineering and technology",
|
272
|
+
"subjectScheme" => "Fields of Science and Technology (FOS)" }])
|
273
|
+
expect(subject.language).to eq("en")
|
274
|
+
expect(subject.container).to eq("identifier" => "https://lab.sub.uni-goettingen.de/", "identifierType" => "URL", "title" => "lab.sub - Articles", "type" => "Periodical")
|
275
|
+
expect(subject.references).to be_nil
|
276
|
+
end
|
277
|
+
|
254
278
|
it "blog post with non-url id" do
|
255
279
|
input = "https://rogue-scholar.org/api/posts/1898d2d7-4d87-4487-96c4-3073cf99e9a5"
|
256
280
|
subject = described_class.new(input: input)
|
@@ -279,11 +279,44 @@ describe Commonmeta::Metadata, vcr: true do
|
|
279
279
|
crossref_xml = Hash.from_xml(subject.crossref_xml).dig("doi_batch", "body", "posted_content")
|
280
280
|
expect(Array.wrap(crossref_xml.dig("contributors", "organization")).length).to eq(1)
|
281
281
|
expect(Array.wrap(crossref_xml.dig("contributors",
|
282
|
-
"organization")).first).to eq("
|
282
|
+
"organization")).first).to eq("__content__"=>"Liberate Science", "contributor_role"=>"author", "sequence"=>"first")
|
283
283
|
expect(crossref_xml.dig("titles",
|
284
284
|
"title")).to eq("KU Leuven supports ResearchEquals")
|
285
285
|
expect(crossref_xml.dig('item_number')).to eq("__content__"=>"5561f8e42ff14186a8d58dacb3afe414", "item_number_type"=>"uuid")
|
286
286
|
expect(crossref_xml.dig('group_title')).to eq('Social sciences')
|
287
287
|
end
|
288
|
+
|
289
|
+
it "json_feed_item from rogue scholar with anonymous author" do
|
290
|
+
input = "https://rogue-scholar.org/api/posts/a163e340-5b3c-4736-9ab0-8c54fdff6a3c"
|
291
|
+
subject = described_class.new(input: input, doi: "10.59350/9ry27-7cz42")
|
292
|
+
|
293
|
+
expect(subject.id).to eq("https://doi.org/10.59350/9ry27-7cz42")
|
294
|
+
expect(subject.url).to eq("https://lab.sub.uni-goettingen.de/welcome.html")
|
295
|
+
expect(subject.alternate_identifiers).to eq([{ "alternateIdentifier" => "a163e340-5b3c-4736-9ab0-8c54fdff6a3c", "alternateIdentifierType" => "UUID" }])
|
296
|
+
expect(subject.type).to eq("Article")
|
297
|
+
expect(subject.creators.length).to eq(1)
|
298
|
+
expect(subject.creators.first).to eq("affiliation"=>[{"id"=>"https://ror.org/05745n787"}], "type"=>"Person")
|
299
|
+
expect(subject.titles).to eq([{ "title" => "Welcome to the Lab" }])
|
300
|
+
expect(subject.license).to eq("id" => "CC-BY-4.0",
|
301
|
+
"url" => "https://creativecommons.org/licenses/by/4.0/legalcode")
|
302
|
+
expect(subject.date).to eq("published"=>"2017-01-01", "updated"=>"2017-01-01")
|
303
|
+
expect(subject.descriptions.first["description"]).to start_with("Welcome everyone!")
|
304
|
+
expect(subject.publisher).to eq("name" => "lab.sub - Articles")
|
305
|
+
expect(subject.subjects).to eq([{ "subject" => "Engineering and technology" },
|
306
|
+
{ "schemeUri" => "http://www.oecd.org/science/inno/38235147.pdf",
|
307
|
+
"subject" => "FOS: Engineering and technology",
|
308
|
+
"subjectScheme" => "Fields of Science and Technology (FOS)" }])
|
309
|
+
expect(subject.language).to eq("en")
|
310
|
+
expect(subject.container).to eq("identifier" => "https://lab.sub.uni-goettingen.de/", "identifierType" => "URL", "title" => "lab.sub - Articles", "type" => "Periodical")
|
311
|
+
expect(subject.references).to be_nil
|
312
|
+
crossref_xml = Hash.from_xml(subject.crossref_xml).dig("doi_batch", "body", "posted_content")
|
313
|
+
expect(Array.wrap(crossref_xml.dig("contributors", "anonymous")).length).to eq(1)
|
314
|
+
expect(Array.wrap(crossref_xml.dig("contributors",
|
315
|
+
"anonymous")).first).to eq("affiliations"=>{"institution"=>{"institution_id"=>{"__content__"=>"https://ror.org/05745n787", "type"=>"ror"}}}, "contributor_role"=>"author", "sequence"=>"first")
|
316
|
+
expect(crossref_xml.dig("titles",
|
317
|
+
"title")).to eq("Welcome to the Lab")
|
318
|
+
expect(crossref_xml.dig('item_number')).to eq("__content__"=>"a163e3405b3c47369ab08c54fdff6a3c", "item_number_type"=>"uuid")
|
319
|
+
expect(crossref_xml.dig('group_title')).to eq('Engineering and technology')
|
320
|
+
end
|
288
321
|
end
|
289
322
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commonmeta-ruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.3.
|
4
|
+
version: 3.3.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: 2023-06-
|
11
|
+
date: 2023-06-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -655,7 +655,7 @@ files:
|
|
655
655
|
- lib/commonmeta/xml_converter.rb
|
656
656
|
- resources/2008/09/xsd.xsl
|
657
657
|
- resources/cff.json
|
658
|
-
- resources/commonmeta_v0.9.
|
658
|
+
- resources/commonmeta_v0.9.2.json
|
659
659
|
- resources/crossref/AccessIndicators.xsd
|
660
660
|
- resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd
|
661
661
|
- resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd
|
@@ -873,11 +873,13 @@ files:
|
|
873
873
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_organizational_author.yml
|
874
874
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_without_doi.yml
|
875
875
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post.yml
|
876
|
+
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post_with_anonymous_author.yml
|
876
877
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/substack_post_with_broken_reference.yml
|
877
878
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/syldavia_gazette_post_with_references.yml
|
878
879
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/upstream_post_with_references.yml
|
879
880
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post.yml
|
880
881
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post_with_references.yml
|
882
|
+
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/affiliation_is_space.yml
|
881
883
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_familyName.yml
|
882
884
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml
|
883
885
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/name_with_affiliation_crossref.yml
|
@@ -917,6 +919,7 @@ files:
|
|
917
919
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml
|
918
920
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article.yml
|
919
921
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml
|
922
|
+
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_anonymous_author.yml
|
920
923
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml
|
921
924
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_organizational_author.yml
|
922
925
|
- spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_upstream_blog.yml
|