bolognese 2.1.1 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +1 -1
  3. data/.github/workflows/release.yml +2 -2
  4. data/Gemfile.lock +9 -9
  5. data/bolognese.gemspec +3 -3
  6. data/lib/bolognese/metadata_utils.rb +1 -0
  7. data/lib/bolognese/readers/citeproc_reader.rb +6 -0
  8. data/lib/bolognese/readers/crossref_reader.rb +37 -3
  9. data/lib/bolognese/readers/schema_org_reader.rb +21 -2
  10. data/lib/bolognese/utils.rb +12 -7
  11. data/lib/bolognese/version.rb +1 -1
  12. data/lib/bolognese/writers/schema_org_writer.rb +4 -0
  13. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +3 -1
  14. data/resources/kernel-4/include/datacite-dateType-v4.xsd +3 -1
  15. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +5 -2
  16. data/resources/kernel-4/include/datacite-relationType-v4.xsd +7 -3
  17. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +5 -1
  18. data/resources/kernel-4/include/datacite-titleType-v4.xsd +1 -1
  19. data/resources/kernel-4/metadata.xsd +2 -1
  20. data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
  21. data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
  22. data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
  23. data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
  24. data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
  25. data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
  26. data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
  27. data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
  28. data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
  29. data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
  30. data/resources/kernel-4.6/include/xml.xsd +286 -0
  31. data/resources/kernel-4.6/metadata.xsd +712 -0
  32. data/spec/datacite_utils_spec.rb +109 -1
  33. data/spec/fixtures/citeproc.json +6 -2
  34. data/spec/fixtures/crossref.xml +18 -0
  35. data/spec/fixtures/crossref_schema_4.6_values.xml +174 -0
  36. data/spec/fixtures/datacite-example-full-v4.6.xml +114 -0
  37. data/spec/fixtures/schema_org_4.6_attributes.json +108 -0
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml +71 -0
  39. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml +71 -0
  40. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml +71 -0
  41. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml +71 -0
  42. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml +71 -0
  43. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml +71 -0
  44. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml +71 -0
  45. data/spec/readers/citeproc_reader_spec.rb +1 -0
  46. data/spec/readers/crossref_reader_spec.rb +31 -0
  47. data/spec/readers/datacite_reader_spec.rb +41 -0
  48. data/spec/readers/schema_org_reader_spec.rb +27 -0
  49. data/spec/writers/citeproc_writer_spec.rb +9 -0
  50. data/spec/writers/datacite_writer_spec.rb +71 -0
  51. data/spec/writers/jats_writer_spec.rb +1 -1
  52. data/spec/writers/schema_org_writer_spec.rb +36 -0
  53. metadata +38 -22
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 71ee294125ac977b19c081b25a540d504bc78e932be89beb5d25e4754637166d
4
- data.tar.gz: e95a2a6495a9ae0cf3014ba20024902da8ab1fd78d28472abfa0472ea3eb9b2b
3
+ metadata.gz: 1deafd2515ccde3db2712a353b9554540d10988f4f1d617e910e5aff22473bfe
4
+ data.tar.gz: 566fec5d398deae0a3709d002823e853586721109d728716256e33d8ceed8e62
5
5
  SHA512:
6
- metadata.gz: 02de737b6845e350022dff585da6c2c5ef564852ae41e569d27474aee996afb482fa7711e7a47ebe0d020df9d7a93e88dc889d2529896955306a784d0b4862b5
7
- data.tar.gz: 78b6149f043f22700f638a8105e9242e98e9da9cb4329a427f35c0e4c51125044eedaf639994b0586296f1cb1e65c15694304b340a5b3dab9a36631490c45fd0
6
+ metadata.gz: fbcd1fe74bc9c6e106e0920c9638dd990a48c01c1f0ab159a58b100ace0c27a93d62680f5c382b74e8d7dd20ba22e2a02f7ab510408dd75ea7c1ac00352a2a15
7
+ data.tar.gz: 0f479622eb0ed17d3a3c8a8748171b146d3bb110f2f782eb3de61d38b8c8dd82ed8ff146ceeb32ceddad12ba471a9d195c8a19851381d000e1af87057b217c54
@@ -7,7 +7,7 @@ jobs:
7
7
  strategy:
8
8
  fail-fast: false
9
9
  matrix:
10
- ruby: ["2.6", "2.7", "3.0", "3.1"]
10
+ ruby: ["3.0", "3.1", "3.2", "3.3"]
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v3
@@ -11,10 +11,10 @@ jobs:
11
11
  runs-on: ubuntu-latest
12
12
  steps:
13
13
  - uses: actions/checkout@v3
14
- - name: Set up Ruby 2.6
14
+ - name: Set up Ruby 3.1.4
15
15
  uses: ruby/setup-ruby@v1
16
16
  with:
