bolognese 2.2.0 → 2.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (50) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/lib/bolognese/metadata_utils.rb +1 -0
  4. data/lib/bolognese/readers/citeproc_reader.rb +6 -0
  5. data/lib/bolognese/readers/crossref_reader.rb +37 -3
  6. data/lib/bolognese/readers/schema_org_reader.rb +21 -2
  7. data/lib/bolognese/utils.rb +12 -7
  8. data/lib/bolognese/version.rb +1 -1
  9. data/lib/bolognese/writers/schema_org_writer.rb +4 -0
  10. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +3 -1
  11. data/resources/kernel-4/include/datacite-dateType-v4.xsd +3 -1
  12. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +5 -2
  13. data/resources/kernel-4/include/datacite-relationType-v4.xsd +7 -3
  14. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +5 -1
  15. data/resources/kernel-4/include/datacite-titleType-v4.xsd +1 -1
  16. data/resources/kernel-4/metadata.xsd +2 -1
  17. data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
  18. data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
  19. data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
  20. data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
  21. data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
  22. data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
  23. data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
  24. data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
  25. data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
  26. data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
  27. data/resources/kernel-4.6/include/xml.xsd +286 -0
  28. data/resources/kernel-4.6/metadata.xsd +712 -0
  29. data/spec/datacite_utils_spec.rb +109 -1
  30. data/spec/fixtures/citeproc.json +6 -2
  31. data/spec/fixtures/crossref.xml +18 -0
  32. data/spec/fixtures/crossref_schema_4.6_values.xml +174 -0
  33. data/spec/fixtures/datacite-example-full-v4.6.xml +114 -0
  34. data/spec/fixtures/schema_org_4.6_attributes.json +108 -0
  35. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml +71 -0
  36. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml +71 -0
  37. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml +71 -0
  38. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml +71 -0
  39. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml +71 -0
  40. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml +71 -0
  41. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml +71 -0
  42. data/spec/readers/citeproc_reader_spec.rb +1 -0
  43. data/spec/readers/crossref_reader_spec.rb +31 -0
  44. data/spec/readers/datacite_reader_spec.rb +41 -0
  45. data/spec/readers/schema_org_reader_spec.rb +27 -0
  46. data/spec/writers/citeproc_writer_spec.rb +9 -0
  47. data/spec/writers/datacite_writer_spec.rb +71 -0
  48. data/spec/writers/jats_writer_spec.rb +1 -1
  49. data/spec/writers/schema_org_writer_spec.rb +36 -0
  50. metadata +24 -2
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ 2011-01-13 v1.0 - FZ, TIB, Germany
4
+ 2013-05 v3.0: Addition of ID to simpleType element, addition of values "IsIdenticalTo", "HasMetadata" & "IsMetadataFor"
5
+ 2014-08-20 v3.1: Addition of values "Reviews" & "IsReviewedBy" and "IsDerivedFrom" & "IsSourceOf"
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"-->
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">
12
+ <xs:simpleType name="relationType" id="relationType">
13
+ <xs:annotation>
14
+ <xs:documentation>Description of the relationship of the resource being registered (A) and the related resource (B).</xs:documentation>
15
+ </xs:annotation>
16
+ <xs:restriction base="xs:string">
17
+ <xs:enumeration value="IsCitedBy" />
18
+ <xs:enumeration value="Cites" />
19
+ <xs:enumeration value="IsSupplementTo" />
20
+ <xs:enumeration value="IsSupplementedBy" />
21
+ <xs:enumeration value="IsContinuedBy" />
22
+ <xs:enumeration value="Continues" />
23
+ <xs:enumeration value="IsNewVersionOf" />
24
+ <xs:enumeration value="IsPreviousVersionOf" />
25
+ <xs:enumeration value="IsPartOf" />
26
+ <xs:enumeration value="HasPart" />
27
+ <xs:enumeration value="IsPublishedIn" />
28
+ <xs:enumeration value="IsReferencedBy" />
29
+ <xs:enumeration value="References" />
30
+ <xs:enumeration value="IsDocumentedBy" />
31
+ <xs:enumeration value="Documents" />
32
+ <xs:enumeration value="IsCompiledBy" />
33
+ <xs:enumeration value="Compiles" />
34
+ <xs:enumeration value="IsVariantFormOf" />
35
+ <xs:enumeration value="IsOriginalFormOf" />
36
+ <xs:enumeration value="IsIdenticalTo" />
37
+ <xs:enumeration value="HasMetadata" />
38
+ <xs:enumeration value="IsMetadataFor" />
39
+ <xs:enumeration value="Reviews" />
40
+ <xs:enumeration value="IsReviewedBy" />
41
+ <xs:enumeration value="IsDerivedFrom" />
42
+ <xs:enumeration value="IsSourceOf" />
43
+ <xs:enumeration value="Describes" />
44
+ <xs:enumeration value="IsDescribedBy" />
45
+ <xs:enumeration value="HasVersion" />
46
+ <xs:enumeration value="IsVersionOf" />
47
+ <xs:enumeration value="Requires" />
48
+ <xs:enumeration value="IsRequiredBy" />
49
+ <xs:enumeration value="Obsoletes" />
50
+ <xs:enumeration value="IsObsoletedBy" />
51
+ <xs:enumeration value="Collects" />
52
+ <xs:enumeration value="IsCollectedBy" />
53
+ <xs:enumeration value="HasTranslation" />
54
+ <xs:enumeration value="IsTranslationOf" />
55
+ </xs:restriction>
56
+ </xs:simpleType>
57
+ </xs:schema>
@@ -0,0 +1,49 @@
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 "Audiovisual", "Workflow" & "Other"; deleted value "Film"
4
+ 2017-10-23 v4.1: Addition of value "DataPaper"
5
+ 2020-01-14 v4.4: Addition of values "Book", "Book Chapter", "ComputationalNotebook", "ConferencePaper", "ConferenceProceeding".
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"-->
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">
10
+ <xs:simpleType name="resourceType" id="resourceType">
11
+ <xs:annotation>
12
+ <xs:documentation>The general type of a resource.</xs:documentation>
13
+ </xs:annotation>
14
+ <xs:restriction base="xs:string">
15
+ <xs:enumeration value="Audiovisual" />
16
+ <xs:enumeration value="Award" />
17
+ <xs:enumeration value="Book" />
18
+ <xs:enumeration value="BookChapter" />
19
+ <xs:enumeration value="Collection" />
20
+ <xs:enumeration value="ComputationalNotebook" />
21
+ <xs:enumeration value="ConferencePaper" />
22
+ <xs:enumeration value="ConferenceProceeding" />
23
+ <xs:enumeration value="DataPaper" />
24
+ <xs:enumeration value="Dataset" />
25
+ <xs:enumeration value="Dissertation" />
26
+ <xs:enumeration value="Event" />
27
+ <xs:enumeration value="Image" />
28
+ <xs:enumeration value="Instrument" />
29
+ <xs:enumeration value="InteractiveResource" />
30
+ <xs:enumeration value="Journal" />
31
+ <xs:enumeration value="JournalArticle" />
32
+ <xs:enumeration value="Model" />
33
+ <xs:enumeration value="OutputManagementPlan" />
34
+ <xs:enumeration value="PeerReview" />
35
+ <xs:enumeration value="PhysicalObject" />
36
+ <xs:enumeration value="Preprint" />
37
+ <xs:enumeration value="Project" />
38
+ <xs:enumeration value="Report" />
39
+ <xs:enumeration value="Service" />
40
+ <xs:enumeration value="Software" />
41
+ <xs:enumeration value="Sound" />
42
+ <xs:enumeration value="Standard" />
43
+ <xs:enumeration value="StudyRegistration" />
44
+ <xs:enumeration value="Text" />
45
+ <xs:enumeration value="Workflow" />
46
+ <xs:enumeration value="Other" />
47
+ </xs:restriction>
48
+ </xs:simpleType>
49
+ </xs:schema>
@@ -0,0 +1,14 @@
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
4
+ 2015-02-12 v4.0: Added value "Other" -->
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="titleType" id="titleType">
7
+ <xs:restriction base="xs:string">
8
+ <xs:enumeration value="AlternativeTitle" />
9
+ <xs:enumeration value="Subtitle" />
10
+ <xs:enumeration value="TranslatedTitle" />
11
+ <xs:enumeration value="Other" />
12
+ </xs:restriction>
13
+ </xs:simpleType>
14
+ </xs:schema>
@@ -0,0 +1,286 @@
1
+ <?xml version='1.0'?>
2
+ <?xml-stylesheet href="../../2008/09/xsd.xsl" type="text/xsl"?>
3
+ <xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
4
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
5
+ xmlns ="http://www.w3.org/1999/xhtml"
6
+ xml:lang="en">
7
+
8
+ <xs:annotation>
9
+ <xs:documentation>
10
+ <div>
11
+ <h1>About the XML namespace</h1>
12
+
13
+ <div class="bodytext">
14
+ <p>
15
+ This schema document describes the XML namespace, in a form
16
+ suitable for import by other schema documents.
17
+ </p>
18
+ <p>
19
+ See <a href="http://www.w3.org/XML/1998/namespace.html">
20
+ http://www.w3.org/XML/1998/namespace.html</a> and
21
+ <a href="http://www.w3.org/TR/REC-xml">
22
+ http://www.w3.org/TR/REC-xml</a> for information
23
+ about this namespace.
24
+ </p>
25
+ <p>
26
+ Note that local names in this namespace are intended to be
27
+ defined only by the World Wide Web Consortium or its subgroups.
28
+ The names currently defined in this namespace are listed below.
29
+ They should not be used with conflicting semantics by any Working
30
+ Group, specification, or document instance.
31
+ </p>
32
+ <p>
33
+ See further below in this document for more information about <a
34
+ href="#usage">how to refer to this schema document from your own
35
+ XSD schema documents</a> and about <a href="#nsversioning">the
36
+ namespace-versioning policy governing this schema document</a>.
37
+ </p>
38
+ </div>
39
+ </div>
40
+ </xs:documentation>
41
+ </xs:annotation>
42
+
43
+ <xs:attribute name="lang">
44
+ <xs:annotation>
45
+ <xs:documentation>
46
+ <div>
47
+
48
+ <h3>lang (as an attribute name)</h3>
49
+ <p>
50
+ denotes an attribute whose value
51
+ is a language code for the natural language of the content of
52
+ any element; its value is inherited. This name is reserved
53
+ by virtue of its definition in the XML specification.</p>
54
+
55
+ </div>
56
+ <div>
57
+ <h4>Notes</h4>
58
+ <p>
59
+ Attempting to install the relevant ISO 2- and 3-letter
60
+ codes as the enumerated possible values is probably never
61
+ going to be a realistic possibility.
62
+ </p>
63
+ <p>
64
+ See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
65
+ http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
66
+ and the IANA language subtag registry at
67
+ <a href="http://www.iana.org/assignments/language-subtag-registry">
68
+ http://www.iana.org/assignments/language-subtag-registry</a>
69
+ for further information.
70
+ </p>
71
+ <p>
72
+ The union allows for the 'un-declaration' of xml:lang with
73
+ the empty string.
74
+ </p>
75
+ </div>
76
+ </xs:documentation>
77
+ </xs:annotation>
78
+ <xs:simpleType>
79
+ <xs:union memberTypes="xs:language">
80
+ <xs:simpleType>
81
+ <xs:restriction base="xs:string">
82
+ <xs:enumeration value=""/>
83
+ </xs:restriction>
84
+ </xs:simpleType>
85
+ </xs:union>
86
+ </xs:simpleType>
87
+ </xs:attribute>
88
+
89
+ <xs:attribute name="space">
90
+ <xs:annotation>
91
+ <xs:documentation>
92
+ <div>
93
+
94
+ <h3>space (as an attribute name)</h3>
95
+ <p>
96
+ denotes an attribute whose
97
+ value is a keyword indicating what whitespace processing
98
+ discipline is intended for the content of the element; its
99
+ value is inherited. This name is reserved by virtue of its
100
+ definition in the XML specification.</p>
101
+
102
+ </div>
103
+ </xs:documentation>
104
+ </xs:annotation>
105
+ <xs:simpleType>
106
+ <xs:restriction base="xs:NCName">
107
+ <xs:enumeration value="default"/>
108
+ <xs:enumeration value="preserve"/>
109
+ </xs:restriction>
110
+ </xs:simpleType>
111
+ </xs:attribute>
112
+
113
+ <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
114
+ <xs:documentation>
115
+ <div>
116
+
117
+ <h3>base (as an attribute name)</h3>
118
+ <p>
119
+ denotes an attribute whose value
120
+ provides a URI to be used as the base for interpreting any
121
+ relative URIs in the scope of the element on which it
122
+ appears; its value is inherited. This name is reserved
123
+ by virtue of its definition in the XML Base specification.</p>
124
+
125
+ <p>
126
+ See <a
127
+ href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
128
+ for information about this attribute.
129
+ </p>
130
+ </div>
131
+ </xs:documentation>
132
+ </xs:annotation>
133
+ </xs:attribute>
134
+
135
+ <xs:attribute name="id" type="xs:ID">
136
+ <xs:annotation>
137
+ <xs:documentation>
138
+ <div>
139
+
140
+ <h3>id (as an attribute name)</h3>
141
+ <p>
142
+ denotes an attribute whose value
143
+ should be interpreted as if declared to be of type ID.
144
+ This name is reserved by virtue of its definition in the
145
+ xml:id specification.</p>
146
+
147
+ <p>
148
+ See <a
149
+ href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
150
+ for information about this attribute.
151
+ </p>
152
+ </div>
153
+ </xs:documentation>
154
+ </xs:annotation>
155
+ </xs:attribute>
156
+
157
+ <xs:attributeGroup name="specialAttrs">
158
+ <xs:attribute ref="xml:base"/>
159
+ <xs:attribute ref="xml:lang"/>
160
+ <xs:attribute ref="xml:space"/>
161
+ <xs:attribute ref="xml:id"/>
162
+ </xs:attributeGroup>
163
+
164
+ <xs:annotation>
165
+ <xs:documentation>
166
+ <div>
167
+
168
+ <h3>Father (in any context at all)</h3>
169
+
170
+ <div class="bodytext">
171
+ <p>
172
+ denotes Jon Bosak, the chair of
173
+ the original XML Working Group. This name is reserved by
174
+ the following decision of the W3C XML Plenary and
175
+ XML Coordination groups:
176
+ </p>
177
+ <blockquote>
178
+ <p>
179
+ In appreciation for his vision, leadership and
180
+ dedication the W3C XML Plenary on this 10th day of
181
+ February, 2000, reserves for Jon Bosak in perpetuity
182
+ the XML name "xml:Father".
183
+ </p>
184
+ </blockquote>
185
+ </div>
186
+ </div>
187
+ </xs:documentation>
188
+ </xs:annotation>
189
+
190
+ <xs:annotation>
191
+ <xs:documentation>
192
+ <div xml:id="usage" id="usage">
193
+ <h2><a name="usage">About this schema document</a></h2>
194
+
195
+ <div class="bodytext">
196
+ <p>
197
+ This schema defines attributes and an attribute group suitable
198
+ for use by schemas wishing to allow <code>xml:base</code>,
199
+ <code>xml:lang</code>, <code>xml:space</code> or
200
+ <code>xml:id</code> attributes on elements they define.
201
+ </p>
202
+ <p>
203
+ To enable this, such a schema must import this schema for
204
+ the XML namespace, e.g. as follows:
205
+ </p>
206
+ <pre>
207
+ &lt;schema . . .>
208
+ . . .
209
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
210
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
211
+ </pre>
212
+ <p>
213
+ or
214
+ </p>
215
+ <pre>
216
+ &lt;import namespace="http://www.w3.org/XML/1998/namespace"
217
+ schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
218
+ </pre>
219
+ <p>
220
+ Subsequently, qualified reference to any of the attributes or the
221
+ group defined below will have the desired effect, e.g.
222
+ </p>
223
+ <pre>
224
+ &lt;type . . .>
225
+ . . .
226
+ &lt;attributeGroup ref="xml:specialAttrs"/>
227
+ </pre>
228
+ <p>
229
+ will define a type which will schema-validate an instance element
230
+ with any of those attributes.
231
+ </p>
232
+ </div>
233
+ </div>
234
+ </xs:documentation>
235
+ </xs:annotation>
236
+
237
+ <xs:annotation>
238
+ <xs:documentation>
239
+ <div id="nsversioning" xml:id="nsversioning">
240
+ <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
241
+ <div class="bodytext">
242
+ <p>
243
+ In keeping with the XML Schema WG's standard versioning
244
+ policy, this schema document will persist at
245
+ <a href="http://www.w3.org/2009/01/xml.xsd">
246
+ http://www.w3.org/2009/01/xml.xsd</a>.
247
+ </p>
248
+ <p>
249
+ At the date of issue it can also be found at
250
+ <a href="http://www.w3.org/2001/xml.xsd">
251
+ http://www.w3.org/2001/xml.xsd</a>.
252
+ </p>
253
+ <p>
254
+ The schema document at that URI may however change in the future,
255
+ in order to remain compatible with the latest version of XML
256
+ Schema itself, or with the XML namespace itself. In other words,
257
+ if the XML Schema or XML namespaces change, the version of this
258
+ document at <a href="http://www.w3.org/2001/xml.xsd">
259
+ http://www.w3.org/2001/xml.xsd
260
+ </a>
261
+ will change accordingly; the version at
262
+ <a href="http://www.w3.org/2009/01/xml.xsd">
263
+ http://www.w3.org/2009/01/xml.xsd
264
+ </a>
265
+ will not change.
266
+ </p>
267
+ <p>
268
+ Previous dated (and unchanging) versions of this schema
269
+ document are at:
270
+ </p>
271
+ <ul>
272
+ <li><a href="http://www.w3.org/2009/01/xml.xsd">
273
+ http://www.w3.org/2009/01/xml.xsd</a></li>
274
+ <li><a href="http://www.w3.org/2007/08/xml.xsd">
275
+ http://www.w3.org/2007/08/xml.xsd</a></li>
276
+ <li><a href="http://www.w3.org/2004/10/xml.xsd">
277
+ http://www.w3.org/2004/10/xml.xsd</a></li>
278
+ <li><a href="http://www.w3.org/2001/03/xml.xsd">
279
+ http://www.w3.org/2001/03/xml.xsd</a></li>
280
+ </ul>
281
+ </div>
282
+ </div>
283
+ </xs:documentation>
284
+ </xs:annotation>
285
+
286
+ </xs:schema>