commonmeta-ruby 3.6.1 → 3.7.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a0e998cf4561292b7e4ddc596a8fd98313346fff9db6fc585f364178e81dfac7
4
- data.tar.gz: 98f697d6ef30b4f7c284c47198ac85f0004c03f0f07c4c2e08b4b4aef5950394
3
+ metadata.gz: 1dac29584f1bdb4c76e200aa6ec5b0bc29d35afb356d3bc989cc9e58de06c7c7
4
+ data.tar.gz: 111511119b2c69e406db7575fd7fb5f576c4d490784224570619a6f1a84f128a
5
5
  SHA512:
6
- metadata.gz: 5a7eaf1fcdf95a28b070e002abf5df911951691734687a67c53f96af449ec3b1e66db642a3595ad2d4a362dbd72407e6c6260689fb317eefac3dd4804f33c0b5
7
- data.tar.gz: b039cf08b546311930c1c31e893af64d2a09bcd5b57b96f8e14e0dbfcabe3863ec5db89c42a5247689367f2f81f1943b959096c3f2290a2aaec46661cf758fa6
6
+ metadata.gz: f65384ec8af14670156ec9f7103b1722c298e2ca4cd753346b22ceb115a9a568afb8da4158a56f09a7a3e7eaaa738f3956c1282f2daff68c2d86c736c34a5fc7
7
+ data.tar.gz: 3146795dc05d4a5d358cd38c1502cc19e16de7297a0e8ce43269242790adf2ca0916b94be80ddfe215842637bcca301bf1a31cd4b7cc8e5ecc114d641b15f507
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- commonmeta-ruby (3.6.1)
4
+ commonmeta-ruby (3.7.0)
5
5
  activesupport (>= 4.2.5, < 8.0)
6
6
  addressable (~> 2.8.1, < 2.8.2)
7
7
  base32-url (>= 0.7.0, < 1)
@@ -27,7 +27,7 @@ PATH
27
27
  GEM
28
28
  remote: https://rubygems.org/
29
29
  specs:
30
- activesupport (7.1.0)
30
+ activesupport (7.1.1)
31
31
  base64
32
32
  bigdecimal
33
33
  concurrent-ruby (~> 1.0, >= 1.0.2)
@@ -128,7 +128,7 @@ GEM
128
128
  ffi-compiler (~> 1.0)
129
129
  rake (~> 13.0)
130
130
  logutils (0.6.1)
131
- loofah (2.21.3)
131
+ loofah (2.21.4)
132
132
  crass (~> 1.0.2)
133
133
  nokogiri (>= 1.12.0)
134
134
  matrix (0.4.2)
@@ -151,12 +151,12 @@ GEM
151
151
  props (1.2.0)
152
152
  iniparser (>= 0.1.0)
153
153
  public_suffix (4.0.7)
154
- racc (1.7.1)
154
+ racc (1.7.3)
155
155
  rack (3.0.8)
156
156
  rack-test (2.1.0)
157
157
  rack (>= 1.3)
158
158
  rainbow (3.1.1)
159
- rake (13.0.6)
159
+ rake (13.1.0)
160
160
  rdf (3.3.1)
161
161
  bcp47_spec (~> 0.2)
162
162
  link_header (~> 0.0, >= 0.0.8)
@@ -171,7 +171,7 @@ GEM
171
171
  rdf-xsd (3.3.0)
172
172
  rdf (~> 3.3)
173
173
  rexml (~> 3.2)
174
- regexp_parser (2.8.1)
174
+ regexp_parser (2.8.2)
175
175
  rexml (3.2.6)
176
176
  rspec (3.12.0)
177
177
  rspec-core (~> 3.12.0)
@@ -189,19 +189,18 @@ GEM
189
189
  rspec-xsd (0.1.0)
190
190
  nokogiri (~> 1.6)
191
191
  rspec (~> 3)
192
- rubocop (1.56.4)
193
- base64 (~> 0.1.1)
192
+ rubocop (1.57.2)
194
193
  json (~> 2.3)
195
194
  language_server-protocol (>= 3.17.0)
196
195
  parallel (~> 1.10)
197
- parser (>= 3.2.2.3)
196
+ parser (>= 3.2.2.4)
198
197
  rainbow (>= 2.2.2, < 4.0)
199
198
  regexp_parser (>= 1.8, < 3.0)
200
199
  rexml (>= 3.2.5, < 4.0)
201
200
  rubocop-ast (>= 1.28.1, < 2.0)
202
201
  ruby-progressbar (~> 1.7)
203
202
  unicode-display_width (>= 2.4.0, < 3.0)
204
- rubocop-ast (1.29.0)
203
+ rubocop-ast (1.30.0)
205
204
  parser (>= 3.2.1.0)
206
205
  rubocop-capybara (2.19.0)