17
- ruby-version: "2.6"
17
+ ruby-version: "3.1.4"
18
18
 
19
19
  - name: Build
20
20
  run: |
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- bolognese (2.1.1)
4
+ bolognese (2.3.0)
5
5
  activesupport (>= 4.2.5)
6
6
  benchmark_methods (~> 0.7)
7
7
  bibtex-ruby (>= 5.1.0)
@@ -16,9 +16,9 @@ PATH
16
16
  json-ld-preloaded (~> 3.1, >= 3.1.3)
17
17
  jsonlint (~> 0.3.0)
18
18
  loofah (~> 2.0, >= 2.0.3)
19
- maremma (>= 4.9.4, < 5)
19
+ maremma (~> 5.0)
20
20
  namae (~> 1.0)
21
- nokogiri (>= 1.13.2, < 1.14)
21
+ nokogiri (~> 1.16, >= 1.16.2)
22
22
  oj (~> 3.10)
23
23
  oj_mimic_json (~> 1.0, >= 1.0.1)
24
24
  postrank-uri (~> 1.0, >= 1.0.18)
@@ -114,7 +114,7 @@ GEM
114
114
  loofah (2.21.3)
115
115
  crass (~> 1.0.2)
116
116
  nokogiri (>= 1.12.0)
117
- maremma (4.9.9)
117
+ maremma (5.0.0)
118
118
  activesupport (>= 4.2.5)
119
119
  addressable (>= 2.3.6)
120
120
  builder (~> 3.2, >= 3.2.2)
@@ -125,17 +125,17 @@ GEM
125
125
  faraday-follow_redirects (~> 0.3.0)
126
126
  faraday-gzip (~> 0.1.0)
127
127
  faraday-multipart (~> 1.0.4)
128
- nokogiri (>= 1.13.1, < 1.14.0)
128
+ nokogiri (~> 1.16, >= 1.16.2)
129
129
  oj (>= 2.8.3)
130
130
  oj_mimic_json (~> 1.0, >= 1.0.1)
131
131
  matrix (0.4.2)
132
- mini_portile2 (2.8.0)
132
+ mini_portile2 (2.8.5)
133
133
  minitest (5.18.0)
134
134
  multi_json (1.15.0)
135
135
  multipart-post (2.3.0)
136
136
  namae (1.1.1)
137
- nokogiri (1.13.9)
138
- mini_portile2 (~> 2.8.0)
137
+ nokogiri (1.16.2)
138
+ mini_portile2 (~> 2.8.2)
139
139
  racc (~> 1.4)
140
140
  oj (3.14.2)
141
141
  oj_mimic_json (1.0.1)
@@ -235,4 +235,4 @@ DEPENDENCIES
235
235
  webmock (~> 3.0, >= 3.0.1)
236
236
 
237
237
  BUNDLED WITH
238
- 2.4.22
238
+ 2.5.5
data/bolognese.gemspec CHANGED
@@ -13,12 +13,12 @@ Gem::Specification.new do |s|
13
13
  s.version = Bolognese::VERSION
14
14
  s.extra_rdoc_files = ["README.md"]
15
15
  s.license = 'MIT'
16
- s.required_ruby_version = ['>=2.3']
16
+ s.required_ruby_version = ['>=3.0']
17
17
 
18
18
  # Declare dependencies here, rather than in the Gemfile
19
- s.add_dependency 'maremma', '>= 4.9.4', '< 5'
19
+ s.add_dependency 'maremma', '~> 5.0'
20
20
  #s.add_dependency 'faraday', '~> 0.17.3'
21
- s.add_dependency 'nokogiri', '>= 1.13.2', '< 1.14'
21
+ s.add_dependency 'nokogiri', '~> 1.16', '>= 1.16.2'
22
22
  s.add_dependency 'loofah', '~> 2.0', '>= 2.0.3'
23
23
  s.add_dependency 'builder', '~> 3.2', '>= 3.2.2'
24
24
  s.add_dependency 'activesupport', '>= 4.2.5'
@@ -153,6 +153,7 @@ module Bolognese
153
153
  "language" => language,
154
154
  "author" => author,
155
155
  "contributor" => to_citeproc(contributors),
156
+ "translator" => contributors ? to_citeproc(contributors.select { |c| c["contributorType"] == "Translator" }) : nil,
156
157
  "issued" => get_date(dates, "Issued") ? get_date_parts(get_date(dates, "Issued")) : get_date_parts(publication_year.to_s),
157
158
  "submitted" => Array.wrap(dates).find { |d| d["dateType"] == "Submitted" }.to_h.fetch("__content__", nil),
158
159
  "abstract" => parse_attributes(descriptions, content: "description", first: true),
@@ -52,6 +52,12 @@ module Bolognese
52
52
  [{ "nameType" => "Organizational", "name" => ":(unav)" }]
53
53
  end
