commonmeta-ruby 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (791) hide show
  1. checksums.yaml +7 -0
  2. data/.github/workflows/build.yml +38 -0
  3. data/.github/workflows/changelog.yml +36 -0
  4. data/.github/workflows/codeql-analysis.yml +72 -0
  5. data/.github/workflows/rubocop.yml +50 -0
  6. data/.gitignore +59 -0
  7. data/.rubocop.yml +182 -0
  8. data/.rubocop_todo.yml +76 -0
  9. data/.tool-versions +1 -0
  10. data/CHANGELOG.md +124 -0
  11. data/CITATION +16 -0
  12. data/CITATION.cff +20 -0
  13. data/Gemfile +5 -0
  14. data/Gemfile.lock +270 -0
  15. data/LICENSE.md +21 -0
  16. data/README.md +733 -0
  17. data/Rakefile +13 -0
  18. data/bin/commonmeta +9 -0
  19. data/commonmeta.gemspec +68 -0
  20. data/lib/commonmeta/array.rb +13 -0
  21. data/lib/commonmeta/author_utils.rb +172 -0
  22. data/lib/commonmeta/cli.rb +70 -0
  23. data/lib/commonmeta/crossref_utils.rb +343 -0
  24. data/lib/commonmeta/doi_utils.rb +81 -0
  25. data/lib/commonmeta/metadata.rb +269 -0
  26. data/lib/commonmeta/metadata_utils.rb +184 -0
  27. data/lib/commonmeta/pubmed.rb +36 -0
  28. data/lib/commonmeta/readers/bibtex_reader.rb +62 -0
  29. data/lib/commonmeta/readers/cff_reader.rb +146 -0
  30. data/lib/commonmeta/readers/codemeta_reader.rb +90 -0
  31. data/lib/commonmeta/readers/crossref_reader.rb +186 -0
  32. data/lib/commonmeta/readers/crossref_xml_reader.rb +379 -0
  33. data/lib/commonmeta/readers/csl_reader.rb +85 -0
  34. data/lib/commonmeta/readers/datacite_reader.rb +169 -0
  35. data/lib/commonmeta/readers/npm_reader.rb +94 -0
  36. data/lib/commonmeta/readers/ris_reader.rb +66 -0
  37. data/lib/commonmeta/readers/schema_org_reader.rb +300 -0
  38. data/lib/commonmeta/schema_utils.rb +19 -0
  39. data/lib/commonmeta/string.rb +7 -0
  40. data/lib/commonmeta/utils.rb +1351 -0
  41. data/lib/commonmeta/version.rb +5 -0
  42. data/lib/commonmeta/whitelist_scrubber.rb +54 -0
  43. data/lib/commonmeta/writers/bibtex_writer.rb +36 -0
  44. data/lib/commonmeta/writers/cff_writer.rb +63 -0
  45. data/lib/commonmeta/writers/citation_writer.rb +14 -0
  46. data/lib/commonmeta/writers/codemeta_writer.rb +33 -0
  47. data/lib/commonmeta/writers/crossref_xml_writer.rb +11 -0
  48. data/lib/commonmeta/writers/csl_writer.rb +11 -0
  49. data/lib/commonmeta/writers/csv_writer.rb +26 -0
  50. data/lib/commonmeta/writers/datacite_writer.rb +94 -0
  51. data/lib/commonmeta/writers/jats_writer.rb +138 -0
  52. data/lib/commonmeta/writers/rdf_xml_writer.rb +11 -0
  53. data/lib/commonmeta/writers/ris_writer.rb +41 -0
  54. data/lib/commonmeta/writers/schema_org_writer.rb +61 -0
  55. data/lib/commonmeta/writers/turtle_writer.rb +11 -0
  56. data/lib/commonmeta/xml_converter.rb +14 -0
  57. data/lib/commonmeta.rb +35 -0
  58. data/resources/2008/09/xsd.xsl +997 -0
  59. data/resources/cff.json +1827 -0
  60. data/resources/commonmeta_v0.9.json +393 -0
  61. data/resources/crossref/AccessIndicators.xsd +47 -0
  62. data/resources/crossref/JATS-journalpublishing1-3d2-mathml3-elements.xsd +10130 -0
  63. data/resources/crossref/JATS-journalpublishing1-3d2-mathml3.xsd +48 -0
  64. data/resources/crossref/JATS-journalpublishing1-elements.xsd +8705 -0
  65. data/resources/crossref/JATS-journalpublishing1-mathml3-elements.xsd +8608 -0
  66. data/resources/crossref/JATS-journalpublishing1-mathml3.xsd +49 -0
  67. data/resources/crossref/JATS-journalpublishing1.xsd +6176 -0
  68. data/resources/crossref/clinicaltrials.xsd +61 -0
  69. data/resources/crossref/common5.3.1.xsd +1530 -0
  70. data/resources/crossref/crossref5.3.1.xsd +1949 -0
  71. data/resources/crossref/crossref_query_output3.0.xsd +1097 -0
  72. data/resources/crossref/fundref.xsd +49 -0
  73. data/resources/crossref/module-ali.xsd +39 -0
  74. data/resources/crossref/relations.xsd +444 -0
  75. data/resources/datacite-contributorType-v4.xsd +35 -0
  76. data/resources/datacite-dateType-v4.xsd +25 -0
  77. data/resources/datacite-descriptionType-v4.xsd +19 -0
  78. data/resources/datacite-funderIdentifierType-v4.xsd +15 -0
  79. data/resources/datacite-nameType-v4.xsd +10 -0
  80. data/resources/datacite-relatedIdentifierType-v4.xsd +34 -0
  81. data/resources/datacite-relationType-v4.xsd +49 -0
  82. data/resources/datacite-resourceType-v4.xsd +28 -0
  83. data/resources/datacite-titleType-v4.xsd +14 -0
  84. data/resources/datacite-v3.json +508 -0
  85. data/resources/datacite-v4.json +512 -0
  86. data/resources/kernel-3.0/include/datacite-contributorType-v3.xsd +33 -0
  87. data/resources/kernel-3.0/include/datacite-dateType-v3.xsd +21 -0
  88. data/resources/kernel-3.0/include/datacite-descriptionType-v3.xsd +17 -0
  89. data/resources/kernel-3.0/include/datacite-relatedIdentifierType-v3.xsd +27 -0
  90. data/resources/kernel-3.0/include/datacite-relationType-v3.xsd +33 -0
  91. data/resources/kernel-3.0/include/datacite-resourceType-v3.xsd +26 -0
  92. data/resources/kernel-3.0/include/datacite-titleType-v3.xsd +12 -0
  93. data/resources/kernel-3.0/include/xml.xsd +286 -0
  94. data/resources/kernel-3.0/metadata.xsd +377 -0
  95. data/resources/kernel-4/include/datacite-contributorType-v4.xsd +35 -0
  96. data/resources/kernel-4/include/datacite-dateType-v4.xsd +25 -0
  97. data/resources/kernel-4/include/datacite-descriptionType-v4.xsd +19 -0
  98. data/resources/kernel-4/include/datacite-funderIdentifierType-v4.xsd +16 -0
  99. data/resources/kernel-4/include/datacite-nameType-v4.xsd +10 -0
  100. data/resources/kernel-4/include/datacite-numberType-v4.xsd +12 -0
  101. data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +34 -0
  102. data/resources/kernel-4/include/datacite-relationType-v4.xsd +51 -0
  103. data/resources/kernel-4/include/datacite-resourceType-v4.xsd +43 -0
  104. data/resources/kernel-4/include/datacite-titleType-v4.xsd +14 -0
  105. data/resources/kernel-4/include/xml.xsd +286 -0
  106. data/resources/kernel-4/metadata.xsd +707 -0
  107. data/resources/oecd/dfg-mappings.json +1866 -0
  108. data/resources/oecd/for-mappings.json +1099 -0
  109. data/resources/oecd/fos-mappings.json +198 -0
  110. data/resources/schema_org/jsonldcontext.json +7477 -0
  111. data/resources/spdx/licenses.json +5297 -0
  112. data/resources/xml.xsd +286 -0
  113. data/rubocop.sarif +0 -0
  114. data/sonar-project.properties +11 -0
  115. data/spec/array_spec.rb +22 -0
  116. data/spec/author_utils_spec.rb +132 -0
  117. data/spec/cli_spec.rb +309 -0
  118. data/spec/doi_utils_spec.rb +318 -0
  119. data/spec/find_from_format_spec.rb +144 -0
  120. data/spec/fixtures/CITATION.cff +83 -0
  121. data/spec/fixtures/aida.json +82 -0
  122. data/spec/fixtures/cgimp_package.json +18 -0
  123. data/spec/fixtures/cit_package.json +19 -0
  124. data/spec/fixtures/citeproc-no-author.json +26 -0
  125. data/spec/fixtures/citeproc-no-categories.json +21 -0
  126. data/spec/fixtures/citeproc.json +30 -0
  127. data/spec/fixtures/codemeta.json +86 -0
  128. data/spec/fixtures/codemeta_v2.json +86 -0
  129. data/spec/fixtures/crosscite.json +63 -0
  130. data/spec/fixtures/crossref.bib +14 -0
  131. data/spec/fixtures/crossref.json +572 -0
  132. data/spec/fixtures/crossref.ris +15 -0
  133. data/spec/fixtures/crossref.xml +606 -0
  134. data/spec/fixtures/datacite.json +86 -0
  135. data/spec/fixtures/datacite_software.json +21 -0
  136. data/spec/fixtures/datacite_software_missing_comma.json +18 -0
  137. data/spec/fixtures/datacite_software_overlapping_keys.json +18 -0
  138. data/spec/fixtures/datacite_software_version.json +74 -0
  139. data/spec/fixtures/edam_package.json +12 -0
  140. data/spec/fixtures/maremma/codemeta.json +36 -0
  141. data/spec/fixtures/pure.bib +14 -0
  142. data/spec/fixtures/pure.ris +15 -0
  143. data/spec/fixtures/pure.xml +188 -0
  144. data/spec/fixtures/ris_bug.ris +9 -0
  145. data/spec/fixtures/schema_4.0.xml +140 -0
  146. data/spec/fixtures/schema_org.json +49 -0
  147. data/spec/fixtures/schema_org_front-matter.json +32 -0
  148. data/spec/fixtures/schema_org_geolocation.json +82 -0
  149. data/spec/fixtures/schema_org_geoshape.json +550 -0
  150. data/spec/fixtures/schema_org_gtex.json +75 -0
  151. data/spec/fixtures/schema_org_list.json +12623 -0
  152. data/spec/fixtures/schema_org_tdl_iodp_invalid_authors.json +25 -0
  153. data/spec/fixtures/schema_org_topmed.json +53 -0
  154. data/spec/fixtures/schema_org_type_as_array.json +41 -0
  155. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/default.yml +110 -0
  156. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_bibtex.yml +110 -0
  157. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_crossref_xml.yml +110 -0
  158. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_datacite.yml +110 -0
  159. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_schema_org.yml +110 -0
  160. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/default.yml +55 -0
  161. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_bibtex.yml +55 -0
  162. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_crossref_xml.yml +55 -0
  163. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_datacite.yml +55 -0
  164. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_schema_org.yml +55 -0
  165. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/default.yml +299 -0
  166. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_bibtex.yml +299 -0
  167. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_citation.yml +299 -0
  168. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_crossref_xml.yml +299 -0
  169. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_datacite.yml +299 -0
  170. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_jats.yml +299 -0
  171. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_schema_org.yml +299 -0
  172. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/default.yml +172 -0
  173. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_bibtex.yml +172 -0
  174. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_citation.yml +172 -0
  175. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite.yml +172 -0
  176. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_jats.yml +172 -0
  177. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_schema_org.yml +172 -0
  178. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/default.yml +1098 -0
  179. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_datacite.yml +1098 -0
  180. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_schema_org.yml +1100 -0
  181. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/crossref.yml +55 -0
  182. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/datacite.yml +55 -0
  183. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/jalc.yml +55 -0
  184. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/kisti.yml +55 -0
  185. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/medra.yml +55 -0
  186. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/op.yml +55 -0
  187. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/author.yml +164 -0
  188. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/no_author.yml +164 -0
  189. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/single_author.yml +164 -0
  190. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/with_organization.yml +164 -0
  191. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +247 -0
  192. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/crossref.yml +55 -0
  193. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/datacite.yml +55 -0
  194. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/jalc.yml +55 -0
  195. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/kisti.yml +55 -0
  196. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/medra.yml +55 -0
  197. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_found.yml +55 -0
  198. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/op.yml +55 -0
  199. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref.yml +55 -0
  200. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +55 -0
  201. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite.yml +55 -0
  202. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite_doi_http.yml +55 -0
  203. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +55 -0
  204. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_match.yml +221 -0
  205. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +221 -0
  206. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_match.yml +221 -0
  207. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_no_match.yml +221 -0
  208. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_for_match.yml +221 -0
  209. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_match.yml +221 -0
  210. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_no_match.yml +221 -0
  211. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org/with_id.yml +221 -0
  212. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/with_affiliation.yml +221 -0
  213. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/without_affiliation.yml +221 -0
  214. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/cff-converter-python.yml +200 -0
  215. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff.yml +154 -0
  216. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +154 -0
  217. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml +86 -0
  218. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml +93 -0
  219. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +337 -0
  220. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +347 -0
  221. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +359 -0
  222. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/JaLC.yml +384 -0
  223. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/KISTI.yml +330 -0
  224. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/OP.yml +969 -0
  225. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/affiliation_is_space.yml +358 -0
  226. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book.yml +312 -0
  227. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book_chapter.yml +465 -0
  228. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/article_id_as_page_number.yml +276 -0
  229. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/author_literal.yml +492 -0
  230. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book.yml +523 -0
  231. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter.yml +377 -0
  232. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +336 -0
  233. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_oup.yml +289 -0
  234. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/component.yml +289 -0
  235. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset.yml +299 -0
  236. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset_usda.yml +341 -0
  237. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/date_in_future.yml +570 -0
  238. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dissertation.yml +301 -0
  239. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/empty_given_name.yml +303 -0
  240. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/invalid_date.yml +307 -0
  241. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article.yml +461 -0
  242. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +276 -0
  243. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with.yml +470 -0
  244. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +519 -0
  245. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_funding.yml +456 -0
  246. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_issue.yml +270 -0
  247. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/mEDRA.yml +310 -0
  248. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/markup.yml +329 -0
  249. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/missing_creator.yml +307 -0
  250. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_issn.yml +393 -0
  251. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles.yml +265 -0
  252. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +860 -0
  253. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/not_found_error.yml +209 -0
  254. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/peer_review.yml +287 -0
  255. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content.yml +326 -0
  256. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content_copernicus.yml +297 -0
  257. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/report_osti.yml +315 -0
  258. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/vor_with_url.yml +451 -0
  259. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book.yml +816 -0
  260. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +324 -0
  261. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_raw/journal_article.yml +110 -0
  262. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/dissertation.yml +152 -0
  263. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_references.yml +175 -0
  264. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme.yml +328 -0
  265. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date/publication_date.yml +221 -0
  266. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/date.yml +221 -0
  267. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year-month.yml +221 -0
  268. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year.yml +221 -0
  269. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/date.yml +221 -0
  270. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year-month.yml +221 -0
  271. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year.yml +221 -0
  272. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/date.yml +221 -0
  273. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year-month.yml +221 -0
  274. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year.yml +221 -0
  275. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/future.yml +221 -0
  276. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/invalid.yml +221 -0
  277. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/nil.yml +221 -0
  278. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/past.yml +221 -0
  279. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/present.yml +221 -0
  280. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_familyName.yml +133 -0
  281. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +153 -0
  282. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/is_organization.yml +164 -0
  283. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_crossref.yml +247 -0
  284. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/only_familyName_and_givenName.yml +468 -0
  285. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting.yml +530 -0
  286. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +530 -0
  287. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +534 -0
  288. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml +1838 -0
  289. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/pangaea.yml +468 -0
  290. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/upstream_blog.yml +885 -0
  291. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/zenodo.yml +583 -0
  292. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/only_title.yml +221 -0
  293. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_and_pages.yml +221 -0
  294. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_and_pages.yml +221 -0
  295. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_issue_and_pages.yml +221 -0
  296. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_cff_url.yml +221 -0
  297. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_codemeta_url.yml +221 -0
  298. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url.yml +221 -0
  299. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_cff_file.yml +221 -0
  300. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_file.yml +221 -0
  301. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +55 -0
  302. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/unknown_DOI_prefix.yml +55 -0
  303. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_comma.yml +164 -0
  304. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_family_name.yml +164 -0
  305. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_id.yml +164 -0
  306. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_known_given_name.yml +164 -0
  307. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_no_info.yml +164 -0
  308. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_orcid_id.yml +164 -0
  309. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_type_organization.yml +164 -0
  310. data/spec/fixtures/vcr_cassettes/Briard_Metadata/json_schema_errors/is_valid.yml +221 -0
  311. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/not_found.yml +221 -0
  312. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash.yml +221 -0
  313. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +221 -0
  314. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi.yml +221 -0
  315. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi_as_url.yml +221 -0
  316. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/filename.yml +221 -0
  317. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/ftp.yml +221 -0
  318. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/invalid_url.yml +221 -0
  319. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_options.yml +221 -0
  320. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_url.yml +221 -0
  321. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/string.yml +221 -0
  322. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url.yml +221 -0
  323. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url_with_utf-8.yml +221 -0
  324. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/doi.yml +221 -0
  325. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/url.yml +221 -0
  326. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_array.yml +221 -0
  327. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_empty_array.yml +221 -0
  328. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_hash.yml +221 -0
  329. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_string.yml +221 -0
  330. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/uri.yml +221 -0
  331. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash.yml +221 -0
  332. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +221 -0
  333. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array.yml +221 -0
  334. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array_of_strings.yml +221 -0
  335. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/first.yml +221 -0
  336. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash.yml +221 -0
  337. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash_with_array_value.yml +221 -0
  338. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/nil.yml +221 -0
  339. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/string.yml +221 -0
  340. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_anothe_doi.yml +221 -0
  341. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_doi.yml +221 -0
  342. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/encode_doi.yml +221 -0
  343. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/onlies_keep_specific_tags.yml +221 -0
  344. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/removes_a_tags.yml +221 -0
  345. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_id.yml +221 -0
  346. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_not_found.yml +221 -0
  347. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_url.yml +221 -0
  348. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_exists.yml +221 -0
  349. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_id.yml +221 -0
  350. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org/with_id.yml +221 -0
  351. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org_identifiers/with_identifiers.yml +221 -0
  352. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid.yml +221 -0
  353. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_https.yml +221 -0
  354. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_id.yml +221 -0
  355. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox.yml +221 -0
  356. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +221 -0
  357. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_with_spaces.yml +221 -0
  358. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_wrong_id.yml +221 -0
  359. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_www.yml +221 -0
  360. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +221 -0
  361. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +221 -0
  362. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +221 -0
  363. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +221 -0
  364. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/DOI.yml +221 -0
  365. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/ISSN.yml +221 -0
  366. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/URL.yml +221 -0
  367. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/string.yml +221 -0
  368. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/BlogPosting.yml +81 -0
  369. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/Dataset.yml +120 -0
  370. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +186 -0
  371. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/climate_data.yml +74 -0
  372. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/from_schema_org.yml +530 -0
  373. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +149 -0
  374. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/maremma.yml +86 -0
  375. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml +100 -0
  376. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml +247 -0
  377. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml +228 -0
  378. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +143 -0
  379. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +150 -0
  380. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +93 -0
  381. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/ruby-cff.yml +154 -0
  382. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml +120 -0
  383. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml +247 -0
  384. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +299 -0
  385. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Missing_author.yml +199 -0
  386. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +75 -0
  387. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/software_w/version.yml +86 -0
  388. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +76 -0
  389. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +76 -0
  390. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +541 -0
  391. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article.yml +55 -0
  392. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +85 -0
  393. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/posted_content.yml +283 -0
  394. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +123 -0
  395. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +477 -0
  396. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_upstream_blog.yml +1025 -0
  397. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/Another_dataset.yml +110 -0
  398. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/BlogPosting.yml +81 -0
  399. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/BlogPosting_schema_org.yml +530 -0
  400. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/Dataset.yml +120 -0
  401. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/container_title.yml +153 -0
  402. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/interactive_resource_without_dates.yml +75 -0
  403. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/journal_article.yml +247 -0
  404. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/keywords_subject_scheme.yml +149 -0
  405. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/maremma.yml +86 -0
  406. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/missing_creator.yml +199 -0
  407. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/multiple_abstracts.yml +101 -0
  408. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/organization_author.yml +314 -0
  409. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/software.yml +90 -0
  410. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/software_w/version.yml +86 -0
  411. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/with_only_first_page.yml +333 -0
  412. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/with_pages.yml +228 -0
  413. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/climate_data.yml +74 -0
  414. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/maremma.yml +86 -0
  415. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/text.yml +100 -0
  416. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_data_citation.yml +247 -0
  417. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_pages.yml +228 -0
  418. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/from_schema_org.yml +530 -0
  419. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/maremma.yml +86 -0
  420. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/with_ORCID_ID.yml +228 -0
  421. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/with_data_citation.yml +247 -0
  422. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/from_schema_org.yml +530 -0
  423. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/maremma.yml +86 -0
  424. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +228 -0
  425. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +247 -0
  426. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +120 -0
  427. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +106 -0
  428. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/book_chapter.yml +163 -0
  429. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +530 -0
  430. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +75 -0
  431. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/maremma.yml +86 -0
  432. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +228 -0
  433. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +247 -0
  434. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_editor.yml +355 -0
  435. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +81 -0
  436. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +530 -0
  437. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/journal_article.yml +247 -0
  438. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/maremma.yml +86 -0
  439. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/with_pages.yml +228 -0
  440. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting.yml +81 -0
  441. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +530 -0
  442. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/Dataset.yml +120 -0
  443. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/alternate_name.yml +138 -0
  444. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/journal_article.yml +115 -0
  445. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +149 -0
  446. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/maremma.yml +86 -0
  447. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/with_pages.yml +112 -0
  448. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +120 -0
  449. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding.yml +192 -0
  450. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +150 -0
  451. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +98 -0
  452. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +160 -0
  453. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +153 -0
  454. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +131 -0
  455. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/data_catalog.yml +136 -0
  456. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/geo_location_box.yml +181 -0
  457. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +127 -0
  458. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/journal_article.yml +247 -0
  459. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +86 -0
  460. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/series_information.yml +174 -0
  461. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme.yml +199 -0
  462. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +201 -0
  463. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting.yml +81 -0
  464. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +530 -0
  465. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/Dataset.yml +120 -0
  466. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/journal_article.yml +247 -0
  467. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/with_pages.yml +228 -0
  468. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref/default.yml +110 -0
  469. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref/to_bibtex.yml +110 -0
  470. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref/to_crossref_xml.yml +110 -0
  471. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref/to_datacite.yml +110 -0
  472. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref/to_schema_org.yml +110 -0
  473. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/default.yml +55 -0
  474. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/to_bibtex.yml +55 -0
  475. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/to_crossref_xml.yml +55 -0
  476. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/to_datacite.yml +55 -0
  477. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_file/crossref_xml/to_schema_org.yml +55 -0
  478. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/default.yml +299 -0
  479. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/to_bibtex.yml +299 -0
  480. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/to_citation.yml +299 -0
  481. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/to_crossref_xml.yml +299 -0
  482. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/to_datacite.yml +299 -0
  483. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/to_jats.yml +299 -0
  484. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/crossref/to_schema_org.yml +299 -0
  485. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/datacite/default.yml +172 -0
  486. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/datacite/to_bibtex.yml +172 -0
  487. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/datacite/to_citation.yml +172 -0
  488. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/datacite/to_datacite.yml +172 -0
  489. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/datacite/to_jats.yml +172 -0
  490. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/datacite/to_schema_org.yml +172 -0
  491. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/schema_org/default.yml +1096 -0
  492. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/schema_org/to_datacite.yml +1096 -0
  493. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/convert_from_id/schema_org/to_schema_org.yml +1098 -0
  494. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/crossref.yml +55 -0
  495. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/datacite.yml +55 -0
  496. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/jalc.yml +55 -0
  497. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/kisti.yml +55 -0
  498. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/medra.yml +55 -0
  499. data/spec/fixtures/vcr_cassettes/Commonmeta_CLI/find_from_format_by_id/op.yml +55 -0
  500. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +247 -0
  501. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/crossref.yml +55 -0
  502. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/datacite.yml +55 -0
  503. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/jalc.yml +55 -0
  504. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/kisti.yml +55 -0
  505. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/medra.yml +55 -0
  506. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/not_found.yml +55 -0
  507. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/op.yml +55 -0
  508. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/crossref.yml +55 -0
  509. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +55 -0
  510. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite.yml +55 -0
  511. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite_doi_http.yml +55 -0
  512. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +55 -0
  513. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_for_match.yml +221 -0
  514. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +221 -0
  515. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_match.yml +221 -0
  516. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_no_match.yml +221 -0
  517. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_for_match.yml +221 -0
  518. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_match.yml +221 -0
  519. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_no_match.yml +221 -0
  520. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/from_schema_org/with_id.yml +221 -0
  521. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/cff-converter-python.yml +200 -0
  522. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff.yml +154 -0
  523. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +154 -0
  524. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_codemeta_metadata/maremma.yml +86 -0
  525. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_codemeta_metadata/metadata_reports.yml +93 -0
  526. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +337 -0
  527. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +347 -0
  528. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +170 -0
  529. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/JaLC.yml +384 -0
  530. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/KISTI.yml +330 -0
  531. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/OP.yml +969 -0
  532. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/affiliation_is_space.yml +358 -0
  533. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/another_book.yml +312 -0
  534. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/another_book_chapter.yml +465 -0
  535. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/article_id_as_page_number.yml +276 -0
  536. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/author_literal.yml +492 -0
  537. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book.yml +523 -0
  538. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_chapter.yml +377 -0
  539. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +336 -0
  540. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_oup.yml +289 -0
  541. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/component.yml +289 -0
  542. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dataset.yml +300 -0
  543. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dataset_usda.yml +341 -0
  544. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/date_in_future.yml +570 -0
  545. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dissertation.yml +301 -0
  546. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/empty_given_name.yml +303 -0
  547. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/invalid_date.yml +307 -0
  548. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article.yml +461 -0
  549. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +276 -0
  550. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with.yml +908 -0
  551. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +519 -0
  552. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with_funding.yml +456 -0
  553. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_issue.yml +270 -0
  554. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/mEDRA.yml +310 -0
  555. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/markup.yml +329 -0
  556. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/missing_creator.yml +307 -0
  557. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_issn.yml +393 -0
  558. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_titles.yml +265 -0
  559. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +860 -0
  560. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/not_found_error.yml +209 -0
  561. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/peer_review.yml +287 -0
  562. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/posted_content.yml +326 -0
  563. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/posted_content_copernicus.yml +297 -0
  564. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/report_osti.yml +315 -0
  565. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/vor_with_url.yml +451 -0
  566. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/yet_another_book.yml +816 -0
  567. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +324 -0
  568. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_raw/journal_article.yml +110 -0
  569. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/dissertation.yml +152 -0
  570. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/funding_references.yml +175 -0
  571. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/subject_scheme.yml +328 -0
  572. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date/publication_date.yml +221 -0
  573. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/date.yml +221 -0
  574. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/year-month.yml +221 -0
  575. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/year.yml +221 -0
  576. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/date.yml +221 -0
  577. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/year-month.yml +221 -0
  578. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/year.yml +221 -0
  579. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/date.yml +221 -0
  580. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/year-month.yml +221 -0
  581. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/year.yml +221 -0
  582. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/future.yml +221 -0
  583. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/invalid.yml +221 -0
  584. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/nil.yml +221 -0
  585. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/past.yml +221 -0
  586. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/present.yml +221 -0
  587. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_familyName.yml +133 -0
  588. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +153 -0
  589. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/name_with_affiliation_crossref.yml +247 -0
  590. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/only_familyName_and_givenName.yml +467 -0
  591. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/BlogPosting.yml +530 -0
  592. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +530 -0
  593. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +534 -0
  594. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/harvard_dataverse.yml +1838 -0
  595. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/pangaea.yml +467 -0
  596. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/upstream_blog.yml +885 -0
  597. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/zenodo.yml +583 -0
  598. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/only_title.yml +221 -0
  599. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_and_pages.yml +221 -0
  600. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_volume_and_pages.yml +221 -0
  601. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_volume_issue_and_pages.yml +221 -0
  602. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_as_cff_url.yml +221 -0
  603. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_as_codemeta_url.yml +221 -0
  604. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url.yml +221 -0
  605. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_cff_file.yml +221 -0
  606. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_file.yml +221 -0
  607. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +55 -0
  608. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/unknown_DOI_prefix.yml +55 -0
  609. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_schema_errors/is_valid.yml +221 -0
  610. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/not_found.yml +221 -0
  611. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash.yml +221 -0
  612. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +221 -0
  613. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/doi.yml +221 -0
  614. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/doi_as_url.yml +221 -0
  615. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/filename.yml +221 -0
  616. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/ftp.yml +221 -0
  617. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/invalid_url.yml +221 -0
  618. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/sandbox_via_options.yml +221 -0
  619. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/sandbox_via_url.yml +221 -0
  620. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/string.yml +221 -0
  621. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/url.yml +221 -0
  622. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/url_with_utf-8.yml +221 -0
  623. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_array.yml +221 -0
  624. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_empty_array.yml +221 -0
  625. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_hash.yml +221 -0
  626. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_string.yml +221 -0
  627. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/uri.yml +221 -0
  628. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/with_trailing_slash.yml +221 -0
  629. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +221 -0
  630. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/array.yml +221 -0
  631. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/array_of_strings.yml +221 -0
  632. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/first.yml +221 -0
  633. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/hash.yml +221 -0
  634. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/hash_with_array_value.yml +221 -0
  635. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/nil.yml +221 -0
  636. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/string.yml +221 -0
  637. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_anothe_doi.yml +221 -0
  638. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_doi.yml +221 -0
  639. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/encode_doi.yml +221 -0
  640. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/sanitize/onlies_keep_specific_tags.yml +221 -0
  641. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/sanitize/removes_a_tags.yml +221 -0
  642. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_id.yml +221 -0
  643. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_not_found.yml +221 -0
  644. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_url.yml +221 -0
  645. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/name_to_spdx_exists.yml +221 -0
  646. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/name_to_spdx_id.yml +221 -0
  647. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/to_schema_org/with_id.yml +221 -0
  648. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/to_schema_org_identifiers/with_identifiers.yml +221 -0
  649. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid.yml +221 -0
  650. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_https.yml +221 -0
  651. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_id.yml +221 -0
  652. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_sandbox.yml +221 -0
  653. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +221 -0
  654. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_with_spaces.yml +221 -0
  655. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_wrong_id.yml +221 -0
  656. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_www.yml +221 -0
  657. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +221 -0
  658. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +221 -0
  659. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +221 -0
  660. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +221 -0
  661. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/DOI.yml +221 -0
  662. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/ISSN.yml +221 -0
  663. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/URL.yml +221 -0
  664. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/string.yml +221 -0
  665. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/BlogPosting.yml +81 -0
  666. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/Dataset.yml +120 -0
  667. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +186 -0
  668. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/climate_data.yml +74 -0
  669. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/from_schema_org.yml +530 -0
  670. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +149 -0
  671. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/maremma.yml +86 -0
  672. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/text.yml +100 -0
  673. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/with_data_citation.yml +247 -0
  674. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/with_pages.yml +228 -0
  675. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +143 -0
  676. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +150 -0
  677. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +93 -0
  678. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/ruby-cff.yml +154 -0
  679. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Dataset.yml +120 -0
  680. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Journal_article.yml +247 -0
  681. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +299 -0
  682. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Missing_author.yml +199 -0
  683. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +75 -0
  684. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/software_w/version.yml +86 -0
  685. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +76 -0
  686. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +76 -0
  687. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +541 -0
  688. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article.yml +55 -0
  689. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +85 -0
  690. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/posted_content.yml +283 -0
  691. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +123 -0
  692. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +477 -0
  693. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_upstream_blog.yml +1025 -0
  694. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/Another_dataset.yml +110 -0
  695. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/BlogPosting.yml +81 -0
  696. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/BlogPosting_schema_org.yml +530 -0
  697. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/Dataset.yml +120 -0
  698. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/container_title.yml +153 -0
  699. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/interactive_resource_without_dates.yml +75 -0
  700. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/journal_article.yml +247 -0
  701. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/keywords_subject_scheme.yml +149 -0
  702. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/maremma.yml +86 -0
  703. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/missing_creator.yml +199 -0
  704. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/multiple_abstracts.yml +101 -0
  705. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/organization_author.yml +314 -0
  706. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/software.yml +90 -0
  707. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/software_w/version.yml +86 -0
  708. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/with_only_first_page.yml +333 -0
  709. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/with_pages.yml +228 -0
  710. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/climate_data.yml +74 -0
  711. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/maremma.yml +86 -0
  712. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/text.yml +100 -0
  713. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/with_data_citation.yml +247 -0
  714. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/with_pages.yml +228 -0
  715. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/dissertation.yml +218 -0
  716. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/from_schema_org.yml +530 -0
  717. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/journal_article.yml +407 -0
  718. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/maremma.yml +86 -0
  719. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/with_ORCID_ID.yml +228 -0
  720. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/with_data_citation.yml +247 -0
  721. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +120 -0
  722. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +106 -0
  723. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/book_chapter.yml +163 -0
  724. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +530 -0
  725. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +75 -0
  726. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/maremma.yml +86 -0
  727. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +228 -0
  728. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +247 -0
  729. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_editor.yml +355 -0
  730. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +81 -0
  731. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +530 -0
  732. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/journal_article.yml +247 -0
  733. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/maremma.yml +86 -0
  734. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/with_pages.yml +228 -0
  735. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/BlogPosting.yml +81 -0
  736. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +530 -0
  737. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/Dataset.yml +120 -0
  738. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/alternate_name.yml +138 -0
  739. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/journal_article.yml +115 -0
  740. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +149 -0
  741. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/maremma.yml +86 -0
  742. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/with_pages.yml +112 -0
  743. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +120 -0
  744. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Funding.yml +192 -0
  745. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +150 -0
  746. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +98 -0
  747. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +160 -0
  748. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +153 -0
  749. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +131 -0
  750. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/data_catalog.yml +136 -0
  751. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/geo_location_box.yml +181 -0
  752. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +127 -0
  753. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/journal_article.yml +247 -0
  754. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +86 -0
  755. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/series_information.yml +174 -0
  756. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/subject_scheme.yml +199 -0
  757. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +201 -0
  758. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/BlogPosting.yml +81 -0
  759. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +530 -0
  760. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/Dataset.yml +120 -0
  761. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/journal_article.yml +247 -0
  762. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/with_pages.yml +228 -0
  763. data/spec/fixtures/vivli.xml +17 -0
  764. data/spec/metadata_spec.rb +147 -0
  765. data/spec/readers/bibtex_reader_spec.rb +58 -0
  766. data/spec/readers/cff_reader_spec.rb +148 -0
  767. data/spec/readers/codemeta_reader_spec.rb +116 -0
  768. data/spec/readers/crossref_reader_spec.rb +919 -0
  769. data/spec/readers/crossref_xml_reader_spec.rb +948 -0
  770. data/spec/readers/csl_reader_spec.rb +61 -0
  771. data/spec/readers/datacite_reader_spec.rb +156 -0
  772. data/spec/readers/npm_reader_spec.rb +69 -0
  773. data/spec/readers/ris_reader_spec.rb +70 -0
  774. data/spec/readers/schema_org_reader_spec.rb +416 -0
  775. data/spec/schema_utils_spec.rb +16 -0
  776. data/spec/spec_helper.rb +96 -0
  777. data/spec/utils_spec.rb +631 -0
  778. data/spec/writers/bibtex_writer_spec.rb +160 -0
  779. data/spec/writers/cff_writer_spec.rb +118 -0
  780. data/spec/writers/citation_writer_spec.rb +51 -0
  781. data/spec/writers/codemeta_writer_spec.rb +47 -0
  782. data/spec/writers/crossref_xml_writer_spec.rb +173 -0
  783. data/spec/writers/csl_writer_spec.rb +291 -0
  784. data/spec/writers/csv_writer_spec.rb +82 -0
  785. data/spec/writers/datacite_writer_spec.rb +150 -0
  786. data/spec/writers/jats_writer_spec.rb +210 -0
  787. data/spec/writers/rdf_xml_writer_spec.rb +91 -0
  788. data/spec/writers/ris_writer_spec.rb +206 -0
  789. data/spec/writers/schema_org_writer_spec.rb +301 -0
  790. data/spec/writers/turtle_writer_spec.rb +85 -0
  791. metadata +1514 -0