207
206
  rubocop (~> 1.41)
@@ -212,8 +211,8 @@ GEM
212
211
  rubocop-ast (>= 0.4.0)
213
212
  rubocop-rake (0.6.0)
214
213
  rubocop (~> 1.0)
215
- rubocop-rspec (2.24.1)
216
- rubocop (~> 1.33)
214
+ rubocop-rspec (2.25.0)
215
+ rubocop (~> 1.40)
217
216
  rubocop-capybara (~> 2.17)
218
217
  rubocop-factory_bot (~> 2.22)
219
218
  ruby-progressbar (1.13.0)
@@ -236,7 +235,7 @@ GEM
236
235
  logutils (>= 0.6.1)
237
236
  props (>= 1.1.2)
238
237
  rubyzip (>= 1.0.0)
239
- thor (1.2.2)
238
+ thor (1.3.0)
240
239
  tzinfo (2.0.6)
241
240
  concurrent-ruby (~> 1.0)
242
241
  unf (0.1.4)
@@ -65,6 +65,7 @@ module Commonmeta
65
65
  insert_funding_references(xml)
66
66
  insert_crossref_access_indicators(xml)
67
67
  insert_crossref_relations(xml)
68
+ insert_archive_locations(xml)
68
69
  insert_doi_data(xml)
69
70
  insert_citation_list(xml)
70
71
  end
@@ -85,6 +86,7 @@ module Commonmeta
85
86
  insert_funding_references(xml)
86
87
  insert_crossref_access_indicators(xml)
87
88
  insert_crossref_relations(xml)
89
+ insert_archive_locations(xml)
88
90
  insert_doi_data(xml)
89
91
  insert_citation_list(xml)
90
92
  end
@@ -327,6 +329,16 @@ module Commonmeta
327
329
  end
328
330
  end
329
331
 
332
+ def insert_archive_locations(xml)
333
+ return xml if archive_locations.blank?
334
+
335
+ xml.archive_locations do
336
+ archive_locations.each do |archive_location|
337
+ xml.archive("name" => archive_location)
338
+ end
339
+ end
340
+ end
341
+
330
342
  def insert_doi_data(xml)
331
343
  return xml if doi_from_url(id).blank? || url.blank?
332
344
 
@@ -10,7 +10,7 @@ module Commonmeta
10
10
  :email, :registrant
11
11
  attr_reader :doc, :page_start, :page_end
12
12
  attr_writer :id, :provider_id, :client_id, :doi, :alternate_identifiers, :contributors,
13
- :titles, :publisher, :license, :date, :volume, :url, :version, :subjects, :descriptions, :language, :sizes, :formats, :schema_version, :meta, :container, :provider, :format, :funding_references, :state, :geo_locations, :type, :additional_type, :files, :references, :related_identifiers, :related_items, :style, :locale
13
+ :titles, :publisher, :license, :date, :volume, :url, :version, :subjects, :descriptions, :language, :sizes, :formats, :schema_version, :meta, :container, :provider, :format, :funding_references, :state, :geo_locations, :type, :additional_type, :files, :references, :related_identifiers, :related_items, :style, :locale, :archive_locations
14
14
 
15
15
  def initialize(options = {})
16
16
  options.symbolize_keys!
@@ -253,5 +253,9 @@ module Commonmeta
253
253
  def contributors
254
254
  @contributors ||= meta.fetch('contributors', nil)
255
255
  end
256
+
257
+ def archive_locations
258
+ @archive_locations ||= meta.fetch('archive_locations', nil)
259
+ end
256
260
  end
257
261
  end
@@ -69,6 +69,19 @@ module Commonmeta
69
69
  funding_references = get_funding_references(meta)
70
70
  related_identifiers = get_related_identifiers(meta)
71
71
  alternate_identifiers = [{ "alternateIdentifier" => meta["id"], "alternateIdentifierType" => "UUID" }]
72
+
73
+ archive_url = meta.fetch("archive_url", nil)
74
+
75
+ if archive_url
76
+ host = URI.parse(archive_url).host
77
+ if ["web.archive.org", "wayback.archive-it.org"].include?(host)
78
+ archive_locations = ["Internet Archive"]
79
+ else
80
+ archive_locations = nil
81
+ end
82
+ else
83
+ archive_locations = nil
84
+ end
72
85
 
73
86
  { "id" => id,
74
87
  "type" => type,
@@ -86,6 +99,7 @@ module Commonmeta
86
99
  "funding_references" => funding_references.presence,
87
100
  "related_identifiers" => related_identifiers.presence,
88
101
  "alternate_identifiers" => alternate_identifiers,
102
+ "archive_locations" => archive_locations,
89
103
  "state" => state }.compact.merge(read_options)
90
104
  end
91
105
 