54
54
  contributors = get_authors(from_citeproc(Array.wrap(meta.fetch("editor", nil))))
55
+ translators = get_authors(from_citeproc(Array.wrap(meta.fetch("translator", nil))))
56
+ translators.each do |translator|
57
+ translator["contributorType"] = "Translator"
58
+ end
59
+ contributors += translators
60
+
55
61
  dates = if date = get_date_from_date_parts(meta.fetch("issued", nil))
56
62
  if Date.edtf(date).present?
57
63
  [{ "date" => date,
@@ -4,6 +4,12 @@ module Bolognese
4
4
  module Readers
5
5
  module CrossrefReader
6
6
  # CrossRef types from https://api.crossref.org/types
7
+
8
+ CR_TO_DC_CONTRIBUTOR_TYPES = {
9
+ "editor" => "Editor",
10
+ "translator" => "Translator",
11
+ }
12
+
7
13
  def get_crossref(id: nil, **options)
8
14
  return { "string" => nil, "state" => "not_found" } unless id.present?
9
15
 
@@ -138,7 +144,7 @@ module Bolognese
138
144
 
139
145
  state = meta.present? || read_options.present? ? "findable" : "not_found"
140
146
 
141
- related_identifiers = Array.wrap(crossref_is_part_of(journal_metadata)) + Array.wrap(crossref_references(bibliographic_metadata))
147
+ related_identifiers = Array.wrap(crossref_is_part_of(journal_metadata)) + Array.wrap(crossref_references(bibliographic_metadata)) + Array.wrap(crossref_has_translation(program_metadata)) + Array.wrap(crossref_is_translation_of(program_metadata))
142
148
 
143
149
  container = if journal_metadata.present?
144
150
  issn = normalize_issn(journal_metadata.to_h.fetch("issn", nil))
@@ -187,7 +193,7 @@ module Bolognese
187
193
  "titles" => titles,
188
194
  "identifiers" => identifiers,
189
195
  "creators" => crossref_people(bibliographic_metadata, "author"),
190
- "contributors" => crossref_people(bibliographic_metadata, "editor"),
196
+ "contributors" => crossref_people(bibliographic_metadata, "editor") + crossref_people(bibliographic_metadata, "translator"),
191
197
  "funding_references" => crossref_funding_reference(program_metadata),
192
198
  "publisher" => publisher,
193
199
  "container" => container,
@@ -276,13 +282,15 @@ module Bolognese
276
282
  end
277
283
  end.compact
278
284
 
285
+ contributor_type = CR_TO_DC_CONTRIBUTOR_TYPES[a["contributor_role"]]
286
+
279
287
  { "nameType" => "Personal",
280
288
  "nameIdentifiers" => name_identifiers,
281
289
  "name" => [family_name, given_name].compact.join(", "),
282
290
  "givenName" => given_name,
283
291
  "familyName" => family_name,
284
292
  "affiliation" => affiliation.presence,
285
- "contributorType" => contributor_role == "editor" ? "Editor" : nil }.compact
293
+ "contributorType" => contributor_type }.compact
286
294
  else
287
295
  { "nameType" => "Organizational",
288
296
  "name" => a["name"] || a["__content__"] }
@@ -362,6 +370,32 @@ module Bolognese
362
370
  end
363
371
  end.compact.unwrap
364
372
  end
373
+
374
+ def crossref_has_translation(program_metadata)
375
+ refs = program_metadata.dig("related_item") if program_metadata.is_a?(Hash)
376
+ Array.wrap(refs).select { |a| a["intra_work_relation"]["relationship_type"] == "hasTranslation" }.map do |c|
377
+ if c["intra_work_relation"]["identifier_type"] == "doi"
378
+ { "relatedIdentifier" => parse_attributes(c["intra_work_relation"]).downcase,
379
+ "relationType" => "HasTranslation",
380
+ "relatedIdentifierType" => "DOI" }.compact
381
+ else
382
+ nil
383
+ end
384
+ end.compact.unwrap
385
+ end
386
+
387
+ def crossref_is_translation_of(program_metadata)
388
+ refs = program_metadata.dig("related_item") if program_metadata.is_a?(Hash)
389
+ Array.wrap(refs).select { |a| a["intra_work_relation"]["relationship_type"] == "isTranslationOf" }.map do |c|
390
+ if c["intra_work_relation"]["identifier_type"] == "doi"
391
+ { "relatedIdentifier" => parse_attributes(c["intra_work_relation"]).downcase,
392
+ "relationType" => "IsTranslationOf",
393
+ "relatedIdentifierType" => "DOI" }.compact
394
+ else
395
+ nil
396
+ end
397
+ end.compact.unwrap
398
+ end
365
399
  end
366
400
  end
367
401
  end
@@ -10,7 +10,9 @@ module Bolognese
10
10
  "isPartOf" => "IsPartOf",
11
11
  "hasPart" => "HasPart",
12
12
  "isPredecessor" => "IsPreviousVersionOf",
13
- "isSuccessor" => "IsNewVersionOf"
13
+ "isSuccessor" => "IsNewVersionOf",
14
+ "workTranslation" => "HasTranslation",
15
+ "translationOfWork" => "IsTranslationOf"
14
16
  }
