bolognese 0.4.3 → 2.6.1

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.
Files changed (326) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/build.yml +9 -0
  3. data/.github/workflows/changelog.yml +36 -0
  4. data/.github/workflows/ci.yml +22 -0
  5. data/.github/workflows/pull-request.yml +9 -0
  6. data/.github/workflows/release.yml +32 -0
  7. data/.gitignore +4 -0
  8. data/.rubocop.yml +658 -0
  9. data/CHANGELOG.md +1864 -0
  10. data/CITATION +17 -0
  11. data/Gemfile +1 -1
  12. data/Gemfile.lock +250 -98
  13. data/README.md +963 -21
  14. data/Rakefile +1 -0
  15. data/bin/bolognese +5 -1
  16. data/bolognese.gemspec +33 -21
  17. data/lib/bolognese/array.rb +13 -0
  18. data/lib/bolognese/author_utils.rb +147 -33
  19. data/lib/bolognese/citeproc_extensions.rb +48 -0
  20. data/lib/bolognese/cli.rb +28 -21
  21. data/lib/bolognese/datacite_utils.rb +292 -104
  22. data/lib/bolognese/doi_utils.rb +44 -20
  23. data/lib/bolognese/metadata.rb +249 -23
  24. data/lib/bolognese/metadata_utils.rb +228 -0
  25. data/lib/bolognese/pubmed.rb +2 -0
  26. data/lib/bolognese/readers/bibtex_reader.rb +100 -0
  27. data/lib/bolognese/readers/citeproc_reader.rb +125 -0
  28. data/lib/bolognese/readers/codemeta_reader.rb +108 -0
  29. data/lib/bolognese/readers/crosscite_reader.rb +17 -0
  30. data/lib/bolognese/readers/crossref_reader.rb +413 -0
  31. data/lib/bolognese/readers/datacite_json_reader.rb +17 -0
  32. data/lib/bolognese/readers/datacite_reader.rb +341 -0
  33. data/lib/bolognese/readers/npm_reader.rb +115 -0
  34. data/lib/bolognese/readers/ris_reader.rb +114 -0
  35. data/lib/bolognese/readers/schema_org_reader.rb +264 -0
  36. data/lib/bolognese/string.rb +3 -1
  37. data/lib/bolognese/utils.rb +1463 -25
  38. data/lib/bolognese/version.rb +1 -1
  39. data/lib/bolognese/whitelist_scrubber.rb +47 -0
  40. data/lib/bolognese/writers/bibtex_writer.rb +32 -0
  41. data/lib/bolognese/writers/citation_writer.rb +14 -0
  42. data/lib/bolognese/writers/citeproc_writer.rb +11 -0
  43. data/lib/bolognese/writers/codemeta_writer.rb +29 -0
  44. data/lib/bolognese/writers/crosscite_writer.rb +11 -0
  45. data/lib/bolognese/writers/crossref_writer.rb +11 -0
  46. data/lib/bolognese/writers/csv_writer.rb +24 -0
  47. data/lib/bolognese/writers/datacite_json_writer.rb +13 -0
  48. data/lib/bolognese/writers/datacite_writer.rb +12 -0
  49. data/lib/bolognese/writers/jats_writer.rb +137 -0
  50. data/lib/bolognese/writers/rdf_xml_writer.rb +11 -0
  51. data/lib/bolognese/writers/ris_writer.rb +29 -0
  52. data/lib/bolognese/writers/schema_org_writer.rb +55 -0
  53. data/lib/bolognese/writers/turtle_writer.rb +11 -0
  54. data/lib/bolognese.rb +19 -5
  55. data/package.json +12 -0
  56. data/resources/2008/09/xsd.xsl +997 -0
  57. data/resources/datacite-contributorType-v4.xsd +35 -0
  58. data/resources/datacite-dateType-v4.xsd +25 -0
  59. data/resources/datacite-descriptionType-v4.xsd +19 -0
  60. data/resources/datacite-funderIdentifierType-v4.xsd +15 -0
  61. data/resources/datacite-nameType-v4.xsd +10 -0
  62. data/resources/datacite-relatedIdentifierType-v4.xsd +34 -0
  63. data/resources/datacite-relationType-v4.xsd +49 -0
  64. data/resources/datacite-resourceType-v4.xsd +28 -0
  65. data/resources/datacite-titleType-v4.xsd +14 -0
  66. data/resources/kernel-2.1/include/datacite-contributorType-v1.1.xsd +22 -0
  67. data/resources/kernel-2.1/include/datacite-contributorType-v2.xsd +3 -0
  68. data/resources/kernel-2.1/include/datacite-dateType-v1.1.xsd +31 -0
  69. data/resources/kernel-2.1/include/datacite-dateType-v2.xsd +3 -0
  70. data/resources/kernel-2.1/include/datacite-descriptionType-v1.1.xsd +14 -0
  71. data/resources/kernel-2.1/include/datacite-descriptionType-v2.xsd +3 -0
  72. data/resources/kernel-2.1/include/datacite-relatedIdentifierType-v1.1.xsd +24 -0
  73. data/resources/kernel-2.1/include/datacite-relatedIdentifierType-v2.xsd +3 -0
  74. data/resources/kernel-2.1/include/datacite-relationType-v1.1.xsd +29 -0
  75. data/resources/kernel-2.1/include/datacite-relationType-v2.xsd +3 -0
  76. data/resources/kernel-2.1/include/datacite-resourceType-v1.1.xsd +22 -0
  77. data/resources/kernel-2.1/include/datacite-resourceType-v2.xsd +3 -0
  78. data/resources/kernel-2.1/include/datacite-titleType-v1.1.xsd +11 -0
  79. data/resources/kernel-2.1/include/datacite-titleType-v2.xsd +3 -0
  80. data/resources/kernel-2.1/metadata.xsd +315 -0
  81. data/resources/kernel-2.2/include/datacite-contributorType-v2.xsd +29 -0
  82. data/resources/kernel-2.2/include/datacite-dateType-v2.xsd +21 -0
  83. data/resources/kernel-2.2/include/datacite-descriptionType-v2.xsd +15 -0
  84. data/resources/kernel-2.2/include/datacite-relatedIdentifierType-v2.xsd +25 -0
  85. data/resources/kernel-2.2/include/datacite-relationType-v2.xsd +29 -0
  86. data/resources/kernel-2.2/include/datacite-resourceType-v2.xsd +23 -0
  87. data/resources/kernel-2.2/include/datacite-titleType-v2.xsd +10 -0
  88. data/resources/kernel-2.2/metadata.xsd +316 -0
  89. data/resources/kernel-3/include/datacite-contributorType-v3.1.xsd +35 -0
  90. data/resources/kernel-3/include/datacite-dateType-v3.xsd +21 -0
  91. data/resources/kernel-3/include/datacite-descriptionType-v3.xsd +17 -0
  92. data/resources/kernel-3/include/datacite-relatedIdentifierType-v3.1.xsd +30 -0
  93. data/resources/kernel-3/include/datacite-relationType-v3.1.xsd +38 -0
  94. data/resources/kernel-3/include/datacite-resourceType-v3.xsd +26 -0
  95. data/resources/kernel-3/include/datacite-titleType-v3.xsd +12 -0
  96. data/resources/kernel-3/include/xml.xsd +286 -0
  97. data/resources/kernel-3/metadata.xsd +380 -0
  98. data/resources/kernel-3.0/include/datacite-contributorType-v3.xsd +33 -0
  99. data/resources/kernel-3.0/include/datacite-dateType-v3.xsd +21 -0
  100. data/resources/kernel-3.0/include/datacite-descriptionType-v3.xsd +17 -0
  101. data/resources/kernel-3.0/include/datacite-relatedIdentifierType-v3.xsd +27 -0
  102. data/resources/kernel-3.0/include/datacite-relationType-v3.xsd +33 -0
  103. data/resources/kernel-3.0/include/datacite-resourceType-v3.xsd +26 -0
  104. data/resources/kernel-3.0/include/datacite-titleType-v3.xsd +12 -0
  105. data/resources/kernel-3.0/include/xml.xsd +286 -0
  106. data/resources/kernel-3.0/metadata.xsd +377 -0
  107. data/resources/kernel-3.1/include/datacite-contributorType-v3.1.xsd +35 -0
  108. data/resources/kernel-3.1/include/datacite-dateType-v3.xsd +21 -0
  109. data/resources/kernel-3.1/include/datacite-descriptionType-v3.xsd +17 -0
  110. data/resources/kernel-3.1/include/datacite-relatedIdentifierType-v3.1.xsd +30 -0
  111. data/resources/kernel-3.1/include/datacite-relationType-v3.1.xsd +38 -0
  112. data/resources/kernel-3.1/include/datacite-resourceType-v3.xsd +26 -0
  113. data/resources/kernel-3.1/include/datacite-titleType-v3.xsd +12 -0
  114. data/resources/kernel-3.1/include/xml.xsd +286 -0
  115. data/resources/kernel-3.1/metadata.xsd +380 -0
  116. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +37 -0
  117. data/resources/kernel-4/include/datacite-dateType-v4.xsd +27 -0
  118. data/resources/kernel-4/include/datacite-descriptionType-v4.xsd +19 -0
  119. data/resources/kernel-4/include/datacite-funderIdentifierType-v4.xsd +16 -0
  120. data/resources/kernel-4/include/datacite-nameType-v4.xsd +10 -0
  121. data/resources/kernel-4/include/datacite-numberType-v4.xsd +12 -0
  122. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +39 -0
  123. data/resources/kernel-4/include/datacite-relationType-v4.xsd +59 -0
  124. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +52 -0
  125. data/resources/kernel-4/include/datacite-titleType-v4.xsd +14 -0
  126. data/resources/kernel-4/include/xml.xsd +286 -0
  127. data/resources/kernel-4/metadata.xsd +715 -0
  128. data/resources/kernel-4.0/include/datacite-contributorType-v4.xsd +1 -1
  129. data/resources/kernel-4.0/include/datacite-dateType-v4.xsd +1 -1
  130. data/resources/kernel-4.0/include/datacite-descriptionType-v4.xsd +1 -1
  131. data/resources/kernel-4.0/include/datacite-funderIdentifierType-v4.xsd +1 -1
  132. data/resources/kernel-4.0/include/datacite-relatedIdentifierType-v4.xsd +1 -1
  133. data/resources/kernel-4.0/include/datacite-relationType-v4.xsd +1 -1
  134. data/resources/kernel-4.0/include/datacite-resourceType-v4.xsd +1 -1
  135. data/resources/kernel-4.0/include/datacite-titleType-v4.xsd +1 -1
  136. data/resources/kernel-4.0/include/xml.xsd +286 -0
  137. data/resources/kernel-4.0/metadata.xsd +2 -2
  138. data/resources/kernel-4.1/include/datacite-contributorType-v4.xsd +35 -0
  139. data/resources/kernel-4.1/include/datacite-dateType-v4.1.xsd +23 -0
  140. data/resources/kernel-4.1/include/datacite-descriptionType-v4.xsd +19 -0
  141. data/resources/kernel-4.1/include/datacite-funderIdentifierType-v4.xsd +15 -0
  142. data/resources/kernel-4.1/include/datacite-nameType-v4.1.xsd +10 -0
  143. data/resources/kernel-4.1/include/datacite-relatedIdentifierType-v4.xsd +32 -0
  144. data/resources/kernel-4.1/include/datacite-relationType-v4.1.xsd +46 -0
  145. data/resources/kernel-4.1/include/datacite-resourceType-v4.1.xsd +28 -0
  146. data/resources/kernel-4.1/include/datacite-titleType-v4.xsd +14 -0
  147. data/resources/kernel-4.1/include/xml.xsd +286 -0
  148. data/resources/kernel-4.1/metadata.xsd +483 -0
  149. data/resources/kernel-4.2/include/datacite-contributorType-v4.xsd +35 -0
  150. data/resources/kernel-4.2/include/datacite-dateType-v4.xsd +25 -0
  151. data/resources/kernel-4.2/include/datacite-descriptionType-v4.xsd +19 -0
  152. data/resources/kernel-4.2/include/datacite-funderIdentifierType-v4.xsd +15 -0
  153. data/resources/kernel-4.2/include/datacite-nameType-v4.xsd +10 -0
  154. data/resources/kernel-4.2/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  155. data/resources/kernel-4.2/include/datacite-relationType-v4.xsd +49 -0
  156. data/resources/kernel-4.2/include/datacite-resourceType-v4.xsd +28 -0
  157. data/resources/kernel-4.2/include/datacite-titleType-v4.xsd +14 -0
  158. data/resources/kernel-4.2/include/xml.xsd +286 -0
  159. data/resources/kernel-4.2/metadata.xsd +479 -0
  160. data/resources/kernel-4.3/include/datacite-contributorType-v4.xsd +35 -0
  161. data/resources/kernel-4.3/include/datacite-dateType-v4.xsd +25 -0
  162. data/resources/kernel-4.3/include/datacite-descriptionType-v4.xsd +19 -0
  163. data/resources/kernel-4.3/include/datacite-funderIdentifierType-v4.xsd +16 -0
  164. data/resources/kernel-4.3/include/datacite-nameType-v4.xsd +10 -0
  165. data/resources/kernel-4.3/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  166. data/resources/kernel-4.3/include/datacite-relationType-v4.xsd +49 -0
  167. data/resources/kernel-4.3/include/datacite-resourceType-v4.xsd +28 -0
  168. data/resources/kernel-4.3/include/datacite-titleType-v4.xsd +14 -0
  169. data/resources/kernel-4.3/include/xml.xsd +286 -0
  170. data/resources/kernel-4.3/metadata.xsd +515 -0
  171. data/resources/kernel-4.4/include/datacite-contributorType-v4.xsd +35 -0
  172. data/resources/kernel-4.4/include/datacite-dateType-v4.xsd +25 -0
  173. data/resources/kernel-4.4/include/datacite-descriptionType-v4.xsd +19 -0
  174. data/resources/kernel-4.4/include/datacite-funderIdentifierType-v4.xsd +16 -0
  175. data/resources/kernel-4.4/include/datacite-nameType-v4.xsd +10 -0
  176. data/resources/kernel-4.4/include/datacite-numberType-v4.xsd +12 -0
  177. data/resources/kernel-4.4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  178. data/resources/kernel-4.4/include/datacite-relationType-v4.xsd +51 -0
  179. data/resources/kernel-4.4/include/datacite-resourceType-v4.xsd +43 -0
  180. data/resources/kernel-4.4/include/datacite-titleType-v4.xsd +14 -0
  181. data/resources/kernel-4.4/include/xml.xsd +286 -0
  182. data/resources/kernel-4.4/metadata.xsd +707 -0
  183. data/resources/kernel-4.5/include/datacite-contributorType-v4.xsd +35 -0
  184. data/resources/kernel-4.5/include/datacite-dateType-v4.xsd +25 -0
  185. data/resources/kernel-4.5/include/datacite-descriptionType-v4.xsd +19 -0
  186. data/resources/kernel-4.5/include/datacite-funderIdentifierType-v4.xsd +16 -0
  187. data/resources/kernel-4.5/include/datacite-nameType-v4.xsd +10 -0
  188. data/resources/kernel-4.5/include/datacite-numberType-v4.xsd +12 -0
  189. data/resources/kernel-4.5/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  190. data/resources/kernel-4.5/include/datacite-relationType-v4.xsd +53 -0
  191. data/resources/kernel-4.5/include/datacite-resourceType-v4.xsd +45 -0
  192. data/resources/kernel-4.5/include/datacite-titleType-v4.xsd +14 -0
  193. data/resources/kernel-4.5/include/xml.xsd +286 -0
  194. data/resources/kernel-4.5/metadata.xsd +711 -0
  195. data/resources/kernel-4.6/include/datacite-contributorType-v4.xsd +37 -0
  196. data/resources/kernel-4.6/include/datacite-dateType-v4.xsd +27 -0
  197. data/resources/kernel-4.6/include/datacite-descriptionType-v4.xsd +19 -0
  198. data/resources/kernel-4.6/include/datacite-funderIdentifierType-v4.xsd +16 -0
  199. data/resources/kernel-4.6/include/datacite-nameType-v4.xsd +10 -0
  200. data/resources/kernel-4.6/include/datacite-numberType-v4.xsd +12 -0
  201. data/resources/kernel-4.6/include/datacite-relatedIdentifierType-v4.xsd +37 -0
  202. data/resources/kernel-4.6/include/datacite-relationType-v4.xsd +57 -0
  203. data/resources/kernel-4.6/include/datacite-resourceType-v4.xsd +49 -0
  204. data/resources/kernel-4.6/include/datacite-titleType-v4.xsd +14 -0
  205. data/resources/kernel-4.6/include/xml.xsd +286 -0
  206. data/resources/kernel-4.6/metadata.xsd +712 -0
  207. data/resources/kernel-4.7/include/datacite-contributorType-v4.xsd +37 -0
  208. data/resources/kernel-4.7/include/datacite-dateType-v4.xsd +27 -0
  209. data/resources/kernel-4.7/include/datacite-descriptionType-v4.xsd +19 -0
  210. data/resources/kernel-4.7/include/datacite-funderIdentifierType-v4.xsd +16 -0
  211. data/resources/kernel-4.7/include/datacite-nameType-v4.xsd +10 -0
  212. data/resources/kernel-4.7/include/datacite-numberType-v4.xsd +12 -0
  213. data/resources/kernel-4.7/include/datacite-relatedIdentifierType-v4.xsd +39 -0
  214. data/resources/kernel-4.7/include/datacite-relationType-v4.xsd +59 -0
  215. data/resources/kernel-4.7/include/datacite-resourceType-v4.xsd +52 -0
  216. data/resources/kernel-4.7/include/datacite-titleType-v4.xsd +14 -0
  217. data/resources/kernel-4.7/include/xml.xsd +286 -0
  218. data/resources/kernel-4.7/metadata.xsd +715 -0
  219. data/resources/oecd/dfg-mappings.json +1866 -0
  220. data/resources/oecd/for-mappings.json +1101 -0
  221. data/resources/oecd/fos-mappings.json +198 -0
  222. data/resources/schema_org/jsonldcontext.json +7477 -0
  223. data/resources/spdx/licenses.json +5297 -0
  224. data/resources/xml.xsd +286 -0
  225. metadata +466 -179
  226. data/.travis.yml +0 -23
  227. data/lib/bolognese/crossref.rb +0 -233
  228. data/lib/bolognese/datacite.rb +0 -176
  229. data/lib/bolognese/date_utils.rb +0 -48
  230. data/lib/bolognese/github.rb +0 -106
  231. data/lib/bolognese/orcid.rb +0 -24
  232. data/lib/bolognese/schema_org.rb +0 -170
  233. data/spec/cli_spec.rb +0 -56
  234. data/spec/crossref_spec.rb +0 -190
  235. data/spec/datacite_spec.rb +0 -93
  236. data/spec/datacite_utils_spec.rb +0 -159
  237. data/spec/doi_utils_spec.rb +0 -89
  238. data/spec/fixtures/crossref.xml +0 -742
  239. data/spec/fixtures/datacite.xml +0 -40
  240. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_crossref.yml +0 -760
  241. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_datacite.yml +0 -1476
  242. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/crossref/as_schema_org.yml +0 -1476
  243. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_datacite.yml +0 -214
  244. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/datacite/as_schema_org.yml +0 -384
  245. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/schema_org/as_datacite.yml +0 -653
  246. data/spec/fixtures/vcr_cassettes/Bolognese_CLI/read/schema_org/as_schema_org.yml +0 -653
  247. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/crossref.yml +0 -971
  248. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/datacite.yml +0 -971
  249. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/medra.yml +0 -971
  250. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/doi_registration_agency/not_found.yml +0 -971
  251. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_ORCID_ID.yml +0 -506
  252. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_SICI_DOI.yml +0 -214
  253. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/DOI_with_data_citation.yml +0 -901
  254. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/date_in_future.yml +0 -305
  255. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/journal_article.yml +0 -1080
  256. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/not_found_error.yml +0 -183
  257. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata/posted_content.yml +0 -389
  258. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/DOI_with_ORCID_ID.yml +0 -506
  259. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/DOI_with_data_citation.yml +0 -901
  260. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/with_ORCID_ID.yml +0 -366
  261. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/with_data_citation.yml +0 -719
  262. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_datacite_xml/with_editor.yml +0 -930
  263. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/get_metadata_as_string/DOI_with_data_citation.yml +0 -719
  264. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/SICI_doi.yml +0 -930
  265. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/doi.yml +0 -930
  266. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/doi_from_url_without_doi_proxy.yml +0 -930
  267. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/doi_prefix_too_long.yml +0 -930
  268. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/doi_prefix_with_string.yml +0 -930
  269. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/doi_with_protocol.yml +0 -930
  270. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/dx_doi_org_url.yml +0 -930
  271. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/https_url.yml +0 -930
  272. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_doi/not_valid_doi_prefix.yml +0 -930
  273. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_ids/doi.yml +0 -930
  274. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_ids/url.yml +0 -930
  275. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_url/doi.yml +0 -930
  276. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/normalize_url/url.yml +0 -930
  277. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attribute/array.yml +0 -930
  278. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attribute/hash.yml +0 -930
  279. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attribute/nil.yml +0 -930
  280. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attribute/string.yml +0 -930
  281. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attributes/array.yml +0 -930
  282. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attributes/hash.yml +0 -930
  283. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attributes/nil.yml +0 -930
  284. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/parse_attributes/string.yml +0 -930
  285. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/validate_url/DOI.yml +0 -930
  286. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/validate_url/URL.yml +0 -930
  287. data/spec/fixtures/vcr_cassettes/Bolognese_Crossref/validate_url/string.yml +0 -930
  288. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/BlogPosting.yml +0 -477
  289. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Dataset.yml +0 -1925
  290. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata/Date.yml +0 -458
  291. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/get_metadata_as_string/Dataset.yml +0 -173
  292. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_alternate_identifiers/insert.yml +0 -173
  293. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_contributors/insert.yml +0 -173
  294. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_contributors/none.yml +0 -173
  295. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_creators/insert.yml +0 -173
  296. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_dates/insert.yml +0 -173
  297. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_descriptions/insert.yml +0 -155
  298. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_identifier/doi.yml +0 -173
  299. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_person/creator.yml +0 -173
  300. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_person/creator_given_and_family_name.yml +0 -173
  301. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_person/creator_only_name.yml +0 -173
  302. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_publication_year/insert.yml +0 -173
  303. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_publisher/insert.yml +0 -173
  304. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_related_identifiers/get_related_identifier_type.yml +0 -173
  305. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_related_identifiers/get_related_identifier_type_DOI.yml +0 -173
  306. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_related_identifiers/get_related_identifier_type_URL.yml +0 -173
  307. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_related_identifiers/insert.yml +0 -173
  308. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_related_identifiers/rel_identifiers.yml +0 -173
  309. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_resource_type/insert.yml +0 -173
  310. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_rights_list/insert.yml +0 -173
  311. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_subjects/insert.yml +0 -173
  312. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_titles/doi.yml +0 -173
  313. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_titles/insert.yml +0 -173
  314. data/spec/fixtures/vcr_cassettes/Bolognese_Datacite/insert_version/insert.yml +0 -173
  315. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref.yml +0 -44
  316. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/crossref_doi_not_url.yml +0 -44
  317. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite.yml +0 -44
  318. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/datacite_doi_http.yml +0 -44
  319. data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_PID_provider/orcid.yml +0 -44
  320. data/spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata/BlogPosting.yml +0 -632
  321. data/spec/fixtures/vcr_cassettes/Bolognese_SchemaOrg/get_metadata/not_found_error.yml +0 -93
  322. data/spec/metadata_spec.rb +0 -41
  323. data/spec/orcid_spec.rb +0 -23
  324. data/spec/schema_org_spec.rb +0 -33
  325. data/spec/spec_helper.rb +0 -88
  326. data/spec/utils_spec.rb +0 -107