@@ -0,0 +1,530 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: https://blog.front-matter.io/posts/eating-your-own-dog-food
6
+ body:
7
+ encoding: UTF-8
8
+ string: ''
9
+ headers:
10
+ Connection:
11
+ - close
12
+ Host:
13
+ - blog.front-matter.io
14
+ User-Agent:
15
+ - http.rb/5.1.1
16
+ response:
17
+ status:
18
+ code: 301
19
+ message: Moved Permanently
20
+ headers:
21
+ Connection:
22
+ - close
23
+ Content-Length:
24
+ - '0'
25
+ Server:
26
+ - openresty
27
+ Status:
28
+ - 301 Moved Permanently
29
+ X-Request-Id:
30
+ - 2b52c1012b2695ed68a386d25f60ed73
31
+ - 2b52c1012b2695ed68a386d25f60ed73
32
+ Location:
33
+ - "/posts/eating-your-own-dog-food/"
34
+ Ghost-Cache:
35
+ - MISS
36
+ Cache-Control:
37
+ - public, max-age=31536000
38
+ Ghost-Age:
39
+ - '0'
40
+ Accept-Ranges:
41
+ - bytes
42
+ Date:
43
+ - Sun, 12 Mar 2023 22:21:24 GMT
44
+ Via:
45
+ - 1.1 varnish
46
+ Age:
47
+ - '2286304'
48
+ X-Served-By:
49
+ - cache-ams21043-AMS
50
+ X-Cache:
51
+ - HIT
52
+ X-Cache-Hits:
53
+ - '2'
54
+ X-Timer:
55
+ - S1678659685.836257,VS0,VE0
56
+ Vary:
57
+ - Cookie
58
+ Ghost-Fastly:
59
+ - 'true'
60
+ Alt-Svc:
61
+ - clear
62
+ body:
63
+ encoding: ASCII-8BIT
64
+ string: ''
65
+ recorded_at: Sun, 12 Mar 2023 22:21:24 GMT
66
+ - request:
67
+ method: get
68
+ uri: https://blog.front-matter.io/posts/eating-your-own-dog-food/
69
+ body:
70
+ encoding: UTF-8
71
+ string: ''
72
+ headers:
73
+ Connection:
74
+ - close
75
+ User-Agent:
76
+ - http.rb/5.1.1
77
+ Host:
78
+ - blog.front-matter.io
79
+ response:
80
+ status:
81
+ code: 200
82
+ message: OK
83
+ headers:
84
+ Connection:
85
+ - close
86
+ Content-Length:
87
+ - '36415'
88
+ Server:
89
+ - openresty
90
+ Content-Type:
91
+ - text/html; charset=utf-8
92
+ Status:
93
+ - 200 OK
94
+ X-Request-Id:
95
+ - f6e8d1789311f520c4fa5f1de10e7f7e
96
+ - f6e8d1789311f520c4fa5f1de10e7f7e
97
+ Etag:
98
+ - W/"8e3f-pqE7rLxYnSXYw4IJzjRtw7EOki0"
99
+ Ghost-Cache:
100
+ - MISS
101
+ Cache-Control:
102
+ - public, max-age=0
103
+ Ghost-Age:
104
+ - '0'
105
+ Accept-Ranges:
106
+ - bytes
107
+ Date:
108
+ - Tue, 14 Mar 2023 12:43:37 GMT
109
+ Via:
110
+ - 1.1 varnish
111
+ Age:
112
+ - '3320'
113
+ X-Served-By:
114
+ - cache-ams21066-AMS
115
+ X-Cache:
116
+ - HIT
117
+ X-Cache-Hits:
118
+ - '1'
119
+ X-Timer:
120
+ - S1678797817.364204,VS0,VE1
121
+ Vary:
122
+ - Cookie, Accept-Encoding
123
+ Ghost-Fastly:
124
+ - 'true'
125
+ Alt-Svc:
126
+ - clear
127
+ body:
128
+ encoding: UTF-8
129
+ string: "<!DOCTYPE html>\n<html lang=\"en\">\n\n<head>\n <meta charset=\"utf-8\">\n
130
+ \ <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n
131
+ \ <title>Eating your own Dog Food</title>\n <link rel=\"stylesheet\"
132
+ href=\"https://blog.front-matter.io/assets/built/screen.css?v=c39f9879bf\">\n\n
133
+ \ <meta name=\"citation_doi\" content=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\">\n
134
+ \ <meta name=\"citation_title\" content=\"Eating your own Dog Food\">\n
135
+ \ <meta name=\"citation_abstract\" content=\"Eating your own dog food is
136
+ a slang term to describe that an organization should itself use the products
137
+ and services it provides. For DataCite this means that we should use DOIs
138
+ with appropriate metadata and strategies for long-term preservation for the
139
+ scholarly outputs we produce. For the most part\">\n <meta name=\"citation_author\"
140
+ content=\"Martin Fenner\">\n <meta name=\"citation_date\" content=\"2016-12-20\"/>\n
141
+ \ <meta name=\"citation_keywords\" content=\"Feature\"/>\n <meta name=\"citation_journal_title\"
142
+ content=\"Front Matter\"/>\n <meta name=\"citation_language\" content=\"en\">\n\n
143
+ \ <meta name=\"citation_issn\" content=\"2749-9952\">\n\n <meta name=\"dc.identifier\"
144
+ content=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\">\n <meta name=\"dc.creator\"
145
+ content=\"Martin Fenner\" />\n <meta name=\"dc.title\" content=\"Eating
146
+ your own Dog Food\" />\n <meta name=\"dc.description\" content=\"Eating
147
+ your own dog food is a slang term to describe that an organization should
148
+ itself use the products and services it provides. For DataCite this means
149
+ that we should use DOIs with appropriate metadata and strategies for long-term
150
+ preservation for the scholarly outputs we produce. For the most part\" />\n
151
+ \ <meta name=\"dc.date\" content=\"2016-12-20\" />\n <meta name=\"dc.subject\"
152
+ content=\"Feature\" />\n <meta name=\"dc.language\" content=\"en\" /> \n
153
+ \ <meta name=\"dc.format\" content=\"text/html\" /> \n <meta name=\"dc.source\"
154
+ content=\"Front Matter\" />\n <meta name=\"dc.type\" content=\"article\"
155
+ />\n \n <meta name=\"dc.rights\" content=\"https://creativecommons.org/licenses/by/4.0/legalcode\"
156
+ />\n\n <link rel=\"icon\" href=\"https://blog.front-matter.io/content/images/size/w256h256/2022/12/android-chrome-192x192.png\"
157
+ type=\"image/png\" />\n <link rel=\"canonical\" href=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\"
158
+ />\n <meta name=\"referrer\" content=\"no-referrer-when-downgrade\" />\n
159
+ \ <link rel=\"amphtml\" href=\"https://blog.front-matter.io/posts/eating-your-own-dog-food/amp/\"
160
+ />\n \n <meta property=\"og:site_name\" content=\"Front Matter\" />\n
161
+ \ <meta property=\"og:type\" content=\"article\" />\n <meta property=\"og:title\"
162
+ content=\"Eating your own Dog Food\" />\n <meta property=\"og:description\"
163
+ content=\"Eating your own dog food is a slang term to describe that an organization
164
+ should itself use the products and services it provides. For DataCite this
165
+ means that we should use DOIs with appropriate metadata and strategies for
166
+ long-term preservation for the scholarly outputs we produce. For the most
167
+ part\" />\n <meta property=\"og:url\" content=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\"
168
+ />\n <meta property=\"og:image\" content=\"https://blog.front-matter.io/content/images/2022/08/230785.jpeg\"
169
+ />\n <meta property=\"article:published_time\" content=\"2016-12-20T00:00:00.000Z\"
170
+ />\n <meta property=\"article:modified_time\" content=\"2022-08-15T09:06:22.000Z\"
171
+ />\n <meta property=\"article:tag\" content=\"Feature\" />\n \n <meta
172
+ name=\"twitter:card\" content=\"summary_large_image\" />\n <meta name=\"twitter:title\"
173
+ content=\"Eating your own Dog Food\" />\n <meta name=\"twitter:description\"
174
+ content=\"Eating your own dog food is a slang term to describe that an organization
175
+ should itself use the products and services it provides. For DataCite this
176
+ means that we should use DOIs with appropriate metadata and strategies for
177
+ long-term preservation for the scholarly outputs we produce. For the most
178
+ part\" />\n <meta name=\"twitter:url\" content=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\"
179
+ />\n <meta name=\"twitter:image\" content=\"https://blog.front-matter.io/content/images/2022/08/230785.jpeg\"
180
+ />\n <meta name=\"twitter:label1\" content=\"Written by\" />\n <meta
181
+ name=\"twitter:data1\" content=\"Martin Fenner\" />\n <meta name=\"twitter:label2\"
182
+ content=\"Filed under\" />\n <meta name=\"twitter:data2\" content=\"Feature\"
183
+ />\n <meta property=\"og:image:width\" content=\"2000\" />\n <meta property=\"og:image:height\"
184
+ content=\"1372\" />\n \n <script type=\"application/ld+json\">\n{\n
185
+ \ \"@context\": \"https://schema.org\",\n \"@type\": \"Article\",\n \"publisher\":
186
+ {\n \"@type\": \"Organization\",\n \"name\": \"Front Matter\",\n
187
+ \ \"url\": \"https://blog.front-matter.io/\",\n \"logo\": {\n
188
+ \ \"@type\": \"ImageObject\",\n \"url\": \"https://blog.front-matter.io/content/images/2022/12/logo.png\",\n
189
+ \ \"width\": 200,\n \"height\": 31\n }\n },\n
190
+ \ \"author\": {\n \"@type\": \"Person\",\n \"name\": \"Martin
191
+ Fenner\",\n \"image\": {\n \"@type\": \"ImageObject\",\n
192
+ \ \"url\": \"https://www.gravatar.com/avatar/8adea77ad740876f5cb832f92d49f08d?s=250&r=x&d=mp\",\n
193
+ \ \"width\": 250,\n \"height\": 250\n },\n \"url\":
194
+ \"https://blog.front-matter.io/author/martin/\",\n \"sameAs\": [\n
195
+ \ \"https://orcid.org/0000-0003-1419-2405\"\n ]\n },\n
196
+ \ \"headline\": \"Eating your own Dog Food\",\n \"url\": \"https://blog.front-matter.io/posts/eating-your-own-dog-food/\",\n
197
+ \ \"datePublished\": \"2016-12-20T00:00:00.000Z\",\n \"dateModified\":
198
+ \"2022-08-15T09:06:22.000Z\",\n \"image\": {\n \"@type\": \"ImageObject\",\n
199
+ \ \"url\": \"https://blog.front-matter.io/content/images/2022/08/230785.jpeg\",\n
200
+ \ \"width\": 2000,\n \"height\": 1372\n },\n \"keywords\":
201
+ \"Feature\",\n \"description\": \"Eating your own dog food is a slang term
202
+ to describe that an organization should itself use the products and services
203
+ it provides. For DataCite this means that we should use DOIs with appropriate
204
+ metadata and strategies for long-term preservation for the scholarly outputs
205
+ we produce. For the most part this is not research data, but rather technical
206
+ documents such as the DataCite Schema and its documentation (2016).\\n\\nThese
207
+ outputs also include the posts on this blog, where we discuss topics relev\",\n
208
+ \ \"mainEntityOfPage\": {\n \"@type\": \"WebPage\",\n \"@id\":
209
+ \"https://blog.front-matter.io/\"\n }\n}\n </script>\n\n <meta name=\"generator\"
210
+ content=\"Ghost 5.37\" />\n <link rel=\"alternate\" type=\"application/rss+xml\"
211
+ title=\"Front Matter\" href=\"https://blog.front-matter.io/rss/\" />\n <script
212
+ defer src=\"https://cdn.jsdelivr.net/ghost/portal@~2.25/umd/portal.min.js\"
213
+ data-ghost=\"https://blog.front-matter.io/\" data-key=\"d0d5aabcc0f96718307d5944b6\"
214
+ data-api=\"https://front-matter.ghost.io/ghost/api/content/\" crossorigin=\"anonymous\"></script><style
215
+ id=\"gh-members-styles\">.gh-post-upgrade-cta-content,\n.gh-post-upgrade-cta
216
+ {\n display: flex;\n flex-direction: column;\n align-items: center;\n
217
+ \ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen,
218
+ Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;\n text-align:
219
+ center;\n width: 100%;\n color: #ffffff;\n font-size: 16px;\n}\n\n.gh-post-upgrade-cta-content
220
+ {\n border-radius: 8px;\n padding: 40px 4vw;\n}\n\n.gh-post-upgrade-cta
221
+ h2 {\n color: #ffffff;\n font-size: 28px;\n letter-spacing: -0.2px;\n
222
+ \ margin: 0;\n padding: 0;\n}\n\n.gh-post-upgrade-cta p {\n margin:
223
+ 20px 0 0;\n padding: 0;\n}\n\n.gh-post-upgrade-cta small {\n font-size:
224
+ 16px;\n letter-spacing: -0.2px;\n}\n\n.gh-post-upgrade-cta a {\n color:
225
+ #ffffff;\n cursor: pointer;\n font-weight: 500;\n box-shadow: none;\n
226
+ \ text-decoration: underline;\n}\n\n.gh-post-upgrade-cta a:hover {\n color:
227
+ #ffffff;\n opacity: 0.8;\n box-shadow: none;\n text-decoration: underline;\n}\n\n.gh-post-upgrade-cta
228
+ a.gh-btn {\n display: block;\n background: #ffffff;\n text-decoration:
229
+ none;\n margin: 28px 0 0;\n padding: 8px 18px;\n border-radius: 4px;\n
230
+ \ font-size: 16px;\n font-weight: 600;\n}\n\n.gh-post-upgrade-cta a.gh-btn:hover
231
+ {\n opacity: 0.92;\n}</style><script async src=\"https://js.stripe.com/v3/\"></script>\n
232
+ \ <script defer src=\"https://cdn.jsdelivr.net/ghost/sodo-search@~1.1/umd/sodo-search.min.js\"
233
+ data-key=\"d0d5aabcc0f96718307d5944b6\" data-styles=\"https://cdn.jsdelivr.net/ghost/sodo-search@~1.1/umd/main.css\"
234
+ data-sodo-search=\"https://front-matter.ghost.io/\" crossorigin=\"anonymous\"></script>\n
235
+ \ <link href=\"https://blog.front-matter.io/webmentions/receive/\" rel=\"webmention\"
236
+ />\n <script defer src=\"/public/cards.min.js?v=c39f9879bf\"></script>\n
237
+ \ <link rel=\"stylesheet\" type=\"text/css\" href=\"/public/cards.min.css?v=c39f9879bf\">\n
238
+ \ <script defer src=\"/public/comment-counts.min.js?v=c39f9879bf\" data-ghost-comments-counts-api=\"https://blog.front-matter.io/members/api/comments/counts/\"></script>\n
239
+ \ <script defer data-domain=\"blog.front-matter.io\" src=\"https://plausible.io/js/plausible.js\"></script><style>:root
240
+ {--ghost-accent-color: #059669;}</style>\n</head>\n\n<body class=\"post-template
241
+ tag-feature is-head-stacked has-serif-body\">\n<div class=\"gh-site\">\n\n
242
+ \ <header id=\"gh-head\" class=\"gh-head gh-outer\">\n <div class=\"gh-head-inner
243
+ gh-inner\">\n <div class=\"gh-head-brand\">\n <div
244
+ class=\"gh-head-brand-wrapper\">\n <a class=\"gh-head-logo\"
245
+ href=\"https://blog.front-matter.io\">\n <img src=\"https://blog.front-matter.io/content/images/2022/12/logo.png\"
246
+ alt=\"Front Matter\">\n </a>\n </div>\n
247
+ \ <button class=\"gh-search gh-icon-btn\" data-ghost-search><svg
248
+ xmlns=\"http://www.w3.org/2000/svg\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\"
249
+ stroke-width=\"2\" width=\"20\" height=\"20\"><path stroke-linecap=\"round\"
250
+ stroke-linejoin=\"round\" d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"></path></svg></button>\n
251
+ \ <button class=\"gh-burger\"></button>\n </div>\n\n
252
+ \ <nav class=\"gh-head-menu\">\n <ul class=\"nav\">\n
253
+ \ <li class=\"nav-feature\"><a href=\"https://blog.front-matter.io/tag/feature/\">Feature</a></li>\n
254
+ \ <li class=\"nav-news\"><a href=\"https://blog.front-matter.io/tag/news/\">News</a></li>\n
255
+ \ <li class=\"nav-meeting-report\"><a href=\"https://blog.front-matter.io/tag/meeting-report/\">Meeting
256
+ Report</a></li>\n <li class=\"nav-interview\"><a href=\"https://blog.front-matter.io/tag/interview/\">Interview</a></li>\n
257
+ \ <li class=\"nav-chart\"><a href=\"https://blog.front-matter.io/tag/chart/\">Chart</a></li>\n
258
+ \ <li class=\"nav-science-hack\"><a href=\"https://blog.front-matter.io/tag/science-hack/\">Science
259
+ Hack</a></li>\n <li class=\"nav-book-review\"><a href=\"https://blog.front-matter.io/tag/book-review/\">Book
260
+ Review</a></li>\n <li class=\"nav-gazette\"><a href=\"https://blog.front-matter.io/tag/gazette/\">Gazette</a></li>\n</ul>\n\n
261
+ \ </nav>\n\n <div class=\"gh-head-actions\">\n <button
262
+ class=\"gh-search gh-icon-btn\" data-ghost-search><svg xmlns=\"http://www.w3.org/2000/svg\"
263
+ fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"
264
+ width=\"20\" height=\"20\"><path stroke-linecap=\"round\" stroke-linejoin=\"round\"
265
+ d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"></path></svg></button>\n
266
+ \ <div class=\"gh-head-members\">\n <a
267
+ class=\"gh-head-link\" href=\"#/portal/signin\" data-portal=\"signin\">Sign
268
+ in</a>\n <a class=\"gh-head-btn gh-btn gh-primary-btn\"
269
+ href=\"#/portal/signup\" data-portal=\"signup\">Subscribe</a>\n </div>\n
270
+ \ </div>\n </div>\n </header>\n\n \n<main class=\"gh-main\">\n
271
+ \ <article class=\"gh-article post tag-feature\">\n\n <header
272
+ class=\"gh-article-header gh-canvas\">\n <a class=\"gh-article-tag\"
273
+ href=\"https://blog.front-matter.io/tag/feature/\">Feature</a>\n\n <h1
274
+ class=\"gh-article-title\">Eating your own Dog Food</h1>\n\n <aside
275
+ class=\"gh-article-sidebar\">\n\n <div class=\"gh-author-image-list\">\n
276
+ \ <a class=\"gh-author-image\" href=\"/author/martin/\">\n <img
277
+ src=\"https://www.gravatar.com/avatar/8adea77ad740876f5cb832f92d49f08d?s&#x3D;250&amp;r&#x3D;x&amp;d&#x3D;mp\"
278
+ alt=\"Martin Fenner\">\n </a>\n </div>\n\n <div
279
+ class=\"gh-author-name-list\">\n <h4 class=\"gh-author-name\">\n
280
+ \ <a href=\"/author/martin/\">Martin Fenner</a>\n </h4>\n
281
+ \ \n </div>\n\n <div class=\"gh-article-meta\">\n
282
+ \ <div class=\"gh-article-meta-inner\">\n <time class=\"gh-article-date\"
283
+ datetime=\"2016-12-20\">Dec 20, 2016</time>\n <span class=\"gh-article-meta-sep\"></span>\n
284
+ \ <span class=\"gh-article-length\">4 min</span>\n </div>\n
285
+ \ <a class=\"gh-card-link\" href=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\">https://doi.org/10.53731/r79vxn1-97aq74v-ag58n</a>\n
286
+ \ </div>\n\n </aside>\n\n\n <figure class=\"gh-article-image\">\n
287
+ \ <img\n srcset=\"/content/images/size/w300/2022/08/230785.jpeg
288
+ 300w,\n /content/images/size/w720/2022/08/230785.jpeg 720w,\n
289
+ \ /content/images/size/w960/2022/08/230785.jpeg 960w,\n
290
+ \ /content/images/size/w1200/2022/08/230785.jpeg 1200w,\n
291
+ \ /content/images/size/w2000/2022/08/230785.jpeg 2000w\"\n
292
+ \ sizes=\"(max-width: 1200px) 100vw, 1200px\"\n src=\"/content/images/size/w1200/2022/08/230785.jpeg\"\n
293
+ \ alt=\"Eating your own Dog Food\"\n >\n <figcaption>Photo
294
+ by <a href=\"https://www.pexels.com/photo/black-and-tan-yorkshire-terrier-puppy-230785/\">Bill
295
+ Emrich</a>. <a href=\"https://creativecommons.org/publicdomain/zero/1.0/\">CC
296
+ Zero</a>.</figcaption>\n </figure>\n </header>\n\n <section
297
+ class=\"gh-content gh-canvas\">\n <p><a href=\"https://newrepublic.com/article/115349/dogfooding-tech-slang-working-out-glitches\">Eating
298
+ your own dog food</a> is a slang term to describe that an organization should
299
+ itself use the products and services it provides. For DataCite this means
300
+ that we should use DOIs with appropriate metadata and strategies for long-term
301
+ preservation for the scholarly outputs we produce. For the most part this
302
+ is not research data, but rather technical documents such as the DataCite
303
+ Schema and its documentation (<a href=\"https://blog.datacite.org/eating-your-own-dog-food/#ref-https://doi.org/10.5438/0012\">2016</a>).</p><p>These
304
+ outputs also include the posts on this blog, where we discuss topics relevant
305
+ for the DataCite community, but also of broader interest to anyone who cares
306
+ about research data, persistent identifiers, and scholarly infrastructure.
307
+ And starting today all blog posts on this blog will have a DOI, metadata and
308
+ use a persistent storage mechanism.</p><h3 id=\"technical-implementation\">Technical
309
+ Implementation</h3><p>This blog is powered by the static site generator <a
310
+ href=\"https://middlemanapp.com/\">Middleman</a>, with blog posts written
311
+ in <a href=\"http://commonmark.org/\">Markdown</a> and converted to HTML using
312
+ <a href=\"http://pandoc.org/\">Pandoc</a> and the <a href=\"https://travis-ci.org/\">Travis
313
+ CI</a> continuous integration service. Static site generator means that there
314
+ is no database or application server powering the site, making website adminstration
315
+ simpler, cheaper and safer. In addition to the blog, the <a href=\"https://www.datacite.org/\">DataCite
316
+ homepage</a> and <a href=\"https://schema.datacite.org/\">Metadata Schema
317
+ subsite</a> are also generated using Middleman.</p><p>The simplicity is particularly
318
+ important here, as registering the DOIs and metadata can be accomplished using
319
+ a command line utility written by DataCite staff that doesn't need to know
320
+ much about the internals of Middleman, and thus can be easily adapted to other
321
+ static site generators such as <a href=\"http://jekyllrb.com/\">Jekyll</a>,
322
+ <a href=\"http://gohugo.io/\">Hugo</a> or <a href=\"https://hexo.io/\">Hexo</a>.
323
+ The command line utility is <a href=\"https://github.com/datacite/cirneco\">Cirneco</a>,
324
+ generating the metadata XML according to the DataCite Metadata Schema, and
325
+ registering DOI and metadata with the DataCite MDS. Like all tools mentioned
326
+ in this post Cirneco is open source software, please reach out to us if you
327
+ are interested in implementing similar functionality for your blog.</p><h3
328
+ id=\"generating-dois\">Generating DOIs</h3><p>The DOIs for this blog are generated
329
+ automatically, using a modified base32 encoding algorithm that is provided
330
+ by Cirneco, as discussed last week (Fenner, <a href=\"https://blog.datacite.org/eating-your-own-dog-food/#ref-https://doi.org/10.5438/55E5-T5C0\">2016</a>).
331
+ The DOI is generated and minted when a new post is pushed to <a href=\"https://blog.datacite.org/\">https://blog.datacite.org</a>.
332
+ This avoids two problems: a) DOI-like strings in the wild before publication
333
+ and b) the randomly generated DOI exists already (we can simply generate a
334
+ new one). All DOIs are short, without semantic infomation that might change
335
+ over time, and with a checksum to minimize transcription errors, for example
336
+ <strong><strong>https://doi.org/10.5438/XCBJ-G7ZY</strong></strong>. Going
337
+ forward we encourage users to link to the DataCite Blog using the DOI, as
338
+ these links will continue to work even if we ever move the blog to a different
339
+ location.</p><h3 id=\"generating-metadata\">Generating Metadata</h3><p>For
340
+ the generation of metadata, we need to strike a balance between simple author
341
+ provided metadata, but rich enough to aid discovery. We are doing this via
342
+ three mechanisms:</p><ul><li>metadata provided by the author</li><li>default
343
+ metadata for the blog</li><li>metadata automatically extracted from content</li></ul><p>The
344
+ metadata provided by the author are the typical metadata for blog posts, provided
345
+ via <a href=\"https://gohugo.io/content/front-matter/\">YAML front matter</a>
346
+ at the beginning of each post:</p><pre><code>---\nlayout: post\ntitle: Eating
347
+ your own Dog Food\nauthor: mfenner\ndate: 2016-12-19\ntags:\n- datacite\n-
348
+ doi\n- metadata\n---</code></pre><p>We can reuse all these metadata when generating
349
+ DataCite metadata, using the tags as <code>subjects</code>.</p><p>The default
350
+ metadata are metadata that always stay the same for the blog, such as <code>publisher</code>,
351
+ <code>HostingInstitution</code> and <code>rights</code>. We can store them
352
+ in a site-wide configuration file. We can also assume reasonable defaults
353
+ that can be overridden in the YAML front matter, e.g. <code>resourceType</code>
354
+ (we use <a href=\"https://schema.org/BlogPosting\">BlogPosting</a> with <code>resourceTypeGeneral</code>
355
+ Text) and <code>version</code>. We store more information about authors outside
356
+ the blog post, including <code>givenName</code>, <code>familyName</code> and
357
+ <code>nameIdentifier</code> (we now show the ORCID ID of every blog author
358
+ at the bottom of the post).</p><p>Finally, there are metadata that we can
359
+ automatically extract from the blog post, and we are currently doing this
360
+ for the <code>description</code> and <code>relatedIdentifier</code>. This
361
+ blog uses Pandoc and BibTex to generate the references section at the end,
362
+ and we can fetch this information and convert it into the format needed for
363
+ <code>relatedIdentifier</code>.</p><p>Taken together we can provide all metadata
364
+ that are <em>required</em> or <em>recommended</em> in the Metadata Schema
365
+ documentation (<a href=\"https://blog.datacite.org/eating-your-own-dog-food/#ref-https://doi.org/10.5438/0012\">2016</a>),
366
+ and we can do this without any extra effort for the author. The full XML is
367
+ avalailable <a href=\"https://data.crosscite.org/application/vnd.datacite.datacite+xml/10.5438/4K3M-NYVG\">here</a>.</p><p>Not
368
+ all blog posts need to be cited formally with metadata in a <em>references</em>
369
+ list formatted according to a specific citation style. But these metadata
370
+ greatly help with discovery, a search in DataCite Search for <a href=\"http://search.datacite.org/works?query=eating+dog+food\">eating
371
+ dog food</a> will for example bring up this blog post as the first hit.</p><h3
372
+ id=\"persistent-storage\">Persistent storage</h3><p>Using DOIs means that
373
+ readers not only expect rich metadata that help with citation and discovery,
374
+ but also that DataCite takes extra care to preserve the blog posts, thinking
375
+ beyond the particular technical implementation or even the contiuing existence
376
+ of this blog. This is an area where we do need to do more work, starting with
377
+ a decision about the best archival format for a blog post (HTML, PDF, <a href=\"https://jats.nlm.nih.gov/\">JATS</a>?).
378
+ For now blog posts are hosted in multiple Git repositories (<a href=\"https://github.com/datacite/blog\">one
379
+ of them on Github</a>), and in two independent Amazon S3 buckets that each
380
+ use <a href=\"http://docs.aws.amazon.com/AmazonS3/latest/dev/Versioning.html\">versioning</a>.
381
+ Multiple locations with versioning are a good start, but more work is clearly
382
+ needed.</p><p><em>This blog post was <a href=\"https://doi.org/10.5438/4k3m-nyvg\">originally
383
+ published</a> on the DataCite Blog.</em></p><h2 id=\"references\">References</h2><p>DataCite
384
+ Metadata Working Group. (2016). DataCite metadata schema for the publication
385
+ and citation of research data v4.0. <em>DataCite</em>. <a href=\"https://doi.org/10.5438/0012\">https://doi.org/10.5438/0012</a></p><p>Fenner,
386
+ M. (2016). Cool doi’s. <em>DataCite</em>. <a href=\"https://doi.org/10.5438/55E5-T5C0\">https://doi.org/10.5438/55E5-T5C0</a></p>\n
387
+ \ <div class=\"gh-license\">\n Copyright
388
+ © 2016 Martin Fenner. Distributed under the terms of the\n <a\n
389
+ \ class=\"gh-license-link\"\n href=\"https://creativecommons.org/licenses/by/4.0/legalcode\"\n
390
+ \ >\n Creative Commons
391
+ Attribution 4.0 License.\n </a>\n </div>\n
392
+ \ </section> \n </section>\n\n </article>\n\n
393
+ \ <div class=\"gh-read-next gh-canvas\">\n <section
394
+ class=\"gh-pagehead\">\n <h4 class=\"gh-pagehead-title\">Read
395
+ next</h4>\n </section>\n\n <div class=\"gh-topic
396
+ gh-topic-grid\">\n <div class=\"gh-topic-content\">\n <article
397
+ class=\"gh-card post\">\n <a class=\"gh-card-link\" href=\"/posts/talking-about-talbot/\">\n
398
+ \ <figure class=\"gh-card-image\">\n <img\n srcset=\"/content/images/size/w300/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png
399
+ 300w,\n /content/images/size/w720/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png
400
+ 720w,\n /content/images/size/w960/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png
401
+ 960w,\n /content/images/size/w1200/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png
402
+ 1200w,\n /content/images/size/w2000/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png
403
+ 2000w\"\n sizes=\"(max-width: 1200px) 100vw, 1200px\"\n
404
+ \ src=\"/content/images/size/w720/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png\"\n
405
+ \ alt=\"A talbot hound\"\n >\n </figure>\n\n
406
+ \ <div class=\"gh-card-wrapper\">\n <header class=\"gh-card-header\">\n
407
+ \ <h3 class=\"gh-card-title\">Talking about Talbot</h3>\n </header>\n\n
408
+ \ <div class=\"gh-card-excerpt\">Talbot is a Python package
409
+ I started working on at the end of 2022 and plan to release to the Python
410
+ Package Index (PyPi) in March. Talbot converts scholarly metadata in various
411
+ formats, including Crossref, DataCite, Schema.org, BibTeX, RIS, and formatted
412
+ citations – the complete list of supported formats is</div>\n\n <footer
413
+ class=\"gh-card-footer\">\n <span class=\"gh-card-author\">Martin
414
+ Fenner</span>\n <time class=\"gh-card-date\" datetime=\"2023-02-13\">Feb
415
+ 13, 2023</time>\n <script\n data-ghost-comment-count=\"63ea6985b3d553003d317d11\"\n
416
+ \ data-ghost-comment-count-empty=\"\"\n data-ghost-comment-count-singular=\"comment\"\n
417
+ \ data-ghost-comment-count-plural=\"comments\"\n data-ghost-comment-count-tag=\"span\"\n
418
+ \ data-ghost-comment-count-class-name=\"gh-card-comments\"\n data-ghost-comment-count-autowrap=\"true\"\n>\n</script>\n
419
+ \ </footer>\n </div>\n </a>\n</article> <article
420
+ class=\"gh-card post\">\n <a class=\"gh-card-link\" href=\"/posts/guidelines-for-scholarly-blogs/\">\n
421
+ \ <figure class=\"gh-card-image\">\n <img\n srcset=\"https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;300
422
+ 300w,\n https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;720
423
+ 720w,\n https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;960
424
+ 960w,\n https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;1200
425
+ 1200w,\n https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;2000
426
+ 2000w\"\n sizes=\"(max-width: 1200px) 100vw, 1200px\"\n
427
+ \ src=\"https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;720\"\n
428
+ \ alt=\"Guidelines for Scholarly Blogs\"\n >\n
429
+ \ </figure>\n\n <div class=\"gh-card-wrapper\">\n <header
430
+ class=\"gh-card-header\">\n <h3 class=\"gh-card-title\">Guidelines
431
+ for Scholarly Blogs</h3>\n </header>\n\n <div
432
+ class=\"gh-card-excerpt\">These guidelines are recommendations for authors
433
+ of scholarly blogs to help with long-term archiving, discoverability, and
434
+ citation of blog content.\nThey are modeled after the publication A Data Citation
435
+ Roadmap for Scholarly Data Repositories, where many of the same guidelines
436
+ apply, and where I was the first author and co-chair</div>\n\n <footer
437
+ class=\"gh-card-footer\">\n <span class=\"gh-card-author\">Martin
438
+ Fenner</span>\n <time class=\"gh-card-date\" datetime=\"2023-02-06\">Feb
439
+ 6, 2023</time>\n <script\n data-ghost-comment-count=\"63e0dd6e35c7ab003d9cda81\"\n
440
+ \ data-ghost-comment-count-empty=\"\"\n data-ghost-comment-count-singular=\"comment\"\n
441
+ \ data-ghost-comment-count-plural=\"comments\"\n data-ghost-comment-count-tag=\"span\"\n
442
+ \ data-ghost-comment-count-class-name=\"gh-card-comments\"\n data-ghost-comment-count-autowrap=\"true\"\n>\n</script>\n
443
+ \ </footer>\n </div>\n </a>\n</article> <article
444
+ class=\"gh-card post\">\n <a class=\"gh-card-link\" href=\"/posts/need-to-fix-science-blogs/\">\n
445
+ \ <figure class=\"gh-card-image\">\n <img\n srcset=\"https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;300
446
+ 300w,\n https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;720
447
+ 720w,\n https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;960
448
+ 960w,\n https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;1200
449
+ 1200w,\n https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;2000
450
+ 2000w\"\n sizes=\"(max-width: 1200px) 100vw, 1200px\"\n
451
+ \ src=\"https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&amp;cs&#x3D;tinysrgb&amp;fit&#x3D;max&amp;fm&#x3D;jpg&amp;ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&amp;ixlib&#x3D;rb-4.0.3&amp;q&#x3D;80&amp;w&#x3D;720\"\n
452
+ \ alt=\"Do we need to fix science blogs?\"\n >\n
453
+ \ </figure>\n\n <div class=\"gh-card-wrapper\">\n <header
454
+ class=\"gh-card-header\">\n <h3 class=\"gh-card-title\">Do
455
+ we need to fix science blogs?</h3>\n </header>\n\n <div
456
+ class=\"gh-card-excerpt\">Science blogs have been around for at least 20 years
457
+ and have become an important part of science communication. So are there any
458
+ fundamental issues that need fixing?\n\n\nBarriers to Entry\n\nBlogging platforms
459
+ are mature at this point, and the technology is not imposing barriers to entry
460
+ for most people.</div>\n\n <footer class=\"gh-card-footer\">\n
461
+ \ <span class=\"gh-card-author\">Martin Fenner</span>\n <time
462
+ class=\"gh-card-date\" datetime=\"2023-01-25\">Jan 25, 2023</time>\n <script\n
463
+ \ data-ghost-comment-count=\"63c889b63b62db003dc5eb9c\"\n data-ghost-comment-count-empty=\"\"\n
464
+ \ data-ghost-comment-count-singular=\"comment\"\n data-ghost-comment-count-plural=\"comments\"\n
465
+ \ data-ghost-comment-count-tag=\"span\"\n data-ghost-comment-count-class-name=\"gh-card-comments\"\n
466
+ \ data-ghost-comment-count-autowrap=\"true\"\n>\n</script>\n </footer>\n
467
+ \ </div>\n </a>\n</article> </div>\n </div>\n
468
+ \ </div>\n\n <div class=\"gh-comments gh-read-next
469
+ gh-canvas\">\n <section class=\"gh-pagehead\">\n <h4
470
+ class=\"gh-pagehead-title\">Comments (<script\n data-ghost-comment-count=\"62d42bbd41e317003df48efd\"\n
471
+ \ data-ghost-comment-count-empty=\"0\"\n data-ghost-comment-count-singular=\"\"\n
472
+ \ data-ghost-comment-count-plural=\"\"\n data-ghost-comment-count-tag=\"span\"\n
473
+ \ data-ghost-comment-count-class-name=\"\"\n data-ghost-comment-count-autowrap=\"true\"\n>\n</script>)</h3>\n
474
+ \ </section>\n \n <script defer src=\"https://cdn.jsdelivr.net/ghost/comments-ui@~0.12/umd/comments-ui.min.js\"
475
+ data-ghost-comments=\"https://blog.front-matter.io/\" data-api=\"https://front-matter.ghost.io/ghost/api/content/\"
476
+ data-admin=\"https://front-matter.ghost.io/ghost/\" data-key=\"d0d5aabcc0f96718307d5944b6\"
477
+ data-styles=\"https://cdn.jsdelivr.net/ghost/comments-ui@~0.12/umd/main.css\"
478
+ data-title=\"\" data-count=\"false\" data-post-id=\"62d42bbd41e317003df48efd\"
479
+ data-sentry-dsn=\"\" data-color-scheme=\"auto\" data-avatar-saturation=\"60\"
480
+ data-accent-color=\"#059669\" data-app-version=\"0.12\" data-comments-enabled=\"all\"
481
+ data-publication=\"Front Matter\" crossorigin=\"anonymous\"></script>\n \n
482
+ \ </div>\n</main>\n\n <footer class=\"gh-foot gh-outer\">\n <div
483
+ class=\"gh-foot-inner gh-inner\">\n <section class=\"gh-subscribe\">\n
484
+ \ <h3 class=\"gh-subscribe-title\">Subscribe to Front Matter</h3>\n
485
+ \ <div class=\"gh-subscribe-description\">Subscribe
486
+ to the Front Matter Blog to automatically receive blog posts via email newsletter.</div>\n
487
+ \ <button class=\"gh-subscribe-btn gh-btn\" data-portal=\"signup\"><svg
488
+ width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\"
489
+ xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3.33332 3.33334H16.6667C17.5833
490
+ 3.33334 18.3333 4.08334 18.3333 5.00001V15C18.3333 15.9167 17.5833 16.6667
491
+ 16.6667 16.6667H3.33332C2.41666 16.6667 1.66666 15.9167 1.66666 15V5.00001C1.66666
492
+ 4.08334 2.41666 3.33334 3.33332 3.33334Z\" stroke-width=\"1.5\" stroke-linecap=\"round\"
493
+ stroke-linejoin=\"round\"/>\n <path d=\"M18.3333 5L9.99999 10.8333L1.66666
494
+ 5\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>
495
+ Subscribe now</button>\n </section>\n\n <nav class=\"gh-foot-menu\">\n
496
+ \ <ul class=\"nav\">\n <li class=\"nav-front-matter\"><a
497
+ href=\"https://front-matter.io\">Front Matter</a></li>\n <li class=\"nav-about\"><a
498
+ href=\"https://blog.front-matter.io/about/\">About</a></li>\n <li class=\"nav-gazette\"><a
499
+ href=\"https://blog.front-matter.io/gazette/\">Gazette</a></li>\n <li class=\"nav-privacy-policy\"><a
500
+ href=\"https://blog.front-matter.io/privacy-policy/\">Privacy Policy</a></li>\n
501
+ \ <li class=\"nav-rss\"><a href=\"https://blog.front-matter.io/rss/\">RSS</a></li>\n
502
+ \ <li class=\"nav-usage-stats\"><a href=\"https://plausible.io/blog.front-matter.io\">Usage
503
+ Stats</a></li>\n <li class=\"nav-discord\"><a href=\"https://front-matter.io/discord\">Discord</a></li>\n</ul>\n\n
504
+ \ </nav>\n\n <div class=\"gh-copyright\">\n Front
505
+ Matter © 2023. Powered by <a href=\"https://ghost.org/\" target=\"_blank\"
506
+ rel=\"noopener\">Ghost</a>\n </div>\n </div>\n </footer>\n\n</div>\n\n
507
+ \ <div class=\"pswp\" tabindex=\"-1\" role=\"dialog\" aria-hidden=\"true\">\n
508
+ \ <div class=\"pswp__bg\"></div>\n\n <div class=\"pswp__scroll-wrap\">\n
509
+ \ <div class=\"pswp__container\">\n <div class=\"pswp__item\"></div>\n
510
+ \ <div class=\"pswp__item\"></div>\n <div class=\"pswp__item\"></div>\n
511
+ \ </div>\n\n <div class=\"pswp__ui pswp__ui--hidden\">\n <div
512
+ class=\"pswp__top-bar\">\n <div class=\"pswp__counter\"></div>\n\n
513
+ \ <button class=\"pswp__button pswp__button--close\" title=\"Close
514
+ (Esc)\"></button>\n <button class=\"pswp__button pswp__button--share\"
515
+ title=\"Share\"></button>\n <button class=\"pswp__button pswp__button--fs\"
516
+ title=\"Toggle fullscreen\"></button>\n <button class=\"pswp__button
517
+ pswp__button--zoom\" title=\"Zoom in/out\"></button>\n\n <div
518
+ class=\"pswp__preloader\">\n <div class=\"pswp__preloader__icn\">\n
519
+ \ <div class=\"pswp__preloader__cut\">\n <div
520
+ class=\"pswp__preloader__donut\"></div>\n </div>\n
521
+ \ </div>\n </div>\n </div>\n\n
522
+ \ <div class=\"pswp__share-modal pswp__share-modal--hidden pswp__single-tap\">\n
523
+ \ <div class=\"pswp__share-tooltip\"></div>\n </div>\n\n
524
+ \ <button class=\"pswp__button pswp__button--arrow--left\" title=\"Previous
525
+ (arrow left)\"></button>\n <button class=\"pswp__button pswp__button--arrow--right\"
526
+ title=\"Next (arrow right)\"></button>\n\n <div class=\"pswp__caption\">\n
527
+ \ <div class=\"pswp__caption__center\"></div>\n </div>\n
528
+ \ </div>\n </div>\n</div>\n<script src=\"https://blog.front-matter.io/assets/built/main.min.js?v=c39f9879bf\"></script>\n\n\n\n</body>\n\n</html>\n"
529
+ recorded_at: Tue, 14 Mar 2023 12:43:37 GMT
530
+ recorded_with: VCR 6.1.0