15
17
 
16
18
  SO_TO_DC_REVERSE_RELATION_TYPES = {
@@ -74,6 +76,12 @@ module Bolognese
74
76
  creators = get_authors(from_schema_org_creators(Array.wrap(authors)))
75
77
  end
76
78
  contributors = get_authors(from_schema_org_contributors(Array.wrap(meta.fetch("editor", nil))))
79
+ translators = get_authors(from_schema_org_contributors(Array.wrap(meta.fetch("translator", nil))))
80
+ translators.map! do |translator|
81
+ translator["contributorType"] = "Translator"
82
+ translator
83
+ end
84
+ contributors += translators
77
85
 
78
86
  publisher = {
79
87
  "name" => parse_attributes(meta.fetch("publisher", nil), content: "name", first: true),
@@ -106,7 +114,9 @@ module Bolognese
106
114
  Array.wrap(schema_org_references(meta)) +
107
115
  Array.wrap(schema_org_is_referenced_by(meta)) +
108
116
  Array.wrap(schema_org_is_supplement_to(meta)) +
109
- Array.wrap(schema_org_is_supplemented_by(meta))
117
+ Array.wrap(schema_org_is_supplemented_by(meta)) +
118
+ Array.wrap(schema_org_has_translation(meta)) +
119
+ Array.wrap(schema_org_is_translation_of(meta))
110
120
 
111
121
  rights_list = Array.wrap(meta.fetch("license", nil)).compact.map do |rl|
112
122
  hsh_to_spdx("__content__" => rl["name"], "rightsURI" => rl["id"])
@@ -127,6 +137,7 @@ module Bolognese
127
137
  dates << { "date" => meta.fetch("datePublished"), "dateType" => "Issued" } if Date.edtf(meta.fetch("datePublished", nil)).present?
128
138
  dates << { "date" => meta.fetch("dateCreated"), "dateType" => "Created" } if Date.edtf(meta.fetch("dateCreated", nil)).present?
129
139
  dates << { "date" => meta.fetch("dateModified"), "dateType" => "Updated" } if Date.edtf(meta.fetch("dateModified", nil)).present?
140
+ dates << { "date" => meta.fetch("temporalCoverage"), "dateType" => "Coverage" } if Date.edtf(meta.fetch("temporalCoverage", nil)).present?
130
141
  publication_year = meta.fetch("datePublished")[0..3] if meta.fetch("datePublished", nil).present?
131
142
 
132
143
  if meta.fetch("inLanguage", nil).is_a?(String)
@@ -240,6 +251,14 @@ module Bolognese
240
251
  schema_org_related_identifier(meta, relation_type: "isBasedOn")
241
252
  end
242
253
 
254
+ def schema_org_has_translation(meta)
255
+ schema_org_related_identifier(meta, relation_type: "workTranslation", )
256
+ end
257
+
258
+ def schema_org_is_translation_of(meta)
259
+ schema_org_related_identifier(meta, relation_type: "translationOfWork")
260
+ end
261
+
243
262
  end
244
263
  end
245
264
  end
@@ -78,7 +78,9 @@ module Bolognese
78
78
  "Other" => "CreativeWork",
79
79
  # not part of DataCite schema, but used internally
80
80
  "Periodical" => "Periodical",
81
- "DataCatalog" => "DataCatalog"
81
+ "DataCatalog" => "DataCatalog",
82
+ "Award" => "Grant",
83
+ "Project" => "Project"
82
84
  }
83
85
 
84
86
  DC_TO_CP_TRANSLATIONS = {
@@ -825,7 +827,8 @@ module Bolognese
825
827
 
826
828
  def to_schema_org_contributors(element)
827
829
  element = Array.wrap(element).map do |c|
828
- c["affiliation"] = Array.wrap(c["affiliation"]).map do |a|
830
+ transformed_c = c.dup
831
+ transformed_c["affiliation"] = Array.wrap(c["affiliation"]).map do |a|
829
832
  if a.is_a?(String)
830
833
  name = a
831
834
  affiliation_identifier = nil
@@ -839,10 +842,10 @@ module Bolognese
839
842
  "@id" => affiliation_identifier,
840
843
  "name" => name }.compact
841
844
  end.unwrap
842
- c["@type"] = c["nameType"].present? ? c["nameType"][0..-3] : nil
843
- c["@id"] = Array.wrap(c["nameIdentifiers"]).first.to_h.fetch("nameIdentifier", nil)
844
- c["name"] = c["familyName"].present? ? [c["givenName"], c["familyName"]].join(" ") : c["name"]
845
- c.except("nameIdentifiers", "nameType").compact
845
+ transformed_c["@type"] = c["nameType"].present? ? c["nameType"][0..-3] : nil
846
+ transformed_c["@id"] = Array.wrap(c["nameIdentifiers"]).first.to_h.fetch("nameIdentifier", nil)
847
+ transformed_c["name"] = c["familyName"].present? ? [c["givenName"], c["familyName"]].join(" ") : c["name"]
848
+ transformed_c.except("nameIdentifiers", "nameType").compact
846
849
  end.unwrap
847
850
  end
848
851
 
@@ -1234,7 +1237,9 @@ module Bolognese
1234
1237
  "urn" => "URN",
1235
1238
  "md5" => "md5",
1236
1239
  "minid" => "minid",
1237
- "dataguid" => "dataguid"
1240
+ "dataguid" => "dataguid",
1241
+ "cstr" => "CSTR",
1242
+ "rrid" => "RRID"
1238
1243
  }
