cff 0.4.0 → 0.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +68 -0
- data/CITATION.cff +9 -4
- data/Gemfile +2 -0
- data/LICENCE +1 -1
- data/README.md +136 -20
- data/Rakefile +3 -1
- data/bin/console +1 -0
- data/cff.gemspec +29 -15
- data/lib/cff.rb +22 -10
- data/lib/cff/entity.rb +28 -1
- data/lib/cff/errors.rb +45 -0
- data/lib/cff/file.rb +132 -13
- data/lib/cff/formatter/apa_formatter.rb +77 -0
- data/lib/cff/formatter/bibtex_formatter.rb +122 -0
- data/lib/cff/formatter/formatter.rb +63 -0
- data/lib/cff/identifier.rb +71 -0
- data/lib/cff/licensable.rb +46 -0
- data/lib/cff/model.rb +108 -14
- data/lib/cff/model_part.rb +3 -1
- data/lib/cff/person.rb +42 -8
- data/lib/cff/reference.rb +141 -42
- data/lib/cff/util.rb +15 -1
- data/lib/cff/validatable.rb +55 -0
- data/lib/cff/version.rb +6 -3
- data/lib/schema/1.2.0.json +1882 -0
- metadata +82 -28
data/lib/cff/reference.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
2
4
|
#
|
3
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
6
|
# you may not use this file except in compliance with the License.
|
@@ -19,25 +21,95 @@ module CFF
|
|
19
21
|
# software itself, e.g., a software paper describing the abstract concepts of
|
20
22
|
# the software, a paper describing an algorithm that has been implemented in
|
21
23
|
# the software version, etc.
|
24
|
+
#
|
25
|
+
# Reference implements all of the fields listed in the
|
26
|
+
# [CFF standard](https://citation-file-format.github.io/). Complex
|
27
|
+
# fields - `authors`, `contact`, `editors`, `editors_series`, `identifiers`,
|
28
|
+
# `keywords`, `languages`, `patent_states`, `recipients`, `senders` and
|
29
|
+
# `translators` - are documented below. All other fields are simple strings
|
30
|
+
# and can be set as such. A field which has not been set will return the
|
31
|
+
# empty string. The simple fields are (with defaults in parentheses):
|
32
|
+
#
|
33
|
+
# * `abbreviation`
|
34
|
+
# * `abstract`
|
35
|
+
# * `collection_doi`
|
36
|
+
# * `collection_title`
|
37
|
+
# * `collection_type`
|
38
|
+
# * `commit`
|
39
|
+
# * `conference`
|
40
|
+
# * `copyright`
|
41
|
+
# * `data-type`
|
42
|
+
# * `database`
|
43
|
+
# * `database_provider`
|
44
|
+
# * `date_accessed` - *Note:* returns a `Date` object
|
45
|
+
# * `date_downloaded` - *Note:* returns a `Date` object
|
46
|
+
# * `date_published` - *Note:* returns a `Date` object
|
47
|
+
# * `date_released` - *Note:* returns a `Date` object
|
48
|
+
# * `department`
|
49
|
+
# * `doi`
|
50
|
+
# * `edition`
|
51
|
+
# * `end`
|
52
|
+
# * `entry`
|
53
|
+
# * `filename`
|
54
|
+
# * `format`
|
55
|
+
# * `institution`
|
56
|
+
# * `isbn`
|
57
|
+
# * `issn`
|
58
|
+
# * `issue`
|
59
|
+
# * `issue_date` - *Note:* returns a `Date` object
|
60
|
+
# * `issue_title`
|
61
|
+
# * `journal`
|
62
|
+
# * `license` - *Note:* see documentation for `license =` below
|
63
|
+
# * `license_url`
|
64
|
+
# * `loc_end`
|
65
|
+
# * `loc_start`
|
66
|
+
# * `location`
|
67
|
+
# * `medium`
|
68
|
+
# * `month`
|
69
|
+
# * `nihmsid`
|
70
|
+
# * `notes`
|
71
|
+
# * `number`
|
72
|
+
# * `number_volumes`
|
73
|
+
# * `pages`
|
74
|
+
# * `pmcid`
|
75
|
+
# * `publisher`
|
76
|
+
# * `repository`
|
77
|
+
# * `repository_code`
|
78
|
+
# * `repository_artifact`
|
79
|
+
# * `scope`
|
80
|
+
# * `section`
|
81
|
+
# * `start`
|
82
|
+
# * `status` - *Note:* see documentation for `status =` below
|
83
|
+
# * `thesis_type`
|
84
|
+
# * `title`
|
85
|
+
# * `type` - *Note:* see documentation for `type =` below
|
86
|
+
# * `url`
|
87
|
+
# * `version`
|
88
|
+
# * `volume`
|
89
|
+
# * `volume_title`
|
90
|
+
# * `year`
|
91
|
+
# * `year_original`
|
22
92
|
class Reference < ModelPart
|
23
93
|
|
94
|
+
include Licensable
|
95
|
+
|
24
96
|
ALLOWED_FIELDS = [
|
25
97
|
'abbreviation', 'abstract', 'authors', 'collection-doi',
|
26
98
|
'collection-title', 'collection-type', 'commit', 'conference', 'contact',
|
27
99
|
'copyright', 'data-type', 'database', 'database-provider',
|
28
100
|
'date-accessed', 'date-downloaded', 'date-published', 'date-released',
|
29
101
|
'department', 'doi', 'edition', 'editors', 'editors-series', 'end',
|
30
|
-
'entry', 'filename', '
|
31
|
-
'issue
|
32
|
-
'
|
33
|
-
'
|
34
|
-
'
|
35
|
-
'scope', 'section', 'senders', 'start', 'status',
|
36
|
-
'
|
37
|
-
'year-original'
|
102
|
+
'entry', 'filename', 'identifiers', 'institution', 'isbn', 'issn',
|
103
|
+
'issue', 'issue-date', 'issue-title', 'journal', 'keywords', 'license',
|
104
|
+
'license-url', 'loc-end', 'loc-start', 'location', 'medium', 'month',
|
105
|
+
'nihmsid', 'notes', 'number', 'number-volumes', 'pages', 'patent-states',
|
106
|
+
'pmcid', 'publisher', 'recipients', 'repository', 'repository-code',
|
107
|
+
'repository-artifact', 'scope', 'section', 'senders', 'start', 'status',
|
108
|
+
'thesis-type', 'title', 'translators', 'type', 'url', 'version',
|
109
|
+
'volume', 'volume-title', 'year', 'year-original'
|
38
110
|
].freeze # :nodoc:
|
39
111
|
|
40
|
-
# The [defined set of reference types](https://citation-file-format
|
112
|
+
# The [defined set of reference types](https://github.com/citation-file-format/citation-file-format#reference-types).
|
41
113
|
REFERENCE_TYPES = [
|
42
114
|
'art', 'article', 'audiovisual', 'bill', 'blog', 'book', 'catalogue',
|
43
115
|
'conference', 'conference-paper', 'data', 'database', 'dictionary',
|
@@ -51,7 +123,7 @@ module CFF
|
|
51
123
|
'thesis', 'unpublished', 'video', 'website'
|
52
124
|
].freeze
|
53
125
|
|
54
|
-
# The [defined set of reference status types](https://citation-file-format
|
126
|
+
# The [defined set of reference status types](https://github.com/citation-file-format/citation-file-format#status-strings).
|
55
127
|
REFERENCE_STATUS_TYPES = [
|
56
128
|
'abstract', 'advance-online', 'in-preparation', 'in-press',
|
57
129
|
'pre-print', 'submitted'
|
@@ -59,15 +131,18 @@ module CFF
|
|
59
131
|
|
60
132
|
# :call-seq:
|
61
133
|
# new(title) -> Reference
|
134
|
+
# new(title) { |ref| block } -> Reference
|
62
135
|
# new(title, type) -> Reference
|
136
|
+
# new(title, type) { |ref| block } -> Reference
|
63
137
|
#
|
64
138
|
# Create a new Reference with the supplied title and, optionally, type.
|
65
139
|
# If type is not given, or is not one of the
|
66
|
-
# [defined set of reference types](https://citation-file-format
|
140
|
+
# [defined set of reference types](https://github.com/citation-file-format/citation-file-format#reference-types),
|
67
141
|
# 'generic' will be used by default.
|
68
|
-
def initialize(param, *more)
|
142
|
+
def initialize(param, *more) # rubocop:disable Metrics/AbcSize
|
69
143
|
if param.is_a?(Hash)
|
70
144
|
@fields = build_model(param)
|
145
|
+
@fields.default = ''
|
71
146
|
else
|
72
147
|
@fields = Hash.new('')
|
73
148
|
type = more[0] &&= more[0].downcase
|
@@ -76,9 +151,13 @@ module CFF
|
|
76
151
|
end
|
77
152
|
|
78
153
|
[
|
79
|
-
'authors', 'contact', 'editors', 'editors-series', '
|
80
|
-
'patent-states', 'recipients', 'senders', 'translators'
|
81
|
-
].each
|
154
|
+
'authors', 'contact', 'editors', 'editors-series', 'identifiers',
|
155
|
+
'keywords', 'patent-states', 'recipients', 'senders', 'translators'
|
156
|
+
].each do |field|
|
157
|
+
@fields[field] = [] if @fields[field].empty?
|
158
|
+
end
|
159
|
+
|
160
|
+
yield self if block_given?
|
82
161
|
end
|
83
162
|
|
84
163
|
# :call-seq:
|
@@ -91,6 +170,7 @@ module CFF
|
|
91
170
|
@fields['languages'] = [] if @fields['languages'].empty?
|
92
171
|
lang = LanguageList::LanguageInfo.find(lang)
|
93
172
|
return if lang.nil?
|
173
|
+
|
94
174
|
lang = lang.iso_639_3
|
95
175
|
@fields['languages'] << lang unless @fields['languages'].include? lang
|
96
176
|
end
|
@@ -111,17 +191,6 @@ module CFF
|
|
111
191
|
@fields['languages'].empty? ? [] : @fields['languages'].dup
|
112
192
|
end
|
113
193
|
|
114
|
-
# :call-seq:
|
115
|
-
# license = license
|
116
|
-
#
|
117
|
-
# Set the license of this Reference. Only licenses that conform to the
|
118
|
-
# [SPDX License List](https://spdx.org/licenses/) will be accepted. If you
|
119
|
-
# need specify a different license you should set `license-url` with a link
|
120
|
-
# to the license instead.
|
121
|
-
def license=(lic)
|
122
|
-
@fields['license'] = lic unless SpdxLicenses.lookup(lic).nil?
|
123
|
-
end
|
124
|
-
|
125
194
|
# :call-seq:
|
126
195
|
# date_accessed = date
|
127
196
|
#
|
@@ -166,19 +235,19 @@ module CFF
|
|
166
235
|
@fields['date-released'] = date
|
167
236
|
end
|
168
237
|
|
169
|
-
# :call-seq:
|
170
|
-
# format -> String
|
171
|
-
#
|
172
238
|
# Returns the format of this Reference.
|
173
|
-
|
239
|
+
#
|
240
|
+
# This method is explicitly defined to override the private format method
|
241
|
+
# that all objects seem to have.
|
242
|
+
def format # :nodoc:
|
174
243
|
@fields['format']
|
175
244
|
end
|
176
245
|
|
177
|
-
# :call-seq:
|
178
|
-
# format = format
|
179
|
-
#
|
180
246
|
# Sets the format of this Reference.
|
181
|
-
|
247
|
+
#
|
248
|
+
# This method is explicitly defined to override the private format method
|
249
|
+
# that all objects seem to have.
|
250
|
+
def format=(fmt) # :nodoc:
|
182
251
|
@fields['format'] = fmt
|
183
252
|
end
|
184
253
|
|
@@ -186,9 +255,9 @@ module CFF
|
|
186
255
|
# status = status
|
187
256
|
#
|
188
257
|
# Sets the status of this Reference. The status is restricted to a
|
189
|
-
# [defined set of status types](https://citation-file-format
|
258
|
+
# [defined set of status types](https://github.com/citation-file-format/citation-file-format#status-strings).
|
190
259
|
def status=(status)
|
191
|
-
status.downcase
|
260
|
+
status = status.downcase
|
192
261
|
@fields['status'] = status if REFERENCE_STATUS_TYPES.include?(status)
|
193
262
|
end
|
194
263
|
|
@@ -196,17 +265,17 @@ module CFF
|
|
196
265
|
# type = type
|
197
266
|
#
|
198
267
|
# Sets the type of this Reference. The type is restricted to a
|
199
|
-
# [defined set of reference types](https://citation-file-format
|
268
|
+
# [defined set of reference types](https://github.com/citation-file-format/citation-file-format#reference-types).
|
200
269
|
def type=(type)
|
201
|
-
type.downcase
|
270
|
+
type = type.downcase
|
202
271
|
@fields['type'] = type if REFERENCE_TYPES.include?(type)
|
203
272
|
end
|
204
273
|
|
205
274
|
# Override superclass #fields as References contain model parts too.
|
206
275
|
def fields # :nodoc:
|
207
276
|
[
|
208
|
-
'authors', 'contact', 'editors', 'editors-series', '
|
209
|
-
'senders', 'translators'
|
277
|
+
'authors', 'contact', 'editors', 'editors-series', 'identifiers',
|
278
|
+
'recipients', 'senders', 'translators'
|
210
279
|
].each do |field|
|
211
280
|
normalize_modelpart_array!(@fields[field])
|
212
281
|
end
|
@@ -221,7 +290,18 @@ module CFF
|
|
221
290
|
'authors', 'contact', 'editors', 'editors-series', 'recipients',
|
222
291
|
'senders', 'translators'
|
223
292
|
].each do |field|
|
224
|
-
build_actor_collection!(fields[field])
|
293
|
+
build_actor_collection!(fields[field]) if fields.include?(field)
|
294
|
+
end
|
295
|
+
|
296
|
+
[
|
297
|
+
'conference', 'database-provider', 'institution', 'location',
|
298
|
+
'publisher'
|
299
|
+
].each do |field|
|
300
|
+
fields[field] &&= Entity.new(fields[field])
|
301
|
+
end
|
302
|
+
|
303
|
+
(fields['identifiers'] || []).map! do |i|
|
304
|
+
Identifier.new(i)
|
225
305
|
end
|
226
306
|
|
227
307
|
fields
|
@@ -324,6 +404,25 @@ module CFF
|
|
324
404
|
#
|
325
405
|
# Series editors can be a Person or Entity.
|
326
406
|
|
407
|
+
##
|
408
|
+
# :method: identifiers
|
409
|
+
# :call-seq:
|
410
|
+
# identifiers -> Array
|
411
|
+
#
|
412
|
+
# Return the list of identifiers for this citation. To add a identifier to
|
413
|
+
# the list, use:
|
414
|
+
#
|
415
|
+
# ```
|
416
|
+
# model.identifiers << identifier
|
417
|
+
# ```
|
418
|
+
|
419
|
+
##
|
420
|
+
# :method: identifiers=
|
421
|
+
# :call-seq:
|
422
|
+
# identifiers = array_of_identifiers -> Array
|
423
|
+
#
|
424
|
+
# Replace the list of identifiers for this citation.
|
425
|
+
|
327
426
|
##
|
328
427
|
# :method: keywords
|
329
428
|
# :call-seq:
|
data/lib/cff/util.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
2
4
|
#
|
3
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
6
|
# you may not use this file except in compliance with the License.
|
@@ -12,6 +14,8 @@
|
|
12
14
|
# See the License for the specific language governing permissions and
|
13
15
|
# limitations under the License.
|
14
16
|
|
17
|
+
require 'rubygems'
|
18
|
+
|
15
19
|
##
|
16
20
|
module CFF
|
17
21
|
|
@@ -21,6 +25,16 @@ module CFF
|
|
21
25
|
module Util
|
22
26
|
# :stopdoc:
|
23
27
|
|
28
|
+
def update_cff_version(version)
|
29
|
+
return '' if version.nil? || version.empty?
|
30
|
+
|
31
|
+
if Gem::Version.new(version) < Gem::Version.new(MIN_VALIDATABLE_VERSION)
|
32
|
+
MIN_VALIDATABLE_VERSION
|
33
|
+
else
|
34
|
+
version
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
24
38
|
def method_to_field(name)
|
25
39
|
name.tr('_', '-')
|
26
40
|
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
4
|
+
#
|
5
|
+
# Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
# you may not use this file except in compliance with the License.
|
7
|
+
# You may obtain a copy of the License at
|
8
|
+
#
|
9
|
+
# http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
#
|
11
|
+
# Unless required by applicable law or agreed to in writing, software
|
12
|
+
# distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
# See the License for the specific language governing permissions and
|
15
|
+
# limitations under the License.
|
16
|
+
|
17
|
+
require 'json_schema'
|
18
|
+
|
19
|
+
##
|
20
|
+
module CFF
|
21
|
+
|
22
|
+
# Methods to validate CFF files/models against a formal schema.
|
23
|
+
module Validatable
|
24
|
+
|
25
|
+
# :nodoc:
|
26
|
+
SCHEMA = JsonSchema.parse!(SCHEMA_FILE)
|
27
|
+
|
28
|
+
# :call-seq:
|
29
|
+
# validate!(fail_fast: false)
|
30
|
+
#
|
31
|
+
# Validate a CFF file or model and raise a ValidationError upon failure.
|
32
|
+
# If an error is raised it will contain the detected validation failures
|
33
|
+
# for further inspection. Setting `fail_fast` to true will fail validation
|
34
|
+
# at the first detected failure, rather than gathering and returning all
|
35
|
+
# failures.
|
36
|
+
def validate!(fail_fast: false)
|
37
|
+
result = validate(fail_fast: fail_fast)
|
38
|
+
return if result[0]
|
39
|
+
|
40
|
+
raise ValidationError.new(result[1])
|
41
|
+
end
|
42
|
+
|
43
|
+
# :call-seq:
|
44
|
+
# validate(fail_fast: false) -> Array
|
45
|
+
#
|
46
|
+
# Validate a CFF file or model and return an array with the result. The
|
47
|
+
# result array is a two-element array, with `true`/`false` at index 0 to
|
48
|
+
# indicate pass/fail, and an array of errors at index 1 (if any).
|
49
|
+
# Setting `fail_fast` to true will fail validation at the first detected
|
50
|
+
# failure, rather than gathering and returning all failures.
|
51
|
+
def validate(fail_fast: false)
|
52
|
+
SCHEMA.validate(fields, fail_fast: fail_fast)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
data/lib/cff/version.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
# Copyright (c) 2018-2021 The Ruby Citation File Format Developers.
|
2
4
|
#
|
3
5
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
6
|
# you may not use this file except in compliance with the License.
|
@@ -15,6 +17,7 @@
|
|
15
17
|
##
|
16
18
|
module CFF
|
17
19
|
# :nodoc:
|
18
|
-
VERSION = '0.
|
19
|
-
DEFAULT_SPEC_VERSION = '1.0
|
20
|
+
VERSION = '0.8.0'
|
21
|
+
DEFAULT_SPEC_VERSION = '1.2.0'
|
22
|
+
MIN_VALIDATABLE_VERSION = '1.2.0'
|
20
23
|
end
|
@@ -0,0 +1,1882 @@
|
|
1
|
+
{
|
2
|
+
"$id": "https://citation-file-format.github.io/1.2.0/schema",
|
3
|
+
"$schema": "http://json-schema.org/draft-07/schema",
|
4
|
+
"additionalProperties": false,
|
5
|
+
"definitions": {
|
6
|
+
"address": {
|
7
|
+
"description": "An address.",
|
8
|
+
"minLength": 1,
|
9
|
+
"type": "string"
|
10
|
+
},
|
11
|
+
"alias": {
|
12
|
+
"description": "An alias.",
|
13
|
+
"minLength": 1,
|
14
|
+
"type": "string"
|
15
|
+
},
|
16
|
+
"city": {
|
17
|
+
"description": "A city",
|
18
|
+
"minLength": 1,
|
19
|
+
"type": "string"
|
20
|
+
},
|
21
|
+
"commit": {
|
22
|
+
"description": "The (e.g., Git) commit hash or (e.g., Subversion) revision number of the work.",
|
23
|
+
"minLength": 1,
|
24
|
+
"type": "string"
|
25
|
+
},
|
26
|
+
"country": {
|
27
|
+
"$comment": "ISO 3166-1 alpha-2 codes can be found at https://en.wikipedia.org/wiki/ISO_3166-1",
|
28
|
+
"description": "The ISO 3166-1 alpha-2 country code for a country.",
|
29
|
+
"enum": [
|
30
|
+
"AD",
|
31
|
+
"AE",
|
32
|
+
"AF",
|
33
|
+
"AG",
|
34
|
+
"AI",
|
35
|
+
"AL",
|
36
|
+
"AM",
|
37
|
+
"AO",
|
38
|
+
"AQ",
|
39
|
+
"AR",
|
40
|
+
"AS",
|
41
|
+
"AT",
|
42
|
+
"AU",
|
43
|
+
"AW",
|
44
|
+
"AX",
|
45
|
+
"AZ",
|
46
|
+
"BA",
|
47
|
+
"BB",
|
48
|
+
"BD",
|
49
|
+
"BE",
|
50
|
+
"BF",
|
51
|
+
"BG",
|
52
|
+
"BH",
|
53
|
+
"BI",
|
54
|
+
"BJ",
|
55
|
+
"BL",
|
56
|
+
"BM",
|
57
|
+
"BN",
|
58
|
+
"BO",
|
59
|
+
"BQ",
|
60
|
+
"BR",
|
61
|
+
"BS",
|
62
|
+
"BT",
|
63
|
+
"BV",
|
64
|
+
"BW",
|
65
|
+
"BY",
|
66
|
+
"BZ",
|
67
|
+
"CA",
|
68
|
+
"CC",
|
69
|
+
"CD",
|
70
|
+
"CF",
|
71
|
+
"CG",
|
72
|
+
"CH",
|
73
|
+
"CI",
|
74
|
+
"CK",
|
75
|
+
"CL",
|
76
|
+
"CM",
|
77
|
+
"CN",
|
78
|
+
"CO",
|
79
|
+
"CR",
|
80
|
+
"CU",
|
81
|
+
"CV",
|
82
|
+
"CW",
|
83
|
+
"CX",
|
84
|
+
"CY",
|
85
|
+
"CZ",
|
86
|
+
"DE",
|
87
|
+
"DJ",
|
88
|
+
"DK",
|
89
|
+
"DM",
|
90
|
+
"DO",
|
91
|
+
"DZ",
|
92
|
+
"EC",
|
93
|
+
"EE",
|
94
|
+
"EG",
|
95
|
+
"EH",
|
96
|
+
"ER",
|
97
|
+
"ES",
|
98
|
+
"ET",
|
99
|
+
"FI",
|
100
|
+
"FJ",
|
101
|
+
"FK",
|
102
|
+
"FM",
|
103
|
+
"FO",
|
104
|
+
"FR",
|
105
|
+
"GA",
|
106
|
+
"GB",
|
107
|
+
"GD",
|
108
|
+
"GE",
|
109
|
+
"GF",
|
110
|
+
"GG",
|
111
|
+
"GH",
|
112
|
+
"GI",
|
113
|
+
"GL",
|
114
|
+
"GM",
|
115
|
+
"GN",
|
116
|
+
"GP",
|
117
|
+
"GQ",
|
118
|
+
"GR",
|
119
|
+
"GS",
|
120
|
+
"GT",
|
121
|
+
"GU",
|
122
|
+
"GW",
|
123
|
+
"GY",
|
124
|
+
"HK",
|
125
|
+
"HM",
|
126
|
+
"HN",
|
127
|
+
"HR",
|
128
|
+
"HT",
|
129
|
+
"HU",
|
130
|
+
"ID",
|
131
|
+
"IE",
|
132
|
+
"IL",
|
133
|
+
"IM",
|
134
|
+
"IN",
|
135
|
+
"IO",
|
136
|
+
"IQ",
|
137
|
+
"IR",
|
138
|
+
"IS",
|
139
|
+
"IT",
|
140
|
+
"JE",
|
141
|
+
"JM",
|
142
|
+
"JO",
|
143
|
+
"JP",
|
144
|
+
"KE",
|
145
|
+
"KG",
|
146
|
+
"KH",
|
147
|
+
"KI",
|
148
|
+
"KM",
|
149
|
+
"KN",
|
150
|
+
"KP",
|
151
|
+
"KR",
|
152
|
+
"KW",
|
153
|
+
"KY",
|
154
|
+
"KZ",
|
155
|
+
"LA",
|
156
|
+
"LB",
|
157
|
+
"LC",
|
158
|
+
"LI",
|
159
|
+
"LK",
|
160
|
+
"LR",
|
161
|
+
"LS",
|
162
|
+
"LT",
|
163
|
+
"LU",
|
164
|
+
"LV",
|
165
|
+
"LY",
|
166
|
+
"MA",
|
167
|
+
"MC",
|
168
|
+
"MD",
|
169
|
+
"ME",
|
170
|
+
"MF",
|
171
|
+
"MG",
|
172
|
+
"MH",
|
173
|
+
"MK",
|
174
|
+
"ML",
|
175
|
+
"MM",
|
176
|
+
"MN",
|
177
|
+
"MO",
|
178
|
+
"MP",
|
179
|
+
"MQ",
|
180
|
+
"MR",
|
181
|
+
"MS",
|
182
|
+
"MT",
|
183
|
+
"MU",
|
184
|
+
"MV",
|
185
|
+
"MW",
|
186
|
+
"MX",
|
187
|
+
"MY",
|
188
|
+
"MZ",
|
189
|
+
"NA",
|
190
|
+
"NC",
|
191
|
+
"NE",
|
192
|
+
"NF",
|
193
|
+
"NG",
|
194
|
+
"NI",
|
195
|
+
"NL",
|
196
|
+
"NO",
|
197
|
+
"NP",
|
198
|
+
"NR",
|
199
|
+
"NU",
|
200
|
+
"NZ",
|
201
|
+
"OM",
|
202
|
+
"PA",
|
203
|
+
"PE",
|
204
|
+
"PF",
|
205
|
+
"PG",
|
206
|
+
"PH",
|
207
|
+
"PK",
|
208
|
+
"PL",
|
209
|
+
"PM",
|
210
|
+
"PN",
|
211
|
+
"PR",
|
212
|
+
"PS",
|
213
|
+
"PT",
|
214
|
+
"PW",
|
215
|
+
"PY",
|
216
|
+
"QA",
|
217
|
+
"RE",
|
218
|
+
"RO",
|
219
|
+
"RS",
|
220
|
+
"RU",
|
221
|
+
"RW",
|
222
|
+
"SA",
|
223
|
+
"SB",
|
224
|
+
"SC",
|
225
|
+
"SD",
|
226
|
+
"SE",
|
227
|
+
"SG",
|
228
|
+
"SH",
|
229
|
+
"SI",
|
230
|
+
"SJ",
|
231
|
+
"SK",
|
232
|
+
"SL",
|
233
|
+
"SM",
|
234
|
+
"SN",
|
235
|
+
"SO",
|
236
|
+
"SR",
|
237
|
+
"SS",
|
238
|
+
"ST",
|
239
|
+
"SV",
|
240
|
+
"SX",
|
241
|
+
"SY",
|
242
|
+
"SZ",
|
243
|
+
"TC",
|
244
|
+
"TD",
|
245
|
+
"TF",
|
246
|
+
"TG",
|
247
|
+
"TH",
|
248
|
+
"TJ",
|
249
|
+
"TK",
|
250
|
+
"TL",
|
251
|
+
"TM",
|
252
|
+
"TN",
|
253
|
+
"TO",
|
254
|
+
"TR",
|
255
|
+
"TT",
|
256
|
+
"TV",
|
257
|
+
"TW",
|
258
|
+
"TZ",
|
259
|
+
"UA",
|
260
|
+
"UG",
|
261
|
+
"UM",
|
262
|
+
"US",
|
263
|
+
"UY",
|
264
|
+
"UZ",
|
265
|
+
"VA",
|
266
|
+
"VC",
|
267
|
+
"VE",
|
268
|
+
"VG",
|
269
|
+
"VI",
|
270
|
+
"VN",
|
271
|
+
"VU",
|
272
|
+
"WF",
|
273
|
+
"WS",
|
274
|
+
"YE",
|
275
|
+
"YT",
|
276
|
+
"ZA",
|
277
|
+
"ZM",
|
278
|
+
"ZW"
|
279
|
+
],
|
280
|
+
"type": "string"
|
281
|
+
},
|
282
|
+
"date": {
|
283
|
+
"$comment": "Note to tool implementers: it is necessary to cast YAML 'date' objects to string objects when validating against this schema.",
|
284
|
+
"examples": [
|
285
|
+
"1900-01-01",
|
286
|
+
"2020-12-31"
|
287
|
+
],
|
288
|
+
"format": "date",
|
289
|
+
"pattern": "^[0-9]{4}-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$",
|
290
|
+
"type": "string"
|
291
|
+
},
|
292
|
+
"doi": {
|
293
|
+
"description": "The DOI of the work (i.e., 10.5281/zenodo.1003150, not the resolver URL http://doi.org/10.5281/zenodo.1003150).",
|
294
|
+
"examples": [
|
295
|
+
"10.5281/zenodo.1003150"
|
296
|
+
],
|
297
|
+
"pattern": "^10\\.\\d{4,9}(\\.\\d+)?/[A-Za-z0-9:/_;\\-\\.\\(\\)\\[\\]\\\\]+$",
|
298
|
+
"type": "string"
|
299
|
+
},
|
300
|
+
"email": {
|
301
|
+
"description": "An email address.",
|
302
|
+
"pattern": "^[\\S]+@[\\S]+\\.[\\S]{2,}$",
|
303
|
+
"type": "string"
|
304
|
+
},
|
305
|
+
"entity": {
|
306
|
+
"additionalProperties": false,
|
307
|
+
"description": "An entity, i.e., an institution, team, research group, company, conference, etc., as opposed to a single natural person.",
|
308
|
+
"properties": {
|
309
|
+
"address": {
|
310
|
+
"$ref": "#/definitions/address",
|
311
|
+
"description": "The entity's address."
|
312
|
+
},
|
313
|
+
"alias": {
|
314
|
+
"$ref": "#/definitions/alias",
|
315
|
+
"description": "The entity's alias."
|
316
|
+
},
|
317
|
+
"city": {
|
318
|
+
"$ref": "#/definitions/city",
|
319
|
+
"description": "The entity's city."
|
320
|
+
},
|
321
|
+
"country": {
|
322
|
+
"$ref": "#/definitions/country",
|
323
|
+
"description": "The entity's country."
|
324
|
+
},
|
325
|
+
"date-end": {
|
326
|
+
"$ref": "#/definitions/date",
|
327
|
+
"description": "The entity's ending date, e.g., when the entity is a conference."
|
328
|
+
},
|
329
|
+
"date-start": {
|
330
|
+
"$ref": "#/definitions/date",
|
331
|
+
"description": "The entity's starting date, e.g., when the entity is a conference."
|
332
|
+
},
|
333
|
+
"email": {
|
334
|
+
"$ref": "#/definitions/email",
|
335
|
+
"description": "The entity's email address."
|
336
|
+
},
|
337
|
+
"fax": {
|
338
|
+
"$ref": "#/definitions/fax",
|
339
|
+
"description": "The entity's fax number."
|
340
|
+
},
|
341
|
+
"location": {
|
342
|
+
"description": "The entity's location, e.g., when the entity is a conference.",
|
343
|
+
"minLength": 1,
|
344
|
+
"type": "string"
|
345
|
+
},
|
346
|
+
"name": {
|
347
|
+
"description": "The entity's name.",
|
348
|
+
"minLength": 1,
|
349
|
+
"type": "string"
|
350
|
+
},
|
351
|
+
"orcid": {
|
352
|
+
"$ref": "#/definitions/orcid",
|
353
|
+
"description": "The entity's orcid."
|
354
|
+
},
|
355
|
+
"post-code": {
|
356
|
+
"$ref": "#/definitions/post-code",
|
357
|
+
"description": "The entity's post code."
|
358
|
+
},
|
359
|
+
"region": {
|
360
|
+
"$ref": "#/definitions/region",
|
361
|
+
"description": "The entity's region."
|
362
|
+
},
|
363
|
+
"tel": {
|
364
|
+
"$ref": "#/definitions/tel",
|
365
|
+
"description": "The entity's telephone number."
|
366
|
+
},
|
367
|
+
"website": {
|
368
|
+
"$ref": "#/definitions/url",
|
369
|
+
"description": "The entity's website."
|
370
|
+
}
|
371
|
+
},
|
372
|
+
"required": [
|
373
|
+
"name"
|
374
|
+
],
|
375
|
+
"type": "object"
|
376
|
+
},
|
377
|
+
"fax": {
|
378
|
+
"description": "A fax number.",
|
379
|
+
"minLength": 1,
|
380
|
+
"type": "string"
|
381
|
+
},
|
382
|
+
"identifier": {
|
383
|
+
"anyOf": [
|
384
|
+
{
|
385
|
+
"additionalProperties": false,
|
386
|
+
"properties": {
|
387
|
+
"description": {
|
388
|
+
"$ref": "#/definitions/identifier-description"
|
389
|
+
},
|
390
|
+
"type": {
|
391
|
+
"enum": [
|
392
|
+
"doi"
|
393
|
+
],
|
394
|
+
"type": "string"
|
395
|
+
},
|
396
|
+
"value": {
|
397
|
+
"$ref": "#/definitions/doi"
|
398
|
+
}
|
399
|
+
},
|
400
|
+
"required": [
|
401
|
+
"type",
|
402
|
+
"value"
|
403
|
+
],
|
404
|
+
"type": "object"
|
405
|
+
},
|
406
|
+
{
|
407
|
+
"additionalProperties": false,
|
408
|
+
"properties": {
|
409
|
+
"description": {
|
410
|
+
"$ref": "#/definitions/identifier-description"
|
411
|
+
},
|
412
|
+
"type": {
|
413
|
+
"enum": [
|
414
|
+
"url"
|
415
|
+
],
|
416
|
+
"type": "string"
|
417
|
+
},
|
418
|
+
"value": {
|
419
|
+
"$ref": "#/definitions/url"
|
420
|
+
}
|
421
|
+
},
|
422
|
+
"required": [
|
423
|
+
"type",
|
424
|
+
"value"
|
425
|
+
],
|
426
|
+
"type": "object"
|
427
|
+
},
|
428
|
+
{
|
429
|
+
"additionalProperties": false,
|
430
|
+
"properties": {
|
431
|
+
"description": {
|
432
|
+
"$ref": "#/definitions/identifier-description"
|
433
|
+
},
|
434
|
+
"type": {
|
435
|
+
"enum": [
|
436
|
+
"swh"
|
437
|
+
],
|
438
|
+
"type": "string"
|
439
|
+
},
|
440
|
+
"value": {
|
441
|
+
"$ref": "#/definitions/swh-identifier"
|
442
|
+
}
|
443
|
+
},
|
444
|
+
"required": [
|
445
|
+
"type",
|
446
|
+
"value"
|
447
|
+
],
|
448
|
+
"type": "object"
|
449
|
+
},
|
450
|
+
{
|
451
|
+
"additionalProperties": false,
|
452
|
+
"properties": {
|
453
|
+
"description": {
|
454
|
+
"$ref": "#/definitions/identifier-description"
|
455
|
+
},
|
456
|
+
"type": {
|
457
|
+
"enum": [
|
458
|
+
"other"
|
459
|
+
],
|
460
|
+
"type": "string"
|
461
|
+
},
|
462
|
+
"value": {
|
463
|
+
"minLength": 1,
|
464
|
+
"type": "string"
|
465
|
+
}
|
466
|
+
},
|
467
|
+
"required": [
|
468
|
+
"type",
|
469
|
+
"value"
|
470
|
+
],
|
471
|
+
"type": "object"
|
472
|
+
}
|
473
|
+
],
|
474
|
+
"description": "An identifier for a work."
|
475
|
+
},
|
476
|
+
"identifier-description": {
|
477
|
+
"description": "A description for a specific identifier value.",
|
478
|
+
"examples": [
|
479
|
+
"The version DOI for this version, which has a relation childOf with the concept DOI specified in the doi field in the root of this file.",
|
480
|
+
"The identifier provided by Archival Repository, which points to this version of the software."
|
481
|
+
],
|
482
|
+
"minLength": 1,
|
483
|
+
"type": "string"
|
484
|
+
},
|
485
|
+
"license": {
|
486
|
+
"description": "An SPDX license identifier.",
|
487
|
+
"oneOf": [
|
488
|
+
{
|
489
|
+
"$ref": "#/definitions/license-enum",
|
490
|
+
"examples": [
|
491
|
+
"Apache-2.0",
|
492
|
+
"MIT"
|
493
|
+
]
|
494
|
+
},
|
495
|
+
{
|
496
|
+
"$comment": "When there are multiple licenses, it is assumed their relationship is OR, not AND",
|
497
|
+
"examples": [
|
498
|
+
[
|
499
|
+
"Apache-2.0",
|
500
|
+
"MIT"
|
501
|
+
],
|
502
|
+
[
|
503
|
+
"GPL-3.0",
|
504
|
+
"GPL-3.0-or-later"
|
505
|
+
]
|
506
|
+
],
|
507
|
+
"items": {
|
508
|
+
"$ref": "#/definitions/license-enum"
|
509
|
+
},
|
510
|
+
"minItems": 1,
|
511
|
+
"type": "array",
|
512
|
+
"uniqueItems": true
|
513
|
+
}
|
514
|
+
]
|
515
|
+
},
|
516
|
+
"license-enum": {
|
517
|
+
"$comment": "Use https://github.com/citation-file-format/get-spdx-licenses to update this enum in the future",
|
518
|
+
"description": "SPDX license list; releaseDate=2021-05-14; source=https://raw.githubusercontent.com/spdx/license-list-data/master/json/licenses.json",
|
519
|
+
"enum": [
|
520
|
+
"0BSD",
|
521
|
+
"AAL",
|
522
|
+
"Abstyles",
|
523
|
+
"Adobe-2006",
|
524
|
+
"Adobe-Glyph",
|
525
|
+
"ADSL",
|
526
|
+
"AFL-1.1",
|
527
|
+
"AFL-1.2",
|
528
|
+
"AFL-2.0",
|
529
|
+
"AFL-2.1",
|
530
|
+
"AFL-3.0",
|
531
|
+
"Afmparse",
|
532
|
+
"AGPL-1.0",
|
533
|
+
"AGPL-1.0-only",
|
534
|
+
"AGPL-1.0-or-later",
|
535
|
+
"AGPL-3.0",
|
536
|
+
"AGPL-3.0-only",
|
537
|
+
"AGPL-3.0-or-later",
|
538
|
+
"Aladdin",
|
539
|
+
"AMDPLPA",
|
540
|
+
"AML",
|
541
|
+
"AMPAS",
|
542
|
+
"ANTLR-PD",
|
543
|
+
"ANTLR-PD-fallback",
|
544
|
+
"Apache-1.0",
|
545
|
+
"Apache-1.1",
|
546
|
+
"Apache-2.0",
|
547
|
+
"APAFML",
|
548
|
+
"APL-1.0",
|
549
|
+
"APSL-1.0",
|
550
|
+
"APSL-1.1",
|
551
|
+
"APSL-1.2",
|
552
|
+
"APSL-2.0",
|
553
|
+
"Artistic-1.0",
|
554
|
+
"Artistic-1.0-cl8",
|
555
|
+
"Artistic-1.0-Perl",
|
556
|
+
"Artistic-2.0",
|
557
|
+
"Bahyph",
|
558
|
+
"Barr",
|
559
|
+
"Beerware",
|
560
|
+
"BitTorrent-1.0",
|
561
|
+
"BitTorrent-1.1",
|
562
|
+
"blessing",
|
563
|
+
"BlueOak-1.0.0",
|
564
|
+
"Borceux",
|
565
|
+
"BSD-1-Clause",
|
566
|
+
"BSD-2-Clause",
|
567
|
+
"BSD-2-Clause-FreeBSD",
|
568
|
+
"BSD-2-Clause-NetBSD",
|
569
|
+
"BSD-2-Clause-Patent",
|
570
|
+
"BSD-2-Clause-Views",
|
571
|
+
"BSD-3-Clause",
|
572
|
+
"BSD-3-Clause-Attribution",
|
573
|
+
"BSD-3-Clause-Clear",
|
574
|
+
"BSD-3-Clause-LBNL",
|
575
|
+
"BSD-3-Clause-Modification",
|
576
|
+
"BSD-3-Clause-No-Nuclear-License",
|
577
|
+
"BSD-3-Clause-No-Nuclear-License-2014",
|
578
|
+
"BSD-3-Clause-No-Nuclear-Warranty",
|
579
|
+
"BSD-3-Clause-Open-MPI",
|
580
|
+
"BSD-4-Clause",
|
581
|
+
"BSD-4-Clause-Shortened",
|
582
|
+
"BSD-4-Clause-UC",
|
583
|
+
"BSD-Protection",
|
584
|
+
"BSD-Source-Code",
|
585
|
+
"BSL-1.0",
|
586
|
+
"BUSL-1.1",
|
587
|
+
"bzip2-1.0.5",
|
588
|
+
"bzip2-1.0.6",
|
589
|
+
"C-UDA-1.0",
|
590
|
+
"CAL-1.0",
|
591
|
+
"CAL-1.0-Combined-Work-Exception",
|
592
|
+
"Caldera",
|
593
|
+
"CATOSL-1.1",
|
594
|
+
"CC-BY-1.0",
|
595
|
+
"CC-BY-2.0",
|
596
|
+
"CC-BY-2.5",
|
597
|
+
"CC-BY-3.0",
|
598
|
+
"CC-BY-3.0-AT",
|
599
|
+
"CC-BY-3.0-US",
|
600
|
+
"CC-BY-4.0",
|
601
|
+
"CC-BY-NC-1.0",
|
602
|
+
"CC-BY-NC-2.0",
|
603
|
+
"CC-BY-NC-2.5",
|
604
|
+
"CC-BY-NC-3.0",
|
605
|
+
"CC-BY-NC-4.0",
|
606
|
+
"CC-BY-NC-ND-1.0",
|
607
|
+
"CC-BY-NC-ND-2.0",
|
608
|
+
"CC-BY-NC-ND-2.5",
|
609
|
+
"CC-BY-NC-ND-3.0",
|
610
|
+
"CC-BY-NC-ND-3.0-IGO",
|
611
|
+
"CC-BY-NC-ND-4.0",
|
612
|
+
"CC-BY-NC-SA-1.0",
|
613
|
+
"CC-BY-NC-SA-2.0",
|
614
|
+
"CC-BY-NC-SA-2.5",
|
615
|
+
"CC-BY-NC-SA-3.0",
|
616
|
+
"CC-BY-NC-SA-4.0",
|
617
|
+
"CC-BY-ND-1.0",
|
618
|
+
"CC-BY-ND-2.0",
|
619
|
+
"CC-BY-ND-2.5",
|
620
|
+
"CC-BY-ND-3.0",
|
621
|
+
"CC-BY-ND-4.0",
|
622
|
+
"CC-BY-SA-1.0",
|
623
|
+
"CC-BY-SA-2.0",
|
624
|
+
"CC-BY-SA-2.0-UK",
|
625
|
+
"CC-BY-SA-2.1-JP",
|
626
|
+
"CC-BY-SA-2.5",
|
627
|
+
"CC-BY-SA-3.0",
|
628
|
+
"CC-BY-SA-3.0-AT",
|
629
|
+
"CC-BY-SA-4.0",
|
630
|
+
"CC-PDDC",
|
631
|
+
"CC0-1.0",
|
632
|
+
"CDDL-1.0",
|
633
|
+
"CDDL-1.1",
|
634
|
+
"CDL-1.0",
|
635
|
+
"CDLA-Permissive-1.0",
|
636
|
+
"CDLA-Sharing-1.0",
|
637
|
+
"CECILL-1.0",
|
638
|
+
"CECILL-1.1",
|
639
|
+
"CECILL-2.0",
|
640
|
+
"CECILL-2.1",
|
641
|
+
"CECILL-B",
|
642
|
+
"CECILL-C",
|
643
|
+
"CERN-OHL-1.1",
|
644
|
+
"CERN-OHL-1.2",
|
645
|
+
"CERN-OHL-P-2.0",
|
646
|
+
"CERN-OHL-S-2.0",
|
647
|
+
"CERN-OHL-W-2.0",
|
648
|
+
"ClArtistic",
|
649
|
+
"CNRI-Jython",
|
650
|
+
"CNRI-Python",
|
651
|
+
"CNRI-Python-GPL-Compatible",
|
652
|
+
"Condor-1.1",
|
653
|
+
"copyleft-next-0.3.0",
|
654
|
+
"copyleft-next-0.3.1",
|
655
|
+
"CPAL-1.0",
|
656
|
+
"CPL-1.0",
|
657
|
+
"CPOL-1.02",
|
658
|
+
"Crossword",
|
659
|
+
"CrystalStacker",
|
660
|
+
"CUA-OPL-1.0",
|
661
|
+
"Cube",
|
662
|
+
"curl",
|
663
|
+
"D-FSL-1.0",
|
664
|
+
"diffmark",
|
665
|
+
"DOC",
|
666
|
+
"Dotseqn",
|
667
|
+
"DRL-1.0",
|
668
|
+
"DSDP",
|
669
|
+
"dvipdfm",
|
670
|
+
"ECL-1.0",
|
671
|
+
"ECL-2.0",
|
672
|
+
"eCos-2.0",
|
673
|
+
"EFL-1.0",
|
674
|
+
"EFL-2.0",
|
675
|
+
"eGenix",
|
676
|
+
"Entessa",
|
677
|
+
"EPICS",
|
678
|
+
"EPL-1.0",
|
679
|
+
"EPL-2.0",
|
680
|
+
"ErlPL-1.1",
|
681
|
+
"etalab-2.0",
|
682
|
+
"EUDatagrid",
|
683
|
+
"EUPL-1.0",
|
684
|
+
"EUPL-1.1",
|
685
|
+
"EUPL-1.2",
|
686
|
+
"Eurosym",
|
687
|
+
"Fair",
|
688
|
+
"Frameworx-1.0",
|
689
|
+
"FreeBSD-DOC",
|
690
|
+
"FreeImage",
|
691
|
+
"FSFAP",
|
692
|
+
"FSFUL",
|
693
|
+
"FSFULLR",
|
694
|
+
"FTL",
|
695
|
+
"GD",
|
696
|
+
"GFDL-1.1",
|
697
|
+
"GFDL-1.1-invariants-only",
|
698
|
+
"GFDL-1.1-invariants-or-later",
|
699
|
+
"GFDL-1.1-no-invariants-only",
|
700
|
+
"GFDL-1.1-no-invariants-or-later",
|
701
|
+
"GFDL-1.1-only",
|
702
|
+
"GFDL-1.1-or-later",
|
703
|
+
"GFDL-1.2",
|
704
|
+
"GFDL-1.2-invariants-only",
|
705
|
+
"GFDL-1.2-invariants-or-later",
|
706
|
+
"GFDL-1.2-no-invariants-only",
|
707
|
+
"GFDL-1.2-no-invariants-or-later",
|
708
|
+
"GFDL-1.2-only",
|
709
|
+
"GFDL-1.2-or-later",
|
710
|
+
"GFDL-1.3",
|
711
|
+
"GFDL-1.3-invariants-only",
|
712
|
+
"GFDL-1.3-invariants-or-later",
|
713
|
+
"GFDL-1.3-no-invariants-only",
|
714
|
+
"GFDL-1.3-no-invariants-or-later",
|
715
|
+
"GFDL-1.3-only",
|
716
|
+
"GFDL-1.3-or-later",
|
717
|
+
"Giftware",
|
718
|
+
"GL2PS",
|
719
|
+
"Glide",
|
720
|
+
"Glulxe",
|
721
|
+
"GLWTPL",
|
722
|
+
"gnuplot",
|
723
|
+
"GPL-1.0",
|
724
|
+
"GPL-1.0-only",
|
725
|
+
"GPL-1.0-or-later",
|
726
|
+
"GPL-1.0+",
|
727
|
+
"GPL-2.0",
|
728
|
+
"GPL-2.0-only",
|
729
|
+
"GPL-2.0-or-later",
|
730
|
+
"GPL-2.0-with-autoconf-exception",
|
731
|
+
"GPL-2.0-with-bison-exception",
|
732
|
+
"GPL-2.0-with-classpath-exception",
|
733
|
+
"GPL-2.0-with-font-exception",
|
734
|
+
"GPL-2.0-with-GCC-exception",
|
735
|
+
"GPL-2.0+",
|
736
|
+
"GPL-3.0",
|
737
|
+
"GPL-3.0-only",
|
738
|
+
"GPL-3.0-or-later",
|
739
|
+
"GPL-3.0-with-autoconf-exception",
|
740
|
+
"GPL-3.0-with-GCC-exception",
|
741
|
+
"GPL-3.0+",
|
742
|
+
"gSOAP-1.3b",
|
743
|
+
"HaskellReport",
|
744
|
+
"Hippocratic-2.1",
|
745
|
+
"HPND",
|
746
|
+
"HPND-sell-variant",
|
747
|
+
"HTMLTIDY",
|
748
|
+
"IBM-pibs",
|
749
|
+
"ICU",
|
750
|
+
"IJG",
|
751
|
+
"ImageMagick",
|
752
|
+
"iMatix",
|
753
|
+
"Imlib2",
|
754
|
+
"Info-ZIP",
|
755
|
+
"Intel",
|
756
|
+
"Intel-ACPI",
|
757
|
+
"Interbase-1.0",
|
758
|
+
"IPA",
|
759
|
+
"IPL-1.0",
|
760
|
+
"ISC",
|
761
|
+
"JasPer-2.0",
|
762
|
+
"JPNIC",
|
763
|
+
"JSON",
|
764
|
+
"LAL-1.2",
|
765
|
+
"LAL-1.3",
|
766
|
+
"Latex2e",
|
767
|
+
"Leptonica",
|
768
|
+
"LGPL-2.0",
|
769
|
+
"LGPL-2.0-only",
|
770
|
+
"LGPL-2.0-or-later",
|
771
|
+
"LGPL-2.0+",
|
772
|
+
"LGPL-2.1",
|
773
|
+
"LGPL-2.1-only",
|
774
|
+
"LGPL-2.1-or-later",
|
775
|
+
"LGPL-2.1+",
|
776
|
+
"LGPL-3.0",
|
777
|
+
"LGPL-3.0-only",
|
778
|
+
"LGPL-3.0-or-later",
|
779
|
+
"LGPL-3.0+",
|
780
|
+
"LGPLLR",
|
781
|
+
"Libpng",
|
782
|
+
"libpng-2.0",
|
783
|
+
"libselinux-1.0",
|
784
|
+
"libtiff",
|
785
|
+
"LiLiQ-P-1.1",
|
786
|
+
"LiLiQ-R-1.1",
|
787
|
+
"LiLiQ-Rplus-1.1",
|
788
|
+
"Linux-OpenIB",
|
789
|
+
"LPL-1.0",
|
790
|
+
"LPL-1.02",
|
791
|
+
"LPPL-1.0",
|
792
|
+
"LPPL-1.1",
|
793
|
+
"LPPL-1.2",
|
794
|
+
"LPPL-1.3a",
|
795
|
+
"LPPL-1.3c",
|
796
|
+
"MakeIndex",
|
797
|
+
"MirOS",
|
798
|
+
"MIT",
|
799
|
+
"MIT-0",
|
800
|
+
"MIT-advertising",
|
801
|
+
"MIT-CMU",
|
802
|
+
"MIT-enna",
|
803
|
+
"MIT-feh",
|
804
|
+
"MIT-Modern-Variant",
|
805
|
+
"MIT-open-group",
|
806
|
+
"MITNFA",
|
807
|
+
"Motosoto",
|
808
|
+
"mpich2",
|
809
|
+
"MPL-1.0",
|
810
|
+
"MPL-1.1",
|
811
|
+
"MPL-2.0",
|
812
|
+
"MPL-2.0-no-copyleft-exception",
|
813
|
+
"MS-PL",
|
814
|
+
"MS-RL",
|
815
|
+
"MTLL",
|
816
|
+
"MulanPSL-1.0",
|
817
|
+
"MulanPSL-2.0",
|
818
|
+
"Multics",
|
819
|
+
"Mup",
|
820
|
+
"NAIST-2003",
|
821
|
+
"NASA-1.3",
|
822
|
+
"Naumen",
|
823
|
+
"NBPL-1.0",
|
824
|
+
"NCGL-UK-2.0",
|
825
|
+
"NCSA",
|
826
|
+
"Net-SNMP",
|
827
|
+
"NetCDF",
|
828
|
+
"Newsletr",
|
829
|
+
"NGPL",
|
830
|
+
"NIST-PD",
|
831
|
+
"NIST-PD-fallback",
|
832
|
+
"NLOD-1.0",
|
833
|
+
"NLPL",
|
834
|
+
"Nokia",
|
835
|
+
"NOSL",
|
836
|
+
"Noweb",
|
837
|
+
"NPL-1.0",
|
838
|
+
"NPL-1.1",
|
839
|
+
"NPOSL-3.0",
|
840
|
+
"NRL",
|
841
|
+
"NTP",
|
842
|
+
"NTP-0",
|
843
|
+
"Nunit",
|
844
|
+
"O-UDA-1.0",
|
845
|
+
"OCCT-PL",
|
846
|
+
"OCLC-2.0",
|
847
|
+
"ODbL-1.0",
|
848
|
+
"ODC-By-1.0",
|
849
|
+
"OFL-1.0",
|
850
|
+
"OFL-1.0-no-RFN",
|
851
|
+
"OFL-1.0-RFN",
|
852
|
+
"OFL-1.1",
|
853
|
+
"OFL-1.1-no-RFN",
|
854
|
+
"OFL-1.1-RFN",
|
855
|
+
"OGC-1.0",
|
856
|
+
"OGDL-Taiwan-1.0",
|
857
|
+
"OGL-Canada-2.0",
|
858
|
+
"OGL-UK-1.0",
|
859
|
+
"OGL-UK-2.0",
|
860
|
+
"OGL-UK-3.0",
|
861
|
+
"OGTSL",
|
862
|
+
"OLDAP-1.1",
|
863
|
+
"OLDAP-1.2",
|
864
|
+
"OLDAP-1.3",
|
865
|
+
"OLDAP-1.4",
|
866
|
+
"OLDAP-2.0",
|
867
|
+
"OLDAP-2.0.1",
|
868
|
+
"OLDAP-2.1",
|
869
|
+
"OLDAP-2.2",
|
870
|
+
"OLDAP-2.2.1",
|
871
|
+
"OLDAP-2.2.2",
|
872
|
+
"OLDAP-2.3",
|
873
|
+
"OLDAP-2.4",
|
874
|
+
"OLDAP-2.5",
|
875
|
+
"OLDAP-2.6",
|
876
|
+
"OLDAP-2.7",
|
877
|
+
"OLDAP-2.8",
|
878
|
+
"OML",
|
879
|
+
"OpenSSL",
|
880
|
+
"OPL-1.0",
|
881
|
+
"OSET-PL-2.1",
|
882
|
+
"OSL-1.0",
|
883
|
+
"OSL-1.1",
|
884
|
+
"OSL-2.0",
|
885
|
+
"OSL-2.1",
|
886
|
+
"OSL-3.0",
|
887
|
+
"Parity-6.0.0",
|
888
|
+
"Parity-7.0.0",
|
889
|
+
"PDDL-1.0",
|
890
|
+
"PHP-3.0",
|
891
|
+
"PHP-3.01",
|
892
|
+
"Plexus",
|
893
|
+
"PolyForm-Noncommercial-1.0.0",
|
894
|
+
"PolyForm-Small-Business-1.0.0",
|
895
|
+
"PostgreSQL",
|
896
|
+
"PSF-2.0",
|
897
|
+
"psfrag",
|
898
|
+
"psutils",
|
899
|
+
"Python-2.0",
|
900
|
+
"Qhull",
|
901
|
+
"QPL-1.0",
|
902
|
+
"Rdisc",
|
903
|
+
"RHeCos-1.1",
|
904
|
+
"RPL-1.1",
|
905
|
+
"RPL-1.5",
|
906
|
+
"RPSL-1.0",
|
907
|
+
"RSA-MD",
|
908
|
+
"RSCPL",
|
909
|
+
"Ruby",
|
910
|
+
"SAX-PD",
|
911
|
+
"Saxpath",
|
912
|
+
"SCEA",
|
913
|
+
"Sendmail",
|
914
|
+
"Sendmail-8.23",
|
915
|
+
"SGI-B-1.0",
|
916
|
+
"SGI-B-1.1",
|
917
|
+
"SGI-B-2.0",
|
918
|
+
"SHL-0.5",
|
919
|
+
"SHL-0.51",
|
920
|
+
"SimPL-2.0",
|
921
|
+
"SISSL",
|
922
|
+
"SISSL-1.2",
|
923
|
+
"Sleepycat",
|
924
|
+
"SMLNJ",
|
925
|
+
"SMPPL",
|
926
|
+
"SNIA",
|
927
|
+
"Spencer-86",
|
928
|
+
"Spencer-94",
|
929
|
+
"Spencer-99",
|
930
|
+
"SPL-1.0",
|
931
|
+
"SSH-OpenSSH",
|
932
|
+
"SSH-short",
|
933
|
+
"SSPL-1.0",
|
934
|
+
"StandardML-NJ",
|
935
|
+
"SugarCRM-1.1.3",
|
936
|
+
"SWL",
|
937
|
+
"TAPR-OHL-1.0",
|
938
|
+
"TCL",
|
939
|
+
"TCP-wrappers",
|
940
|
+
"TMate",
|
941
|
+
"TORQUE-1.1",
|
942
|
+
"TOSL",
|
943
|
+
"TU-Berlin-1.0",
|
944
|
+
"TU-Berlin-2.0",
|
945
|
+
"UCL-1.0",
|
946
|
+
"Unicode-DFS-2015",
|
947
|
+
"Unicode-DFS-2016",
|
948
|
+
"Unicode-TOU",
|
949
|
+
"Unlicense",
|
950
|
+
"UPL-1.0",
|
951
|
+
"Vim",
|
952
|
+
"VOSTROM",
|
953
|
+
"VSL-1.0",
|
954
|
+
"W3C",
|
955
|
+
"W3C-19980720",
|
956
|
+
"W3C-20150513",
|
957
|
+
"Watcom-1.0",
|
958
|
+
"Wsuipa",
|
959
|
+
"WTFPL",
|
960
|
+
"wxWindows",
|
961
|
+
"X11",
|
962
|
+
"Xerox",
|
963
|
+
"XFree86-1.1",
|
964
|
+
"xinetd",
|
965
|
+
"Xnet",
|
966
|
+
"xpp",
|
967
|
+
"XSkat",
|
968
|
+
"YPL-1.0",
|
969
|
+
"YPL-1.1",
|
970
|
+
"Zed",
|
971
|
+
"Zend-2.0",
|
972
|
+
"Zimbra-1.3",
|
973
|
+
"Zimbra-1.4",
|
974
|
+
"Zlib",
|
975
|
+
"zlib-acknowledgement",
|
976
|
+
"ZPL-1.1",
|
977
|
+
"ZPL-2.0",
|
978
|
+
"ZPL-2.1"
|
979
|
+
],
|
980
|
+
"type": "string"
|
981
|
+
},
|
982
|
+
"orcid": {
|
983
|
+
"description": "Identifier for an author, see https://orcid.org.",
|
984
|
+
"format": "uri",
|
985
|
+
"pattern": "https://orcid\\.org/[0-9]{4}-[0-9]{4}-[0-9]{4}-[0-9]{3}[0-9X]{1}",
|
986
|
+
"type": "string"
|
987
|
+
},
|
988
|
+
"person": {
|
989
|
+
"additionalProperties": false,
|
990
|
+
"description": "A person.",
|
991
|
+
"properties": {
|
992
|
+
"address": {
|
993
|
+
"$ref": "#/definitions/address",
|
994
|
+
"description": "The person's address."
|
995
|
+
},
|
996
|
+
"affiliation": {
|
997
|
+
"description": "The person's affilitation.",
|
998
|
+
"minLength": 1,
|
999
|
+
"type": "string"
|
1000
|
+
},
|
1001
|
+
"alias": {
|
1002
|
+
"$ref": "#/definitions/alias",
|
1003
|
+
"description": "The person's alias."
|
1004
|
+
},
|
1005
|
+
"city": {
|
1006
|
+
"$ref": "#/definitions/city",
|
1007
|
+
"description": "The person's city."
|
1008
|
+
},
|
1009
|
+
"country": {
|
1010
|
+
"$ref": "#/definitions/country",
|
1011
|
+
"description": "The person's country."
|
1012
|
+
},
|
1013
|
+
"email": {
|
1014
|
+
"$ref": "#/definitions/email",
|
1015
|
+
"description": "The person's email address."
|
1016
|
+
},
|
1017
|
+
"family-names": {
|
1018
|
+
"description": "The person's family names.",
|
1019
|
+
"minLength": 1,
|
1020
|
+
"type": "string"
|
1021
|
+
},
|
1022
|
+
"fax": {
|
1023
|
+
"$ref": "#/definitions/fax",
|
1024
|
+
"description": "The person's fax number."
|
1025
|
+
},
|
1026
|
+
"given-names": {
|
1027
|
+
"description": "The person's given names.",
|
1028
|
+
"minLength": 1,
|
1029
|
+
"type": "string"
|
1030
|
+
},
|
1031
|
+
"name-particle": {
|
1032
|
+
"description": "The person's name particle, e.g., a nobiliary particle or a preposition meaning 'of' or 'from' (for example 'von' in 'Alexander von Humboldt').",
|
1033
|
+
"examples": [
|
1034
|
+
"von"
|
1035
|
+
],
|
1036
|
+
"minLength": 1,
|
1037
|
+
"type": "string"
|
1038
|
+
},
|
1039
|
+
"name-suffix": {
|
1040
|
+
"description": "The person's name-suffix, e.g. 'Jr.' for Sammy Davis Jr. or 'III' for Frank Edwin Wright III.",
|
1041
|
+
"examples": [
|
1042
|
+
"Jr.",
|
1043
|
+
"III"
|
1044
|
+
],
|
1045
|
+
"minLength": 1,
|
1046
|
+
"type": "string"
|
1047
|
+
},
|
1048
|
+
"orcid": {
|
1049
|
+
"$ref": "#/definitions/orcid",
|
1050
|
+
"description": "The person's ORCID."
|
1051
|
+
},
|
1052
|
+
"post-code": {
|
1053
|
+
"$ref": "#/definitions/post-code",
|
1054
|
+
"description": "The person's post-code."
|
1055
|
+
},
|
1056
|
+
"region": {
|
1057
|
+
"$ref": "#/definitions/region",
|
1058
|
+
"description": "The person's region."
|
1059
|
+
},
|
1060
|
+
"tel": {
|
1061
|
+
"$ref": "#/definitions/tel",
|
1062
|
+
"description": "The person's phone number."
|
1063
|
+
},
|
1064
|
+
"website": {
|
1065
|
+
"$ref": "#/definitions/url",
|
1066
|
+
"description": "The person's website."
|
1067
|
+
}
|
1068
|
+
},
|
1069
|
+
"type": "object"
|
1070
|
+
},
|
1071
|
+
"post-code": {
|
1072
|
+
"anyOf": [
|
1073
|
+
{
|
1074
|
+
"minLength": 1,
|
1075
|
+
"type": "string"
|
1076
|
+
},
|
1077
|
+
{
|
1078
|
+
"type": "number"
|
1079
|
+
}
|
1080
|
+
],
|
1081
|
+
"description": "A post code."
|
1082
|
+
},
|
1083
|
+
"reference": {
|
1084
|
+
"additionalProperties": false,
|
1085
|
+
"description": "A reference to a work.",
|
1086
|
+
"properties": {
|
1087
|
+
"abbreviation": {
|
1088
|
+
"description": "The abbreviation of a work.",
|
1089
|
+
"minLength": 1,
|
1090
|
+
"type": "string"
|
1091
|
+
},
|
1092
|
+
"abstract": {
|
1093
|
+
"description": "The abstract of a work.",
|
1094
|
+
"minLength": 1,
|
1095
|
+
"type": "string"
|
1096
|
+
},
|
1097
|
+
"authors": {
|
1098
|
+
"description": "The author(s) of a work.",
|
1099
|
+
"items": {
|
1100
|
+
"anyOf": [
|
1101
|
+
{
|
1102
|
+
"$ref": "#/definitions/person"
|
1103
|
+
},
|
1104
|
+
{
|
1105
|
+
"$ref": "#/definitions/entity"
|
1106
|
+
}
|
1107
|
+
]
|
1108
|
+
},
|
1109
|
+
"minItems": 1,
|
1110
|
+
"type": "array",
|
1111
|
+
"uniqueItems": true
|
1112
|
+
},
|
1113
|
+
"collection-doi": {
|
1114
|
+
"$ref": "#/definitions/doi",
|
1115
|
+
"description": "The DOI of a collection containing the work."
|
1116
|
+
},
|
1117
|
+
"collection-title": {
|
1118
|
+
"description": "The title of a collection or proceedings.",
|
1119
|
+
"minLength": 1,
|
1120
|
+
"type": "string"
|
1121
|
+
},
|
1122
|
+
"collection-type": {
|
1123
|
+
"description": "The type of a collection.",
|
1124
|
+
"minLength": 1,
|
1125
|
+
"type": "string"
|
1126
|
+
},
|
1127
|
+
"commit": {
|
1128
|
+
"$ref": "#/definitions/commit"
|
1129
|
+
},
|
1130
|
+
"conference": {
|
1131
|
+
"$ref": "#/definitions/entity",
|
1132
|
+
"description": "The conference where the work was presented."
|
1133
|
+
},
|
1134
|
+
"contact": {
|
1135
|
+
"description": "The contact person, group, company, etc. for a work.",
|
1136
|
+
"items": {
|
1137
|
+
"anyOf": [
|
1138
|
+
{
|
1139
|
+
"$ref": "#/definitions/person"
|
1140
|
+
},
|
1141
|
+
{
|
1142
|
+
"$ref": "#/definitions/entity"
|
1143
|
+
}
|
1144
|
+
]
|
1145
|
+
},
|
1146
|
+
"minItems": 1,
|
1147
|
+
"type": "array",
|
1148
|
+
"uniqueItems": true
|
1149
|
+
},
|
1150
|
+
"copyright": {
|
1151
|
+
"description": "The copyright information pertaining to the work.",
|
1152
|
+
"minLength": 1,
|
1153
|
+
"type": "string"
|
1154
|
+
},
|
1155
|
+
"data-type": {
|
1156
|
+
"description": "The data type of a data set.",
|
1157
|
+
"minLength": 1,
|
1158
|
+
"type": "string"
|
1159
|
+
},
|
1160
|
+
"database": {
|
1161
|
+
"description": "The name of the database where a work was accessed/is stored.",
|
1162
|
+
"minLength": 1,
|
1163
|
+
"type": "string"
|
1164
|
+
},
|
1165
|
+
"database-provider": {
|
1166
|
+
"$ref": "#/definitions/entity",
|
1167
|
+
"description": "The provider of the database where a work was accessed/is stored."
|
1168
|
+
},
|
1169
|
+
"date-accessed": {
|
1170
|
+
"$ref": "#/definitions/date",
|
1171
|
+
"description": "The date the work was accessed."
|
1172
|
+
},
|
1173
|
+
"date-downloaded": {
|
1174
|
+
"$ref": "#/definitions/date",
|
1175
|
+
"description": "The date the work has been downloaded."
|
1176
|
+
},
|
1177
|
+
"date-published": {
|
1178
|
+
"$ref": "#/definitions/date",
|
1179
|
+
"description": "The date the work has been published."
|
1180
|
+
},
|
1181
|
+
"date-released": {
|
1182
|
+
"$ref": "#/definitions/date",
|
1183
|
+
"description": "The date the work has been released."
|
1184
|
+
},
|
1185
|
+
"department": {
|
1186
|
+
"description": "The department where a work has been produced.",
|
1187
|
+
"minLength": 1,
|
1188
|
+
"type": "string"
|
1189
|
+
},
|
1190
|
+
"doi": {
|
1191
|
+
"$ref": "#/definitions/doi",
|
1192
|
+
"description": "The DOI of the work."
|
1193
|
+
},
|
1194
|
+
"edition": {
|
1195
|
+
"description": "The edition of the work.",
|
1196
|
+
"minLength": 1,
|
1197
|
+
"type": "string"
|
1198
|
+
},
|
1199
|
+
"editors": {
|
1200
|
+
"description": "The editor(s) of a work.",
|
1201
|
+
"items": {
|
1202
|
+
"anyOf": [
|
1203
|
+
{
|
1204
|
+
"$ref": "#/definitions/person"
|
1205
|
+
},
|
1206
|
+
{
|
1207
|
+
"$ref": "#/definitions/entity"
|
1208
|
+
}
|
1209
|
+
]
|
1210
|
+
},
|
1211
|
+
"minItems": 1,
|
1212
|
+
"type": "array",
|
1213
|
+
"uniqueItems": true
|
1214
|
+
},
|
1215
|
+
"editors-series": {
|
1216
|
+
"description": "The editor(s) of a series in which a work has been published.",
|
1217
|
+
"items": {
|
1218
|
+
"anyOf": [
|
1219
|
+
{
|
1220
|
+
"$ref": "#/definitions/person"
|
1221
|
+
},
|
1222
|
+
{
|
1223
|
+
"$ref": "#/definitions/entity"
|
1224
|
+
}
|
1225
|
+
]
|
1226
|
+
},
|
1227
|
+
"minItems": 1,
|
1228
|
+
"type": "array",
|
1229
|
+
"uniqueItems": true
|
1230
|
+
},
|
1231
|
+
"end": {
|
1232
|
+
"anyOf": [
|
1233
|
+
{
|
1234
|
+
"type": "integer"
|
1235
|
+
},
|
1236
|
+
{
|
1237
|
+
"minLength": 1,
|
1238
|
+
"type": "string"
|
1239
|
+
}
|
1240
|
+
],
|
1241
|
+
"description": "The end page of the work."
|
1242
|
+
},
|
1243
|
+
"entry": {
|
1244
|
+
"description": "An entry in the collection that constitutes the work.",
|
1245
|
+
"minLength": 1,
|
1246
|
+
"type": "string"
|
1247
|
+
},
|
1248
|
+
"filename": {
|
1249
|
+
"description": "The name of the electronic file containing the work.",
|
1250
|
+
"minLength": 1,
|
1251
|
+
"type": "string"
|
1252
|
+
},
|
1253
|
+
"format": {
|
1254
|
+
"description": "The format in which a work is represented.",
|
1255
|
+
"minLength": 1,
|
1256
|
+
"type": "string"
|
1257
|
+
},
|
1258
|
+
"identifiers": {
|
1259
|
+
"description": "The identifier(s) of the work.",
|
1260
|
+
"items": {
|
1261
|
+
"$ref": "#/definitions/identifier"
|
1262
|
+
},
|
1263
|
+
"minItems": 1,
|
1264
|
+
"type": "array",
|
1265
|
+
"uniqueItems": true
|
1266
|
+
},
|
1267
|
+
"institution": {
|
1268
|
+
"$ref": "#/definitions/entity",
|
1269
|
+
"description": "The institution where a work has been produced or published."
|
1270
|
+
},
|
1271
|
+
"isbn": {
|
1272
|
+
"description": "The ISBN of the work.",
|
1273
|
+
"pattern": "^[0-9\\- ]{10,17}X?$",
|
1274
|
+
"type": "string"
|
1275
|
+
},
|
1276
|
+
"issn": {
|
1277
|
+
"description": "The ISSN of the work.",
|
1278
|
+
"pattern": "^\\d{4}-\\d{3}[\\dxX]$",
|
1279
|
+
"type": "string"
|
1280
|
+
},
|
1281
|
+
"issue": {
|
1282
|
+
"anyOf": [
|
1283
|
+
{
|
1284
|
+
"minLength": 1,
|
1285
|
+
"type": "string"
|
1286
|
+
},
|
1287
|
+
{
|
1288
|
+
"type": "number"
|
1289
|
+
}
|
1290
|
+
],
|
1291
|
+
"description": "The issue of a periodical in which a work appeared."
|
1292
|
+
},
|
1293
|
+
"issue-date": {
|
1294
|
+
"description": "The publication date of the issue of a periodical in which a work appeared.",
|
1295
|
+
"minLength": 1,
|
1296
|
+
"type": "string"
|
1297
|
+
},
|
1298
|
+
"issue-title": {
|
1299
|
+
"description": "The name of the issue of a periodical in which the work appeared.",
|
1300
|
+
"minLength": 1,
|
1301
|
+
"type": "string"
|
1302
|
+
},
|
1303
|
+
"journal": {
|
1304
|
+
"description": "The name of the journal/magazine/newspaper/periodical where the work was published.",
|
1305
|
+
"minLength": 1,
|
1306
|
+
"type": "string"
|
1307
|
+
},
|
1308
|
+
"keywords": {
|
1309
|
+
"description": "Keywords pertaining to the work.",
|
1310
|
+
"items": {
|
1311
|
+
"minLength": 1,
|
1312
|
+
"type": "string"
|
1313
|
+
},
|
1314
|
+
"minItems": 1,
|
1315
|
+
"type": "array",
|
1316
|
+
"uniqueItems": true
|
1317
|
+
},
|
1318
|
+
"languages": {
|
1319
|
+
"description": "The language identifier(s) of the work according to ISO 639 language strings.",
|
1320
|
+
"items": {
|
1321
|
+
"maxLength": 3,
|
1322
|
+
"minLength": 2,
|
1323
|
+
"pattern": "^[a-z]{2,3}$",
|
1324
|
+
"type": "string"
|
1325
|
+
},
|
1326
|
+
"minItems": 1,
|
1327
|
+
"type": "array",
|
1328
|
+
"uniqueItems": true
|
1329
|
+
},
|
1330
|
+
"license": {
|
1331
|
+
"$ref": "#/definitions/license"
|
1332
|
+
},
|
1333
|
+
"license-url": {
|
1334
|
+
"$ref": "#/definitions/url",
|
1335
|
+
"description": "The URL of the license text under which the work is licensed (only for non-standard licenses not included in the SPDX License List)."
|
1336
|
+
},
|
1337
|
+
"loc-end": {
|
1338
|
+
"anyOf": [
|
1339
|
+
{
|
1340
|
+
"type": "integer"
|
1341
|
+
},
|
1342
|
+
{
|
1343
|
+
"minLength": 1,
|
1344
|
+
"type": "string"
|
1345
|
+
}
|
1346
|
+
],
|
1347
|
+
"description": "The line of code in the file where the work ends."
|
1348
|
+
},
|
1349
|
+
"loc-start": {
|
1350
|
+
"anyOf": [
|
1351
|
+
{
|
1352
|
+
"type": "integer"
|
1353
|
+
},
|
1354
|
+
{
|
1355
|
+
"minLength": 1,
|
1356
|
+
"type": "string"
|
1357
|
+
}
|
1358
|
+
],
|
1359
|
+
"description": "The line of code in the file where the work starts."
|
1360
|
+
},
|
1361
|
+
"location": {
|
1362
|
+
"$ref": "#/definitions/entity",
|
1363
|
+
"description": "The location of the work."
|
1364
|
+
},
|
1365
|
+
"medium": {
|
1366
|
+
"description": "The medium of the work.",
|
1367
|
+
"minLength": 1,
|
1368
|
+
"type": "string"
|
1369
|
+
},
|
1370
|
+
"month": {
|
1371
|
+
"anyOf": [
|
1372
|
+
{
|
1373
|
+
"maximum": 12,
|
1374
|
+
"minimum": 1,
|
1375
|
+
"type": "integer"
|
1376
|
+
},
|
1377
|
+
{
|
1378
|
+
"enum": [
|
1379
|
+
"1",
|
1380
|
+
"2",
|
1381
|
+
"3",
|
1382
|
+
"4",
|
1383
|
+
"5",
|
1384
|
+
"6",
|
1385
|
+
"7",
|
1386
|
+
"8",
|
1387
|
+
"9",
|
1388
|
+
"10",
|
1389
|
+
"11",
|
1390
|
+
"12"
|
1391
|
+
],
|
1392
|
+
"type": "string"
|
1393
|
+
}
|
1394
|
+
],
|
1395
|
+
"description": "The month in which a work has been published."
|
1396
|
+
},
|
1397
|
+
"nihmsid": {
|
1398
|
+
"description": "The NIHMSID of a work.",
|
1399
|
+
"minLength": 1,
|
1400
|
+
"type": "string"
|
1401
|
+
},
|
1402
|
+
"notes": {
|
1403
|
+
"description": "Notes pertaining to the work.",
|
1404
|
+
"minLength": 1,
|
1405
|
+
"type": "string"
|
1406
|
+
},
|
1407
|
+
"number": {
|
1408
|
+
"anyOf": [
|
1409
|
+
{
|
1410
|
+
"minLength": 1,
|
1411
|
+
"type": "string"
|
1412
|
+
},
|
1413
|
+
{
|
1414
|
+
"type": "number"
|
1415
|
+
}
|
1416
|
+
],
|
1417
|
+
"description": "The accession number for a work."
|
1418
|
+
},
|
1419
|
+
"number-volumes": {
|
1420
|
+
"anyOf": [
|
1421
|
+
{
|
1422
|
+
"type": "integer"
|
1423
|
+
},
|
1424
|
+
{
|
1425
|
+
"minLength": 1,
|
1426
|
+
"type": "string"
|
1427
|
+
}
|
1428
|
+
],
|
1429
|
+
"description": "The number of volumes making up the collection in which the work has been published."
|
1430
|
+
},
|
1431
|
+
"pages": {
|
1432
|
+
"anyOf": [
|
1433
|
+
{
|
1434
|
+
"type": "integer"
|
1435
|
+
},
|
1436
|
+
{
|
1437
|
+
"minLength": 1,
|
1438
|
+
"type": "string"
|
1439
|
+
}
|
1440
|
+
],
|
1441
|
+
"description": "The number of pages of the work."
|
1442
|
+
},
|
1443
|
+
"patent-states": {
|
1444
|
+
"description": "The states for which a patent is granted.",
|
1445
|
+
"items": {
|
1446
|
+
"minLength": 1,
|
1447
|
+
"type": "string"
|
1448
|
+
},
|
1449
|
+
"minItems": 1,
|
1450
|
+
"type": "array",
|
1451
|
+
"uniqueItems": true
|
1452
|
+
},
|
1453
|
+
"pmcid": {
|
1454
|
+
"description": "The PMCID of a work.",
|
1455
|
+
"pattern": "^PMC[0-9]{7}$",
|
1456
|
+
"type": "string"
|
1457
|
+
},
|
1458
|
+
"publisher": {
|
1459
|
+
"$ref": "#/definitions/entity",
|
1460
|
+
"description": "The publisher who has published the work."
|
1461
|
+
},
|
1462
|
+
"recipients": {
|
1463
|
+
"description": "The recipient(s) of a personal communication.",
|
1464
|
+
"items": {
|
1465
|
+
"anyOf": [
|
1466
|
+
{
|
1467
|
+
"$ref": "#/definitions/entity"
|
1468
|
+
},
|
1469
|
+
{
|
1470
|
+
"$ref": "#/definitions/person"
|
1471
|
+
}
|
1472
|
+
]
|
1473
|
+
},
|
1474
|
+
"minItems": 1,
|
1475
|
+
"type": "array",
|
1476
|
+
"uniqueItems": true
|
1477
|
+
},
|
1478
|
+
"repository": {
|
1479
|
+
"$ref": "#/definitions/url",
|
1480
|
+
"description": "The URL of the work in a repository (when the repository is neither a source code repository nor a build artifact repository)."
|
1481
|
+
},
|
1482
|
+
"repository-artifact": {
|
1483
|
+
"$ref": "#/definitions/url",
|
1484
|
+
"description": "The URL of the work in a build artifact/binary repository."
|
1485
|
+
},
|
1486
|
+
"repository-code": {
|
1487
|
+
"$ref": "#/definitions/url",
|
1488
|
+
"description": "The URL of the work in a source code repository."
|
1489
|
+
},
|
1490
|
+
"scope": {
|
1491
|
+
"description": "The scope of the reference, e.g., the section of the work it adheres to.",
|
1492
|
+
"minLength": 1,
|
1493
|
+
"type": "string"
|
1494
|
+
},
|
1495
|
+
"section": {
|
1496
|
+
"anyOf": [
|
1497
|
+
{
|
1498
|
+
"minLength": 1,
|
1499
|
+
"type": "string"
|
1500
|
+
},
|
1501
|
+
{
|
1502
|
+
"type": "number"
|
1503
|
+
}
|
1504
|
+
],
|
1505
|
+
"description": "The section of a work that is referenced."
|
1506
|
+
},
|
1507
|
+
"senders": {
|
1508
|
+
"description": "The sender(s) of a personal communication.",
|
1509
|
+
"items": {
|
1510
|
+
"anyOf": [
|
1511
|
+
{
|
1512
|
+
"$ref": "#/definitions/entity"
|
1513
|
+
},
|
1514
|
+
{
|
1515
|
+
"$ref": "#/definitions/person"
|
1516
|
+
}
|
1517
|
+
]
|
1518
|
+
},
|
1519
|
+
"minItems": 1,
|
1520
|
+
"type": "array",
|
1521
|
+
"uniqueItems": true
|
1522
|
+
},
|
1523
|
+
"start": {
|
1524
|
+
"anyOf": [
|
1525
|
+
{
|
1526
|
+
"type": "integer"
|
1527
|
+
},
|
1528
|
+
{
|
1529
|
+
"minLength": 1,
|
1530
|
+
"type": "string"
|
1531
|
+
}
|
1532
|
+
],
|
1533
|
+
"description": "The start page of the work."
|
1534
|
+
},
|
1535
|
+
"status": {
|
1536
|
+
"description": "The publication status of the work.",
|
1537
|
+
"enum": [
|
1538
|
+
"abstract",
|
1539
|
+
"advance-online",
|
1540
|
+
"in-preparation",
|
1541
|
+
"in-press",
|
1542
|
+
"preprint",
|
1543
|
+
"submitted"
|
1544
|
+
],
|
1545
|
+
"type": "string"
|
1546
|
+
},
|
1547
|
+
"term": {
|
1548
|
+
"description": "The term being referenced if the work is a dictionary or encyclopedia.",
|
1549
|
+
"minLength": 1,
|
1550
|
+
"type": "string"
|
1551
|
+
},
|
1552
|
+
"thesis-type": {
|
1553
|
+
"description": "The type of the thesis that is the work.",
|
1554
|
+
"minLength": 1,
|
1555
|
+
"type": "string"
|
1556
|
+
},
|
1557
|
+
"title": {
|
1558
|
+
"description": "The title of the work.",
|
1559
|
+
"minLength": 1,
|
1560
|
+
"type": "string"
|
1561
|
+
},
|
1562
|
+
"translators": {
|
1563
|
+
"description": "The translator(s) of a work.",
|
1564
|
+
"items": {
|
1565
|
+
"anyOf": [
|
1566
|
+
{
|
1567
|
+
"$ref": "#/definitions/entity"
|
1568
|
+
},
|
1569
|
+
{
|
1570
|
+
"$ref": "#/definitions/person"
|
1571
|
+
}
|
1572
|
+
]
|
1573
|
+
},
|
1574
|
+
"minItems": 1,
|
1575
|
+
"type": "array",
|
1576
|
+
"uniqueItems": true
|
1577
|
+
},
|
1578
|
+
"type": {
|
1579
|
+
"description": "The type of the work.",
|
1580
|
+
"enum": [
|
1581
|
+
"art",
|
1582
|
+
"article",
|
1583
|
+
"audiovisual",
|
1584
|
+
"bill",
|
1585
|
+
"blog",
|
1586
|
+
"book",
|
1587
|
+
"catalogue",
|
1588
|
+
"conference-paper",
|
1589
|
+
"conference",
|
1590
|
+
"data",
|
1591
|
+
"database",
|
1592
|
+
"dictionary",
|
1593
|
+
"edited-work",
|
1594
|
+
"encyclopedia",
|
1595
|
+
"film-broadcast",
|
1596
|
+
"generic",
|
1597
|
+
"government-document",
|
1598
|
+
"grant",
|
1599
|
+
"hearing",
|
1600
|
+
"historical-work",
|
1601
|
+
"legal-case",
|
1602
|
+
"legal-rule",
|
1603
|
+
"magazine-article",
|
1604
|
+
"manual",
|
1605
|
+
"map",
|
1606
|
+
"multimedia",
|
1607
|
+
"music",
|
1608
|
+
"newspaper-article",
|
1609
|
+
"pamphlet",
|
1610
|
+
"patent",
|
1611
|
+
"personal-communication",
|
1612
|
+
"proceedings",
|
1613
|
+
"report",
|
1614
|
+
"serial",
|
1615
|
+
"slides",
|
1616
|
+
"software-code",
|
1617
|
+
"software-container",
|
1618
|
+
"software-executable",
|
1619
|
+
"software-virtual-machine",
|
1620
|
+
"software",
|
1621
|
+
"sound-recording",
|
1622
|
+
"standard",
|
1623
|
+
"statute",
|
1624
|
+
"thesis",
|
1625
|
+
"unpublished",
|
1626
|
+
"video",
|
1627
|
+
"website"
|
1628
|
+
],
|
1629
|
+
"type": "string"
|
1630
|
+
},
|
1631
|
+
"url": {
|
1632
|
+
"$ref": "#/definitions/url",
|
1633
|
+
"description": "The URL of the work."
|
1634
|
+
},
|
1635
|
+
"version": {
|
1636
|
+
"$ref": "#/definitions/version",
|
1637
|
+
"description": "The version of the work."
|
1638
|
+
},
|
1639
|
+
"volume": {
|
1640
|
+
"anyOf": [
|
1641
|
+
{
|
1642
|
+
"type": "integer"
|
1643
|
+
},
|
1644
|
+
{
|
1645
|
+
"minLength": 1,
|
1646
|
+
"type": "string"
|
1647
|
+
}
|
1648
|
+
],
|
1649
|
+
"description": "The volume of the periodical in which a work appeared."
|
1650
|
+
},
|
1651
|
+
"volume-title": {
|
1652
|
+
"description": "The title of the volume in which the work appeared.",
|
1653
|
+
"minLength": 1,
|
1654
|
+
"type": "string"
|
1655
|
+
},
|
1656
|
+
"year": {
|
1657
|
+
"anyOf": [
|
1658
|
+
{
|
1659
|
+
"type": "integer"
|
1660
|
+
},
|
1661
|
+
{
|
1662
|
+
"minLength": 1,
|
1663
|
+
"type": "string"
|
1664
|
+
}
|
1665
|
+
],
|
1666
|
+
"description": "The year in which a work has been published."
|
1667
|
+
},
|
1668
|
+
"year-original": {
|
1669
|
+
"anyOf": [
|
1670
|
+
{
|
1671
|
+
"type": "integer"
|
1672
|
+
},
|
1673
|
+
{
|
1674
|
+
"minLength": 1,
|
1675
|
+
"type": "string"
|
1676
|
+
}
|
1677
|
+
],
|
1678
|
+
"description": "The year of the original publication."
|
1679
|
+
}
|
1680
|
+
},
|
1681
|
+
"required": [
|
1682
|
+
"authors",
|
1683
|
+
"title",
|
1684
|
+
"type"
|
1685
|
+
],
|
1686
|
+
"type": "object"
|
1687
|
+
},
|
1688
|
+
"region": {
|
1689
|
+
"description": "A region.",
|
1690
|
+
"minLength": 1,
|
1691
|
+
"type": "string"
|
1692
|
+
},
|
1693
|
+
"swh-identifier": {
|
1694
|
+
"$comment": "Software Heritage identifiers are documented here: https://docs.softwareheritage.org/devel/swh-model/persistent-identifiers.html.",
|
1695
|
+
"description": "The Software Heritage identifier (without further qualifiers such as origin, visit, anchor, path).",
|
1696
|
+
"examples": [
|
1697
|
+
"swh:1:cnt:94a9ed024d3859793618152ea559a168bbcbb5e2",
|
1698
|
+
"swh:1:dir:d198bc9d7a6bcf6db04f476d29314f157507d505",
|
1699
|
+
"swh:1:rev:309cf2674ee7a0749978cf8265ab91a60aea0f7d",
|
1700
|
+
"swh:1:rel:22ece559cc7cc2364edc5e5593d63ae8bd229f9f",
|
1701
|
+
"swh:1:snp:c7c108084bc0bf3d81436bf980b46e98bd338453"
|
1702
|
+
],
|
1703
|
+
"pattern": "^swh:1:(snp|rel|rev|dir|cnt):[0-9a-fA-F]{40}$",
|
1704
|
+
"type": "string"
|
1705
|
+
},
|
1706
|
+
"tel": {
|
1707
|
+
"description": "A phone number.",
|
1708
|
+
"minLength": 1,
|
1709
|
+
"type": "string"
|
1710
|
+
},
|
1711
|
+
"url": {
|
1712
|
+
"format": "uri",
|
1713
|
+
"pattern": "^(https|http|ftp|sftp)://.+",
|
1714
|
+
"type": "string"
|
1715
|
+
},
|
1716
|
+
"version": {
|
1717
|
+
"anyOf": [
|
1718
|
+
{
|
1719
|
+
"minLength": 1,
|
1720
|
+
"type": "string"
|
1721
|
+
},
|
1722
|
+
{
|
1723
|
+
"type": "number"
|
1724
|
+
}
|
1725
|
+
]
|
1726
|
+
}
|
1727
|
+
},
|
1728
|
+
"description": "A file with citation metadata for software or datasets.",
|
1729
|
+
"properties": {
|
1730
|
+
"abstract": {
|
1731
|
+
"description": "A description of the software or dataset.",
|
1732
|
+
"minLength": 1,
|
1733
|
+
"type": "string"
|
1734
|
+
},
|
1735
|
+
"authors": {
|
1736
|
+
"description": "The author(s) of the software or dataset.",
|
1737
|
+
"items": {
|
1738
|
+
"anyOf": [
|
1739
|
+
{
|
1740
|
+
"$ref": "#/definitions/person"
|
1741
|
+
},
|
1742
|
+
{
|
1743
|
+
"$ref": "#/definitions/entity"
|
1744
|
+
}
|
1745
|
+
]
|
1746
|
+
},
|
1747
|
+
"minItems": 1,
|
1748
|
+
"type": "array",
|
1749
|
+
"uniqueItems": true
|
1750
|
+
},
|
1751
|
+
"cff-version": {
|
1752
|
+
"description": "The version of CFF used for providing the citation metadata.",
|
1753
|
+
"examples": [
|
1754
|
+
"1.2.0"
|
1755
|
+
],
|
1756
|
+
"pattern": "^1\\.2\\.0$",
|
1757
|
+
"type": "string"
|
1758
|
+
},
|
1759
|
+
"commit": {
|
1760
|
+
"$ref": "#/definitions/commit"
|
1761
|
+
},
|
1762
|
+
"contact": {
|
1763
|
+
"description": "The contact person, group, company, etc. for the software or dataset.",
|
1764
|
+
"items": {
|
1765
|
+
"anyOf": [
|
1766
|
+
{
|
1767
|
+
"$ref": "#/definitions/person"
|
1768
|
+
},
|
1769
|
+
{
|
1770
|
+
"$ref": "#/definitions/entity"
|
1771
|
+
}
|
1772
|
+
]
|
1773
|
+
},
|
1774
|
+
"minItems": 1,
|
1775
|
+
"type": "array",
|
1776
|
+
"uniqueItems": true
|
1777
|
+
},
|
1778
|
+
"date-released": {
|
1779
|
+
"$ref": "#/definitions/date",
|
1780
|
+
"description": "The date the work has been released."
|
1781
|
+
},
|
1782
|
+
"doi": {
|
1783
|
+
"$ref": "#/definitions/doi"
|
1784
|
+
},
|
1785
|
+
"identifiers": {
|
1786
|
+
"description": "The identifiers of the software or dataset.",
|
1787
|
+
"items": {
|
1788
|
+
"$ref": "#/definitions/identifier"
|
1789
|
+
},
|
1790
|
+
"minItems": 1,
|
1791
|
+
"type": "array",
|
1792
|
+
"uniqueItems": true
|
1793
|
+
},
|
1794
|
+
"keywords": {
|
1795
|
+
"description": "Keywords that describe the work.",
|
1796
|
+
"items": {
|
1797
|
+
"minLength": 1,
|
1798
|
+
"type": "string"
|
1799
|
+
},
|
1800
|
+
"minItems": 1,
|
1801
|
+
"type": "array",
|
1802
|
+
"uniqueItems": true
|
1803
|
+
},
|
1804
|
+
"license": {
|
1805
|
+
"$ref": "#/definitions/license"
|
1806
|
+
},
|
1807
|
+
"license-url": {
|
1808
|
+
"$ref": "#/definitions/url",
|
1809
|
+
"description": "The URL of the license text under which the software or dataset is licensed (only for non-standard licenses not included in the SPDX License List)."
|
1810
|
+
},
|
1811
|
+
"message": {
|
1812
|
+
"default": "If you use this software, please cite it using the metadata from this file.",
|
1813
|
+
"description": "A message to the human reader of the file to let them know what to do with the citation metadata.",
|
1814
|
+
"examples": [
|
1815
|
+
"If you use this software, please cite it using the metadata from this file.",
|
1816
|
+
"Please cite this software using these metadata.",
|
1817
|
+
"Please cite this software using the metadata from 'preferred-citation'."
|
1818
|
+
],
|
1819
|
+
"minLength": 1,
|
1820
|
+
"type": "string"
|
1821
|
+
},
|
1822
|
+
"preferred-citation": {
|
1823
|
+
"$ref": "#/definitions/reference",
|
1824
|
+
"description": "A reference to another work that should be cited instead of the software or dataset itself."
|
1825
|
+
},
|
1826
|
+
"references": {
|
1827
|
+
"description": "Reference(s) to other creative works.",
|
1828
|
+
"items": {
|
1829
|
+
"$ref": "#/definitions/reference"
|
1830
|
+
},
|
1831
|
+
"minItems": 1,
|
1832
|
+
"type": "array",
|
1833
|
+
"uniqueItems": true
|
1834
|
+
},
|
1835
|
+
"repository": {
|
1836
|
+
"$ref": "#/definitions/url",
|
1837
|
+
"description": "The URL of the software or dataset in a repository (when the repository is neither a source code repository nor a build artifact repository).",
|
1838
|
+
"examples": [
|
1839
|
+
"https://edoc.hu-berlin.de/handle/18452/23016",
|
1840
|
+
"https://ascl.net/2105.013"
|
1841
|
+
]
|
1842
|
+
},
|
1843
|
+
"repository-artifact": {
|
1844
|
+
"$ref": "#/definitions/url",
|
1845
|
+
"description": "The URL of the software in a build artifact/binary repository."
|
1846
|
+
},
|
1847
|
+
"repository-code": {
|
1848
|
+
"$ref": "#/definitions/url",
|
1849
|
+
"description": "The URL of the software or dataset in a source code repository."
|
1850
|
+
},
|
1851
|
+
"title": {
|
1852
|
+
"description": "The name of the software or dataset.",
|
1853
|
+
"minLength": 1,
|
1854
|
+
"type": "string"
|
1855
|
+
},
|
1856
|
+
"type": {
|
1857
|
+
"default": "software",
|
1858
|
+
"description": "The type of the work.",
|
1859
|
+
"enum": [
|
1860
|
+
"dataset",
|
1861
|
+
"software"
|
1862
|
+
],
|
1863
|
+
"type": "string"
|
1864
|
+
},
|
1865
|
+
"url": {
|
1866
|
+
"$ref": "#/definitions/url",
|
1867
|
+
"description": "The URL of a landing page/website for the software or dataset."
|
1868
|
+
},
|
1869
|
+
"version": {
|
1870
|
+
"$ref": "#/definitions/version",
|
1871
|
+
"description": "The version of the software or dataset."
|
1872
|
+
}
|
1873
|
+
},
|
1874
|
+
"required": [
|
1875
|
+
"authors",
|
1876
|
+
"cff-version",
|
1877
|
+
"message",
|
1878
|
+
"title"
|
1879
|
+
],
|
1880
|
+
"title": "Citation File Format",
|
1881
|
+
"type": "object"
|
1882
|
+
}
|