data/README.md CHANGED
@@ -1,23 +1,136 @@
1
- [![Build Status](https://travis-ci.org/datacite/bolognese.svg?branch=master)](https://travis-ci.org/datacite/bolognese)
1
+ [![Identifier](https://img.shields.io/badge/doi-10.5438%2Fn138--z3mk-fca709.svg)](https://doi.org/10.5438/n138-z3mk)
2
+ [![Gem Version](https://badge.fury.io/rb/bolognese.svg)](https://badge.fury.io/rb/bolognese)
3
+ ![Build Ruby Gem](https://github.com/datacite/bolognese/workflows/Build%20Ruby%20Gem/badge.svg)
4
+ [![Code Climate](https://codeclimate.com/github/datacite/bolognese/badges/gpa.svg)](https://codeclimate.com/github/datacite/bolognese)
5
+ [![Test Coverage](https://codeclimate.com/github/datacite/bolognese/badges/coverage.svg)](https://codeclimate.com/github/datacite/bolognese/coverage)
2
6
 
3
- # bolognese
7
+ # Bolognese: a Ruby library for conversion of DOI Metadata
8
+
9
+ Ruby gem and command-line utility for conversion of DOI metadata from and to different metadata formats, including [schema.org](https://schema.org).
4
10
 
5
- Command-line utility for conversion of DOI metadata from and to [schema.org](https://schema.org) in JSON-LD.
6
11
 
7
12
  ## Features
8
13
 
9
- * convert [Crossref XML](https://support.crossref.org/hc/en-us/articles/214936283-UNIXREF-query-output-format) to schema.org/JSON-LD
10
- * convert [DataCite XML](http://schema.datacite.org/) to schema.org/JSON-LD
11
- * fetch schema.org/JSON-LD from a URL
12
- * convert schema.org/JSON-LD to [DataCite XML](http://schema.datacite.org/)
13
- * convert Crossref XML to [DataCite XML](http://schema.datacite.org/)
14
+ Bolognese reads and/or writes these metadata formats:
15
+
16
+ <table class="table table-bordered table-striped">
17
+ <thead>
18
+ <tr>
19
+ <th>Format</th>
20
+ <th>Name</th>
21
+ <th>Content Type</th>
22
+ <th>Read</th>
23
+ <th>Write</th>
24
+ </tr>
25
+ </thead>
26
+ <tbody>
27
+ <tr>
28
+ <td><a href='https://www.crossref.org/schema/documentation/unixref1.1/unixref1.1.html'>CrossRef Unixref XML</a></td>
29
+ <td>crossref</td>
30
+ <td>application/vnd.crossref.unixref+xml</td>
31
+ <td>Yes</td>
32
+ <td>No</td>
33
+ </tr>
34
+ <tr>
35
+ <td><a href='https://schema.datacite.org/'>DataCite XML</a></td>
36
+ <td>datacite</td>
37
+ <td>application/vnd.datacite.datacite+xml</td>
38
+ <td>Yes</td>
39
+ <td>Yes</td>
40
+ </tr>
41
+ <tr>
42
+ <td><a href='https://api.datacite.org/'>DataCite JSON</a></td>
43
+ <td>datacite_json</td>
44
+ <td>application/vnd.datacite.datacite+json</td>
45
+ <td>Yes</td>
46
+ <td>Yes</td>
47
+ </tr>
48
+ <tr>
49
+ <td><a href='http://schema.org/'>Schema.org in JSON-LD</a></td>
50
+ <td>schema_org</td>
51
+ <td>application/vnd.schemaorg.ld+json</td>
52
+ <td>Yes</td>
53
+ <td>Yes</td>
54
+ </tr>
55
+ <tr>
56
+ <td><a href='http://www.w3.org/TR/rdf-syntax-grammar/'>RDF XML</a></td>
57
+ <td>rdf_xml</td>
58
+ <td>application/rdf+xml</td>
59
+ <td>No</td>
60
+ <td>Yes</td>
61
+ </tr>
62
+ <tr>
63
+ <td><a href='http://www.w3.org/TeamSubmission/turtle/'>RDF Turtle</a></td>
64
+ <td>turtle</td>
65
+ <td>text/turtle</td>
66
+ <td>No</td>
67
+ <td>Yes</td>
68
+ </tr>
69
+ <tr>
70
+ <td><a href='https://citationstyles.org/'>Citeproc JSON</a></td>
71
+ <td>citeproc</td>
72
+ <td>application/vnd.citationstyles.csl+json</td>
73
+ <td>Yes</td>
74
+ <td>Yes</td>
75
+ </tr>
76
+ <tr>
77
+ <td><a href='https://citationstyles.org/'>Formatted text citation</a></td>
78
+ <td>citation</td>
79
+ <td>text/x-bibliography</td>
80
+ <td>No</td>
81
+ <td>Yes</td>
82
+ </tr>
83
+ <tr>
84
+ <td><a href='https://codemeta.github.io/'>Codemeta</a></td>
85
+ <td>codemeta</td>
86
+ <td>application/vnd.codemeta.ld+json</td>
87
+ <td>Yes</td>
88
+ <td>Yes</td>
89
+ </tr>
90
+ <tr>
91
+ <td><a href='https://jats.nlm.nih.gov/'>JATS</a></td>
92
+ <td>jats</td>
93
+ <td>application/vnd.jats+xml</td>
94
+ <td>No</td>
95
+ <td>Yes</td>
96
+ </tr>
97
+ <tr>
98
+ <td><a href='https://en.wikipedia.org/wiki/Comma-separated_values'>CSV</a></td>
99
+ <td>csv</td>
100
+ <td>text/csv</td>
101
+ <td>No</td>
102
+ <td>Yes</td>
103
+ </tr>
104
+ <tr>
105
+ <td><a href='http://en.wikipedia.org/wiki/BibTeX'>BibTeX</a></td>
106
+ <td>bibtex</td>
107
+ <td>application/x-bibtex</td>
108
+ <td>Yes</td>
109
+ <td>Yes</td>
110
+ </tr>
111
+ <tr>
112
+ <td><a href='http://en.wikipedia.org/wiki/RIS_(file_format)'>RIS</a></td>
113
+ <td>ris</td>
114
+ <td>application/x-research-info-systems</td>
115
+ <td>Yes</td>
116
+ <td>Yes</td>
117
+ </tr>
118
+ <tr>
119
+ <td><a href='https://citation.crosscite.org/'>Crosscite</a></td>
120
+ <td>crosscite</td>
121
+ <td>application/vnd.crosscite.crosscite+json</td>
122
+ <td>Yes</td>
123
+ <td>Yes</td>
124
+ </tr>
125
+ </tbody>
126
+ </table>
14
127
 
15
- Conversion to Crossref XML is not yet supported.
128
+ **Crosscite** is the format used internally by bolognese.
16
129
 
17
130
  ## Installation
18
131
 
19
- The usual way with Bundler: add the following to your `Gemfile` to install the
20
- current version of the gem:
132
+ Requires Ruby 2.2 or later. Then add the following to your `Gemfile` to install the
133
+ latest version:
21
134
 
22
135
  ```ruby
23
136
  gem 'bolognese'
@@ -33,34 +146,862 @@ gem install bolognese
33
146
 
34
147
  ## Commands
35
148
 
36
- The bolognese commands understand URLs and DOIs as arguments. The `--as` command
37
- line flag sets the format, either `crossref`, `datacite`, or `schema_org` (default).
149
+ Run the `bolognese` command with either an identifier (DOI or URL) or filename:
38
150
 
39
- ## Examples
151
+ ```
152
+ bolognese https://doi.org/10.7554/elife.01567
153
+ ```
40
154
 
41
- Convert Crossref XML to schema.org/JSON-LD:
42
155
  ```
43
- bolognese read https://doi.org/10.7554/elife.01567
156
+ bolognese example.xml
44
157
  ```
45
158
 
159
+ Bolognese can read BibTeX files (file extension `.bib`), RIS files (file extension `.ris`), Crossref or DataCite XML files (file extension `.xml`), DataCite JSON files (file extension `Citeproc JSON files ().
160
+
161
+ The input format (e.g. Crossref XML or BibteX) is automatically detected, but
162
+ you can also provide the format with the `--from` or `-f` flag. The supported
163
+ input formats are listed in the table above.
164
+
165
+ The output format is determined by the `--to` or `-t` flag, and defaults to `schema_org`.
166
+
167
+ Show all commands with `bolognese help`:
168
+
169
+ ```
170
+ Commands:
171
+ bolognese # convert metadata
172
+ bolognese --version, -v # print the version
173
+ bolognese help [COMMAND] # Describe available commands or one specific command
174
+ ```
175
+ ## Errors
176
+
177
+ Errors are returned to STDOUT.
178
+
179
+ All DataCite XML input is validated against the corresponding schema version (kernel 2.1, 2.2, 3, or 4).
180
+
181
+ ## Examples
182
+
46
183
  Read Crossref XML:
184
+
185
+ ```
186
+ bolognese https://doi.org/10.7554/elife.01567 -t crossref
187
+
188
+ <?xml version="1.0" encoding="UTF-8"?>
189
+ <doi_records>
190
+ <doi_record owner="10.7554" timestamp="2015-08-11 07:35:02">
191
+ <crossref>
192
+ <journal>
193
+ <journal_metadata language="en">
194
+ <full_title>eLife</full_title>
195
+ <issn media_type="electronic">2050-084X</issn>
196
+ </journal_metadata>
197
+ <journal_issue>
198
+ <publication_date media_type="online">
199
+ <month>02</month>
200
+ <day>11</day>
201
+ <year>2014</year>
202
+ </publication_date>
203
+ <journal_volume>
204
+ <volume>3</volume>
205
+ </journal_volume>
206
+ </journal_issue>
207
+ <journal_article publication_type="full_text">
208
+ <titles>
209
+ <title>Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth</title>
210
+ </titles>
211
+ <contributors>
212
+ <person_name contributor_role="author" sequence="first">
213
+ <given_name>Martial</given_name>
214
+ <surname>Sankar</surname>
215
+ </person_name>
216
+ <person_name contributor_role="author" sequence="additional">
217
+ <given_name>Kaisa</given_name>
218
+ <surname>Nieminen</surname>
219
+ </person_name>
220
+ <person_name contributor_role="author" sequence="additional">
221
+ <given_name>Laura</given_name>
222
+ <surname>Ragni</surname>
223
+ </person_name>
224
+ <person_name contributor_role="author" sequence="additional">
225
+ <given_name>Ioannis</given_name>
226
+ <surname>Xenarios</surname>
227
+ </person_name>
228
+ <person_name contributor_role="author" sequence="additional">
229
+ <given_name>Christian S</given_name>
230
+ <surname>Hardtke</surname>
231
+ </person_name>
232
+ </contributors>
233
+ <publication_date media_type="online">
234
+ <month>02</month>
235
+ <day>11</day>
236
+ <year>2014</year>
237
+ </publication_date>
238
+ <publisher_item>
239
+ <identifier id_type="doi">10.7554/eLife.01567</identifier>
240
+ </publisher_item>
241
+ <crossmark>
242
+ <crossmark_version>1</crossmark_version>
243
+ <crossmark_policy>eLifesciences</crossmark_policy>
244
+ <crossmark_domains>
245
+ <crossmark_domain>
246
+ <domain>www.elifesciences.org</domain>
247
+ </crossmark_domain>
248
+ </crossmark_domains>
249
+ <crossmark_domain_exclusive>false</crossmark_domain_exclusive>
250
+ <custom_metadata>
251
+ <assertion name="received" label="Received" group_name="publication_history" group_label="Publication History" order="0">2013-09-20</assertion>
252
+ <assertion name="accepted" label="Accepted" group_name="publication_history" group_label="Publication History" order="1">2013-12-24</assertion>
253
+ <assertion name="published" label="Published" group_name="publication_history" group_label="Publication History" order="2">2014-02-11</assertion>
254
+ <program name="fundref">
255
+ <assertion name="fundgroup">
256
+ <assertion name="funder_name">SystemsX</assertion>
257
+ </assertion>
258
+ <assertion name="fundgroup">
259
+ <assertion name="funder_name">
260
+ EMBO
261
+ <assertion name="funder_identifier">http://dx.doi.org/10.13039/501100003043</assertion>
262
+ </assertion>
263
+ </assertion>
264
+ <assertion name="fundgroup">
265
+ <assertion name="funder_name">
266
+ Swiss National Science Foundation
267
+ <assertion name="funder_identifier">http://dx.doi.org/10.13039/501100001711</assertion>
268
+ </assertion>
269
+ </assertion>
270
+ <assertion name="fundgroup">
271
+ <assertion name="funder_name">
272
+ University of Lausanne
273
+ <assertion name="funder_identifier" provider="crossref">http://dx.doi.org/10.13039/501100006390</assertion>
274
+ </assertion>
275
+ </assertion>
276
+ </program>
277
+ <program name="AccessIndicators">
278
+ <license_ref applies_to="vor">http://creativecommons.org/licenses/by/3.0/</license_ref>
279
+ <license_ref applies_to="am">http://creativecommons.org/licenses/by/3.0/</license_ref>
280
+ <license_ref applies_to="tdm">http://creativecommons.org/licenses/by/3.0/</license_ref>
281
+ </program>
282
+ </custom_metadata>
283
+ </crossmark>
284
+ <doi_data>
285
+ <doi>10.7554/eLife.01567</doi>
286
+ <resource>http://elifesciences.org/lookup/doi/10.7554/eLife.01567</resource>
287
+ </doi_data>
288
+ <citation_list>
289
+ ...
290
+ <citation key="22">
291
+ <author>Sankar</author>
292
+ <cYear>2014</cYear>
293
+ <doi>10.5061/dryad.b835k</doi>
294
+ </citation>
295
+ ...
296
+ </citation_list>
297
+ <component_list>
298
+ ...
299
+ </component_list>
300
+ </journal_article>
301
+ </journal>
302
+ </crossref>
303
+ </doi_record>
304
+ </doi_records>
47
305
  ```
48
- bolognese read https://doi.org/10.7554/elife.01567 --as crossref
306
+
307
+ Convert Crossref XML to schema.org/JSON-LD:
308
+ ```
309
+ bolognese https://doi.org/10.7554/elife.01567
310
+
311
+ {
312
+ "@context": "http://schema.org",
313
+ "@type": "ScholarlyArticle",
314
+ "@id": "https://doi.org/10.7554/elife.01567",
315
+ "url": "http://elifesciences.org/lookup/doi/10.7554/eLife.01567",
316
+ "additionalType": "JournalArticle",
317
+ "name": "Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth",
318
+ "author": [{
319
+ "@type": "Person",
320
+ "givenName": "Martial",
321
+ "familyName": "Sankar"
322
+ }, {
323
+ "@type": "Person",
324
+ "givenName": "Kaisa",
325
+ "familyName": "Nieminen"
326
+ }, {
327
+ "@type": "Person",
328
+ "givenName": "Laura",
329
+ "familyName": "Ragni"
330
+ }, {
331
+ "@type": "Person",
332
+ "givenName": "Ioannis",
333
+ "familyName": "Xenarios"
334
+ }, {
335
+ "@type": "Person",
336
+ "givenName": "Christian S",
337
+ "familyName": "Hardtke"
338
+ }],
339
+ "license": "http://creativecommons.org/licenses/by/3.0/",
340
+ "datePublished": "2014-02-11",
341
+ "dateModified": "2015-08-11T05:35:02Z",
342
+ "isPartOf": {
343
+ "@type": "Periodical",
344
+ "name": "eLife",
345
+ "issn": "2050-084X"
346
+ },
347
+ "citation": [{
348
+ "@type": "CreativeWork",
349
+ "@id": "https://doi.org/10.1038/nature02100",
350
+ "position": "1",
351
+ "datePublished": "2003"
352
+ }, {
353
+ "@type": "CreativeWork",
354
+ "@id": "https://doi.org/10.1534/genetics.109.104976",
355
+ "position": "2",
356
+ "datePublished": "2009"
357
+ }, {
358
+ "@type": "CreativeWork",
359
+ "@id": "https://doi.org/10.1034/j.1399-3054.2002.1140413.x",
360
+ "position": "3",
361
+ "datePublished": "2002"
362
+ }, {
363
+ "@type": "CreativeWork",
364
+ "@id": "https://doi.org/10.1162/089976601750399335",
365
+ "position": "4",
366
+ "datePublished": "2001"
367
+ }, {
368
+ "@type": "CreativeWork",
369
+ "position": "5",
370
+ "datePublished": "1995"
371
+ }, {
372
+ "@type": "CreativeWork",
373
+ "position": "6",
374
+ "datePublished": "1993"
375
+ }, {
376
+ "@type": "CreativeWork",
377
+ "@id": "https://doi.org/10.1016/j.semcdb.2009.09.009",
378
+ "position": "7",
379
+ "datePublished": "2009"
380
+ }, {
381
+ "@type": "CreativeWork",
382
+ "@id": "https://doi.org/10.1242/dev.091314",
383
+ "position": "8",
384
+ "datePublished": "2013"
385
+ }, {
386
+ "@type": "CreativeWork",
387
+ "@id": "https://doi.org/10.1371/journal.pgen.1002997",
388
+ "position": "9",
389
+ "datePublished": "2012"
390
+ }, {
391
+ "@type": "CreativeWork",
392
+ "@id": "https://doi.org/10.1038/msb.2010.25",
393
+ "position": "10",
394
+ "datePublished": "2010"
395
+ }, {
396
+ "@type": "CreativeWork",
397
+ "@id": "https://doi.org/10.1016/j.biosystems.2012.07.004",
398
+ "position": "11",
399
+ "datePublished": "2012"
400
+ }, {
401
+ "@type": "CreativeWork",
402
+ "@id": "https://doi.org/10.1016/j.pbi.2005.11.013",
403
+ "position": "12",
404
+ "datePublished": "2006"
405
+ }, {
406
+ "@type": "CreativeWork",
407
+ "@id": "https://doi.org/10.1105/tpc.110.076083",
408
+ "position": "13",
409
+ "datePublished": "2010"
410
+ }, {
411
+ "@type": "CreativeWork",
412
+ "@id": "https://doi.org/10.1073/pnas.0808444105",
413
+ "position": "14",
414
+ "datePublished": "2008"
415
+ }, {
416
+ "@type": "CreativeWork",
417
+ "@id": "https://doi.org/10.1016/0092-8674(89)90900-8",
418
+ "position": "15",
419
+ "datePublished": "1989"
420
+ }, {
421
+ "@type": "CreativeWork",
422
+ "@id": "https://doi.org/10.1126/science.1066609",
423
+ "position": "16",
424
+ "datePublished": "2002"
425
+ }, {
426
+ "@type": "CreativeWork",
427
+ "@id": "https://doi.org/10.1104/pp.104.040212",
428
+ "position": "17",
429
+ "datePublished": "2004"
430
+ }, {
431
+ "@type": "CreativeWork",
432
+ "@id": "https://doi.org/10.1038/nbt1206-1565",
433
+ "position": "18",
434
+ "datePublished": "2006"
435
+ }, {
436
+ "@type": "CreativeWork",
437
+ "@id": "https://doi.org/10.1073/pnas.77.3.1516",
438
+ "position": "19",
439
+ "datePublished": "1980"
440
+ }, {
441
+ "@type": "CreativeWork",
442
+ "@id": "https://doi.org/10.1093/bioinformatics/btq046",
443
+ "position": "20",
444
+ "datePublished": "2010"
445
+ }, {
446
+ "@type": "CreativeWork",
447
+ "@id": "https://doi.org/10.1105/tpc.111.084020",
448
+ "position": "21",
449
+ "datePublished": "2011"
450
+ }, {
451
+ "@type": "CreativeWork",
452
+ "@id": "https://doi.org/10.5061/dryad.b835k",
453
+ "position": "22",
454
+ "datePublished": "2014"
455
+ }, {
456
+ "@type": "CreativeWork",
457
+ "@id": "https://doi.org/10.1016/j.cub.2008.02.070",
458
+ "position": "23",
459
+ "datePublished": "2008"
460
+ }, {
461
+ "@type": "CreativeWork",
462
+ "@id": "https://doi.org/10.1111/j.1469-8137.2010.03236.x",
463
+ "position": "24",
464
+ "datePublished": "2010"
465
+ }, {
466
+ "@type": "CreativeWork",
467
+ "@id": "https://doi.org/10.1007/s00138-011-0345-9",
468
+ "position": "25",
469
+ "datePublished": "2012"
470
+ }, {
471
+ "@type": "CreativeWork",
472
+ "@id": "https://doi.org/10.1016/j.cell.2012.02.048",
473
+ "position": "26",
474
+ "datePublished": "2012"
475
+ }, {
476
+ "@type": "CreativeWork",
477
+ "@id": "https://doi.org/10.1038/ncb2764",
478
+ "position": "27",
479
+ "datePublished": "2013"
480
+ }],
481
+ "funder": [{
482
+ "@type": "Organization",
483
+ "name": "SystemsX"
484
+ }, {
485
+ "@type": "Organization",
486
+ "@id": "https://doi.org/10.13039/501100003043",
487
+ "name": "EMBO"
488
+ }, {
489
+ "@type": "Organization",
490
+ "@id": "https://doi.org/10.13039/501100001711",
491
+ "name": "Swiss National Science Foundation"
492
+ }, {
493
+ "@type": "Organization",
494
+ "@id": "https://doi.org/10.13039/501100006390",
495
+ "name": "University of Lausanne"
496
+ }],
497
+ "provider": {
498
+ "@type": "Organization",
499
+ "name": "Crossref"
500
+ }
501
+ }
49
502
  ```
50
503
 
51
504
  Convert Crossref XML to DataCite XML:
52
505
  ```
53
- bolognese read https://doi.org/10.7554/elife.01567 --as datacite
506
+ bolognese https://doi.org/10.7554/elife.01567 -t datacite
507
+
508
+ <?xml version="1.0" encoding="UTF-8"?>
509
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
510
+ <identifier identifierType="DOI">10.7554/eLife.01567</identifier>
511
+ <creators>
512
+ <creator>
513
+ <creatorName>Sankar, Martial</creatorName>
514
+ <givenName>Martial</givenName>
515
+ <familyName>Sankar</familyName>
516
+ </creator>
517
+ <creator>
518
+ <creatorName>Nieminen, Kaisa</creatorName>
519
+ <givenName>Kaisa</givenName>
520
+ <familyName>Nieminen</familyName>
521
+ </creator>
522
+ <creator>
523
+ <creatorName>Ragni, Laura</creatorName>
524
+ <givenName>Laura</givenName>
525
+ <familyName>Ragni</familyName>
526
+ </creator>
527
+ <creator>
528
+ <creatorName>Xenarios, Ioannis</creatorName>
529
+ <givenName>Ioannis</givenName>
530
+ <familyName>Xenarios</familyName>
531
+ </creator>
532
+ <creator>
533
+ <creatorName>Hardtke, Christian S</creatorName>
534
+ <givenName>Christian S</givenName>
535
+ <familyName>Hardtke</familyName>
536
+ </creator>
537
+ </creators>
538
+ <titles>
539
+ <title>Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth</title>
540
+ </titles>
541
+ <publisher>eLife</publisher>
542
+ <publicationYear>2014</publicationYear>
543
+ <resourceType resourceTypeGeneral="Text">JournalArticle</resourceType>
544
+ <fundingReferences>
545
+ <fundingReference>
546
+ <funderName>SystemsX</funderName>
547
+ </fundingReference>
548
+ <fundingReference>
549
+ <funderName>EMBO</funderName>
550
+ <funderIdentifier funderIdentifierType="Crossref Funder ID">https://doi.org/10.13039/501100003043</funderIdentifier>
551
+ </fundingReference>
552
+ <fundingReference>
553
+ <funderName>Swiss National Science Foundation</funderName>
554
+ <funderIdentifier funderIdentifierType="Crossref Funder ID">https://doi.org/10.13039/501100001711</funderIdentifier>
555
+ </fundingReference>
556
+ <fundingReference>
557
+ <funderName>University of Lausanne</funderName>
558
+ <funderIdentifier funderIdentifierType="Crossref Funder ID">https://doi.org/10.13039/501100006390</funderIdentifier>
559
+ </fundingReference>
560
+ </fundingReferences>
561
+ <dates>
562
+ <date dateType="Issued">2014-02-11</date>
563
+ <date dateType="Updated">2015-08-11T05:35:02Z</date>
564
+ </dates>
565
+ <relatedIdentifiers>
566
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1038/nature02100</relatedIdentifier>
567
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1534/genetics.109.104976</relatedIdentifier>
568
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1034/j.1399-3054.2002.1140413.x</relatedIdentifier>
569
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1162/089976601750399335</relatedIdentifier>
570
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1016/j.semcdb.2009.09.009</relatedIdentifier>
571
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1242/dev.091314</relatedIdentifier>
572
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1371/journal.pgen.1002997</relatedIdentifier>
573
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1038/msb.2010.25</relatedIdentifier>
574
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1016/j.biosystems.2012.07.004</relatedIdentifier>
575
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1016/j.pbi.2005.11.013</relatedIdentifier>
576
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1105/tpc.110.076083</relatedIdentifier>
577
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1073/pnas.0808444105</relatedIdentifier>
578
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1016/0092-8674(89)90900-8</relatedIdentifier>
579
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1126/science.1066609</relatedIdentifier>
580
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1104/pp.104.040212</relatedIdentifier>
581
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1038/nbt1206-1565</relatedIdentifier>
582
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1073/pnas.77.3.1516</relatedIdentifier>
583
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1093/bioinformatics/btq046</relatedIdentifier>
584
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1105/tpc.111.084020</relatedIdentifier>
585
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.5061/dryad.b835k</relatedIdentifier>
586
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1016/j.cub.2008.02.070</relatedIdentifier>
587
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1111/j.1469-8137.2010.03236.x</relatedIdentifier>
588
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1007/s00138-011-0345-9</relatedIdentifier>
589
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1016/j.cell.2012.02.048</relatedIdentifier>
590
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1038/ncb2764</relatedIdentifier>
591
+ </relatedIdentifiers>
592
+ <rightsList>
593
+ <rights rightsURI="http://creativecommons.org/licenses/by/3.0/">Creative Commons Attribution 3.0 (CC-BY 3.0)</rights>
594
+ </rightsList>
595
+ </resource>
54
596
  ```
597
+ Convert Crossref XML to BibTeX:
55
598
 
56
- Convert DataCite XML to schema.org/JSON-LD:
57
599
  ```
58
- bolognese read 10.5061/DRYAD.8515
600
+ bolognese https://doi.org/10.7554/elife.01567 -t bibtex
601
+
602
+ @article{https://doi.org/10.7554/elife.01567,
603
+ doi = {10.7554/eLife.01567},
604
+ url = {http://elifesciences.org/lookup/doi/10.7554/eLife.01567},
605
+ author = {Sankar, Martial and Nieminen, Kaisa and Ragni, Laura and Xenarios, Ioannis and Hardtke, Christian S},
606
+ title = {Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth},
607
+ journal = {eLife},
608
+ year = {2014}
609
+ }
59
610
  ```
60
611
 
61
612
  Read DataCite XML:
62
613
  ```
63
- bolognese read 10.5061/DRYAD.8515 --as datacite
614
+ bolognese 10.5061/DRYAD.8515 -t datacite
615
+
616
+ <?xml version="1.0" encoding="UTF-8"?>
617
+ <resource
618
+ xmlns="http://datacite.org/schema/kernel-3"
619
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
620
+ xmlns:mets="http://www.loc.gov/METS/"
621
+ xmlns:dspace="http://www.dspace.org/xmlns/dspace/dim"
622
+ xmlns:dim="http://www.dspace.org/xmlns/dspace/dim"
623
+ xmlns:dryad="http://purl.org/dryad/terms/"
624
+ xsi:schemaLocation="http://datacite.org/schema/kernel-3 http://schema.datacite.org/meta/kernel-3/metadata.xsd">
625
+ <identifier identifierType="DOI">10.5061/DRYAD.8515</identifier>
626
+ <version>1</version>
627
+ <creators>
628
+ <creator>
629
+ <creatorName>Ollomo, Benjamin</creatorName>
630
+ </creator>
631
+ <creator>
632
+ <creatorName>Durand, Patrick</creatorName>
633
+ </creator>
634
+ <creator>
635
+ <creatorName>Prugnolle, Franck</creatorName>
636
+ </creator>
637
+ <creator>
638
+ <creatorName>Douzery, Emmanuel J. P.</creatorName>
639
+ </creator>
640
+ <creator>
641
+ <creatorName>Arnathau, Céline</creatorName>
642
+ </creator>
643
+ <creator>
644
+ <creatorName>Nkoghe, Dieudonné</creatorName>
645
+ </creator>
646
+ <creator>
647
+ <creatorName>Leroy, Eric</creatorName>
648
+ </creator>
649
+ <creator>
650
+ <creatorName>Renaud, François</creatorName>
651
+ </creator>
652
+ </creators>
653
+ <titles>
654
+ <title>Data from: A new malaria agent in African hominids.</title>
655
+ </titles>
656
+ <publisher>Dryad Digital Repository</publisher>
657
+ <publicationYear>2011</publicationYear>
658
+ <subjects>
659
+ <subject>Phylogeny</subject>
660
+ <subject>Malaria</subject>
661
+ <subject>Parasites</subject>
662
+ <subject>Taxonomy</subject>
663
+ <subject>Mitochondrial genome</subject>
664
+ <subject>Africa</subject>
665
+ <subject>Plasmodium</subject>
666
+ </subjects>
667
+ <resourceType resourceTypeGeneral="Dataset">DataPackage</resourceType>
668
+ <alternateIdentifiers>
669
+ <alternateIdentifier alternateIdentifierType="citation">Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.</alternateIdentifier>
670
+ </alternateIdentifiers>
671
+ <relatedIdentifiers>
672
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="HasPart">10.5061/DRYAD.8515/1</relatedIdentifier>
673
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="HasPart">10.5061/DRYAD.8515/2</relatedIdentifier>
674
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="IsReferencedBy">10.1371/JOURNAL.PPAT.1000446</relatedIdentifier>
675
+ <relatedIdentifier relatedIdentifierType="PMID" relationType="IsReferencedBy">19478877</relatedIdentifier>
676
+ </relatedIdentifiers>
677
+ <rightsList>
678
+ <rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0/"/>
679
+ </rightsList>
680
+ </resource>
681
+ ```
682
+
683
+ Convert DataCite XML to schema.org/JSON-LD:
684
+ ```sh
685
+ bolognese 10.5061/DRYAD.8515
686
+
687
+ {
688
+ "@context": "http://schema.org",
689
+ "@type": "Dataset",
690
+ "@id": "https://doi.org/10.5061/dryad.8515",
691
+ "additionalType": "DataPackage",
692
+ "name": "Data from: A new malaria agent in African hominids.",
693
+ "alternateName": "Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.",
694
+ "author": [{
695
+ "@type": "Person",
696
+ "givenName": "Benjamin",
697
+ "familyName": "Ollomo"
698
+ }, {
699
+ "@type": "Person",
700
+ "givenName": "Patrick",
701
+ "familyName": "Durand"
702
+ }, {
703
+ "@type": "Person",
704
+ "givenName": "Franck",
705
+ "familyName": "Prugnolle"
706
+ }, {
707
+ "@type": "Person",
708
+ "givenName": "Emmanuel J. P.",
709
+ "familyName": "Douzery"
710
+ }, {
711
+ "@type": "Person",
712
+ "givenName": "Céline",
713
+ "familyName": "Arnathau"
714
+ }, {
715
+ "@type": "Person",
716
+ "givenName": "Dieudonné",
717
+ "familyName": "Nkoghe"
718
+ }, {
719
+ "@type": "Person",
720
+ "givenName": "Eric",
721
+ "familyName": "Leroy"
722
+ }, {
723
+ "@type": "Person",
724
+ "givenName": "François",
725
+ "familyName": "Renaud"
726
+ }],
727
+ "license": "http://creativecommons.org/publicdomain/zero/1.0/",
728
+ "version": "1",
729
+ "keywords": "Phylogeny, Malaria, Parasites, Taxonomy, Mitochondrial genome, Africa, Plasmodium",
730
+ "datePublished": "2011",
731
+ "hasPart": [{
732
+ "@type": "CreativeWork",
733
+ "@id": "https://doi.org/10.5061/dryad.8515/1"
734
+ }, {
735
+ "@type": "CreativeWork",
736
+ "@id": "https://doi.org/10.5061/dryad.8515/2"
737
+ }],
738
+ "citation": [{
739
+ "@type": "CreativeWork",
740
+ "@id": "https://doi.org/10.1371/journal.ppat.1000446"
741
+ }],
742
+ "schemaVersion": "http://datacite.org/schema/kernel-3",
743
+ "publisher": {
744
+ "@type": "Organization",
745
+ "name": "Dryad Digital Repository"
746
+ },
747
+ "provider": {
748
+ "@type": "Organization",
749
+ "name": "DataCite"
750
+ }
751
+ }
752
+ ```
753
+
754
+ Convert DataCite XML to schema version 4.0:
755
+ ```
756
+ bolognese 10.5061/DRYAD.8515 -t datacite --schema_version http://datacite.org/schema/kernel-4
757
+
758
+ <?xml version="1.0" encoding="UTF-8"?>
759
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
760
+ <identifier identifierType="DOI">10.5061/DRYAD.8515</identifier>
761
+ <creators>
762
+ <creator>
763
+ <creatorName>Ollomo, Benjamin</creatorName>
764
+ <givenName>Benjamin</givenName>
765
+ <familyName>Ollomo</familyName>
766
+ </creator>
767
+ <creator>
768
+ <creatorName>Durand, Patrick</creatorName>
769
+ <givenName>Patrick</givenName>
770
+ <familyName>Durand</familyName>
771
+ </creator>
772
+ <creator>
773
+ <creatorName>Prugnolle, Franck</creatorName>
774
+ <givenName>Franck</givenName>
775
+ <familyName>Prugnolle</familyName>
776
+ </creator>
777
+ <creator>
778
+ <creatorName>Douzery, Emmanuel J. P.</creatorName>
779
+ <givenName>Emmanuel J. P.</givenName>
780
+ <familyName>Douzery</familyName>
781
+ </creator>
782
+ <creator>
783
+ <creatorName>Arnathau, Céline</creatorName>
784
+ <givenName>Céline</givenName>
785
+ <familyName>Arnathau</familyName>
786
+ </creator>
787
+ <creator>
788
+ <creatorName>Nkoghe, Dieudonné</creatorName>
789
+ <givenName>Dieudonné</givenName>
790
+ <familyName>Nkoghe</familyName>
791
+ </creator>
792
+ <creator>
793
+ <creatorName>Leroy, Eric</creatorName>
794
+ <givenName>Eric</givenName>
795
+ <familyName>Leroy</familyName>
796
+ </creator>
797
+ <creator>
798
+ <creatorName>Renaud, François</creatorName>
799
+ <givenName>François</givenName>
800
+ <familyName>Renaud</familyName>
801
+ </creator>
802
+ </creators>
803
+ <titles>
804
+ <title>Data from: A new malaria agent in African hominids.</title>
805
+ </titles>
806
+ <publisher>Dryad Digital Repository</publisher>
807
+ <publicationYear>2011</publicationYear>
808
+ <resourceType resourceTypeGeneral="Dataset">DataPackage</resourceType>
809
+ <alternateIdentifiers>
810
+ <alternateIdentifier alternateIdentifierType="Local accession number">Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.</alternateIdentifier>
811
+ </alternateIdentifiers>
812
+ <subjects>
813
+ <subject>Phylogeny</subject>
814
+ <subject>Malaria</subject>
815
+ <subject>Parasites</subject>
816
+ <subject>Taxonomy</subject>
817
+ <subject>Mitochondrial genome</subject>
818
+ <subject>Africa</subject>
819
+ <subject>Plasmodium</subject>
820
+ </subjects>
821
+ <dates>
822
+ <date dateType="Issued">2011</date>
823
+ </dates>
824
+ <relatedIdentifiers>
825
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="HasPart">https://doi.org/10.5061/dryad.8515/1</relatedIdentifier>
826
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="HasPart">https://doi.org/10.5061/dryad.8515/2</relatedIdentifier>
827
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.1371/journal.ppat.1000446</relatedIdentifier>
828
+ </relatedIdentifiers>
829
+ <version>1</version>
830
+ <rightsList>
831
+ <rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0/">Public Domain (CC0 1.0)</rights>
832
+ </rightsList>
833
+ </resource>
834
+ ```
835
+
836
+
837
+ Convert DataCite XML to Codemeta:
838
+
839
+ ```
840
+ bolognese https://doi.org/10.5063/f1m61h5x -t codemeta
841
+
842
+ {
843
+ "@context":"https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
844
+ "@type":"SoftwareSourceCode",
845
+ "@id":"https://doi.org/10.5063/f1m61h5x",
846
+ "identifier":"https://doi.org/10.5063/f1m61h5x",
847
+ "title":"dataone: R interface to the DataONE network of data repositories",
848
+ "agents":{
849
+ "@type":"Person",
850
+ "givenName":"Matthew B.",
851
+ "familyName":"Jones"
852
+ },
853
+ "datePublished":"2016",
854
+ "publisher":{
855
+ "@type":"Organization",
856
+ "name":"KNB Data Repository"
857
+ }
858
+ }
859
+ ```
860
+
861
+ Convert DataCite XML to BibTeX:
862
+
863
+ ```
864
+ bolognese 10.5061/DRYAD.8515 -t bibtex
865
+
866
+ @misc{https://doi.org/10.5061/dryad.8515,
867
+ doi = {10.5061/DRYAD.8515},
868
+ author = {Ollomo, Benjamin and Durand, Patrick and Prugnolle, Franck and Douzery, Emmanuel J. P. and Arnathau, Céline and Nkoghe, Dieudonné and Leroy, Eric and Renaud, François},
869
+ keywords = {Phylogeny, Malaria, Parasites, Taxonomy, Mitochondrial genome, Africa, Plasmodium},
870
+ title = {Data from: A new malaria agent in African hominids.},
871
+ publisher = {Dryad Digital Repository},
872
+ year = {2011}
873
+ }
874
+ ```
875
+
876
+ Convert schema.org/JSON-LD to DataCite XML:
877
+
878
+ ```
879
+ bolognese https://blog.datacite.org/eating-your-own-dog-food -t datacite
880
+
881
+ <?xml version="1.0" encoding="UTF-8"?>
882
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
883
+ <identifier identifierType="DOI">10.5438/4k3m-nyvg</identifier>
884
+ <creators>
885
+ <creator>
886
+ <creatorName>Fenner, Martin</creatorName>
887
+ <givenName>Martin</givenName>
888
+ <familyName>Fenner</familyName>
889
+ <nameIdentifier schemeURI="http://orcid.org/" nameIdentifierScheme="ORCID">http://orcid.org/0000-0003-1419-2405</nameIdentifier>
890
+ </creator>
891
+ </creators>
892
+ <titles>
893
+ <title>Eating your own Dog Food</title>
894
+ </titles>
895
+ <publisher>DataCite</publisher>
896
+ <publicationYear>2016</publicationYear>
897
+ <resourceType resourceTypeGeneral="Text">BlogPosting</resourceType>
898
+ <alternateIdentifiers>
899
+ <alternateIdentifier alternateIdentifierType="Local accession number">MS-49-3632-5083</alternateIdentifier>
900
+ </alternateIdentifiers>
901
+ <subjects>
902
+ <subject>datacite</subject>
903
+ <subject>doi</subject>
904
+ <subject>metadata</subject>
905
+ <subject>featured</subject>
906
+ </subjects>
907
+ <dates>
908
+ <date dateType="Created">2016-12-20</date>
909
+ <date dateType="Issued">2016-12-20</date>
910
+ <date dateType="Updated">2016-12-20</date>
911
+ </dates>
912
+ <relatedIdentifiers>
913
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="IsPartOf">https://doi.org/10.5438/0000-00ss</relatedIdentifier>
914
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.5438/0012</relatedIdentifier>
915
+ <relatedIdentifier relatedIdentifierType="DOI" relationType="References">https://doi.org/10.5438/55e5-t5c0</relatedIdentifier>
916
+ </relatedIdentifiers>
917
+ <version>1.0</version>
918
+ <rightsList>
919
+ <rights rightsURI="https://creativecommons.org/licenses/by/4.0/"/>
920
+ </rightsList>
921
+ <descriptions>
922
+ <description descriptionType="Abstract">Eating your own dog food is a slang term to describe that an organization should itself use the products and services it provides. For DataCite this means that we should use DOIs with appropriate metadata and strategies for long-term preservation for...</description>
923
+ </descriptions>
924
+ </resource>
925
+ ```
926
+
927
+ Convert schema.org/JSON-LD to BibTeX:
928
+
929
+ ```
930
+ bolognese https://blog.datacite.org/eating-your-own-dog-food -t bibtex
931
+
932
+ @article{https://doi.org/10.5438/4k3m-nyvg,
933
+ doi = {10.5438/4k3m-nyvg},
934
+ url = {https://blog.datacite.org/eating-your-own-dog-food},
935
+ author = {Fenner, Martin},
936
+ keywords = {datacite, doi, metadata, featured},
937
+ title = {Eating your own Dog Food},
938
+ publisher = {DataCite},
939
+ year = {2016}
940
+ }
941
+ ```
942
+
943
+ Convert Codemeta to schema.org/JSON-LD:
944
+
945
+ ```
946
+ bolognese https://github.com/datacite/maremma
947
+
948
+ {
949
+ "@context":"http://schema.org",
950
+ "@type":"SoftwareSourceCode",
951
+ "@id":"https://doi.org/10.5438/qeg0-3gm3",
952
+ "url":"https://github.com/datacite/maremma",
953
+ "name":"Maremma: a Ruby library for simplified network calls",
954
+ "author":{
955
+ "@type":"person",
956
+ "@id":"http://orcid.org/0000-0003-0077-4738",
957
+ "name":"Martin Fenner"
958
+ },
959
+ "description":"Simplifies network calls, including json/xml parsing and error handling. Based on Faraday.",
960
+ "keywords":"faraday, excon, net/http",
961
+ "dateCreated":"2015-11-28",
962
+ "datePublished":"2017-02-24",
963
+ "dateModified":"2017-02-24",
964
+ "publisher":{
965
+ "@type":"Organization",
966
+ "name":"DataCite"
967
+ }
968
+ }
969
+ ```
970
+
971
+ Convert Codemeta to DataCite XML:
972
+
973
+ ```
974
+ bolognese https://github.com/datacite/maremma -t datacite
975
+
976
+ <?xml version="1.0" encoding="UTF-8"?>
977
+ <resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
978
+ <identifier identifierType="DOI">10.5438/qeg0-3gm3</identifier>
979
+ <creators>
980
+ <creator>
981
+ <creatorName>Martin Fenner</creatorName>
982
+ <nameIdentifier schemeURI="http://orcid.org/" nameIdentifierScheme="ORCID">http://orcid.org/0000-0003-0077-4738</nameIdentifier>
983
+ </creator>
984
+ </creators>
985
+ <titles>
986
+ <title>Maremma: a Ruby library for simplified network calls</title>
987
+ </titles>
988
+ <publisher>DataCite</publisher>
989
+ <publicationYear>2017</publicationYear>
990
+ <resourceType resourceTypeGeneral="Software">SoftwareSourceCode</resourceType>
991
+ <subjects>
992
+ <subject>faraday</subject>
993
+ <subject>excon</subject>
994
+ <subject>net/http</subject>
995
+ </subjects>
996
+ <dates>
997
+ <date dateType="Created">2015-11-28</date>
998
+ <date dateType="Issued">2017-02-24</date>
999
+ <date dateType="Updated">2017-02-24</date>
1000
+ </dates>
1001
+ <descriptions>
1002
+ <description descriptionType="Abstract">Simplifies network calls, including json/xml parsing and error handling. Based on Faraday.</description>
1003
+ </descriptions>
1004
+ </resource>
64
1005
  ```
65
1006
 
66
1007
  ## Development
@@ -72,6 +1013,7 @@ bundle exec rspec
72
1013
  ```
73
1014
 
74
1015
  Follow along via [Github Issues](https://github.com/datacite/bolognese/issues).
1016
+ Please open an issue if conversion fails or metadata are not properly supported.
75
1017
 
76
1018
  ### Note on Patches/Pull Requests
77
1019