1239
1244
 
1240
1245
  identifierTypes[identifier_type.downcase] || identifier_type
@@ -1,3 +1,3 @@
1
1
  module Bolognese
2
- VERSION = "2.1.1"
2
+ VERSION = "2.3.0"
3
3
  end
@@ -13,6 +13,7 @@ module Bolognese
13
13
  "name" => parse_attributes(titles, content: "title", first: true),
14
14
  "author" => to_schema_org_creators(creators),
15
15
  "editor" => to_schema_org_contributors(contributors),
16
+ "translator" => contributors ? to_schema_org_contributors(contributors.select { |c| c["contributorType"] == "Translator" }) : nil,
16
17
  "description" => parse_attributes(abstract_description, content: "description", first: true),
17
18
  "license" => Array.wrap(rights_list).map { |l| l["rightsUri"] }.compact.unwrap,
18
19
  "version" => version_info,
@@ -23,6 +24,7 @@ module Bolognese
23
24
  "dateCreated" => get_date(dates, "Created"),
24
25
  "datePublished" => get_date(dates, "Issued") || publication_year,
25
26
  "dateModified" => get_date(dates, "Updated"),
27
+ "temporalCoverage" => get_date(dates, "Coverage"),
26
28
  "pageStart" => container.to_h["firstPage"],
27
29
  "pageEnd" => container.to_h["lastPage"],
28
30
  "spatialCoverage" => to_schema_org_spatial_coverage(geo_locations),
@@ -32,6 +34,8 @@ module Bolognese
32
34
  "predecessor_of" => to_schema_org_relation(related_identifiers: related_identifiers, relation_type: "IsPreviousVersionOf"),
33
35
  "successor_of" => to_schema_org_relation(related_identifiers: related_identifiers, relation_type: "IsNewVersionOf"),
34
36
  "citation" => to_schema_org_relation(related_identifiers: related_identifiers, relation_type: "References"),
37
+ "workTranslation" => to_schema_org_relation(related_identifiers: related_identifiers, relation_type: "HasTranslation"),
38
+ "translationOfWork" => to_schema_org_relation(related_identifiers: related_identifiers, relation_type: "IsTranslationOf"),
35
39
  "@reverse" => reverse.presence,
36
40
  "contentUrl" => Array.wrap(content_url).unwrap,
37
41
  "schemaVersion" => schema_version,
@@ -2,7 +2,8 @@
2
2
  <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
3
  2013-05 v3.0: Addition of ID to simpleType element, added values "ResearchGroup" & "Other"
4
4
  2014-08-20 v3.1: Addition of value "DataCurator"
5
- 2015-05-14 v4.0 dropped value "Funder", use new "funderReference" -->
5
+ 2015-05-14 v4.0 dropped value "Funder", use new "funderReference"
6
+ 2024-12-31 v4.6: Addition of value "Translator" -->
6
7
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
7
8
  <xs:simpleType name="contributorType" id="contributorType">
8
9
  <xs:annotation>
@@ -29,6 +30,7 @@
29
30
  <xs:enumeration value="Researcher" />
30
31
  <xs:enumeration value="Sponsor" />
31
32
  <xs:enumeration value="Supervisor" />
33
+ <xs:enumeration value="Translator" />
32
34
  <xs:enumeration value="WorkPackageLeader" />
33
35
  </xs:restriction>
34
36
  </xs:simpleType>
@@ -2,7 +2,8 @@
2
2
  <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
3
  2013-05 v3.0: Addition of ID to simpleType element; addition of value "Collected"; deleted "StartDate" & "EndDate"
4
4
  2017-10-23 v4.1: Addition of value "Other"