@@ -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.10.3.json",
8
+ COMMONMETA = File.read(File.expand_path("../../resources/commonmeta_v0.10.4.json",
9
9
  __dir__))
10
10
 
11
11
  def json_schema_errors
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Commonmeta
4
- VERSION = '3.6.1'
4
+ VERSION = '3.7.0'
5
5
  end
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "$schema": "http://json-schema.org/draft-07/schema#",
3
- "$id": "https://commonmeta.org/commonmeta_v0.10.3.json",
4
- "title": "Commonmeta v0.10.3",
3
+ "$id": "https://commonmeta.org/commonmeta_v0.10.4.json",
4
+ "title": "Commonmeta v0.10.4",
5
5
  "description": "JSON representation of the Commonmeta schema.",
6
6
  "additionalProperties": false,
7
7
  "definitions": {
@@ -516,6 +516,15 @@
516
516
  "description": "The state of the resource.",
517
517
  "type": "string",
518
518
  "enum": ["findable", "not_found"]
519
+ },
520
+ "archive_locations": {
521
+ "description": "The location where content is archived.",
522
+ "type": "array",
523
+ "items": {
524
+ "type": "string",
525
+ "enum": ["CLOCKSS", "Internet Archive", "KB", "LOCKSS", "Portico", "Other"]
526
+ },
527
+ "uniqueItems": true
519
528
  }
520
529
  },
