bolognese 0.11.7 → 0.12
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +15 -15
- data/lib/bolognese/datacite_utils.rb +2 -2
- data/lib/bolognese/metadata.rb +3 -1
- data/lib/bolognese/metadata_utils.rb +10 -6
- data/lib/bolognese/readers/codemeta_reader.rb +0 -1
- data/lib/bolognese/readers/crossref_reader.rb +2 -2
- data/lib/bolognese/readers/datacite_json_reader.rb +1 -1
- data/lib/bolognese/readers/datacite_reader.rb +10 -5
- data/lib/bolognese/readers/ris_reader.rb +0 -1
- data/lib/bolognese/readers/schema_org_reader.rb +1 -2
- data/lib/bolognese/utils.rb +20 -1
- data/lib/bolognese/version.rb +1 -1
- data/lib/bolognese/writers/crosscite_writer.rb +1 -1
- data/lib/bolognese/writers/datacite_json_writer.rb +1 -1
- data/lib/bolognese/writers/ris_writer.rb +0 -1
- data/lib/bolognese/writers/schema_org_writer.rb +4 -3
- data/spec/fixtures/crosscite.json +1 -1
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/content_url.yml +89 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse_via_identifiers_org.yml +143 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org_identifier/with_alternate_identifier.yml +37 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +42 -0
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/data_catalog.yml +42 -0
- data/spec/fixtures/vivli.xml +1 -0
- data/spec/readers/crossref_reader_spec.rb +1 -1
- data/spec/readers/datacite_json_reader_spec.rb +1 -1
- data/spec/readers/datacite_reader_spec.rb +28 -8
- data/spec/readers/schema_org_reader_spec.rb +17 -7
- data/spec/utils_spec.rb +18 -0
- data/spec/writers/datacite_writer_spec.rb +1 -1
- data/spec/writers/ris_writer_spec.rb +6 -11
- data/spec/writers/schema_org_writer_spec.rb +35 -0
- metadata +8 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b569e2bb9f0bf75501740c1f43c0c916c7a85f55a0ec7efa27c9c04b685ed3a5
|
4
|
+
data.tar.gz: 95d0e9485923922ac0a078c071bd644c1628b05d8a01888c2e81989c7be534ff
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e72f93fde195b2659c28c529efc2d856c9df955ff0c56b8aa2a4f91bf0a3943af178a3d133f29d042aab3711764a3eb287e7702a9c6c970fd740d6bdd3bad810
|
7
|
+
data.tar.gz: 4988a36ff5526f7402a13aee011f48ede46b5e4087917a0410190e2f8f35ca6ce5a28c74ea92dea7734d89212d7caae588f869445d55112338920f3b09e8be5b
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bolognese (0.
|
4
|
+
bolognese (0.12)
|
5
5
|
activesupport (>= 4.2.5, < 6)
|
6
6
|
benchmark_methods (~> 0.7)
|
7
7
|
bibtex-ruby (~> 4.1)
|
@@ -24,7 +24,7 @@ PATH
|
|
24
24
|
GEM
|
25
25
|
remote: https://rubygems.org/
|
26
26
|
specs:
|
27
|
-
activesupport (5.2.
|
27
|
+
activesupport (5.2.1)
|
28
28
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
29
29
|
i18n (>= 0.7, < 2)
|
30
30
|
minitest (~> 5.1)
|
@@ -63,7 +63,7 @@ GEM
|
|
63
63
|
concurrent-ruby (~> 1.0)
|
64
64
|
hashdiff (0.3.7)
|
65
65
|
htmlentities (4.3.4)
|
66
|
-
i18n (1.0
|
66
|
+
i18n (1.1.0)
|
67
67
|
concurrent-ruby (~> 1.0)
|
68
68
|
iso8601 (0.9.1)
|
69
69
|
json (2.1.0)
|
@@ -78,7 +78,7 @@ GEM
|
|
78
78
|
loofah (2.2.2)
|
79
79
|
crass (~> 1.0.2)
|
80
80
|
nokogiri (>= 1.5.9)
|
81
|
-
maremma (4.1)
|
81
|
+
maremma (4.1.1)
|
82
82
|
activesupport (>= 4.2.5, < 6)
|
83
83
|
addressable (>= 2.3.6)
|
84
84
|
builder (~> 3.2, >= 3.2.2)
|
@@ -127,19 +127,19 @@ GEM
|
|
127
127
|
rdf (>= 2.2, < 4.0)
|
128
128
|
rdf-xsd (3.0.0)
|
129
129
|
rdf (~> 3.0)
|
130
|
-
rspec (3.
|
131
|
-
rspec-core (~> 3.
|
132
|
-
rspec-expectations (~> 3.
|
133
|
-
rspec-mocks (~> 3.
|
134
|
-
rspec-core (3.
|
135
|
-
rspec-support (~> 3.
|
136
|
-
rspec-expectations (3.
|
130
|
+
rspec (3.8.0)
|
131
|
+
rspec-core (~> 3.8.0)
|
132
|
+
rspec-expectations (~> 3.8.0)
|
133
|
+
rspec-mocks (~> 3.8.0)
|
134
|
+
rspec-core (3.8.0)
|
135
|
+
rspec-support (~> 3.8.0)
|
136
|
+
rspec-expectations (3.8.1)
|
137
137
|
diff-lcs (>= 1.2.0, < 2.0)
|
138
|
-
rspec-support (~> 3.
|
139
|
-
rspec-mocks (3.
|
138
|
+
rspec-support (~> 3.8.0)
|
139
|
+
rspec-mocks (3.8.0)
|
140
140
|
diff-lcs (>= 1.2.0, < 2.0)
|
141
|
-
rspec-support (~> 3.
|
142
|
-
rspec-support (3.
|
141
|
+
rspec-support (~> 3.8.0)
|
142
|
+
rspec-support (3.8.0)
|
143
143
|
rspec-xsd (0.1.0)
|
144
144
|
nokogiri (~> 1.6)
|
145
145
|
rspec (~> 3)
|
@@ -105,10 +105,10 @@ module Bolognese
|
|
105
105
|
end
|
106
106
|
|
107
107
|
def insert_alternate_identifiers(xml)
|
108
|
-
return xml unless
|
108
|
+
return xml unless alternate_identifier.present?
|
109
109
|
|
110
110
|
xml.alternateIdentifiers do
|
111
|
-
Array.wrap(
|
111
|
+
Array.wrap(alternate_identifier).each do |alt|
|
112
112
|
xml.alternateIdentifier(alt["name"], 'alternateIdentifierType' => alt["type"])
|
113
113
|
end
|
114
114
|
end
|
data/lib/bolognese/metadata.rb
CHANGED
@@ -32,7 +32,8 @@ module Bolognese
|
|
32
32
|
"date_registered" => options[:date_registered],
|
33
33
|
"date_updated" => options[:date_updated],
|
34
34
|
"provider_id" => options[:provider_id],
|
35
|
-
"client_id" => options[:client_id]
|
35
|
+
"client_id" => options[:client_id],
|
36
|
+
"content_url" => options[:content_url] }
|
36
37
|
string = input
|
37
38
|
@from = from || find_from_format(string: string)
|
38
39
|
end
|
@@ -55,6 +56,7 @@ module Bolognese
|
|
55
56
|
@date_updated = hsh.to_h["date_updated"].presence
|
56
57
|
@provider_id = hsh.to_h["provider_id"].presence
|
57
58
|
@client_id = hsh.to_h["client_id"].presence
|
59
|
+
@content_url = hsh.to_h["content_url"].presence
|
58
60
|
|
59
61
|
# generate name for method to call dynamically
|
60
62
|
@meta = @from.present? ? send("read_" + @from, string: string, sandbox: options[:sandbox]) : {}
|
@@ -68,7 +68,7 @@ module Bolognese
|
|
68
68
|
:date_accepted, :date_available, :date_copyrighted, :date_collected, :date_published,
|
69
69
|
:date_submitted, :date_valid, :date_created, :date_modified, :date_updated,
|
70
70
|
:journal, :volume, :first_page, :last_page, :b_url, :b_version, :resource_type_general,
|
71
|
-
:keywords, :editor, :description, :
|
71
|
+
:keywords, :editor, :description, :alternate_identifier, :language, :content_size,
|
72
72
|
:schema_version, :has_part, :same_as, :resource_type_general,
|
73
73
|
:is_previous_version_of, :is_new_version_of, :is_cited_by, :cites,
|
74
74
|
:is_supplement_to, :is_supplemented_by, :is_continued_by, :continues,
|
@@ -76,7 +76,7 @@ module Bolognese
|
|
76
76
|
:is_documented_by, :documents, :is_compiled_by, :compiles,
|
77
77
|
:is_variant_form_of, :is_original_form_of, :is_reviewed_by, :reviews,
|
78
78
|
:is_derived_from, :is_source_of, :format, :funding, :style, :locale, :state,
|
79
|
-
:type, :additional_type, :citeproc_type, :bibtex_type, :ris_type, :meta
|
79
|
+
:type, :additional_type, :citeproc_type, :bibtex_type, :ris_type, :content_url, :meta
|
80
80
|
|
81
81
|
attr_reader :doc, :service_provider, :page_start, :page_end, :related_identifier, :reverse, :name_detector
|
82
82
|
|
@@ -123,6 +123,14 @@ module Bolognese
|
|
123
123
|
@identifier ||= meta.fetch("id", nil)
|
124
124
|
end
|
125
125
|
|
126
|
+
def alternate_identifier
|
127
|
+
@alternate_identifier ||= meta.fetch("alternate_identifier", nil)
|
128
|
+
end
|
129
|
+
|
130
|
+
def content_url
|
131
|
+
@content_url ||= meta.fetch("content_url", nil)
|
132
|
+
end
|
133
|
+
|
126
134
|
def state
|
127
135
|
@state ||= meta.fetch("state", nil)
|
128
136
|
end
|
@@ -131,10 +139,6 @@ module Bolognese
|
|
131
139
|
@title ||= meta.fetch("title", nil)
|
132
140
|
end
|
133
141
|
|
134
|
-
def alternate_name
|
135
|
-
@alternate_name ||= meta.fetch("alternate_name", nil)
|
136
|
-
end
|
137
|
-
|
138
142
|
def author
|
139
143
|
@author ||= meta.fetch("author", nil)
|
140
144
|
end
|
@@ -39,7 +39,6 @@ module Bolognese
|
|
39
39
|
"doi" => validate_doi(id),
|
40
40
|
"b_url" => normalize_id(meta.fetch("codeRepository", nil)),
|
41
41
|
"title" => meta.fetch("title", nil),
|
42
|
-
"alternate_name" => meta.fetch("alternateName", nil),
|
43
42
|
"author" => author,
|
44
43
|
"editor" => editor,
|
45
44
|
"publisher" => publisher,
|
@@ -91,7 +91,7 @@ module Bolognese
|
|
91
91
|
"doi" => doi,
|
92
92
|
"b_url" => bibliographic_metadata.dig("doi_data", "resource"),
|
93
93
|
"title" => parse_attributes(bibliographic_metadata.dig("titles", "title")),
|
94
|
-
"
|
94
|
+
"alternate_identifier" => crossref_alternate_identifier(bibliographic_metadata),
|
95
95
|
"author" => crossref_people(bibliographic_metadata, "author"),
|
96
96
|
"editor" => crossref_people(bibliographic_metadata, "editor"),
|
97
97
|
"funding" => crossref_funding_reference(program_metadata),
|
@@ -116,7 +116,7 @@ module Bolognese
|
|
116
116
|
}
|
117
117
|
end
|
118
118
|
|
119
|
-
def
|
119
|
+
def crossref_alternate_identifier(bibliographic_metadata)
|
120
120
|
if bibliographic_metadata.fetch("publisher_item", nil).present?
|
121
121
|
parse_attributes(bibliographic_metadata.dig("publisher_item", "item_number"))
|
122
122
|
else
|
@@ -23,7 +23,7 @@ module Bolognese
|
|
23
23
|
"doi" => validate_doi(meta.fetch("doi", nil)),
|
24
24
|
"b_url" => normalize_id(meta.fetch("url", nil)),
|
25
25
|
"title" => meta.fetch("title", nil),
|
26
|
-
"
|
26
|
+
"alternate_identifier" => meta.fetch("alternate-identifier", nil),
|
27
27
|
"author" => meta.fetch("creator", nil),
|
28
28
|
"editor" => meta.fetch("contributor", nil),
|
29
29
|
"publisher" => meta.fetch("publisher", nil),
|
@@ -35,13 +35,18 @@ module Bolognese
|
|
35
35
|
string = doc.to_xml(:indent => 2)
|
36
36
|
end
|
37
37
|
|
38
|
+
content_url = Array.wrap(attributes.fetch("media", nil)).map do |media|
|
39
|
+
media.split(":", 2).last
|
40
|
+
end.compact
|
41
|
+
|
38
42
|
{ "string" => string,
|
39
43
|
"b_url" => attributes.fetch("url", nil),
|
40
44
|
"state" => attributes.fetch("state", nil),
|
41
45
|
"date_registered" => attributes.fetch("minted", nil),
|
42
46
|
"date_updated" => attributes.fetch("updated", nil),
|
43
47
|
"provider_id" => attributes.fetch("allocator_symbol", nil),
|
44
|
-
"client_id" => attributes.fetch("datacentre_symbol", nil)
|
48
|
+
"client_id" => attributes.fetch("datacentre_symbol", nil),
|
49
|
+
"content_url" => content_url }
|
45
50
|
end
|
46
51
|
|
47
52
|
def read_datacite(string: nil, **options)
|
@@ -80,8 +85,8 @@ module Bolognese
|
|
80
85
|
|
81
86
|
container_title = Array.wrap(meta.dig("descriptions", "description")).find { |r| r["descriptionType"] == "SeriesInformation" }.to_h.fetch("__content__", nil)
|
82
87
|
|
83
|
-
|
84
|
-
{ "type" => r["alternateIdentifierType"], "name" => r["__content__"] }
|
88
|
+
alternate_identifier = Array.wrap(meta.dig("alternateIdentifiers", "alternateIdentifier")).map do |r|
|
89
|
+
{ "type" => r["alternateIdentifierType"], "name" => r["__content__"] }
|
85
90
|
end.unwrap
|
86
91
|
description = Array.wrap(meta.dig("descriptions", "description")).select { |r| r["descriptionType"] != "SeriesInformation" }.map do |r|
|
87
92
|
{ "type" => r["descriptionType"], "text" => sanitize(r["__content__"]) }.compact
|
@@ -113,9 +118,9 @@ module Bolognese
|
|
113
118
|
"ris_type" => Bolognese::Utils::CR_TO_RIS_TRANSLATIONS[additional_type.to_s.underscore.camelcase] || Bolognese::Utils::DC_TO_RIS_TRANSLATIONS[resource_type_general.to_s.dasherize] || "GEN",
|
114
119
|
"resource_type_general" => resource_type_general,
|
115
120
|
"doi" => doi,
|
121
|
+
"alternate_identifier" => alternate_identifier,
|
116
122
|
"url" => options.fetch(:url, nil),
|
117
123
|
"title" => title,
|
118
|
-
"alternate_name" => alternate_name,
|
119
124
|
"author" => get_authors(Array.wrap(meta.dig("creators", "creator"))),
|
120
125
|
"editor" => get_authors(Array.wrap(meta.dig("contributors", "contributor")).select { |r| r["contributorType"] == "Editor" }),
|
121
126
|
"container_title" => container_title,
|
@@ -132,7 +137,7 @@ module Bolognese
|
|
132
137
|
"date_created" => datacite_date(dates, "Created"),
|
133
138
|
"date_accepted" => datacite_date(dates, "Accepted"),
|
134
139
|
"date_available" => datacite_date(dates, "Available"),
|
135
|
-
"date_copyrighted" => datacite_date(dates, "
|
140
|
+
"date_copyrighted" => datacite_date(dates, "Copyrights"),
|
136
141
|
"date_collected" => datacite_date(dates, "Collected"),
|
137
142
|
"date_submitted" => datacite_date(dates, "Submitted"),
|
138
143
|
"date_valid" => datacite_date(dates, "Valid"),
|
@@ -67,10 +67,9 @@ module Bolognese
|
|
67
67
|
"ris_type" => Bolognese::Utils::SO_TO_RIS_TRANSLATIONS[resource_type_general.to_s.dasherize] || "GEN",
|
68
68
|
"resource_type_general" => resource_type_general,
|
69
69
|
"doi" => validate_doi(id),
|
70
|
-
"identifier" =>
|
70
|
+
"identifier" => meta.fetch("identifier", nil),
|
71
71
|
"b_url" => normalize_id(meta.fetch("url", nil)),
|
72
72
|
"title" => meta.fetch("name", nil),
|
73
|
-
"alternate_name" => meta.fetch("alternateName", nil),
|
74
73
|
"author" => author,
|
75
74
|
"editor" => editor,
|
76
75
|
"publisher" => publisher,
|
data/lib/bolognese/utils.rb
CHANGED
@@ -523,15 +523,34 @@ module Bolognese
|
|
523
523
|
end
|
524
524
|
|
525
525
|
def to_schema_org_container(element, options={})
|
526
|
+
return nil unless options[:container_title].present?
|
527
|
+
|
526
528
|
mapping = { "type" => "@type", "id" => "@id", "title" => "name" }
|
527
529
|
|
528
530
|
element ||= {}
|
529
531
|
element["type"] ||= (type == "Dataset") ? "DataCatalog" : "Periodical"
|
530
|
-
element["title"] = options[:container_title]
|
532
|
+
element["title"] = options[:container_title]
|
531
533
|
|
532
534
|
map_hash_keys(element: element, mapping: mapping)
|
533
535
|
end
|
534
536
|
|
537
|
+
def to_schema_org_identifier(element, options={})
|
538
|
+
if options[:alternate_identifier].present?
|
539
|
+
[identifier] + Array.wrap(options[:alternate_identifier]).map do |ai|
|
540
|
+
if ai["type"].to_s.downcase == "url"
|
541
|
+
ai["name"]
|
542
|
+
else
|
543
|
+
{
|
544
|
+
"@type" => "PropertyValue",
|
545
|
+
"propertyID" => ai["type"],
|
546
|
+
"value" => ai["name"] }
|
547
|
+
end
|
548
|
+
end
|
549
|
+
else
|
550
|
+
identifier
|
551
|
+
end
|
552
|
+
end
|
553
|
+
|
535
554
|
def from_schema_org(element)
|
536
555
|
mapping = { "@type" => "type", "@id" => "id" }
|
537
556
|
|
data/lib/bolognese/version.rb
CHANGED
@@ -33,7 +33,7 @@ module Bolognese
|
|
33
33
|
"date_updated" => date_updated,
|
34
34
|
"date_valid" => date_valid,
|
35
35
|
"language" => language,
|
36
|
-
"
|
36
|
+
"alternate_identifier" => alternate_identifier,
|
37
37
|
"content_size" => content_size,
|
38
38
|
"version" => b_version,
|
39
39
|
"license" => license,
|
@@ -29,7 +29,7 @@ module Bolognese
|
|
29
29
|
"date_valid" => date_valid,
|
30
30
|
"publication_year" => publication_year,
|
31
31
|
"language" => language,
|
32
|
-
"alternate_identifier" =>
|
32
|
+
"alternate_identifier" => alternate_identifier,
|
33
33
|
"references" => references,
|
34
34
|
"is_referenced_by" => is_referenced_by,
|
35
35
|
"is_part_of" => is_part_of,
|
@@ -15,7 +15,6 @@ module Bolognese
|
|
15
15
|
"KW" => Array.wrap(keywords).map { |k| parse_attributes(k, content: "text", first: true) }.presence,
|
16
16
|
"PY" => publication_year,
|
17
17
|
"PB" => publisher,
|
18
|
-
"AN" => parse_attributes(alternate_name, content: "name").presence,
|
19
18
|
"LA" => language,
|
20
19
|
"VL" => volume,
|
21
20
|
"IS" => issue,
|
@@ -7,11 +7,10 @@ module Bolognese
|
|
7
7
|
{ "@context" => identifier.present? ? "http://schema.org" : nil,
|
8
8
|
"@type" => type,
|
9
9
|
"@id" => identifier,
|
10
|
-
"identifier" => identifier,
|
10
|
+
"identifier" => to_schema_org_identifier(identifier, alternate_identifier: alternate_identifier),
|
11
11
|
"url" => b_url,
|
12
12
|
"additionalType" => additional_type,
|
13
13
|
"name" => parse_attributes(title, content: "text", first: true),
|
14
|
-
"alternateName" => parse_attributes(alternate_name, content: "name", first: true),
|
15
14
|
"author" => to_schema_org(author),
|
16
15
|
"editor" => to_schema_org(editor),
|
17
16
|
"description" => parse_attributes(description, content: "text", first: true),
|
@@ -27,13 +26,15 @@ module Bolognese
|
|
27
26
|
"pageEnd" => last_page,
|
28
27
|
"spatialCoverage" => spatial_coverage,
|
29
28
|
"sameAs" => to_schema_org(is_identical_to),
|
30
|
-
"isPartOf" => to_schema_org_container(is_part_of, container_title: container_title),
|
29
|
+
"isPartOf" => type == "Dataset" ? nil : to_schema_org_container(is_part_of, container_title: container_title),
|
31
30
|
"hasPart" => to_schema_org(has_part),
|
32
31
|
"predecessor_of" => to_schema_org(is_previous_version_of),
|
33
32
|
"successor_of" => to_schema_org(is_new_version_of),
|
34
33
|
"citation" => to_schema_org(references),
|
35
34
|
"@reverse" => reverse.presence,
|
35
|
+
"contentUrl" => content_url,
|
36
36
|
"schemaVersion" => schema_version,
|
37
|
+
"includedInDataCatalog" => type == "Dataset" ? to_schema_org_container(is_part_of, container_title: container_title) : nil,
|
37
38
|
"publisher" => publisher.present? ? { "@type" => "Organization", "name" => publisher } : nil,
|
38
39
|
"funding" => to_schema_org(funding),
|
39
40
|
"provider" => service_provider.present? ? { "@type" => "Organization", "name" => service_provider } : nil
|
@@ -0,0 +1,89 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: https://app.datacite.org/prefixes/10.23725
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
string: ''
|
9
|
+
headers:
|
10
|
+
User-Agent:
|
11
|
+
- Mozilla/5.0 (compatible; Maremma/4.1.1; +https://github.com/datacite/maremma)
|
12
|
+
Accept:
|
13
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
14
|
+
response:
|
15
|
+
status:
|
16
|
+
code: 200
|
17
|
+
message: OK
|
18
|
+
headers:
|
19
|
+
Date:
|
20
|
+
- Wed, 22 Aug 2018 06:38:30 GMT
|
21
|
+
Content-Type:
|
22
|
+
- application/vnd.api+json; charset=utf-8
|
23
|
+
Connection:
|
24
|
+
- keep-alive
|
25
|
+
Status:
|
26
|
+
- 200 OK
|
27
|
+
X-Anonymous-Consumer:
|
28
|
+
- 'true'
|
29
|
+
Cache-Control:
|
30
|
+
- max-age=0, private, must-revalidate
|
31
|
+
Vary:
|
32
|
+
- Accept-Encoding, Origin
|
33
|
+
X-Request-Id:
|
34
|
+
- 3d4d8c6a-a2bd-4060-875f-07725945597f
|
35
|
+
Etag:
|
36
|
+
- W/"56c426765344bcbbece7b2dea9a07f50"
|
37
|
+
X-Runtime:
|
38
|
+
- '0.013853'
|
39
|
+
X-Powered-By:
|
40
|
+
- Phusion Passenger 5.3.4
|
41
|
+
Server:
|
42
|
+
- nginx/1.14.0 + Phusion Passenger 5.3.4
|
43
|
+
body:
|
44
|
+
encoding: ASCII-8BIT
|
45
|
+
string: '{"data":{"id":"10.23725","type":"prefixes","attributes":{"registration-agency":"DataCite","created":"2016-09-26T14:06:03.000Z","updated":null},"relationships":{"clients":{"data":[{"id":"datacite.topmed","type":"clients"}]},"providers":{"data":[{"id":"datacite","type":"providers"}]}}},"included":[{"id":"datacite.topmed","type":"clients","attributes":{"name":"TOPMed","symbol":"DATACITE.TOPMED","year":2018,"contact-name":"Martin
|
46
|
+
Fenner","contact-email":"mfenner@datacite.org","domains":"*","url":null,"is-active":true,"has-password":false,"created":"2018-08-06T12:46:43Z","updated":"2018-08-22T02:36:18Z"},"relationships":{"prefixes":{"meta":{}},"provider":{"meta":{}},"repository":{"meta":{}}}},{"id":"datacite","type":"providers","attributes":{"name":"DataCite","symbol":"DATACITE","website":null,"contact-name":"DataCite
|
47
|
+
Support","contact-email":"info@datacite.org","phone":null,"description":null,"country":"DE","logo-url":null,"institution-type":null,"is-active":true,"has-password":true,"joined":null,"created":"2011-12-07T13:41:07.000Z","updated":"2018-08-22T02:25:51.000Z"},"relationships":{"clients":{"meta":{}},"prefixes":{"meta":{}}}}]}'
|
48
|
+
http_version:
|
49
|
+
recorded_at: Wed, 22 Aug 2018 06:38:30 GMT
|
50
|
+
- request:
|
51
|
+
method: get
|
52
|
+
uri: https://search.datacite.org/api?defType=edismax&fl=doi,url,xml,state,allocator_symbol,datacentre_symbol,media,minted,updated&q=10.23725/8na3-9s47&wt=json
|
53
|
+
body:
|
54
|
+
encoding: US-ASCII
|
55
|
+
string: ''
|
56
|
+
headers:
|
57
|
+
User-Agent:
|
58
|
+
- Mozilla/5.0 (compatible; Maremma/4.1.1; +https://github.com/datacite/maremma)
|
59
|
+
Accept:
|
60
|
+
- text/html,application/json,application/xml;q=0.9, text/plain;q=0.8,image/png,*/*;q=0.5
|
61
|
+
response:
|
62
|
+
status:
|
63
|
+
code: 200
|
64
|
+
message: OK
|
65
|
+
headers:
|
66
|
+
Date:
|
67
|
+
- Wed, 22 Aug 2018 06:38:30 GMT
|
68
|
+
Content-Type:
|
69
|
+
- application/json;charset=UTF-8
|
70
|
+
Connection:
|
71
|
+
- keep-alive
|
72
|
+
Server:
|
73
|
+
- nginx/1.10.3 (Ubuntu)
|
74
|
+
Access-Control-Allow-Origin:
|
75
|
+
- "*"
|
76
|
+
Access-Control-Allow-Methods:
|
77
|
+
- GET, POST, PUT, DELETE, OPTIONS
|
78
|
+
Access-Control-Allow-Headers:
|
79
|
+
- DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Authorization
|
80
|
+
Access-Control-Expose-Headers:
|
81
|
+
- DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Content-Range,Range,Authorization
|
82
|
+
body:
|
83
|
+
encoding: ASCII-8BIT
|
84
|
+
string: '{"responseHeader":{"status":0,"QTime":17},"response":{"numFound":2,"start":0,"docs":[{"datacentre_symbol":"DATACITE.TOPMED","url":"https://ors.datacite.org/doi:/10.23725/8na3-9s47","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMjM3MjUvOE5BMy05UzQ3PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9Ik9yZ2FuaXphdGlvbmFsIj5UT1BNZWQgSVJDPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+TldEMTY1ODI3LnJlY2FiLmNyYW08L3RpdGxlPgogIDwvdGl0bGVzPgogIDxwdWJsaXNoZXI+VE9QTWVkPC9wdWJsaXNoZXI+CiAgPHB1YmxpY2F0aW9uWWVhcj4yMDE3PC9wdWJsaWNhdGlvblllYXI+CiAgPHJlc291cmNlVHlwZSByZXNvdXJjZVR5cGVHZW5lcmFsPSJEYXRhc2V0Ij5DUkFNIGZpbGU8L3Jlc291cmNlVHlwZT4KICA8c3ViamVjdHM+CiAgICA8c3ViamVjdD50b3BtZWQ8L3N1YmplY3Q+CiAgICA8c3ViamVjdD53aG9sZSBnZW5vbWUgc2VxdWVuY2luZzwvc3ViamVjdD4KICA8L3N1YmplY3RzPgogIDxmdW5kaW5nUmVmZXJlbmNlcz4KICAgIDxmdW5kaW5nUmVmZXJlbmNlPgogICAgICA8ZnVuZGVyTmFtZT5OYXRpb25hbCBIZWFydCwgTHVuZywgYW5kIEJsb29kIEluc3RpdHV0ZSAoTkhMQkkpPC9mdW5kZXJOYW1lPgogICAgICA8ZnVuZGVySWRlbnRpZmllciBmdW5kZXJJZGVudGlmaWVyVHlwZT0iQ3Jvc3NyZWYgRnVuZGVyIElEIj5odHRwczovL2RvaS5vcmcvMTAuMTMwMzkvMTAwMDAwMDUwPC9mdW5kZXJJZGVudGlmaWVyPgogICAgPC9mdW5kaW5nUmVmZXJlbmNlPgogIDwvZnVuZGluZ1JlZmVyZW5jZXM+CiAgPGRhdGVzPgogICAgPGRhdGUgZGF0ZVR5cGU9Iklzc3VlZCI+MjAxNy0xMS0zMDwvZGF0ZT4KICA8L2RhdGVzPgogIDxhbHRlcm5hdGVJZGVudGlmaWVycz4KICAgIDxhbHRlcm5hdGVJZGVudGlmaWVyIGFsdGVybmF0ZUlkZW50aWZpZXJUeXBlPSJtZDUiPjNiMzNmNmI5MzM4ZmNjYWIwOTAxYjdkMzE3NTc3ZWEzPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9Im1pbmlkIj5hcms6Lzk5OTk5L2ZrNDFDclU0ZXN6ZUxVRGU8L2FsdGVybmF0ZUlkZW50aWZpZXI+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllciBhbHRlcm5hdGVJZGVudGlmaWVyVHlwZT0iZGF0YWd1aWQiPmRnLjQ1MDMvYzNkNjZkYzktNThkYS00MTFjLTgzYzQtZGQ2NTZhYTNjNGI3PC9hbHRlcm5hdGVJZGVudGlmaWVyPgogIDwvYWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgPHJlbGF0ZWRJZGVudGlmaWVycz4KICAgIDxyZWxhdGVkSWRlbnRpZmllciByZWxhdGVkSWRlbnRpZmllclR5cGU9IkRPSSIgcmVsYXRpb25UeXBlPSJJc1JlcXVpcmVkQnkiPjEwLjIzNzI1L3diNWgtZHA1MzwvcmVsYXRlZElkZW50aWZpZXI+CiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+CiAgPHZlcnNpb24vPgo8L3Jlc291cmNlPg==","allocator_symbol":"DATACITE","minted":"2018-08-16T15:04:36Z","state":"findable","updated":"2018-08-16T15:04:36Z","doi":"10.23725/8NA3-9S47","media":["text/vnd.cram+s3:s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram","text/vnd.cram+gs:gs://topmed-irc-share/public/NWD165827.recab.cram"]},{"datacentre_symbol":"DATACITE.TOPMED","url":"https://ors.datacite.org/doi:/10.23725/2g4s-qv04","xml":"PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPHJlc291cmNlIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCIgeHNpOnNjaGVtYUxvY2F0aW9uPSJodHRwOi8vZGF0YWNpdGUub3JnL3NjaGVtYS9rZXJuZWwtNCBodHRwOi8vc2NoZW1hLmRhdGFjaXRlLm9yZy9tZXRhL2tlcm5lbC00L21ldGFkYXRhLnhzZCI+CiAgPGlkZW50aWZpZXIgaWRlbnRpZmllclR5cGU9IkRPSSI+MTAuMjM3MjUvMkc0Uy1RVjA0PC9pZGVudGlmaWVyPgogIDxjcmVhdG9ycz4KICAgIDxjcmVhdG9yPgogICAgICA8Y3JlYXRvck5hbWUgbmFtZVR5cGU9Ik9yZ2FuaXphdGlvbmFsIj5UT1BNZWQgSVJDPC9jcmVhdG9yTmFtZT4KICAgIDwvY3JlYXRvcj4KICA8L2NyZWF0b3JzPgogIDx0aXRsZXM+CiAgICA8dGl0bGU+TldEMTY1ODI3LnJlY2FiLmNyYW0uY3JhaTwvdGl0bGU+CiAgPC90aXRsZXM+CiAgPHB1Ymxpc2hlcj5UT1BNZWQ8L3B1Ymxpc2hlcj4KICA8cHVibGljYXRpb25ZZWFyPjIwMTc8L3B1YmxpY2F0aW9uWWVhcj4KICA8cmVzb3VyY2VUeXBlIHJlc291cmNlVHlwZUdlbmVyYWw9IkRhdGFzZXQiPkNSQU0uY3JhaSBpbmRleCBmaWxlPC9yZXNvdXJjZVR5cGU+CiAgPHN1YmplY3RzPgogICAgPHN1YmplY3Q+dG9wbWVkPC9zdWJqZWN0PgogICAgPHN1YmplY3Q+d2hvbGUgZ2Vub21lIHNlcXVlbmNpbmc8L3N1YmplY3Q+CiAgPC9zdWJqZWN0cz4KICA8ZnVuZGluZ1JlZmVyZW5jZXM+CiAgICA8ZnVuZGluZ1JlZmVyZW5jZT4KICAgICAgPGZ1bmRlck5hbWU+TmF0aW9uYWwgSGVhcnQsIEx1bmcsIGFuZCBCbG9vZCBJbnN0aXR1dGUgKE5ITEJJKTwvZnVuZGVyTmFtZT4KICAgICAgPGZ1bmRlcklkZW50aWZpZXIgZnVuZGVySWRlbnRpZmllclR5cGU9IkNyb3NzcmVmIEZ1bmRlciBJRCI+aHR0cHM6Ly9kb2kub3JnLzEwLjEzMDM5LzEwMDAwMDA1MDwvZnVuZGVySWRlbnRpZmllcj4KICAgIDwvZnVuZGluZ1JlZmVyZW5jZT4KICA8L2Z1bmRpbmdSZWZlcmVuY2VzPgogIDxkYXRlcz4KICAgIDxkYXRlIGRhdGVUeXBlPSJJc3N1ZWQiPjIwMTctMTEtMzA8L2RhdGU+CiAgPC9kYXRlcz4KICA8YWx0ZXJuYXRlSWRlbnRpZmllcnM+CiAgICA8YWx0ZXJuYXRlSWRlbnRpZmllciBhbHRlcm5hdGVJZGVudGlmaWVyVHlwZT0ibWQ1Ij4zYjMzZjZiOTMzOGZjY2FiMDkwMWI3ZDMxNzU3N2VhMzwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICAgIDxhbHRlcm5hdGVJZGVudGlmaWVyIGFsdGVybmF0ZUlkZW50aWZpZXJUeXBlPSJtaW5pZCI+YXJrOi85OTk5OS9mazQxQ3JVNGVzemVMVURlPC9hbHRlcm5hdGVJZGVudGlmaWVyPgogICAgPGFsdGVybmF0ZUlkZW50aWZpZXIgYWx0ZXJuYXRlSWRlbnRpZmllclR5cGU9ImRhdGFndWlkIj5kZy40NTAzL2MzZDY2ZGM5LTU4ZGEtNDExYy04M2M0LWRkNjU2YWEzYzRiNzwvYWx0ZXJuYXRlSWRlbnRpZmllcj4KICA8L2FsdGVybmF0ZUlkZW50aWZpZXJzPgogIDxyZWxhdGVkSWRlbnRpZmllcnM+CiAgICA8cmVsYXRlZElkZW50aWZpZXIgcmVsYXRlZElkZW50aWZpZXJUeXBlPSJET0kiIHJlbGF0aW9uVHlwZT0iUmVxdWlyZXMiPjEwLjIzNzI1LzhuYTMtOXM0NzwvcmVsYXRlZElkZW50aWZpZXI+CiAgPC9yZWxhdGVkSWRlbnRpZmllcnM+CiAgPHZlcnNpb24vPgo8L3Jlc291cmNlPg==","allocator_symbol":"DATACITE","minted":"2018-08-16T15:09:11Z","state":"findable","updated":"2018-08-16T15:09:11Z","doi":"10.23725/2G4S-QV04","media":["text/vnd.cram.crai+s3:s3://cgp-commons-public/topmed_open_access/197bc047-e917-55ed-852d-d563cdbc50e4/NWD165827.recab.cram.crai","text/vnd.cram.crai+gs:gs://topmed-irc-share/public/NWD165827.recab.cram.crai"]}]}}
|
85
|
+
|
86
|
+
'
|
87
|
+
http_version:
|
88
|
+
recorded_at: Wed, 22 Aug 2018 06:38:30 GMT
|
89
|
+
recorded_with: VCR 3.0.3
|