5
- 2019-02-14 v4.2: Addition of value "Withdrawn"-->
5
+ 2019-02-14 v4.2: Addition of value "Withdrawn"
6
+ 2024-12-31 v4.6: Addition of value "Coverage"-->
6
7
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
7
8
  <xs:simpleType name="dateType" id="dateType">
8
9
  <xs:annotation>
@@ -13,6 +14,7 @@
13
14
  <xs:enumeration value="Available" />
14
15
  <xs:enumeration value="Collected" />
15
16
  <xs:enumeration value="Copyrighted" />
17
+ <xs:enumeration value="Coverage" />
16
18
  <xs:enumeration value="Created" />
17
19
  <xs:enumeration value="Issued" />
18
20
  <xs:enumeration value="Other" />
@@ -2,8 +2,9 @@
2
2
  <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
3
  2013-05 v3.0: Addition of ID to simpleType element; addition of value "PMID"
4
4
  2014-08-20 v3.1: Addition of values "arxiv" and "bibcode"
5
- 2015-02-12 v4.0 Addition of value "IGSN"
6
- 2019-02-14 v4.2 Addition of value "w3id" -->
5
+ 2015-02-12 v4.0: Addition of value "IGSN"
6
+ 2019-02-14 v4.2: Addition of value "w3id"
7
+ 2024-12-31 v4.5: Addition of values "CSTR", "RRID" -->
7
8
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
8
9
  <xs:simpleType name="relatedIdentifierType" id="relatedIdentifierType">
9
10
  <xs:annotation>
@@ -13,6 +14,7 @@
13
14
  <xs:enumeration value="ARK" />
14
15
  <xs:enumeration value="arXiv" />
15
16
  <xs:enumeration value="bibcode" />
17
+ <xs:enumeration value="CSTR" />
16
18
  <xs:enumeration value="DOI" />
17
19
  <xs:enumeration value="EAN13" />
18
20
  <xs:enumeration value="EISSN" />
@@ -25,6 +27,7 @@
25
27
  <xs:enumeration value="LSID" />
26
28
  <xs:enumeration value="PMID" />
27
29
  <xs:enumeration value="PURL" />
30
+ <xs:enumeration value="RRID" />
28
31
  <xs:enumeration value="UPC" />
29
32
  <xs:enumeration value="URL" />
30
33
  <xs:enumeration value="URN" />
@@ -3,9 +3,11 @@
3
3
  2011-01-13 v1.0 - FZ, TIB, Germany
4
4
  2013-05 v3.0: Addition of ID to simpleType element, addition of values "IsIdenticalTo", "HasMetadata" & "IsMetadataFor"
5
5
  2014-08-20 v3.1: Addition of values "Reviews" & "IsReviewedBy" and "IsDerivedFrom" & "IsSourceOf"
6
- 2017-10-23 v.4.1: Addition of values "Describes", "IsDescribedBy", "HasVersion", "IsVersionOf", "Requires", "IsRequiredBy"
7
- 2019-02-14 v.4.2: Addition of values "Obsoletes", "IsObsoletedBy"
8
- 2021-03-05 v.4.4: Addition of value "IsPublishedIn" -->
6
+ 2017-10-23 v4.1: Addition of values "Describes", "IsDescribedBy", "HasVersion", "IsVersionOf", "Requires", "IsRequiredBy"
7
+ 2019-02-14 v4.2: Addition of values "Obsoletes", "IsObsoletedBy"
8
+ 2021-03-05 v4.4: Addition of value "IsPublishedIn"
9
+ 2024-01-22 v4.5: Addition of values "Collects, "IsCollectedBy"
10
+ 2024-12-31 v4.6: Addition of values "HasTranslation", "IsTranslationOf"-->
9
11
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
10
12
  <xs:simpleType name="relationType" id="relationType">
11
13
  <xs:annotation>
@@ -48,6 +50,8 @@
48
50
  <xs:enumeration value="IsObsoletedBy" />
49
51
  <xs:enumeration value="Collects" />
50
52
  <xs:enumeration value="IsCollectedBy" />
53
+ <xs:enumeration value="HasTranslation" />
54
+ <xs:enumeration value="IsTranslationOf" />
51
55
  </xs:restriction>
52
56
  </xs:simpleType>
53
57
  </xs:schema>
@@ -3,7 +3,9 @@
3
3
  2013-05 v3.0: Addition of ID to simpleType element; added values "Audiovisual", "Workflow" & "Other"; deleted value "Film"
4
4
  2017-10-23 v4.1: Addition of value "DataPaper"
5
5
  2020-01-14 v4.4: Addition of values "Book", "Book Chapter", "ComputationalNotebook", "ConferencePaper", "ConferenceProceeding".