521
530
  "required": [
@@ -21,31 +21,103 @@ http_interactions:
21
21
  Content-Type:
22
22
  - application/json
23
23
  Content-Length:
24
- - '2184'
24
+ - '7862'
25
+ Ratelimit-Limit:
26
+ - '15'
27
+ Ratelimit-Remaining:
28
+ - '14'
29
+ Ratelimit-Reset:
30
+ - '3'
25
31
  Date:
26
- - Thu, 05 Oct 2023 20:37:43 GMT
32
+ - Sat, 04 Nov 2023 15:12:52 GMT
27
33
  Server:
28
- - Fly/e440b950 (2023-09-20)
34
+ - Fly/7328d5b5 (2023-10-27)
29
35
  Via:
30
36
  - 1.1 fly.io
31
37
  Fly-Request-Id:
32
- - 01HC0RYZRPBEHQ83AFVH9KEXD8-fra
38
+ - 01HEDE9R2T7K7FBRF7D93MN1JN-fra
33
39
  body:
34
40
  encoding: UTF-8
35
- string: '{"archive_url":"https://web.archive.org/web/20190709153404/https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea","authors":[{"name":"Markus
36
- Stocker","url":"https://orcid.org/0000-0001-5492-3212"}],"blog":{"api":false,"archive_prefix":"https://web.archive.org/web/20190709153404/","authors":null,"backlog":0,"canonical_url":null,"category":"computerAndInformationSciences","created_at":"2023-09-21","current_feed_url":null,"description":"Technical
41
+ string: '{"archive_url":"https://wayback.archive-it.org/22143/20231103191454/https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea","authors":[{"name":"Markus
42
+ Stocker","url":"https://orcid.org/0000-0001-5492-3212"}],"blog":{"api":true,"archive_prefix":"https://wayback.archive-it.org/22143/20231103191454/","authors":null,"backlog":0,"canonical_url":null,"category":"computerAndInformationSciences","created_at":1695254400,"current_feed_url":null,"description":"Technical
37
43
  and Human infrastructure for Open Research.","favicon":null,"feed_format":"application/atom+xml","feed_url":"https://project-thor.eu/feed/atom/","filter":null,"funding":{"award_number":"654039","award_uri":"https://doi.org/10.3030/654039","funder_id":"https://doi.org/10.13039/501100007601","funder_name":"European
38
- Union\u2019s Horizon 2020 research and innovation programme"},"generator":"WordPress.com","home_page_url":"https://project-thor.eu","id":"cg9zq26","issn":null,"language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","modified_at":"1970-01-01T00:00:00+00:00","plan":"Team","prefix":"10.59350","relative_url":null,"slug":"thor","status":"archived","title":"Project
39
- THOR","use_api":null,"use_mastodon":false,"user_id":"dead81b3-8a8b-45c9-85fe-f01bb3948c77","version":"https://jsonfeed.org/version/1.1"},"blog_name":"Project
40
- THOR","blog_slug":"thor","doi":"https://doi.org/10.59350/faeph-x4x84","id":"570c8129-e867-49e6-8517-bd783627e76e","image":null,"indexed_at":1695449798,"language":"en","published_at":1470819639,"reference":[],"relationships":[],"summary":"This
41
- is the first in a series of posts\u00a0describing how THOR partners have recently
44
+ Union\u2019s Horizon 2020 research and innovation programme"},"generator":"WordPress.com","generator_raw":"WordPress.com","home_page_url":"https://project-thor.eu","id":"cg9zq26","indexed":false,"issn":null,"language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","plan":"Team","prefix":"10.59350","relative_url":null,"secure":true,"slug":"thor","status":"archived","title":"Project
45
+ THOR","updated_at":1511522178,"use_api":true,"use_mastodon":false,"user_id":"dead81b3-8a8b-45c9-85fe-f01bb3948c77","version":"https://jsonfeed.org/version/1.1"},"blog_name":"Project
46
+ THOR","blog_slug":"thor","content_html":"<p><span style=\"font-weight:400;\">This
47
+ is the first in a <a href=\"http://wp.me/p5O69U-aF\">series of posts</a></span><span
48
+ style=\"font-weight:400;\">\u00a0describing how THOR partners have recently
49
+ integrated <a href=\"http://orcid.org/\">ORCID</a> in their disciplinary data
50
+ repositories. This post describes ORCID integration in <a href=\"https://www.pangaea.de/\">PANGAEA</a>,
51
+ the Data Publisher for Earth &amp; Environmental Science.</span></p>\n<p><span
52
+ style=\"font-weight:400;\">PANGAEA is rolling out a new version of its website.
53
+ Developers and designers are currently ironing out a few remaining open issues.
54
+ The release is expected for autumn 2016. Among major improvements in search,
55
+ design, and usability, a key new feature is the integration of ORCID.</span></p>\n<p><span
56
+ style=\"font-weight:400;\">The new feature enables existing PANGAEA users
57
+ to connect their PANGAEA profile with their ORCID iD, as demonstrated in the
58
+ video below.\u00a0</span></p>\n<p style=\"text-align:center;\"><span class=\"embed-youtube\"
59
+ style=\"text-align:center; display: block;\"><iframe class=\"youtube-player\"
60
+ width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/Eg81xbbgzI0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en&#038;autohide=2&#038;wmode=transparent\"
61
+ allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin
62
+ allow-popups allow-presentation allow-popups-to-escape-sandbox\"></iframe></span></p>\n<p><span
63
+ style=\"font-weight:400;\">With this connection, PANGAEA obtains the </span><i><span
64
+ style=\"font-weight:400;\">validated</span></i><span style=\"font-weight:400;\">
65
+ ORCID iD of its users from ORCID. By connecting their ORCID iD, users can
66
+ also choose to sign in to PANGAEA using ORCID, as an alternative to signing
67
+ in using PANGAEA user credentials. This can be handy when a user is already
68
+ signed in to ORCID, or it is quicker to recall ORCID credentials.</span></p>\n<p><span
69
+ style=\"font-weight:400;\">Obtaining the validated ORCID iDs of its users
70
+ is significant for PANGAEA as, contrary to a researcher\u2019s name, the iD
71
+ is unambiguous: two researchers with the same name can be distinguished by
72
+ their respective iDs. The iD is also persistent through possible changes in
73
+ a person\u2019s name: the same researcher may change marital status, or their
74
+ name may appear in different permutations, at times appear with full name,
75
+ initials for first name, and with or without middle name (initial). Furthermore,
76
+ the iD is actionable and can be used to discover information about the researcher.</span></p>\n<p><span
77
+ style=\"font-weight:400;\">For researchers, the greatest advantage of connecting
78
+ their ORCID iD to their PANGAEA profile is that PANGAEA can then record the
79
+ relationships between dataset publication DOIs and contributor ORCID iDs.
80
+ This information is then shared with the global network of PID infrastructures,
81
+ and researchers benefit from automated updates to their ORCID Record for data
82
+ published at PANGAEA, gaining unambiguous attribution for published datasets
83
+ and benefiting from greater credit for sharing data early.</span></p>\n<p><span
84
+ style=\"font-weight:400;\">Let\u2019s take a look at how the ORCID integration
85
+ in PANGAEA is making a difference to <a href=\"https://www.marum.de/en/Alice_Lefebvre.html\">Dr
86
+ Alice Lefebvre</a>, <a href=\"https://www.marum.de/en/GLOMAR.html\">GLOMAR</a>
87
+ Associate Scientist at the <a href=\"https://www.marum.de/en/index.html\">MARUM</a>
88
+ Center for Marine Environmental Sciences of the <a href=\"http://www.uni-bremen.de/en.html\">University
89
+ of Bremen</a>. </span></p>\n<p><span style=\"font-weight:400;\">Alice has
90
+ recently joined ORCID and decided to claim the 14 data publications deposited
91
+ at PANGAEA that she has authored. As a consequence, Alice gains a more complete
92
+ <a href=\"http://orcid.org/0000-0002-9234-8279\">ORCID Record</a>, one that
93
+ does not just include her journal article publications but also her authorship
94
+ in data publications </span><span style=\"font-weight:400;\">\u2212</span><span
95
+ style=\"font-weight:400;\"> a record that better reflects her true contribution
96
+ to the scientific record. Alice was also surprised to learn about <a href=\"http://datacite.org\">DataCite</a>
97
+ and the <a href=\"http://search.datacite.org/contributors/0000-0002-9234-8279\">overview</a>
98
+ DataCite provides about her contributions. </span></p>\n<p><span style=\"font-weight:400;\">The
99
+ upcoming release of the PANGAEA website automates the sharing of information
100
+ with the global network of PID infrastructures. Authors of datasets published
101
+ at PANGAEA who have connected their ORCID iD, like Alice, will benefit from
102
+ a workflow that ensures information appears automatically and accurately on
103
+ their ORCID Record.</span></p>\n<p><span style=\"font-weight:400;\">This shows
104
+ how far the integration between disciplinary repositories and the global network
105
+ of PID infrastructures has come over the past years, and how the persistent
106
+ identification of contributors and research artefacts together with infrastructures
107
+ that aggregate, process, and share information about persistently identified
108
+ resources are driving and shaping 21st-century attribution, credit, communication,
109
+ and measurement of scholarly activity.</span></p>\n<p><b>Want to Know More?<br
110
+ />\n</b><span style=\"font-weight:400;\">Readers interested in performing
111
+ an ORCID integration in their own disciplinary repository can find more information
112
+ in our recent report, &#8216;<a href=\"http://doi.org/10.5281/zenodo.58971\">Demonstration
113
+ of Services to Integrate ORCIDs into Data Records and Database Systems</a>&#8216;</span><span
114
+ style=\"font-weight:400;\">. </span></p>\n","doi":"https://doi.org/10.59350/faeph-x4x84","guid":"http://project-thor.eu/?p=664","id":"570c8129-e867-49e6-8517-bd783627e76e","image":null,"indexed_at":1695449798,"language":"en","published_at":1470819639,"reference":[],"relationships":[],"summary":"This
115
+ is the first in a series of posts&nbsp;describing how THOR partners have recently
42
116
  integrated ORCID in their disciplinary data repositories. This post describes
43
117
  ORCID integration in PANGAEA, the Data Publisher for Earth &amp; Environmental
44
- Science. PANGAEA is rolling out a new version of its website. Developers
45
- and designers are currently ironing out a few remaining open issues. The release
46
- is expected for autumn 2016.","tags":["Uncategorized","ORCID","Persistent
47
- Identifier"],"title":"ORCID Integration Series: PANGAEA","updated_at":1470819639,"url":"https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea"}
118
+ Science. PANGAEA is rolling out a new version of its website.","tags":["Uncategorized"],"title":"ORCID
119
+ Integration Series: PANGAEA","updated_at":1470818410,"url":"https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea"}
48
120
 
49
121
  '
50
- recorded_at: Thu, 05 Oct 2023 20:37:43 GMT
122
+ recorded_at: Sat, 04 Nov 2023 15:12:52 GMT
51
123
  recorded_with: VCR 6.2.0
@@ -0,0 +1,123 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://api.rogue-scholar.org/posts/570c8129-e867-49e6-8517-bd783627e76e
6
+ body:
7
+ encoding: ASCII-8BIT
8
+ string: ''
9
+ headers:
10
+ Connection:
11
+ - close
12
+ Host:
13
+ - api.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
+ Content-Type:
22
+ - application/json
23
+ Content-Length:
24
+ - '7862'
25
+ Ratelimit-Limit:
26
+ - '15'
27
+ Ratelimit-Remaining:
28
+ - '14'
29
+ Ratelimit-Reset:
30
+ - '3'
31
+ Date:
32
+ - Sat, 04 Nov 2023 15:30:00 GMT
33
+ Server:
34
+ - Fly/7328d5b5 (2023-10-27)
35
+ Via:
36
+ - 1.1 fly.io
37
+ Fly-Request-Id:
38
+ - 01HEDF93TFCEYGFQ8ADFYBSTFW-fra
39
+ body:
40
+ encoding: UTF-8
41
+ string: '{"archive_url":"https://wayback.archive-it.org/22143/20231103191454/https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea","authors":[{"name":"Markus
42
+ Stocker","url":"https://orcid.org/0000-0001-5492-3212"}],"blog":{"api":true,"archive_prefix":"https://wayback.archive-it.org/22143/20231103191454/","authors":null,"backlog":0,"canonical_url":null,"category":"computerAndInformationSciences","created_at":1695254400,"current_feed_url":null,"description":"Technical
43
+ and Human infrastructure for Open Research.","favicon":null,"feed_format":"application/atom+xml","feed_url":"https://project-thor.eu/feed/atom/","filter":null,"funding":{"award_number":"654039","award_uri":"https://doi.org/10.3030/654039","funder_id":"https://doi.org/10.13039/501100007601","funder_name":"European
44
+ Union\u2019s Horizon 2020 research and innovation programme"},"generator":"WordPress.com","generator_raw":"WordPress.com","home_page_url":"https://project-thor.eu","id":"cg9zq26","indexed":false,"issn":null,"language":"en","license":"https://creativecommons.org/licenses/by/4.0/legalcode","plan":"Team","prefix":"10.59350","relative_url":null,"secure":true,"slug":"thor","status":"archived","title":"Project
45
+ THOR","updated_at":1511522178,"use_api":true,"use_mastodon":false,"user_id":"dead81b3-8a8b-45c9-85fe-f01bb3948c77","version":"https://jsonfeed.org/version/1.1"},"blog_name":"Project
46
+ THOR","blog_slug":"thor","content_html":"<p><span style=\"font-weight:400;\">This
47
+ is the first in a <a href=\"http://wp.me/p5O69U-aF\">series of posts</a></span><span
48
+ style=\"font-weight:400;\">\u00a0describing how THOR partners have recently
49
+ integrated <a href=\"http://orcid.org/\">ORCID</a> in their disciplinary data
50
+ repositories. This post describes ORCID integration in <a href=\"https://www.pangaea.de/\">PANGAEA</a>,
51
+ the Data Publisher for Earth &amp; Environmental Science.</span></p>\n<p><span
52
+ style=\"font-weight:400;\">PANGAEA is rolling out a new version of its website.
53
+ Developers and designers are currently ironing out a few remaining open issues.
54
+ The release is expected for autumn 2016. Among major improvements in search,
55
+ design, and usability, a key new feature is the integration of ORCID.</span></p>\n<p><span
56
+ style=\"font-weight:400;\">The new feature enables existing PANGAEA users
57
+ to connect their PANGAEA profile with their ORCID iD, as demonstrated in the
58
+ video below.\u00a0</span></p>\n<p style=\"text-align:center;\"><span class=\"embed-youtube\"
59
+ style=\"text-align:center; display: block;\"><iframe class=\"youtube-player\"
60
+ width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/Eg81xbbgzI0?version=3&#038;rel=1&#038;showsearch=0&#038;showinfo=1&#038;iv_load_policy=1&#038;fs=1&#038;hl=en&#038;autohide=2&#038;wmode=transparent\"
61
+ allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin
62
+ allow-popups allow-presentation allow-popups-to-escape-sandbox\"></iframe></span></p>\n<p><span
63
+ style=\"font-weight:400;\">With this connection, PANGAEA obtains the </span><i><span
64
+ style=\"font-weight:400;\">validated</span></i><span style=\"font-weight:400;\">
65
+ ORCID iD of its users from ORCID. By connecting their ORCID iD, users can
66
+ also choose to sign in to PANGAEA using ORCID, as an alternative to signing
67
+ in using PANGAEA user credentials. This can be handy when a user is already
68
+ signed in to ORCID, or it is quicker to recall ORCID credentials.</span></p>\n<p><span
69
+ style=\"font-weight:400;\">Obtaining the validated ORCID iDs of its users
70
+ is significant for PANGAEA as, contrary to a researcher\u2019s name, the iD
71
+ is unambiguous: two researchers with the same name can be distinguished by
72
+ their respective iDs. The iD is also persistent through possible changes in
73
+ a person\u2019s name: the same researcher may change marital status, or their
74
+ name may appear in different permutations, at times appear with full name,
75
+ initials for first name, and with or without middle name (initial). Furthermore,
76
+ the iD is actionable and can be used to discover information about the researcher.</span></p>\n<p><span
77
+ style=\"font-weight:400;\">For researchers, the greatest advantage of connecting
78
+ their ORCID iD to their PANGAEA profile is that PANGAEA can then record the
79
+ relationships between dataset publication DOIs and contributor ORCID iDs.
80
+ This information is then shared with the global network of PID infrastructures,
81
+ and researchers benefit from automated updates to their ORCID Record for data
82
+ published at PANGAEA, gaining unambiguous attribution for published datasets
83
+ and benefiting from greater credit for sharing data early.</span></p>\n<p><span
84
+ style=\"font-weight:400;\">Let\u2019s take a look at how the ORCID integration
85
+ in PANGAEA is making a difference to <a href=\"https://www.marum.de/en/Alice_Lefebvre.html\">Dr
86
+ Alice Lefebvre</a>, <a href=\"https://www.marum.de/en/GLOMAR.html\">GLOMAR</a>
87
+ Associate Scientist at the <a href=\"https://www.marum.de/en/index.html\">MARUM</a>
88
+ Center for Marine Environmental Sciences of the <a href=\"http://www.uni-bremen.de/en.html\">University
89
+ of Bremen</a>. </span></p>\n<p><span style=\"font-weight:400;\">Alice has
90
+ recently joined ORCID and decided to claim the 14 data publications deposited
91
+ at PANGAEA that she has authored. As a consequence, Alice gains a more complete
92
+ <a href=\"http://orcid.org/0000-0002-9234-8279\">ORCID Record</a>, one that
93
+ does not just include her journal article publications but also her authorship
94
+ in data publications </span><span style=\"font-weight:400;\">\u2212</span><span
95
+ style=\"font-weight:400;\"> a record that better reflects her true contribution
96
+ to the scientific record. Alice was also surprised to learn about <a href=\"http://datacite.org\">DataCite</a>
97
+ and the <a href=\"http://search.datacite.org/contributors/0000-0002-9234-8279\">overview</a>
98
+ DataCite provides about her contributions. </span></p>\n<p><span style=\"font-weight:400;\">The
99
+ upcoming release of the PANGAEA website automates the sharing of information
100
+ with the global network of PID infrastructures. Authors of datasets published
101
+ at PANGAEA who have connected their ORCID iD, like Alice, will benefit from
102
+ a workflow that ensures information appears automatically and accurately on
103
+ their ORCID Record.</span></p>\n<p><span style=\"font-weight:400;\">This shows
104
+ how far the integration between disciplinary repositories and the global network
105
+ of PID infrastructures has come over the past years, and how the persistent
106
+ identification of contributors and research artefacts together with infrastructures
107
+ that aggregate, process, and share information about persistently identified
108
+ resources are driving and shaping 21st-century attribution, credit, communication,
109
+ and measurement of scholarly activity.</span></p>\n<p><b>Want to Know More?<br
110
+ />\n</b><span style=\"font-weight:400;\">Readers interested in performing
111
+ an ORCID integration in their own disciplinary repository can find more information
112
+ in our recent report, &#8216;<a href=\"http://doi.org/10.5281/zenodo.58971\">Demonstration
113
+ of Services to Integrate ORCIDs into Data Records and Database Systems</a>&#8216;</span><span
114
+ style=\"font-weight:400;\">. </span></p>\n","doi":"https://doi.org/10.59350/faeph-x4x84","guid":"http://project-thor.eu/?p=664","id":"570c8129-e867-49e6-8517-bd783627e76e","image":null,"indexed_at":1695449798,"language":"en","published_at":1470819639,"reference":[],"relationships":[],"summary":"This
115
+ is the first in a series of posts&nbsp;describing how THOR partners have recently
116
+ integrated ORCID in their disciplinary data repositories. This post describes
117
+ ORCID integration in PANGAEA, the Data Publisher for Earth &amp; Environmental
118
+ Science. PANGAEA is rolling out a new version of its website.","tags":["Uncategorized"],"title":"ORCID
119
+ Integration Series: PANGAEA","updated_at":1470818410,"url":"https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea"}
120
+
121
+ '
122
+ recorded_at: Sat, 04 Nov 2023 15:30:00 GMT
123
+ recorded_with: VCR 6.2.0
@@ -233,7 +233,7 @@ describe Commonmeta::Metadata, vcr: true do
233
233
  subject = described_class.new(input: input)
234
234
  # expect(subject.valid?).to be true
235
235
  expect(subject.id).to eq("https://doi.org/10.59350/faeph-x4x84")
236
- expect(subject.url).to eq("https://web.archive.org/web/20190709153404/https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea")
236
+ expect(subject.url).to eq("https://wayback.archive-it.org/22143/20231103191454/https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea")
237
237
  expect(subject.alternate_identifiers).to eq([{ "alternateIdentifier" => "570c8129-e867-49e6-8517-bd783627e76e", "alternateIdentifierType" => "UUID" }])
238
238
  expect(subject.type).to eq("Article")
239
239
  expect(subject.contributors.length).to eq(1)
@@ -255,6 +255,7 @@ describe Commonmeta::Metadata, vcr: true do
255
255
  expect(subject.language).to eq("en")
256
256
  expect(subject.funding_references).to eq([{ "awardNumber" => "654039", "funderIdentifier" => "https://doi.org/10.13039/501100007601", "funderIdentifierType"=>"Crossref Funder ID", "funderName" => "European Union’s Horizon 2020 research and innovation programme" }])
257
257
  expect(subject.container).to eq("identifier" => "https://project-thor.eu", "identifierType" => "URL", "title" => "Project THOR", "type" => "Periodical")
258
+ expect(subject.archive_locations).to eq(["Internet Archive"])
258
259
  end
259
260
 
260
261
  it "wordpress post with references" do
@@ -323,6 +323,45 @@ describe Commonmeta::Metadata, vcr: true do
323
323
  expect(crossref_xml.dig("group_title")).to eq("Social sciences")
324
324
  end
325
325
 
326
+ it "json_feed_item from rogue scholar with archived content" do
327
+ input = "https://api.rogue-scholar.org/posts/570c8129-e867-49e6-8517-bd783627e76e"
328
+ subject = described_class.new(input: input)
329
+ # expect(subject.valid?).to be true
330
+ expect(subject.id).to eq("https://doi.org/10.59350/faeph-x4x84")
331
+ expect(subject.url).to eq("https://wayback.archive-it.org/22143/20231103191454/https://project-thor.eu/2016/08/10/orcid-integration-in-pangaea")
332
+ expect(subject.alternate_identifiers).to eq([{ "alternateIdentifier" => "570c8129-e867-49e6-8517-bd783627e76e", "alternateIdentifierType" => "UUID" }])
333
+ expect(subject.type).to eq("Article")
334
+ expect(subject.contributors.length).to eq(1)
335
+ expect(subject.contributors.first).to eq("contributorRoles" => ["Author"],
336
+ "type" => "Person",
337
+ "familyName" => "Stocker",
338
+ "givenName" => "Markus",
339
+ "id" => "https://orcid.org/0000-0001-5492-3212")
340
+ expect(subject.titles).to eq([{ "title" => "ORCID Integration Series: PANGAEA" }])
341
+ expect(subject.license).to eq("id" => "CC-BY-4.0",
342
+ "url" => "https://creativecommons.org/licenses/by/4.0/legalcode")
343
+ expect(subject.date).to eq("published" => "2016-08-10", "updated" => "2016-08-10")
344
+ expect(subject.descriptions.first["description"]).to start_with("This is the first in a series of posts describing how THOR partners")
345
+ expect(subject.publisher).to eq("name" => "Project THOR")
346
+ expect(subject.subjects).to eq([{ "subject" => "Computer and information sciences" },
347
+ { "schemeUri" => "http://www.oecd.org/science/inno/38235147.pdf",
348
+ "subject" => "FOS: Computer and information sciences",
349
+ "subjectScheme" => "Fields of Science and Technology (FOS)" }])
350
+ expect(subject.language).to eq("en")
351
+ expect(subject.funding_references).to eq([{ "awardNumber" => "654039", "funderIdentifier" => "https://doi.org/10.13039/501100007601", "funderIdentifierType"=>"Crossref Funder ID", "funderName" => "European Union’s Horizon 2020 research and innovation programme" }])
352
+ expect(subject.container).to eq("identifier" => "https://project-thor.eu", "identifierType" => "URL", "title" => "Project THOR", "type" => "Periodical")
353
+ expect(subject.archive_locations).to eq(["Internet Archive"])
354
+ # puts subject.crossref_xml
355
+ crossref_xml = Hash.from_xml(subject.crossref_xml).dig("doi_batch", "body", "posted_content")
356
+ expect(Array.wrap(crossref_xml.dig("contributors", "person_name")).length).to eq(1)
357
+ expect(Array.wrap(crossref_xml.dig("contributors",
358
+ "person_name")).first).to eq("ORCID"=>"https://orcid.org/0000-0001-5492-3212", "contributor_role"=>"author", "given_name"=>"Markus", "sequence"=>"first", "surname"=>"Stocker")
359
+ expect(crossref_xml.dig("titles",
360
+ "title")).to eq("ORCID Integration Series: PANGAEA")
361
+ expect(crossref_xml.dig("item_number")).to eq("__content__" => "570c8129e86749e68517bd783627e76e", "item_number_type" => "uuid")
362
+ expect(crossref_xml.dig("group_title")).to eq("Computer and information sciences")
363
+ end
364
+
326
365
  it "json_feed_item from rogue scholar with relations" do
327
366
  input = "https://api.rogue-scholar.org/posts/8a4de443-3347-4b82-b57d-e3c82b6485fc"
328
367
  subject = described_class.new(input: input, doi: "10.53731/r79v4e1-97aq74v-ag578")
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.6.1
4
+ version: 3.7.0
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-10-06 00:00:00.000000000 Z
11
+ date: 2023-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -657,7 +657,7 @@ files:
657
657
  - lib/commonmeta/xml_converter.rb
658
658
  - resources/2008/09/xsd.xsl
659
659
  - resources/cff.json
660
- - resources/commonmeta_v0.10.3.json
660
+ - resources/commonmeta_v0.10.4.json
661
661
  - resources/crossref/AccessIndicators.xsd
662
662
  - resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd
663
663
  - resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd
@@ -930,6 +930,7 @@ files:
930
930
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml
931
931
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_plos.yml
932
932
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_anonymous_author.yml
933
+ - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_archived_content.yml
933
934
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml
934
935
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_organizational_author.yml
935
936
  - spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_relations.yml