6
- "Dissertation", "Journal", "JournalArticle", "OutputManagementPlan", "PeerReview", "Preprint", "Report" -->
6
+ "Dissertation", "Journal", "JournalArticle", "OutputManagementPlan", "PeerReview", "Preprint", "Report"
7
+ 2024-01-22 v4.5: Addition of values "Instrument", "StudyRegistration"
8
+ 2024-12-31 v4.6: Addition of values "Award", "Project"-->
7
9
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
8
10
  <xs:simpleType name="resourceType" id="resourceType">
9
11
  <xs:annotation>
@@ -11,6 +13,7 @@
11
13
  </xs:annotation>
12
14
  <xs:restriction base="xs:string">
13
15
  <xs:enumeration value="Audiovisual" />
16
+ <xs:enumeration value="Award" />
14
17
  <xs:enumeration value="Book" />
15
18
  <xs:enumeration value="BookChapter" />
16
19
  <xs:enumeration value="Collection" />
@@ -31,6 +34,7 @@
31
34
  <xs:enumeration value="PeerReview" />
32
35
  <xs:enumeration value="PhysicalObject" />
33
36
  <xs:enumeration value="Preprint" />
37
+ <xs:enumeration value="Project" />
34
38
  <xs:enumeration value="Report" />
35
39
  <xs:enumeration value="Service" />
36
40
  <xs:enumeration value="Software" />
@@ -1,7 +1,7 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
3
  2013-05 v3.0: Addition of ID to simpleType element
4
- 2015-02-12 v4.0 Added value "Other" -->
4
+ 2015-02-12 v4.0: Added value "Other" -->
5
5
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
6
6
  <xs:simpleType name="titleType" id="titleType">
7
7
  <xs:restriction base="xs:string">
@@ -13,7 +13,8 @@
13
13
  2019-02-14 v4.2: Addition of dateType value "Withdrawn", relationType values "Obsoletes", "isObsoletedBy", addition of new subproperties for Rights: rightsIdentifier, rightsIdentifierScheme, schemeURI, addition of the XML language attribute to the properties Creator, Contributor and Publisher for organizational names, don't check format of DOI
14
14
  2019-07-13 v4.3: Addition of new subproperties for Affiliation: "affiliationIdentifier", "affiliationIdentifierScheme", "schemeURI", addition of new sub-property for funderIdentifier: "schemeURI", addition of new funderIdentifierScheme: "ROR", added documentation for nameIdentifier
15
15
  2021-03-08 v4.4: Addition of new property relatedItem, relationType value "isPublishedIn", subject subproperty "classificationCode", controlled list "numberType", additional 13 properties for controlled list "resourceType"
16
- 2023-??-?? v4.5: Addition of new subproperties for publisher: "publisherIdentifier", "publisherIdentifierScheme", and "schemeURI"; addition of new resourceTypeGeneral values "Instrument" and "StudyRegistration"; addition of new relationType values "Collects" and "IsCollectedBy".-->
16
+ 2024-01-22 v4.5: Addition of new subproperties for publisher: "publisherIdentifier", "publisherIdentifierScheme", and "schemeURI"; addition of new resourceTypeGeneral values "Instrument" and "StudyRegistration"; addition of new relationType values "Collects" and "IsCollectedBy".
17
+ 2024-12-31 v4.6: Addition of new resourceTypeGeneral values "Award" and "Project"; addiition of new relatedIdentifierType values "CSTR" and "RRID"; addition of new contributorType "Translator"; addition of new relationTypes "HasTranslation" and "IsTranslationOf"; addition of new dateType "Coverage".-->
17
18
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified" xml:lang="EN">
18
19
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="include/xml.xsd" />
19
20
  <xs:include schemaLocation="include/datacite-titleType-v4.xsd" />
@@ -0,0 +1,37 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
+ 2013-05 v3.0: Addition of ID to simpleType element, added values "ResearchGroup" & "Other"
4
+ 2014-08-20 v3.1: Addition of value "DataCurator"
5
+ 2015-05-14 v4.0 dropped value "Funder", use new "funderReference"
6
+ 2024-12-31 v4.6: Addition of value "Translator" -->
7
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
8
+ <xs:simpleType name="contributorType" id="contributorType">
9
+ <xs:annotation>
10
+ <xs:documentation>The type of contributor of the resource.</xs:documentation>
11
+ </xs:annotation>
12
+ <xs:restriction base="xs:string">
13
+ <xs:enumeration value="ContactPerson" />
14
+ <xs:enumeration value="DataCollector" />
15
+ <xs:enumeration value="DataCurator" />
16
+ <xs:enumeration value="DataManager" />
17
+ <xs:enumeration value="Distributor" />
18
+ <xs:enumeration value="Editor" />
19
+ <xs:enumeration value="HostingInstitution" />
20
+ <xs:enumeration value="Other" />
21
+ <xs:enumeration value="Producer" />
22
+ <xs:enumeration value="ProjectLeader" />
23
+ <xs:enumeration value="ProjectManager" />
24
+ <xs:enumeration value="ProjectMember" />
25
+ <xs:enumeration value="RegistrationAgency" />
26
+ <xs:enumeration value="RegistrationAuthority" />
27
+ <xs:enumeration value="RelatedPerson" />
28
+ <xs:enumeration value="ResearchGroup" />
29
+ <xs:enumeration value="RightsHolder" />
30
+ <xs:enumeration value="Researcher" />
31
+ <xs:enumeration value="Sponsor" />
32
+ <xs:enumeration value="Supervisor" />
33
+ <xs:enumeration value="Translator" />
34
+ <xs:enumeration value="WorkPackageLeader" />
35
+ </xs:restriction>
36
+ </xs:simpleType>
37
+ </xs:schema>
@@ -0,0 +1,27 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
+ 2013-05 v3.0: Addition of ID to simpleType element; addition of value "Collected"; deleted "StartDate" & "EndDate"
4
+ 2017-10-23 v4.1: Addition of value "Other"
5
+ 2019-02-14 v4.2: Addition of value "Withdrawn"
6
+ 2024-12-31 v4.6: Addition of value "Coverage"-->
7
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
8
+ <xs:simpleType name="dateType" id="dateType">
9
+ <xs:annotation>
10
+ <xs:documentation>The type of date. Use RKMS‐ISO8601 standard for depicting date ranges.To indicate the end of an embargo period, use Available. To indicate the start of an embargo period, use Submitted or Accepted, as appropriate.</xs:documentation>
11
+ </xs:annotation>
12
+ <xs:restriction base="xs:string">
13
+ <xs:enumeration value="Accepted" />
14
+ <xs:enumeration value="Available" />
15
+ <xs:enumeration value="Collected" />
16
+ <xs:enumeration value="Copyrighted" />
17
+ <xs:enumeration value="Coverage" />
18
+ <xs:enumeration value="Created" />
19
+ <xs:enumeration value="Issued" />
20
+ <xs:enumeration value="Other" />
21
+ <xs:enumeration value="Submitted" />
22
+ <xs:enumeration value="Updated" />
23
+ <xs:enumeration value="Valid" />
24
+ <xs:enumeration value="Withdrawn" />
25
+ </xs:restriction>
26
+ </xs:simpleType>
27
+ </xs:schema>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Version 1.0 - Created 2011-01-13 - FZ, TIB, Germany
3
+ 2013-05 v3.0: Addition of ID to simpleType element, addition of value "Methods"
4
+ 2015-02-12 v4.0: Addition of value "TechnicalInfo"-->
5
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
6
+ <xs:simpleType name="descriptionType" id="descriptionType">
7
+ <xs:annotation>
8
+ <xs:documentation>The type of the description.</xs:documentation>
9
+ </xs:annotation>
10
+ <xs:restriction base="xs:string">
11
+ <xs:enumeration value="Abstract" />
12
+ <xs:enumeration value="Methods" />
13
+ <xs:enumeration value="SeriesInformation" />
14
+ <xs:enumeration value="TableOfContents" />
15
+ <xs:enumeration value="TechnicalInfo" />
16
+ <xs:enumeration value="Other" />
17
+ </xs:restriction>
18
+ </xs:simpleType>
19
+ </xs:schema>
@@ -0,0 +1,16 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Version 1.0 - Created 2016-05-14 -->
3
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
4
+ <xs:simpleType name="funderIdentifierType" id="funderIdentifierType">
5
+ <xs:annotation>
6
+ <xs:documentation>The type of the funderIdentifier.</xs:documentation>
7
+ </xs:annotation>
8
+ <xs:restriction base="xs:string">
9
+ <xs:enumeration value="ISNI" />
10
+ <xs:enumeration value="GRID" />
11
+ <xs:enumeration value="ROR" />
12
+ <xs:enumeration value="Crossref Funder ID" />
13
+ <xs:enumeration value="Other" />
14
+ </xs:restriction>
15
+ </xs:simpleType>
16
+ </xs:schema>
@@ -0,0 +1,10 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Version 4.1 - Created 2017-10-23 -->
3
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
4
+ <xs:simpleType name="nameType" id="nameType">
5
+ <xs:restriction base="xs:string">
6
+ <xs:enumeration value="Organizational" />
7
+ <xs:enumeration value="Personal" />
8
+ </xs:restriction>
9
+ </xs:simpleType>
10
+ </xs:schema>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!-- Version 4.4 - Created 2021-03-05 -->
3
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
4
+ <xs:simpleType name="numberType" id="numberType">
5
+ <xs:restriction base="xs:string">
6
+ <xs:enumeration value="Article" />
7
+ <xs:enumeration value="Chapter" />
8
+ <xs:enumeration value="Report" />
9
+ <xs:enumeration value="Other" />
10
+ </xs:restriction>
11
+ </xs:simpleType>
12
+ </xs:schema>