commonmeta-ruby 3.3.3 → 3.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (631) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +1 -1
  3. data/bin/commonmeta +1 -1
  4. data/lib/commonmeta/cli.rb +7 -3
  5. data/lib/commonmeta/readers/json_feed_reader.rb +1 -1
  6. data/lib/commonmeta/utils.rb +34 -0
  7. data/lib/commonmeta/version.rb +1 -1
  8. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +14 -14
  9. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/crossref.yml +5 -5
  10. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/datacite.yml +5 -5
  11. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/jalc.yml +5 -5
  12. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/kisti.yml +5 -5
  13. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/medra.yml +5 -5
  14. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/not_found.yml +5 -5
  15. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/op.yml +5 -5
  16. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/crossref.yml +5 -5
  17. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +5 -5
  18. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite.yml +5 -5
  19. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite_doi_http.yml +5 -5
  20. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +5 -5
  21. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/cff-converter-python.yml +9 -7
  22. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff.yml +16 -14
  23. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +14 -12
  24. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_codemeta_metadata/maremma.yml +10 -8
  25. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_codemeta_metadata/metadata_reports.yml +9 -7
  26. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +74 -74
  27. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +73 -73
  28. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +70 -70
  29. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/JaLC.yml +159 -159
  30. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/KISTI.yml +128 -128
  31. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/OP.yml +72 -72
  32. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/affiliation_is_space.yml +73 -73
  33. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/another_book.yml +109 -109
  34. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/another_book_chapter.yml +71 -71
  35. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/article_id_as_page_number.yml +74 -74
  36. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/author_literal.yml +82 -82
  37. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book.yml +71 -71
  38. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_chapter.yml +72 -72
  39. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +70 -70
  40. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_oup.yml +69 -69
  41. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/component.yml +91 -91
  42. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dataset.yml +101 -102
  43. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dataset_usda.yml +133 -133
  44. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/date_in_future.yml +78 -78
  45. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dissertation.yml +100 -100
  46. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/empty_given_name.yml +72 -72
  47. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/invalid_date.yml +73 -73
  48. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article.yml +72 -72
  49. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +70 -70
  50. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with.yml +76 -514
  51. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +70 -70
  52. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with_funding.yml +73 -73
  53. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_issue.yml +69 -69
  54. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/mEDRA.yml +69 -69
  55. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/markup.yml +78 -78
  56. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/missing_creator.yml +73 -73
  57. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_issn.yml +72 -72
  58. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_titles.yml +71 -70
  59. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +716 -716
  60. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/not_found_error.yml +63 -63
  61. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/peer_review.yml +74 -74
  62. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/posted_content.yml +71 -71
  63. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/posted_content_copernicus.yml +73 -73
  64. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/report_osti.yml +117 -117
  65. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/vor_with_url.yml +75 -75
  66. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/yet_another_book.yml +69 -69
  67. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +70 -70
  68. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_raw/journal_article.yml +10 -10
  69. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/dissertation.yml +9 -9
  70. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/funding_references.yml +11 -11
  71. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/subject_scheme.yml +20 -20
  72. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_id.yml +6 -419
  73. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_post_uuid.yml +7 -260
  74. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_post_uuid_specific_prefix.yml +3 -136
  75. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/by_blog_id.yml +225 -1432
  76. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/not_indexed_posts.yml +1380 -2112
  77. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/unregistered_posts.yml +6 -172
  78. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blog_post_with_non-url_id.yml +7 -7
  79. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blogger_post.yml +12 -12
  80. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_author_name_suffix.yml +8 -8
  81. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_doi.yml +7 -7
  82. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_organizational_author.yml +3 -3
  83. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_without_doi.yml +8 -8
  84. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post.yml +8 -8
  85. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/substack_post_with_broken_reference.yml +90 -176
  86. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/syldavia_gazette_post_with_references.yml +25 -25
  87. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/upstream_post_with_references.yml +61 -61
  88. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post.yml +8 -8
  89. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post_with_references.yml +20 -20
  90. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_familyName.yml +9 -9
  91. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +9 -9
  92. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/name_with_affiliation_crossref.yml +14 -14
  93. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/only_familyName_and_givenName.yml +43 -36
  94. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/BlogPosting.yml +158 -158
  95. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +162 -162
  96. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +178 -180
  97. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/harvard_dataverse.yml +226 -230
  98. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/pangaea.yml +43 -36
  99. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/upstream_blog.yml +94 -94
  100. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/zenodo.yml +14 -14
  101. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +5 -5
  102. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/unknown_DOI_prefix.yml +5 -5
  103. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_schema_errors/is_valid.yml +13 -13
  104. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/BlogPosting.yml +4 -4
  105. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/Dataset.yml +6 -6
  106. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +14 -14
  107. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/climate_data.yml +6 -6
  108. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/from_schema_org.yml +159 -159
  109. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +6 -6
  110. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/maremma.yml +12 -10
  111. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/text.yml +4 -4
  112. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/with_data_citation.yml +14 -14
  113. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/with_pages.yml +12 -12
  114. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +9 -9
  115. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +17 -17
  116. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +12 -12
  117. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/ruby-cff.yml +16 -14
  118. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Dataset.yml +6 -6
  119. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Journal_article.yml +14 -14
  120. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +19 -19
  121. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Missing_author.yml +12 -12
  122. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +4 -4
  123. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/software_w/version.yml +6 -6
  124. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +4 -4
  125. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +4 -4
  126. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +27 -27
  127. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article.yml +4 -4
  128. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +4 -4
  129. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml +8 -54
  130. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_organizational_author.yml +3 -3
  131. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_upstream_blog.yml +10 -53
  132. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_with_references.yml +62 -62
  133. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/posted_content.yml +15 -15
  134. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +6 -6
  135. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +29 -29
  136. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_upstream_blog.yml +4 -4
  137. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/Another_dataset.yml +28 -28
  138. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/BlogPosting.yml +4 -4
  139. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/BlogPosting_schema_org.yml +158 -158
  140. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/Dataset.yml +6 -6
  141. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/container_title.yml +11 -11
  142. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/interactive_resource_without_dates.yml +4 -4
  143. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/journal_article.yml +14 -14
  144. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/keywords_subject_scheme.yml +6 -6
  145. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/maremma.yml +9 -7
  146. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/missing_creator.yml +12 -12
  147. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/multiple_abstracts.yml +6 -6
  148. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/organization_author.yml +19 -19
  149. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/software.yml +4 -4
  150. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/software_w/version.yml +6 -6
  151. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/with_only_first_page.yml +13 -13
  152. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/with_pages.yml +12 -12
  153. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/climate_data.yml +6 -6
  154. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/maremma.yml +10 -8
  155. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/text.yml +4 -4
  156. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/with_data_citation.yml +14 -14
  157. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/with_pages.yml +12 -12
  158. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/dissertation.yml +17 -17
  159. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/from_schema_org.yml +158 -158
  160. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/journal_article.yml +18 -18
  161. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/maremma.yml +10 -8
  162. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/with_ORCID_ID.yml +12 -12
  163. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/with_data_citation.yml +14 -14
  164. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +6 -6
  165. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +4 -4
  166. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/book_chapter.yml +15 -13
  167. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +158 -158
  168. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +4 -4
  169. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/maremma.yml +12 -10
  170. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +12 -12
  171. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +14 -14
  172. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_editor.yml +13 -13
  173. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/BlogPosting.yml +4 -4
  174. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +159 -159
  175. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/Dataset.yml +6 -6
  176. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/alternate_name.yml +4 -4
  177. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/journal_article.yml +8 -8
  178. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +6 -6
  179. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/maremma.yml +9 -7
  180. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/with_pages.yml +7 -7
  181. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +6 -6
  182. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Funding.yml +9 -9
  183. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +9 -9
  184. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +17 -17
  185. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +33 -33
  186. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +9 -9
  187. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/data_catalog.yml +9 -9
  188. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/geo_location_box.yml +12 -12
  189. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +9 -9
  190. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/journal_article.yml +14 -14
  191. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +10 -8
  192. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/series_information.yml +9 -9
  193. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/subject_scheme.yml +11 -11
  194. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +11 -11
  195. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/BlogPosting.yml +4 -4
  196. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/Dataset.yml +6 -6
  197. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/journal_article.yml +14 -14
  198. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/with_pages.yml +12 -12
  199. data/spec/readers/cff_reader_spec.rb +6 -6
  200. data/spec/readers/crossref_reader_spec.rb +3 -3
  201. data/spec/readers/crossref_xml_reader_spec.rb +7 -7
  202. data/spec/readers/json_feed_reader_spec.rb +13 -13
  203. data/spec/readers/schema_org_reader_spec.rb +2 -3
  204. data/spec/spec_helper.rb +1 -0
  205. data/spec/utils_spec.rb +1 -1
  206. data/spec/writers/cff_writer_spec.rb +3 -3
  207. data/spec/writers/ris_writer_spec.rb +2 -2
  208. data/spec/writers/schema_org_writer_spec.rb +1 -1
  209. metadata +1 -423
  210. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/default.yml +0 -110
  211. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_bibtex.yml +0 -110
  212. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_crossref_xml.yml +0 -110
  213. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_datacite.yml +0 -110
  214. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_schema_org.yml +0 -110
  215. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/default.yml +0 -55
  216. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_bibtex.yml +0 -55
  217. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_crossref_xml.yml +0 -55
  218. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_datacite.yml +0 -55
  219. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_schema_org.yml +0 -55
  220. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/default.yml +0 -299
  221. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_bibtex.yml +0 -299
  222. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_citation.yml +0 -299
  223. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_crossref_xml.yml +0 -299
  224. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_datacite.yml +0 -299
  225. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_jats.yml +0 -299
  226. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_schema_org.yml +0 -299
  227. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/default.yml +0 -172
  228. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_bibtex.yml +0 -172
  229. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_citation.yml +0 -172
  230. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite.yml +0 -172
  231. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_jats.yml +0 -172
  232. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_schema_org.yml +0 -172
  233. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/default.yml +0 -1098
  234. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_datacite.yml +0 -1098
  235. data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_schema_org.yml +0 -1100
  236. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/crossref.yml +0 -55
  237. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/datacite.yml +0 -55
  238. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/jalc.yml +0 -55
  239. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/kisti.yml +0 -55
  240. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/medra.yml +0 -55
  241. data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/op.yml +0 -55
  242. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/author.yml +0 -164
  243. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/no_author.yml +0 -164
  244. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/single_author.yml +0 -164
  245. data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/with_organization.yml +0 -164
  246. data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +0 -247
  247. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/crossref.yml +0 -55
  248. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/datacite.yml +0 -55
  249. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/jalc.yml +0 -55
  250. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/kisti.yml +0 -55
  251. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/medra.yml +0 -55
  252. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_found.yml +0 -55
  253. data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/op.yml +0 -55
  254. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref.yml +0 -55
  255. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +0 -55
  256. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite.yml +0 -55
  257. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite_doi_http.yml +0 -55
  258. data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +0 -55
  259. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_match.yml +0 -221
  260. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +0 -221
  261. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_match.yml +0 -221
  262. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_no_match.yml +0 -221
  263. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_for_match.yml +0 -221
  264. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_match.yml +0 -221
  265. data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_no_match.yml +0 -221
  266. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org/with_id.yml +0 -221
  267. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/with_affiliation.yml +0 -221
  268. data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/without_affiliation.yml +0 -221
  269. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/cff-converter-python.yml +0 -200
  270. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff.yml +0 -154
  271. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +0 -154
  272. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml +0 -86
  273. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml +0 -93
  274. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +0 -337
  275. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +0 -347
  276. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +0 -359
  277. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/JaLC.yml +0 -384
  278. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/KISTI.yml +0 -330
  279. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/OP.yml +0 -969
  280. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/affiliation_is_space.yml +0 -358
  281. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book.yml +0 -312
  282. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book_chapter.yml +0 -465
  283. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/article_id_as_page_number.yml +0 -276
  284. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/author_literal.yml +0 -492
  285. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book.yml +0 -523
  286. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter.yml +0 -377
  287. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +0 -336
  288. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_oup.yml +0 -289
  289. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/component.yml +0 -289
  290. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset.yml +0 -299
  291. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset_usda.yml +0 -341
  292. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/date_in_future.yml +0 -570
  293. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dissertation.yml +0 -301
  294. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/empty_given_name.yml +0 -303
  295. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/invalid_date.yml +0 -307
  296. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article.yml +0 -461
  297. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +0 -276
  298. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with.yml +0 -470
  299. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +0 -519
  300. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_funding.yml +0 -456
  301. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_issue.yml +0 -270
  302. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/mEDRA.yml +0 -310
  303. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/markup.yml +0 -329
  304. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/missing_creator.yml +0 -307
  305. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_issn.yml +0 -393
  306. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles.yml +0 -265
  307. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +0 -860
  308. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/not_found_error.yml +0 -209
  309. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/peer_review.yml +0 -287
  310. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content.yml +0 -326
  311. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content_copernicus.yml +0 -297
  312. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/report_osti.yml +0 -315
  313. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/vor_with_url.yml +0 -451
  314. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book.yml +0 -816
  315. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +0 -324
  316. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_raw/journal_article.yml +0 -110
  317. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/dissertation.yml +0 -152
  318. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_references.yml +0 -175
  319. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme.yml +0 -328
  320. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date/publication_date.yml +0 -221
  321. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/date.yml +0 -221
  322. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year-month.yml +0 -221
  323. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year.yml +0 -221
  324. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/date.yml +0 -221
  325. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year-month.yml +0 -221
  326. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year.yml +0 -221
  327. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/date.yml +0 -221
  328. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year-month.yml +0 -221
  329. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year.yml +0 -221
  330. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/future.yml +0 -221
  331. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/invalid.yml +0 -221
  332. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/nil.yml +0 -221
  333. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/past.yml +0 -221
  334. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/present.yml +0 -221
  335. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_familyName.yml +0 -133
  336. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +0 -153
  337. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/is_organization.yml +0 -164
  338. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_crossref.yml +0 -247
  339. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/only_familyName_and_givenName.yml +0 -468
  340. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting.yml +0 -530
  341. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +0 -530
  342. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +0 -534
  343. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml +0 -1838
  344. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/pangaea.yml +0 -468
  345. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/upstream_blog.yml +0 -885
  346. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/zenodo.yml +0 -583
  347. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/only_title.yml +0 -221
  348. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_and_pages.yml +0 -221
  349. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_and_pages.yml +0 -221
  350. data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_issue_and_pages.yml +0 -221
  351. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_cff_url.yml +0 -221
  352. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_codemeta_url.yml +0 -221
  353. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url.yml +0 -221
  354. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_cff_file.yml +0 -221
  355. data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_file.yml +0 -221
  356. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +0 -55
  357. data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/unknown_DOI_prefix.yml +0 -55
  358. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_comma.yml +0 -164
  359. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_family_name.yml +0 -164
  360. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_id.yml +0 -164
  361. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_known_given_name.yml +0 -164
  362. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_no_info.yml +0 -164
  363. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_orcid_id.yml +0 -164
  364. data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_type_organization.yml +0 -164
  365. data/spec/fixtures/vcr_cassettes/Briard_Metadata/json_schema_errors/is_valid.yml +0 -221
  366. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/not_found.yml +0 -221
  367. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash.yml +0 -221
  368. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +0 -221
  369. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi.yml +0 -221
  370. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi_as_url.yml +0 -221
  371. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/filename.yml +0 -221
  372. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/ftp.yml +0 -221
  373. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/invalid_url.yml +0 -221
  374. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_options.yml +0 -221
  375. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_url.yml +0 -221
  376. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/string.yml +0 -221
  377. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url.yml +0 -221
  378. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url_with_utf-8.yml +0 -221
  379. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/doi.yml +0 -221
  380. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/url.yml +0 -221
  381. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_array.yml +0 -221
  382. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_empty_array.yml +0 -221
  383. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_hash.yml +0 -221
  384. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_string.yml +0 -221
  385. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/uri.yml +0 -221
  386. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash.yml +0 -221
  387. data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +0 -221
  388. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array.yml +0 -221
  389. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array_of_strings.yml +0 -221
  390. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/first.yml +0 -221
  391. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash.yml +0 -221
  392. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash_with_array_value.yml +0 -221
  393. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/nil.yml +0 -221
  394. data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/string.yml +0 -221
  395. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_anothe_doi.yml +0 -221
  396. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_doi.yml +0 -221
  397. data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/encode_doi.yml +0 -221
  398. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/onlies_keep_specific_tags.yml +0 -221
  399. data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/removes_a_tags.yml +0 -221
  400. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_id.yml +0 -221
  401. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_not_found.yml +0 -221
  402. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_url.yml +0 -221
  403. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_exists.yml +0 -221
  404. data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_id.yml +0 -221
  405. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org/with_id.yml +0 -221
  406. data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org_identifiers/with_identifiers.yml +0 -221
  407. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid.yml +0 -221
  408. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_https.yml +0 -221
  409. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_id.yml +0 -221
  410. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox.yml +0 -221
  411. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +0 -221
  412. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_with_spaces.yml +0 -221
  413. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_wrong_id.yml +0 -221
  414. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_www.yml +0 -221
  415. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +0 -221
  416. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +0 -221
  417. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +0 -221
  418. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +0 -221
  419. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/DOI.yml +0 -221
  420. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/ISSN.yml +0 -221
  421. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/URL.yml +0 -221
  422. data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/string.yml +0 -221
  423. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/BlogPosting.yml +0 -81
  424. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/Dataset.yml +0 -120
  425. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +0 -186
  426. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/climate_data.yml +0 -74
  427. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/from_schema_org.yml +0 -530
  428. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +0 -149
  429. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/maremma.yml +0 -86
  430. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml +0 -100
  431. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml +0 -247
  432. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml +0 -228
  433. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +0 -143
  434. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +0 -150
  435. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +0 -93
  436. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/ruby-cff.yml +0 -154
  437. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml +0 -120
  438. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml +0 -247
  439. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +0 -299
  440. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Missing_author.yml +0 -199
  441. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +0 -75
  442. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/software_w/version.yml +0 -86
  443. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +0 -76
  444. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +0 -76
  445. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +0 -541
  446. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article.yml +0 -55
  447. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +0 -85
  448. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/posted_content.yml +0 -283
  449. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +0 -123
  450. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +0 -477
  451. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_upstream_blog.yml +0 -1025
  452. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/Another_dataset.yml +0 -110
  453. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/BlogPosting.yml +0 -81
  454. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/BlogPosting_schema_org.yml +0 -530
  455. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/Dataset.yml +0 -120
  456. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/container_title.yml +0 -153
  457. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/interactive_resource_without_dates.yml +0 -75
  458. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/journal_article.yml +0 -247
  459. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/keywords_subject_scheme.yml +0 -149
  460. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/maremma.yml +0 -86
  461. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/missing_creator.yml +0 -199
  462. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/multiple_abstracts.yml +0 -101
  463. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/organization_author.yml +0 -314
  464. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/software.yml +0 -90
  465. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/software_w/version.yml +0 -86
  466. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/with_only_first_page.yml +0 -333
  467. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/with_pages.yml +0 -228
  468. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/climate_data.yml +0 -74
  469. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/maremma.yml +0 -86
  470. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/text.yml +0 -100
  471. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_data_citation.yml +0 -247
  472. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_pages.yml +0 -228
  473. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/from_schema_org.yml +0 -530
  474. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/maremma.yml +0 -86
  475. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/with_ORCID_ID.yml +0 -228
  476. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/with_data_citation.yml +0 -247
  477. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/from_schema_org.yml +0 -530
  478. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/maremma.yml +0 -86
  479. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +0 -228
  480. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +0 -247
  481. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +0 -120
  482. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +0 -106
  483. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/book_chapter.yml +0 -163
  484. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +0 -530
  485. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +0 -75
  486. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/maremma.yml +0 -86
  487. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +0 -228
  488. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +0 -247
  489. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_editor.yml +0 -355
  490. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +0 -81
  491. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +0 -530
  492. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/journal_article.yml +0 -247
  493. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/maremma.yml +0 -86
  494. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/with_pages.yml +0 -228
  495. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting.yml +0 -81
  496. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +0 -530
  497. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/Dataset.yml +0 -120
  498. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/alternate_name.yml +0 -138
  499. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/journal_article.yml +0 -115
  500. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +0 -149
  501. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/maremma.yml +0 -86
  502. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/with_pages.yml +0 -112
  503. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +0 -120
  504. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding.yml +0 -192
  505. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +0 -150
  506. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +0 -98
  507. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +0 -160
  508. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +0 -153
  509. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +0 -131
  510. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/data_catalog.yml +0 -136
  511. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/geo_location_box.yml +0 -181
  512. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +0 -127
  513. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/journal_article.yml +0 -247
  514. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +0 -86
  515. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/series_information.yml +0 -174
  516. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme.yml +0 -199
  517. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +0 -201
  518. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting.yml +0 -81
  519. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +0 -530
  520. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/Dataset.yml +0 -120
  521. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/journal_article.yml +0 -247
  522. data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/with_pages.yml +0 -228
  523. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_for_match.yml +0 -221
  524. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +0 -221
  525. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_match.yml +0 -221
  526. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_no_match.yml +0 -221
  527. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_for_match.yml +0 -221
  528. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_match.yml +0 -221
  529. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_no_match.yml +0 -221
  530. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/from_schema_org/with_id.yml +0 -221
  531. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date/publication_date.yml +0 -221
  532. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/date.yml +0 -221
  533. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/year-month.yml +0 -221
  534. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/year.yml +0 -221
  535. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/date.yml +0 -221
  536. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/year-month.yml +0 -221
  537. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/year.yml +0 -221
  538. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/date.yml +0 -221
  539. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/year-month.yml +0 -221
  540. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/year.yml +0 -221
  541. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/future.yml +0 -221
  542. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/invalid.yml +0 -221
  543. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/nil.yml +0 -221
  544. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/past.yml +0 -221
  545. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/present.yml +0 -221
  546. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/all_posts.yml +0 -3602
  547. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/behind_the_science.yml +0 -1176
  548. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language.yml +0 -360
  549. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language_blog.yml +0 -360
  550. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/front-matter_blog.yml +0 -1034
  551. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream.yml +0 -2438
  552. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream_blog.yml +0 -2438
  553. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item/by_uuid.yml +0 -136
  554. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/license.yml +0 -221
  555. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/url.yml +0 -221
  556. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/only_title.yml +0 -221
  557. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_and_pages.yml +0 -221
  558. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_volume_and_pages.yml +0 -221
  559. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_volume_issue_and_pages.yml +0 -221
  560. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_as_cff_url.yml +0 -221
  561. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_as_codemeta_url.yml +0 -221
  562. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url.yml +0 -221
  563. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_cff_file.yml +0 -221
  564. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_file.yml +0 -221
  565. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_feed_unregistered_url/all_posts.yml +0 -221
  566. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/not_found.yml +0 -221
  567. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash.yml +0 -221
  568. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +0 -221
  569. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/doi.yml +0 -221
  570. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/doi_as_url.yml +0 -221
  571. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/filename.yml +0 -221
  572. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/ftp.yml +0 -221
  573. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/invalid_url.yml +0 -221
  574. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/sandbox_via_options.yml +0 -221
  575. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/sandbox_via_url.yml +0 -221
  576. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/string.yml +0 -221
  577. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/url.yml +0 -221
  578. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/url_with_utf-8.yml +0 -221
  579. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_array.yml +0 -221
  580. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_empty_array.yml +0 -221
  581. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_hash.yml +0 -221
  582. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_string.yml +0 -221
  583. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/uri.yml +0 -221
  584. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/with_trailing_slash.yml +0 -221
  585. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +0 -221
  586. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/array.yml +0 -221
  587. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/array_of_strings.yml +0 -221
  588. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/first.yml +0 -221
  589. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/hash.yml +0 -221
  590. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/hash_with_array_value.yml +0 -221
  591. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/nil.yml +0 -221
  592. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/string.yml +0 -221
  593. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_anothe_doi.yml +0 -221
  594. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_another_doi.yml +0 -221
  595. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_doi.yml +0 -221
  596. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/encode_doi.yml +0 -221
  597. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_id/decode_another_id.yml +0 -221
  598. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_id/decode_id.yml +0 -221
  599. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_id/encode_id.yml +0 -221
  600. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/sanitize/onlies_keep_specific_tags.yml +0 -221
  601. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/sanitize/removes_a_tags.yml +0 -221
  602. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_id.yml +0 -221
  603. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_not_found.yml +0 -221
  604. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_url.yml +0 -221
  605. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/name_to_spdx_exists.yml +0 -221
  606. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/name_to_spdx_id.yml +0 -221
  607. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/to_schema_org/with_id.yml +0 -221
  608. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/to_schema_org_identifiers/with_identifiers.yml +0 -221
  609. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid.yml +0 -221
  610. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_https.yml +0 -221
  611. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_id.yml +0 -221
  612. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_sandbox.yml +0 -221
  613. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +0 -221
  614. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_with_spaces.yml +0 -221
  615. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_wrong_id.yml +0 -221
  616. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_www.yml +0 -221
  617. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +0 -221
  618. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +0 -221
  619. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +0 -221
  620. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +0 -221
  621. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/DOI.yml +0 -221
  622. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/ISSN.yml +0 -221
  623. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/URL.yml +0 -221
  624. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/string.yml +0 -221
  625. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +0 -81
  626. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +0 -530
  627. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/journal_article.yml +0 -247
  628. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/maremma.yml +0 -86
  629. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/with_pages.yml +0 -228
  630. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +0 -153
  631. data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +0 -530
@@ -1,1034 +0,0 @@
1
- ---
2
- http_interactions:
3
- - request:
4
- method: get
5
- uri: https://rogue-scholar.org/api/blogs/f0m0e38
6
- body:
7
- encoding: UTF-8
8
- string: ''
9
- headers:
10
- Connection:
11
- - close
12
- Host:
13
- - rogue-scholar.org
14
- User-Agent:
15
- - http.rb/5.1.1
16
- response:
17
- status:
18
- code: 200
19
- message: OK
20
- headers:
21
- Age:
22
- - '0'
23
- Cache-Control:
24
- - public, max-age=0, must-revalidate
25
- Content-Length:
26
- - '91392'
27
- Content-Type:
28
- - application/json; charset=utf-8
29
- Date:
30
- - Sun, 04 Jun 2023 13:34:33 GMT
31
- Etag:
32
- - '"vm2lu05r3q1yh2"'
33
- Server:
34
- - Vercel
35
- Strict-Transport-Security:
36
- - max-age=63072000
37
- X-Matched-Path:
38
- - "/api/blogs/[slug]"
39
- X-Vercel-Cache:
40
- - MISS
41
- X-Vercel-Id:
42
- - fra1::iad1::4lpjf-1685885673258-c641c009bf16
43
- Connection:
44
- - close
45
- body:
46
- encoding: UTF-8
47
- string: '{"id":"f0m0e38","title":"Front Matter","description":"\nThe Front Matter
48
- Blog covers the intersection of science and technology since 2007.","language":"en","icon":null,"favicon":"https://blog.front-matter.io/favicon.png","feed_url":"https://blog.front-matter.io/atom/","feed_format":"application/atom+xml","home_page_url":"https://blog.front-matter.io/","indexed_at":"2023-01-02","license":"https://creativecommons.org/licenses/by/4.0/legalcode","generator":"Ghost","category":"Engineering
49
- and Technology","items":[{"id":"https://doi.org/10.53731/nfa3v-h9q90","short_id":"1xdn0e03","url":"https://blog.front-matter.io/posts/dog-food-persistent-identifiers-and-metadata/","title":"Dog
50
- food, persistent identifiers, and metadata","summary":"I am a big fan of dog
51
- food, and I wrote about this topic already seven years ago:Eating your own
52
- dog food is a slang term to describe that an organization should itself use
53
- the products and services it...","date_published":"2023-04-17T17:08:26Z","date_modified":"2023-04-17T17:20:25Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
54
- Fenner"}],"image":"https://images.unsplash.com/photo-1608408891486-f5cade977d19?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fGRvZyUyMGZvb2R8ZW58MHx8fHwxNjgxNzQyOTYy&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
55
- <p><img src=\"https://images.unsplash.com/photo-1608408891486-f5cade977d19?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDR8fGRvZyUyMGZvb2R8ZW58MHx8fHwxNjgxNzQyOTYy&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>I
56
- am a big fan of dog food, and I <a href=\"https://doi.org/10.53731/r79vxn1-97aq74v-ag58n\">wrote
57
- about this topic</a> already seven years ago:</p><blockquote><a href=\"https://newrepublic.com/article/115349/dogfooding-tech-slang-working-out-glitches\">Eating
58
- your own dog food</a> is a slang term to describe that an organization should
59
- itself use the products and services it provides. </blockquote><p>One of the
60
- major projects I am working on right now is the <a href=\"https://rogue-scholar.org\">Rogue
61
- Scholar</a> science blog archive <a href=\"https://doi.org/10.53731/z9v2s-bh329\">that
62
- launched</a> at the beginning of the month. As part of this work – but also
63
- because I am very interested in this – I read a lot of science blogs. And
64
- today I released an update of the Rogue Scholar that makes this easier.</p><h3
65
- id=\"persistent-identifiers-for-science-blogs\">Persistent identifiers for
66
- science blogs</h3><p>People who know me know that I care about persistent
67
- identifiers for scholarly resources. I have worked for seven years for <a
68
- href=\"https://datacite.org\">DataCite</a>, a DOI registration to register
69
- datasets, software, and other non-textual resources. I was involved in the
70
- launch of <a href=\"https://orcid.org\">ORCID</a> (identifiers for researchers)
71
- in 2012 and <a href=\"https://ror.org\">ROR</a> (identifiers for research
72
- organizations) in 2019. So it shouldn''t surprise anyone that I am officially
73
- announcing the Rogue Scholar identifier for science blogs today. Each blog
74
- that has registered with the Rogue Scholar is uniquely identified, e.g. </p><ul><li>Upstream
75
- <a href=\"https://rogue-scholar.org/pm0p222\">https://rogue-scholar.org/pm0p222</a>,</li><li>GigaBlog
76
- <a href=\"https://rogue-scholar.org/3ffcd46\">https://rogue-scholar.org/3ffcd46</a>,
77
- and of course</li><li>Front Matter <a href=\"https://rogue-scholar.org/f0m0e38\">https://rogue-scholar.org/f0m0e38</a></li></ul><p>Persistent
78
- identifiers should not have any semantic meaning (e.g. the blog name) in them,
79
- as names can change over time. And they should not be linked to a domain name,
80
- (e.g. upstream.force11.org) as those might also change. The Rogue Scholar
81
- identifier uses a 7-digit random string generated by the <a href=\"https://github.com/front-matter/base32-url\">base32
82
- algorithm</a> and a two-digit checksum (the Front Matter identifier for example
83
- was generated with the random number 16127113320). DataCite, ROR, and the
84
- repository <a href=\"https://zenodo.org\">Zenodo</a> use similarly constructed
85
- unique identifiers. Their main advantage over <a href=\"https://en.wikipedia.org/wiki/Universally_unique_identifier\">UUIDs</a>
86
- is that they are easier to handle because of their compact size – there are
87
- still more than three billion unique strings for the Rogue Scholar identifier.
88
- Finally, persistent identifiers should be actionable, which means expressed
89
- as URLs that a human or machine can follow.</p><p>Why did I not use International
90
- Standard Serial Numbers (<a href=\"https://www.issn.org/\">ISSNs</a>), well-established
91
- identifiers that also work for blogs (the Front Matter blog has ISSN <a href=\"https://portal.issn.org/resource/ISSN/2749-9952\">2749-9952</a>)?
92
- Why ISSN registration can be easy and cheap, registration can become an issue,
93
- especially for new blogs that are just beginning to publish. And ISSNs have
94
- only the most basic metadata (e.g. title, country). And why not use digital
95
- object identifiers (<a href=\"https://www.doi.org/\">DOIs</a>)? They have
96
- traditionally been used for scholarly outputs such as journal articles, datasets,
97
- and <a href=\"https://doi.org/10.53731/fezg09h-hgn1gzm\">blog posts</a>. While
98
- you can register DOIs for serials such as journals, conference proceedings,
99
- or blogs, there is currently no standard practice to do so.</p><h3 id=\"metadata-for-science-blogs\">Metadata
100
- for science blogs</h3><p>Persistent identifiers are not really useful without
101
- meaningful metadata. For science blogs, this means at least the following:</p><ul><li>Blog
102
- name</li><li>Blog short description</li><li>Blog URL</li><li>Alternate identifiers,
103
- e.g ISSN and/or DOI</li><li>Blog editor(s)</li><li>License for the content,
104
- e.g Creative Commons Attribution (<a href=\"https://creativecommons.org/licenses/by/4.0/\">CC-BY</a>)</li><li>Subject
105
- area(s) for the content, e.g. aligned with the <a href=\"https://en.wikipedia.org/wiki/Fields_of_Science_and_Technology\">OECD
106
- Fields of Science and Technology</a></li></ul><p>For the blogs participating
107
- in the Rogue Scholar, I am collecting this information and will make it available
108
- in the Rogue Scholar search. To not start from scratch, I am using the metadata
109
- available from most blogs via <a href=\"https://doi.org/10.53731/d6vdvbt-tffmezj\">RSS
110
- or Atom feed</a>. For some information, e.g. license or subject area, I need
111
- to ask additional questions to the blog editor.</p><p>RSS and Atom both use
112
- XML, rather than JSON, which is much more pleasant to work with. Therefore
113
- – after the initial conversion of RSS or Atom XML – I can use <a href=\"https://www.jsonfeed.org/\">JSON
114
- Feed</a> to describe blog metadata, and the format can be extended to the
115
- needs of the Rogue Scholar. To fetch the JSON Feed of a blog included in the
116
- Rogue Scholar, use the identifier. Either by appending <code>.json</code>
117
- to the identifier (e.g. <a href=\"https://rogue-scholar.org/h56tk29.json\">https://rogue-scholar.org/h56tk29.json</a>)
118
- or by entering the identifier (<a href=\"https://rogue-scholar.org/h56tk29.json\">https://rogue-scholar.org/h56tk29</a>)
119
- in your RSS reader. The reader will automatically find the JSON Feed via the
120
- link tag in the page header:</p><pre><code><link rel=\"alternate\" title=\"Jabberwocky
121
- Ecology\" type=\"application/feed+json\" href=\"https://rogue-scholar.org/h56tk29.json\"/></code></pre><p>The
122
- RSS Reader (assuming it supports JSON Feed, as most readers do) will subscribe
123
- you to the JSON Feed of the blog, simplifying the reading of science blogs.
124
- More work is needed to polish the RSS/Atom Feed conversion to JSON Feed done
125
- by the Rogue Scholar and streamline subscribing to multiple blogs at once,
126
- e.g. using <a href=\"https://doi.org/10.53731/wa7k5-v4t16\">OPML</a>. </p><p>JSON
127
- Feed can also be used for the metadata and content of blog posts, so again
128
- I don''t need to use XML, e.g. Journal Article Tag Suite (<a href=\"https://jats.nlm.nih.gov/\">JATS</a>).
129
- For blog posts, I will continue to <a href=\"https://doi.org/10.53731/rb7xw01-97aq74v-ag7qh\">use
130
- DOIs</a>, as they work well, and I am making progress with Rogue Scholar integration
131
- (see for example this blog using DOIs already: <a href=\"https://rogue-scholar.org/f4wdg32\">https://rogue-scholar.org/f4wdg32</a>)</p><h3
132
- id=\"bringing-everything-together\">Bringing everything together</h3><p>How
133
- does the above help with finding, reading, sharing, or otherwise reusing science
134
- blogs? The work released today should make it easier to find interesting science
135
- blogs via the Rogue Scholar and subscribe to them via your RSS reader of choice.
136
- Over time we will hopefully see evolving community standards regarding blog
137
- persistent identifiers and metadata, following the <a href=\"https://www.go-fair.org/fair-principles/\">FAIR
138
- Principles</a>, while at the same time pushing hard for <a href=\"https://www.scienceeurope.org/our-priorities/open-access/diamond-open-access/\">Diamond
139
- Open Access</a>, keeping the cost and technical complexity affordable.</p>
140
- ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/z9v2s-bh329","short_id":"y2d1rjgr","url":"https://blog.front-matter.io/posts/rogue-scholar-open-for-business/","title":"The
141
- Rogue Scholar is now open for business","summary":"The Rogue Scholar science
142
- blog archive launched with limited functionality on April 3rd. Interested
143
- science blogs can go to the sign-up page, provide some basic information via
144
- the sign-up form, and then will...","date_published":"2023-04-04T08:43:36Z","date_modified":"2023-04-04T09:31:14Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
145
- Fenner"}],"image":"https://images.unsplash.com/photo-1575663620136-5ebbfcc2c597?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDR8fG9wZW4lMjBmb3IlMjBidXNpbmVzc3xlbnwwfHx8fDE2ODA1OTI3NTU&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
146
- <p><img src=\"https://images.unsplash.com/photo-1575663620136-5ebbfcc2c597?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDR8fG9wZW4lMjBmb3IlMjBidXNpbmVzc3xlbnwwfHx8fDE2ODA1OTI3NTU&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>The
147
- <a href=\"https://rogue-scholar.org/\">Rogue Scholar</a> science blog archive
148
- launched with limited functionality on April 3rd. Interested science blogs
149
- can go to the sign-up page, provide some basic information via the <a href=\"https://jvinjjenjik.typeform.com/to/uxgAsHPl\">sign-up
150
- form</a>, and then will be added to the Rogue Scholar archive within two business
151
- days. </p><p>To be included in the service, your blog needs to:</p><ul><li>be
152
- about science or scholarship and written in English or German (more languages
153
- will follow later, reach out to me if you can help),</li><li>make the full-text
154
- content available via RSS feed and distributed under the terms of the Creative
155
- Commons Attribution license (<a href=\"https://creativecommons.org/licenses/by/4.0/legalcode\">CC-BY</a>).</li></ul><p>Blogs
156
- that have signed up for the service (more than twenty so far) are listed in
157
- the <a href=\"https://rogue-scholar.org/blogs\">Rogue Scholar catalog of science
158
- blogs</a> that <a href=\"https://doi.org/10.53731/n7vvs-h6995\">launched last
159
- week</a>. And since yesterday summaries of the latest fifteen blog posts of
160
- each blog are also available.</p><figure class=\"kg-card kg-image-card kg-card-hascaption\"><img
161
- src=\"https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-04-um-10.12.58.png\"
162
- class=\"kg-image\" alt loading=\"lazy\" width=\"1882\" height=\"1428\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/04/Bildschirmfoto-2023-04-04-um-10.12.58.png
163
- 600w, https://blog.front-matter.io/content/images/size/w1000/2023/04/Bildschirmfoto-2023-04-04-um-10.12.58.png
164
- 1000w, https://blog.front-matter.io/content/images/size/w1600/2023/04/Bildschirmfoto-2023-04-04-um-10.12.58.png
165
- 1600w, https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-04-um-10.12.58.png
166
- 1882w\" sizes=\"(min-width: 720px) 720px\"><figcaption><a href=\"https://rogue-scholar.org/blogs/pm0p222\">Blog
167
- posts displayed at the Rogue Scholar</a></figcaption></figure><p>These summaries
168
- (precisely the information you get in the RSS feed) serve two purposes:</p><ul><li>for
169
- readers: learn more about that particular science blog. Reading the full-text
170
- post or other blog posts is only one click away</li><li>for blog authors and
171
- Rogue Scholar staff: tweak the blog and/or Rogue Scholar if there are issues
172
- with archiving. </li></ul><p>The screenshot highlights several considerations
173
- when using the RSS Feed to archive a science blog in the Rogue Scholar:</p><ul><li>optional
174
- but desired metadata, e.g logo, description, and language for blogs or description,
175
- tags, and feature image for blog posts</li><li>handling authors, including
176
- full names instead of usernames, multiple authors, and author identifiers
177
- (ORCID)</li><li>handling DOIs, including exposing them in the RSS feed, and
178
- making sure no DOI exists for the post yet</li></ul><p>The Rogue Scholar is
179
- now open for business, and I hope the limited functionality (or <a href=\"https://www.zentao.pm/blog/mvp-minimum-viable-product-965.html\">minimum
180
- viable product</a>) launched this week makes it an attractive service for
181
- blog readers and authors to try out. The next big milestone is the launch
182
- of the full-text index for searching and archiving, and that is planned to
183
- happen within the next three months. Followed by DOI registration for blog
184
- posts.</p> ","tags":["News"],"language":null},{"id":"https://doi.org/10.53731/h4b6c-h1444","short_id":"j3ejvwep","url":"https://blog.front-matter.io/posts/feedback-for-blog-publishers/","title":"Feedback
185
- for science blog publishers","summary":"The Rogue Scholar science blog archive
186
- launched last week. Going forward the focus is on improving the service and
187
- adding more blogs. This includes giving blog authors feedback on how they
188
- can improve their...","date_published":"2023-04-11T12:31:40Z","date_modified":"2023-04-14T20:50:32Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
189
- Fenner"}],"image":"https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-11-um-13.14.02.png","content_html":"
190
- <p><img src=\"https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-11-um-13.14.02.png\"></p><p>The
191
- <a href=\"https://rogue-scholar.org/\">Rogue Scholar</a> science blog archive
192
- <a href=\"https://doi.org/10.53731/z9v2s-bh329\">launched last week</a>. Going
193
- forward the focus is on improving the service and adding more blogs. This
194
- includes giving blog authors feedback on how they can improve their RSS/Atom
195
- feeds – used by the Rogue Scholar to collect and archive the blog content.</p><h3
196
- id=\"feedback-for-science-blog-publishers\">Feedback for science blog publishers</h3><p>A
197
- good starting point is author information, which often can be improved. The
198
- first step is to support multiple authors and support their full (given and
199
- family) names instead of usernames. It is useful to include ORCID author identifiers,
200
- best done by using the author website field of the blogging platform. This
201
- information can then be included in the blog <a href=\"https://www.rfc-editor.org/rfc/rfc4287\">Atom
202
- feed</a>, which works better for this than <a href=\"https://en.wikipedia.org/wiki/RSS\">RSS
203
- feeds</a>.</p><p>The blog (RSS or Atom) feed includes a link for each blog
204
- post but also an <strong>id</strong> (Atom) or <strong>guid</strong> (RSS).
205
- Ideally, this id/guid is globally unique, does not change over time, and can
206
- be used as a web link. <a href=\"https://ask.library.uic.edu/faq/345899\">DOIs</a>
207
- are a perfect fit for this id/guid field, and several blogs included in the
208
- Rogue Scholar do this already (<a href=\"https://rogue-scholar.org/blogs/f0m0e38\">this
209
- blog</a> but also <a href=\"https://rogue-scholar.org/blogs/pm0p222\">Upstream</a>).
210
- Many blogging platforms have a <a href=\"https://developer.wordpress.org/reference/functions/wp_get_canonical_url/\">canonical_url</a>
211
- field that can be used to store the DOI, separate from the URL.</p><p>Abstracts
212
- are useful for blog posts and widely supported. Unfortunately, there is no
213
- standard way to provide them in RSS or Atom feeds. A good practice is to use
214
- text and not HTML and to limit the total number of characters (the Rogue Scholar
215
- limits abstracts to 210 characters).</p><p>Feature images for blog posts are
216
- again widely used but there is no standard way to do this in RSS or Atom feeds.
217
- Examples of Rogue Scholar blogs using feature images are <a href=\"https://rogue-scholar.org/blogs/n6x4a73\">Chris
218
- Hartgerink</a>, <a href=\"https://rogue-scholar.org/blogs/h7bpg11\">OA.Works</a>
219
- and <a href=\"https://rogue-scholar.org/blogs/f4wdg32\">Syldavia Gazette</a>.</p><h3
220
- id=\"blog-statistics\">Blog statistics</h3><p>This week I added <a href=\"https://rogue-scholar.org/#stats\">basic
221
- statistics</a> for the Rogue Scholar that give preliminary insights into the
222
- kind of science blogs covered by the Rogue Scholar. The <strong>category</strong>
223
- is the top-level classification of the <a href=\"https://www.oecd.org/science/inno/38235147.pdf\">OECD
224
- Fields of Science and Technology</a>. Many blogs cover Natural Sciences, Engineering
225
- and Technology, Social Sciences – Health and Medical Sciences, Humanities,
226
- and Agricultural Sciences are covered less. Almost all currently included
227
- blogs are in the English <strong>language</strong>, please reach out if you
228
- manage a blog in another language. Knowing the blogging <strong>platform</strong>
229
- helps integrate the various RSS feeds into the Rogue Scholar, and the results
230
- are as expected. Wordpress is the most popular blogging platform,  but science
231
- blogs also use a variety of other platforms, including Ghost, Medium, and
232
- Blogger. Another interesting key performance indicator (KPI) is the total
233
- number of blogs and blog posts included, but this needs more work as this
234
- information is not immediately available.</p><figure class=\"kg-card kg-image-card
235
- kg-card-hascaption\"><img src=\"https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-11-um-13.19.27.png\"
236
- class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"716\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/04/Bildschirmfoto-2023-04-11-um-13.19.27.png
237
- 600w, https://blog.front-matter.io/content/images/size/w1000/2023/04/Bildschirmfoto-2023-04-11-um-13.19.27.png
238
- 1000w, https://blog.front-matter.io/content/images/size/w1600/2023/04/Bildschirmfoto-2023-04-11-um-13.19.27.png
239
- 1600w, https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-11-um-13.19.27.png
240
- 2152w\" sizes=\"(min-width: 720px) 720px\"><figcaption><a href=\"https://rogue-scholar.org/#stats\">Basic
241
- statistics for the Rogue Scholar</a></figcaption></figure><h3 id=\"usage-statistics\">Usage
242
- statistics</h3><p>The Usage Stats for the Rogue Scholar are publicly available
243
- <a href=\"https://plausible.io/rogue-scholar.org\">here</a>. The numbers are
244
- still small and don''t cover individual posts, or usage numbers from the blog
245
- itself, both of which may come over time. The Rogue Scholar intentionally
246
- isn''t collecting any personal information or using any cookies, but the available
247
- public information can give important insights (e.g. the countries or referer
248
- pages where users come from).</p><figure class=\"kg-card kg-image-card kg-card-hascaption\"><img
249
- src=\"https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-11-um-13.18.09.png\"
250
- class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1146\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/04/Bildschirmfoto-2023-04-11-um-13.18.09.png
251
- 600w, https://blog.front-matter.io/content/images/size/w1000/2023/04/Bildschirmfoto-2023-04-11-um-13.18.09.png
252
- 1000w, https://blog.front-matter.io/content/images/size/w1600/2023/04/Bildschirmfoto-2023-04-11-um-13.18.09.png
253
- 1600w, https://blog.front-matter.io/content/images/2023/04/Bildschirmfoto-2023-04-11-um-13.18.09.png
254
- 2038w\" sizes=\"(min-width: 720px) 720px\"><figcaption><a href=\"https://plausible.io/rogue-scholar.org\">Daily
255
- traffic to the Rogue Scholar</a></figcaption></figure> ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/br4gac1-1k9ptea","short_id":"1jdk0oe5","url":"https://blog.front-matter.io/posts/talking-about-talbot/","title":"Talking
256
- about Talbot","summary":"Talbot is a Python package I started working on at
257
- the end of 2022 and plan to release to the Python Package Index (PyPi) in
258
- March. Talbot converts scholarly metadata in various formats, including Crossref,...","date_published":"2023-02-13T19:19:08Z","date_modified":"2023-02-13T19:20:04Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
259
- Fenner"}],"image":"https://blog.front-matter.io/content/images/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png","content_html":"
260
- <p><img src=\"https://blog.front-matter.io/content/images/2023/02/TalbotHound_Talbot_Shrewsbury_Book_1445.png\"></p><p><a
261
- href=\"https://github.com/front-matter/talbot\">Talbot</a> is a Python package
262
- I started working on at the end of 2022 and plan to release to the Python
263
- Package Index (<a href=\"https://pypi.org/\">PyPi</a>) in March. Talbot converts
264
- scholarly metadata in various formats, including Crossref, DataCite, Schema.org,
265
- BibTeX, RIS, and formatted citations – the complete list of supported formats
266
- is <a href=\"https://docs.front-matter.io/talbot#supported-metadata-formats\">here</a>.
267
- Talbot is a Python version of the <a href=\"https://github.com/datacite/bolognese\">Bolognese
268
- Ruby gem</a> that I worked on with my DataCite colleagues starting in 2018.
269
- After leaving DataCite in 2021 I <a href=\"https://doi.org/10.53731/rdv0jyq-vpb7a9j-zwqzg\">wrote
270
- a fork called Briard</a> that added important metadata conversions, namely
271
- writing Crossref XML for DOI registration and reading/writing Citation File
272
- Format (<a href=\"https://citation-file-format.github.io/\">CFF</a>) for software
273
- metadata.</p><p>Talbot, Bolognese, and Briard are all names for dog breeds,
274
- the naming convention I have used for most of the Open Source software I have
275
- written since releasing the Open Source software <a href=\"https://github.com/lagotto/lagotto\">Lagotto</a>
276
- for tracking article-level metrics in 2012.</p><p>My two main use cases for
277
- Talbot (and Bolognese) are <a href=\"https://citation.crosscite.org/docs.html\">DOI
278
- content negotiation</a>, using DOI metadata to generate metadata in other
279
- formats such as BibTeX or as formatted citation in one of the thousands of
280
- available citation styles. The Python version will enhance the <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a>
281
- Open Source repository platform, e.g. adding RIS and Schema.org JSON-LD to
282
- the supported export formats. The other main use case is supporting DOI registration
283
- via multiple input formats. Since 2021 the Briard gem for example allows me
284
- to register DOIs for this blog as well as the <a href=\"https://upstream.force11.org/\">Force11
285
- Upstream blog</a> using metadata in Schema.org format. With Talbot I want
286
- to enable Crossref DOI registration in the InvenioRDM platform for use cases
287
- where this makes sense, e.g blog posts or preprints. Talbot will help register
288
- DOIs from RSS feeds as part of <a href=\"https://rogue-scholar.org/\">the
289
- Rogue Scholar </a>blog archive I am launching in Q2 2023. </p><p>One lesson
290
- learned with Bolognese/Briard is that the platform/language matters. The InvenioRDM
291
- backend is written in Python (the Frontend is in Javascript/React). And while
292
- Bolognese/Briard can be used via the command line or in environments such
293
- as GitHub Actions that use Docker-based microservices where the language doesn''t
294
- really matter, having the scholarly metadata conversion available in a Python
295
- environment makes a huge difference. So I took the plunge of rewriting a fairly
296
- complex library in another language. I am fully aware that there are more
297
- languages used for writing scholarly infrastructure code, but for the next
298
- few years, Python addresses my needs and is hopefully useful to other infrastructure
299
- projects.</p><p>While the overall architecture for the evolving Talbot library
300
- looks rather similar to Briard, I am making some changes based on my experience
301
- over the last five years of working on generic scholarly metadata conversions:</p><ul><li><strong>JSON
302
- is the core serialization format</strong>. Metadata in XML format (e.g. DataCite,
303
- Crossref, JATS) are important, but no longer used internally for Talbot validation.
304
- I will instead migrate to JSON schema for metadata validations in Talbot.
305
- DataCite, Crossref, and InvenioRDM use Elasticsearch/OpenSearch and thus JSON
306
- to index metadata. DataCite XML is still widely used but deprecated for several
307
- years, as on submission the XML is converted to JSON internally.</li><li><strong>Type
308
- hints. </strong>Support for static typing is a trend in dynamic languages
309
- Javascript (where Typescript is very popular), Ruby (since Ruby 3.0), and
310
- also Python. Talbot uses type hints for linting and that helps with error
311
- checking.</li><li><strong>Support unstructured references</strong>. Before
312
- DataCite Metadata Schema 4.4 (released in April 2021), only references providing
313
- an identifier such as a DOI were supported. Crossref has always supported
314
- unstructured references, and an identifier isn''t available unless content
315
- exists in digital form. In the first Talbot release, I take the \"fallback
316
- solution\" approach, providing unstructured metadata if a DOI or other persistent
317
- identifier for a reference doesn''t exist.</li><li><strong>Author names are
318
- hard</strong>. One of the biggest challenges with scholarly metadata is author
319
- names. In formatted citations and BibTeX separate given and family names are
320
- important, and a single name field for both given and family names is a constant
321
- source of errors and frustrations. In Talbot I follow both Crossref and Citeproc
322
- JSON metadata in that you need either a single name or separate given and
323
- family names.</li><li><strong>Dates are hard</strong>. Dates are surprisingly
324
- hard in scholarly metadata. There are multiple kinds of dates not always used
325
- consistently, and incomplete dates such as year-only are very common. One
326
- approach to dealing with incomplete dates is encoding the parts year, month,
327
- and day separately, used by Citeproc JSON and Crossref in their REST API.
328
- The better solution is to use the ISO8601 standard that supports incomplete
329
- dates. Other challenges are approximate dates (e.g. <em>circa 1650</em>) and
330
- date ranges. These kinds of dates are supported via the Extended Date and
331
- Time Format (<a href=\"https://www.loc.gov/standards/datetime/\">EDTF</a>),
332
- but working with EDTF is hard in code.</li><li><strong>Idiosyncrasies and
333
- inconsistencies</strong>. There is always a balancing act between supporting
334
- a metadata standard thoughtfully and not getting lost in edge cases. DataCite
335
- metadata (via Dublin Core on which it is based) makes it hard to work with
336
- some of the bibliographic metadata common for books, articles, and other textual
337
- resources. For example page numbers or the journal name. Crossref metadata
338
- has the tendency to treat things differently depending on the content type,
339
- e.g. the ISSN. After working on Bolognese for five ideas I will make some
340
- changes to how to best support metadata across different formats. It is clear
341
- that there is no single overarching scholarly metadata format, the internal
342
- format used by Bolognese, Briard, and now Talbot is a pragmatic mix of the
343
- different implementations.</li></ul> ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/cp7apdj-jk5f471","short_id":"56gl49d9","url":"https://blog.front-matter.io/posts/announcing-commonmeta/","title":"Announcing
344
- Commonmeta","summary":"This week I launched Commonmeta, a new scholarly metadata
345
- standard described at https://commonmeta.org. Commonmeta is the result of
346
- working on conversion tools for scholarly metadata for many years. One...","date_published":"2023-03-09T17:36:44Z","date_modified":"2023-03-09T17:36:44Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
347
- Fenner"}],"image":"https://blog.front-matter.io/content/images/2023/03/standards_2x.png","content_html":"
348
- <p><img src=\"https://blog.front-matter.io/content/images/2023/03/standards_2x.png\"></p><p>This
349
- week I launched <strong>Commonmeta</strong>, a new scholarly metadata standard
350
- described at <a href=\"https://commonmeta.org/\">https://commonmeta.org</a>.
351
- Commonmeta is the result of working on conversion tools for scholarly metadata
352
- for many years. One conclusion early on was that these conversions are many-to-many,
353
- so it becomes much easier to have an internal format that is the intermediate
354
- step for these conversions.</p><p>Commonmeta is inspired by two initiatives:
355
- <a href=\"https://codemeta.github.io/\">Codemeta</a> and <a href=\"https://commonmark.org\">Commonmark</a>.
356
- CodeMeta contributors are creating a minimal metadata schema for science software
357
- and code, in JSON and XML. The goal of CodeMeta is to create a concept vocabulary
358
- that can be used to standardize the exchange of software metadata across repositories
359
- and organizations. Commonmark is a strongly defined, highly compatible specification
360
- of Markdown, along with a suite of comprehensive tests to validate Markdown
361
- implementations against this specification. </p><p>These two specifications
362
- not only inspired the name but also the principles of how I want to see Commonmeta
363
- operate:</p><ul><li>driven by real-world implementations and not committees</li><li>features
364
- that focus on what is common in existing implementations/formats</li><li>a
365
- testable specification</li></ul><p>The website goes into a little bit more
366
- detail about why I didn''t pick any the existing standards but instead came
367
- up with a new metadata standard. This is a familiar pattern made famous by
368
- the XKCD comic shown above.</p><p>As I want this to be driven by real-world
369
- implementations and not committees, I also in the last few weeks launched<a
370
- href=\"https://github.com/front-matter/commonmeta-py\"> commonmeta-py</a>,
371
- a Python implementation of the standard available on <a href=\"https://pypi.org/project/commonmeta-py/\">PyPi</a>.
372
- And in a few months, I hope to have tweaked the <a href=\"https://github.com/front-matter/briard\">Ruby
373
- Gem</a> that I originally wrote a few years ago to support Commonmeta as the
374
- internal format.</p><p>With testable specification, I mean both a JSON Schema
375
- to describe Commonmeta and many, many tests that validate the conversions
376
- with real-world data. The JSON Schema is available <a href=\"https://commonmeta.org/schema\">here</a>,
377
- and will become stable once it reaches version 1.0. commonmeta-py comes with
378
- lots of tests, but I hope to further improve the test coverage.</p><p>Please
379
- reach out to me if you want to help with Commonmeta, in particular, work on
380
- implementations in other languages, such as Javascript, PHP, or Java.</p>
381
- ","tags":["News"],"language":"en"},{"id":"https://doi.org/10.53731/eyf75cj-jsgv26c","short_id":"9memqjg2","url":"https://blog.front-matter.io/posts/building-blocks/","title":"Building
382
- Blocks for a Scholarly Blog Archive","summary":"Another follow-up post, extending
383
- three earlier posts (see references), on the Scholarly Blog Archive that Front
384
- Matter is building and that I plan to launch in the first half of 2023. I
385
- have been thinking...","date_published":"2022-12-21T14:23:47Z","date_modified":"2022-12-21T20:57:38Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
386
- Fenner"}],"image":"https://blog.front-matter.io/content/images/2022/12/James_Brown_-55208420--1.jpeg","content_html":"
387
- <p><img src=\"https://blog.front-matter.io/content/images/2022/12/James_Brown_-55208420--1.jpeg\"></p><p>Another
388
- follow-up post, extending three earlier posts (see references), on the Scholarly
389
- Blog Archive that Front Matter is building and that I plan to launch in the
390
- first half of 2023. I have been thinking about the building blocks that make
391
- this blog archive work:</p><h3 id=\"diamond-open-access\">Diamond Open Access</h3><blockquote>Diamond
392
- open access (OA) is an open access business model in which no fees are charged
393
- to either authors or readers. <a href=\"https://www.dfg.de/en/research_funding/announcements_proposals/2022/info_wissenschaft_22_26/index.html\">German
394
- Research Foundation</a></blockquote><p>Using this term sounds strange in the
395
- context of scholarly blog posts, but it means that scholarly blog infrastructure
396
- should be free to publish and free to read. One challenge with Open Access
397
- for publications, particularly in disciplines such as medicine and life sciences
398
- where there is a lot of money, is that there are no drivers for driving down
399
- cost, and subscription fees have often been converted to article processing
400
- charges (APC). And instead of technological advances making scholarly publishing
401
- cheaper over time, the costs for authors and readers (and their institutions
402
- and funders who ultimately pay for this) are only increasing.</p><p>There
403
- is of course already a lot of Diamond Open Access, and infrastructures for
404
- research data and research software also typically don''t charge authors or
405
- readers. This causes other problems in terms of sustainable scholarly infrastructure
406
- and innovation, but I think it is an essential building block for the science
407
- blog archive Front Matter is building. A lot of work is needed in 2023 to
408
- come up with a strategy for sustaining the Front Matter science blog archive
409
- in the long run, all I can say now is that it will not use advertising.</p><h3
410
- id=\"creative-commons-license\">Creative Commons License</h3><p>For content
411
- that is free to read we need a license that specifies that. The blog archive
412
- needs clear conditions for what it can do with the content, and the same is
413
- true for downstream users and services. History tells us that licenses should
414
- be clear and simple, so for scholarly blog posts I will aim to use the <a
415
- href=\"https://creativecommons.org/licenses/by/4.0/legalcode\">Creative Commons
416
- Attribution 4.0 License</a> (CC-BY 4.0) for all content. </p><figure class=\"kg-card
417
- kg-image-card\"><img src=\"https://blog.front-matter.io/content/images/2022/12/cc-by.png\"
418
- class=\"kg-image\" alt loading=\"lazy\" width=\"250\" height=\"88\"></figure><h3
419
- id=\"central-blog-archive\">Central Blog Archive</h3><p>As I <a href=\"https://doi.org/10.53731/br9f5xa-a556w2t\">explained
420
- in a post last week</a>, a central blog archive for blog content published
421
- in many different places makes the most sense for science blog posts – a model
422
- also used by <a href=\"https://www.ncbi.nlm.nih.gov/pmc/\">PubMed Central
423
- </a>for a free full-text archive of biomedical and life sciences journal articles.
424
- The <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a> Open Source
425
- software is a good fit for this use case.</p><figure class=\"kg-card kg-image-card\"><img
426
- src=\"https://blog.front-matter.io/content/images/2022/12/Download--4--1.png\"
427
- class=\"kg-image\" alt loading=\"lazy\" width=\"372\" height=\"120\"></figure><p>Starting
428
- a science blog is straightforward. There are plenty of cheap and free options
429
- available from <a href=\"https://wordpress.org/\">Wordpress</a> to <a href=\"https://pages.github.com/\">GitHub
430
- Pages</a>. You might run your blog as part of a larger platform, together
431
- with collaborators, or all for yourself.</p><h3 id=\"digital-object-identifier-doi-and-metadata\">Digital
432
- Object Identifier (DOI) and Metadata</h3><p>DOIs are frequently used as persistent
433
- identifiers for scholarly content and are integrated into the InvenioRDM platform.
434
- The blog archive can either archive blog posts with DOIs, or it can issue
435
- DOIs for existing blogs not using DOIs. In the latter case it is important
436
- that the DOI resolves to the original content in the hosting blog platform,
437
- and redirects to the blog platform only when the original blog is no longer
438
- available. </p><p>DOIs (e.g. from DataCite or Crossref) have a required set
439
- of metadata that makes sense for scholarly blogs. Optional metadata that are
440
- desired for the blog archive are license (see above), abstract, subject area
441
- (using the 43 <a href=\"https://en.wikipedia.org/wiki/Fields_of_Science_and_Technology\">OECD
442
- Fields of Science and Technology</a>), keywords, language, and persistent
443
- identifiers for the blog (<a href=\"https://www.issn.org/\">ISSN</a>), author
444
- (<a href=\"https://orcid.org/\">ORCID</a>) and affiliated institution (<a
445
- href=\"https://ror.org/\">ROR</a>).</p><h3 id=\"rich-site-summary-rss\">Rich
446
- Site Summary (RSS)</h3><p><a href=\"https://en.wikipedia.org/wiki/RSS\">RSS</a>
447
- is the standard protocol for distributing and consuming blog content. It is
448
- actually a group of protocols (Atom and multiple flavors of the RSS format),
449
- but they have been around for so long that the popular tools and services
450
- support the various protocols. RSS will be the standard way how content is
451
- ingested by the blog archive, and probably also how in turn content in the
452
- central blog archive is consumed, e.g. as an automated feed of all new science
453
- blog posts in a particular subject area and language.</p><figure class=\"kg-card
454
- kg-image-card\"><img src=\"https://blog.front-matter.io/content/images/2022/12/images--1-.png\"
455
- class=\"kg-image\" alt loading=\"lazy\" width=\"128\" height=\"128\"></figure><p>Because
456
- RSS is so widely supported, other ways of registering content – e.g. via web
457
- form, API, or webhook – are less critical for the blog archive. Work is needed
458
- on the InvenioRDM software to add strong support for RSS feeds, but would
459
- allow the automation of a lot of the work needed to build and maintain the
460
- blog archive.</p><h3 id=\"markdown-and-pdf\">Markdown and PDF</h3><p><a href=\"https://daringfireball.net/projects/markdown/\">Markdown</a>
461
- is a markup language popular with many blogging platforms. It is typically
462
- used for editing blog posts and other documents in online environments but
463
- is not really used for consuming blog content via RSS. Markdown has<a href=\"https://pandoc.org/\">
464
- been extended</a> to support features needed for scholarly documents, e.g.
465
- tables and references, but the uptake of this added functionality in science
466
- blogs has been slow. </p><p>PDF is commonly used for reading scholarly publications.
467
- The workflows for submitting manuscripts to journals and preprint archives
468
- in PDF format are broken because it is tricky to extract structured documents
469
- from PDFs. The blog archive will support PDF as an output format at some point
470
- but is not a high priority. Blog posts are typically consumed via blog reader
471
- or email (if the blog produces a newsletter) rather than as PDF printed out
472
- on paper. There is work needed on the InvenioRDM platform to display full-text
473
- content rendered as HTML.</p><h3 id=\"curation-and-community\">Curation and
474
- Community</h3><p>Science blog posts typically see a lightweight review workflow
475
- before publication, and often receive feedback in the form of comments and/or
476
- social media mentions. For the Front Matter science blog archive, I want to
477
- keep that approach and not build any hurdles for inclusion. Some level of
478
- curation is needed, not only to check for quackery and hate speech but also
479
- to improve metadata that help with discovery, and to find blogs that should
480
- be included. Ideally we can build a community around the science blog archive,
481
- taking advantage of the <a href=\"https://inveniordm.web.cern.ch/communities\">communities</a>
482
- (focussing on different languages and subject areas) feature recently added
483
- to the InvenioRDM software.</p><h3 id=\"flashback\">Flashback?</h3><p>If reading
484
- this post feels like it is 2006 – the year <a href=\"https://en.wikipedia.org/wiki/James_Brown\">James
485
- Brown</a> (used for the feature image of this post) died – again with talk
486
- about blogs, RSS, Markdown, Creative Commons, and related technologies (I
487
- for example didn''t mention Zotero, XML, or Wordpress), you are right. This
488
- is intentional, these technologies are not as sexy as using artificial intelligence
489
- or cryptocurrencies to drive this, but I want the Science Blog archive to
490
- become a scholarly resource that is useful, open, and inclusive.</p><h3 id=\"references\">References</h3><p>Fenner,
491
- M. (2022, September 28). Starting Work on the Front Matter Archive. <em>Front
492
- Matter</em>. <a href=\"https://doi.org/10.53731/9z6rz5d-djbay0y\">https://doi.org/10.53731/9z6rz5d-djbay0y</a></p><p>Fenner,
493
- M. (2022, December 12). Building an archive for scholarly blog posts. <em>Front
494
- Matter</em>. <a href=\"https://doi.org/10.53731/br9f5xa-a556w2t\">https://doi.org/10.53731/br9f5xa-a556w2t</a></p><p>Fenner,
495
- M. (2022, December 19). Launching the Front Matter Roadmap. <em>Front Matter</em>.
496
- <a href=\"https://doi.org/10.53731/cbdtfp1-1798beh\">https://doi.org/10.53731/cbdtfp1-1798beh</a></p><p>Fenner,
497
- M. (2010, October 6). Beyond the PDF – it is time for a workshop. <em>Front
498
- Matter</em>. <a href=\"https://doi.org/10.53731/r294649-6f79289-8cw7z\">https://doi.org/10.53731/r294649-6f79289-8cw7z</a></p><p>Fenner,
499
- M. (2013, June 19). Citations in Scholarly Markdown. <em>Front Matter</em>.
500
- <a href=\"https://doi.org/10.53731/r294649-6f79289-8cw1b\">https://doi.org/10.53731/r294649-6f79289-8cw1b</a></p>
501
- ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/avg2ykg-gdxppcd","short_id":"j3ejvvep","url":"https://blog.front-matter.io/posts/need-to-fix-science-blogs/","title":"Do
502
- we need to fix science blogs?","summary":"Science blogs have been around for
503
- at least 20 years and have become an important part of science communication.
504
- So are there any fundamental issues that need fixing?Barriers to EntryBlogging
505
- platforms are...","date_published":"2023-01-25T15:14:17Z","date_modified":"2023-02-01T15:43:22Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
506
- Fenner"}],"image":"https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
507
- <p><img src=\"https://images.unsplash.com/photo-1585838017777-5003198884b5?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>Science
508
- blogs have been around for at least 20 years and have become an important
509
- part of science communication. So are there any fundamental issues that need
510
- fixing?</p><h3 id=\"barriers-to-entry\">Barriers to Entry</h3><p>Blogging
511
- platforms are mature at this point, and the technology is not imposing barriers
512
- to entry for most people. The user experience has greatly improved over the
513
- last few years and there are a number of affordable ways for hosting a blog
514
- that also work for science blogs, including free options such as <a href=\"https://pages.github.com/\">GitHub
515
- Pages</a>.</p><h3 id=\"open-access\">Open Access</h3><p>Science blogs have
516
- traditionally been free to read, but there is a general trend towards subscriptions
517
- for blogs (and related newsletters), as the advertising business model isn''t
518
- really working for niche content such as most science. How to sustain science
519
- blogging in the long run is an unresolved question, and charging authors (beyond
520
- a nominal hosting fee) doesn''t look like a path forward. Luckily the costs
521
- of publishing science blogs are very reasonable compared to journal publishing
522
- or hosting research data and code.</p><h3 id=\"missing-functionality\">Missing
523
- Functionality</h3><p>The basic functionality of formatted text with embedded
524
- figures and links is supported by many blogging platforms. The requirements
525
- of data-intensive science, e.g. interactive visualizations, can be a challenge,
526
- but that is also true for publishing journal articles. Interactive environments
527
- such as <a href=\"https://jupyter.org/\">Jupyter Notebooks</a> might be a
528
- better fit for these use cases. </p><p>Reference management is probably the
529
- biggest gap in science blogging, as handling more than a few references in
530
- standard ways is not easily done by hand.</p><h3 id=\"impact-or-credit\">Impact
531
- or Credit</h3><p>Unfortunately a lot of the activities of scholars are driven
532
- by perceived <em>Impact </em>or<em> Credit</em>, and science blogs typically
533
- don''t score high in this regard – with the exception of some disciplines
534
- such as mathematics. There is probably no short-term solution, and I am not
535
- even sure it is a problem that needs fixing. </p><p>The long-term solution
536
- should focus on increasing the visibility and thus discoverability of science
537
- blogs to reach a larger audience. As I discussed in a <a href=\"https://doi.org/10.53731/br9f5xa-a556w2t\">previous
538
- post</a>, my preferred approach is a central repository for science blog content
539
- originally published in many different locations (the PubMed/PubMed Central)
540
- model.</p><h3 id=\"persistence\">Persistence</h3><p>This leaves persistence
541
- as the other main problem with science blogs besides discoverability that
542
- needs fixing. Link rot (the resource identified by a URI vanishes from the
543
- web) and content drift (the resource identified by a URI changes over time)
544
- are <a href=\"https://ceur-ws.org/Vol-3246/10_Paper3.pdf\">well-known problems
545
- with digital content</a>, from <a href=\"https://www.theverge.com/2021/5/21/22447690/link-rot-research-new-york-times-domain-hijacking\">newspapers</a>
546
- to scholarly content. There are mainly two approaches to address this problem:</p><ul><li><strong>Archiving</strong>
547
- using generic services such as the <a href=\"https://archive.org/\">Internet
548
- Archive</a> and specialized services such as <a href=\"https://www.softwareheritage.org/\">Software
549
- Heritage</a> for software source code or <a href=\"https://www.portico.org/\">Portico</a>
550
- for scholarly content.</li><li><strong>Persistent Identifiers</strong> by
551
- maintaining links independent of URL host and path, both of which may change
552
- over time. This <a href=\"https://doi.org/10.53731/r294649-6f79289-8cw1h\">blog
553
- post of mine</a> is almost 14 years old, and the URL has changed at least
554
- four times as I changed blogging platforms. Since 2021 the post has had a
555
- persistent identifier in form of a DOI, and that DOI will not change going
556
- forward, eventually pointing to an archive when I retire.</li></ul><p>Some
557
- science blog content is ephemeral and may not be worth archiving, but a lot
558
- of content is still worth reading years later (the <a href=\"ttps://doi.org/10.53731/r294649-6f79289-8cw1q\">first
559
- post of this blog</a> is more than 15 years old), even if only to provide
560
- historical context.</p><h3 id=\"conclusions\">Conclusions</h3><p>In summary,
561
- we don''t need to <em>fix everything</em> with science blogs but rather focus
562
- on two aspects: discoverability and persistence. In doing that we also need
563
- to sort out better sustainability for science blogs, and as an added bonus
564
- improve their reference management.</p><p>Discoverability and persistence
565
- are an issue for all science blogs, and we are trying to fix them by launching
566
- the <a href=\"https://rogue-scholar.org/\">Rogue Scholar</a> in the second
567
- quarter of 2023. If you are managing a science blog and care about discoverability
568
- and persistence, sign up for the <a href=\"https://rogue-scholar.org/\">Rogue
569
- Scholar waitlist</a>. Particularly if your blog is no longer actively maintained,
570
- for example blogs hosted by grant-funded projects that have ended or are ending
571
- soon.</p><p>Today I launched the <a href=\"https://docs.rogue-scholar.org\">Rogue
572
- Scholar Documentation</a> site, where I will document how to use the Rogue
573
- Scholar, e.g. what you can do to prepare your science blog for Rogue Scholar
574
- archiving. The site is written in markdown and hosted on GitHub, so feel free
575
- to ask questions or suggest additions via the links provided by the documentation
576
- site.</p> ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/n7vvs-h6995","short_id":"zkevm5e3","url":"https://blog.front-matter.io/posts/rogue-scholar-releases-first-catalog/","title":"The
577
- Rogue Scholar releases its first catalog of science blogs","summary":"The
578
- Rogue Scholar blog archive today released its first catalog of science blogs,
579
- a total of nineteen science blogs that signed up for the Rogue Scholar via
580
- submission form and met the inclusion criteria: The...","date_published":"2023-03-29T20:46:54Z","date_modified":"2023-04-04T09:22:41Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
581
- Fenner"}],"image":"https://images.unsplash.com/photo-1662582632158-7f0f6e9a617b?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMzfHxjYXRhbG9nfGVufDB8fHx8MTY4MDEyMTQ2MQ&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
582
- <p><img src=\"https://images.unsplash.com/photo-1662582632158-7f0f6e9a617b?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDMzfHxjYXRhbG9nfGVufDB8fHx8MTY4MDEyMTQ2MQ&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>The
583
- Rogue Scholar blog archive today released its <a href=\"https://rogue-scholar.org/blogs\">first
584
- catalog of science blogs</a>, a total of nineteen science blogs that signed
585
- up for the Rogue Scholar via <a href=\"https://jvinjjenjik.typeform.com/to/uxgAsHPl\">submission
586
- form</a> and met the inclusion criteria: </p><ul><li>The blog is about science
587
- and in English or German (more languages will follow later, reach out to me
588
- if you can help).</li><li>The full-text content is available via RSS feed
589
- and distributed using a Creative Commons Attribution license (<a href=\"https://creativecommons.org/licenses/by/4.0/legalcode\">CC-BY</a>).</li></ul><p>The
590
- Rogue Scholar will launch in the second quarter of this year, and this list
591
- of science blogs is an important step. The RSS feeds of the included blogs
592
- will be used to archive content and register DOIs, and they contain important
593
- information that I will include over time, including license, language, blog
594
- description, blog logo, contact person, and blogging platform.</p><figure
595
- class=\"kg-card kg-image-card kg-card-hascaption\"><img src=\"https://blog.front-matter.io/content/images/2023/03/Bildschirmfoto-2023-03-29-um-22.38.08.png\"
596
- class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"841\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/03/Bildschirmfoto-2023-03-29-um-22.38.08.png
597
- 600w, https://blog.front-matter.io/content/images/size/w1000/2023/03/Bildschirmfoto-2023-03-29-um-22.38.08.png
598
- 1000w, https://blog.front-matter.io/content/images/size/w1600/2023/03/Bildschirmfoto-2023-03-29-um-22.38.08.png
599
- 1600w, https://blog.front-matter.io/content/images/size/w2400/2023/03/Bildschirmfoto-2023-03-29-um-22.38.08.png
600
- 2400w\" sizes=\"(min-width: 720px) 720px\"><figcaption>Subset of the blogs
601
- included in the first <a href=\"https://rogue-scholar.org/blogs\">Rogue Scholar
602
- catalog</a></figcaption></figure><p>The first Rogue Scholar catalog can be
603
- used as a starting point to find interesting science blogs, but more importantly,
604
- the catalog is available as an <a href=\"https://doi.org/10.53731/wa7k5-v4t16\">OPML
605
- file</a> for download and can be imported (and modified) into any blog reader.</p>
606
- ","tags":["News"],"language":"en"},{"id":"https://doi.org/10.53731/d6vdvbt-tffmezj","short_id":"5ldw65eo","url":"https://blog.front-matter.io/posts/rss-atom-jsonfeed/","title":"RSS,
607
- Atom, JSON Feed","summary":"As I discussed in a recent post, RSS is an essential
608
- building block for the upcoming Rogue Scholar Scholarly Blog Archive. RSS
609
- makes it easy to import blog posts (both metadata and content) automatically
610
- and...","date_published":"2023-01-16T16:57:54Z","date_modified":"2023-01-16T17:06:53Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
611
- Fenner"}],"image":"https://images.unsplash.com/photo-1597092451116-27787c07901d?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGFyY2hpdmV8ZW58MHx8fHwxNjczODg2NDI2&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
612
- <p><img src=\"https://images.unsplash.com/photo-1597092451116-27787c07901d?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGFyY2hpdmV8ZW58MHx8fHwxNjczODg2NDI2&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>As
613
- I discussed in a <a href=\"https://doi.org/10.53731/eyf75cj-jsgv26c\">recent
614
- post</a>, RSS is an essential building block for the upcoming <a href=\"https://rogue-scholar.org\">Rogue
615
- Scholar</a> Scholarly Blog Archive. RSS makes it easy to import blog posts
616
- (both metadata and content) automatically and is supported by all blogging
617
- platforms. This kind of automation is critical to keep the costs of running
618
- the Rogue Scholar low, allowing it to scale to cover a substantial number
619
- of science blog posts, and hopefully becoming an important Open Science resource.</p><p>But
620
- there are also challenges with using RSS:</p><ul><li>RSS is not a single standard
621
- but comes in multiple flavors: multiple versions of RSS, Atom, and the newer
622
- <a href=\"https://www.jsonfeed.org/\">JSON Feed</a>. Most libraries for consuming
623
- RSS (e.g. the Python <a href=\"https://github.com/kurtmckee/feedparser\">feedparser</a>)
624
- can handle RSS and Atom, and fewer tools (e.g. the Python <a href=\"https://pypi.org/project/reader/\">feeder</a>)
625
- also support the newer JSON Feed.</li><li>The Rogue Scholar will use the <a
626
- href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a> open source platform,
627
- which uses <a href=\"https://opensearch.org/\">OpenSearch</a> to index content
628
- and metadata. OpenSearch – just like Elasticsearch on which it is based –
629
- works with JSON. Indexing and archiving science blogs therefore should first
630
- convert RSS and Atom feeds onto JSON, and JSON Feed, <a href=\"https://www.jsonfeed.org/mappingrssandatom/\">which
631
- has been mapped from RSS and Atom</a>, is the obvious choice.</li><li>Some
632
- blogs prefer to only publish summaries in their RSS feeds, there have been
633
- many discussions on this topic over the years. It would complicate the operation
634
- of the Rogue Scholar if full-text content has to retrieved by other means,
635
- and archiving full-text content is the primary goal for the Rogue Scholar.
636
- The Rogue Scholar needs one feed that provides the full-text content, it doesn''t
637
- have to be the default blog feed.</li><li>Blogs, in particular personal blogs,
638
- may publish content that is out of the scope of the main science topics of
639
- the blog. Occasional out-of-scope posts, e.g. talking about major events such
640
- as job changes, sickness, or travel, are probably ok, and add a personal note.
641
- If this is frequently the case, and this has come up twice in initial Rogue
642
- Scholar discussions, it probably makes sense to provide a filtered RSS feed
643
- (e.g. using tags) with only a subset of posts.</li><li>Describing a blog and
644
- associated metadata (e.g. name, feed URL, language, license, contact) is not
645
- something that easily maps how InvenioRDM is modeled. The obvious choice would
646
- be <a href=\"https://inveniordm.web.cern.ch/communities\">communities</a>,
647
- but they can also be seen as a higher level of aggregation, e.g. all blog
648
- posts about biodiversity independent of the blog source. For now I will work
649
- with communities and enhance the InvenioRDM functionality where it also makes
650
- sense for other InvenioRDM use cases, of course coordinating with the InvenioRDM
651
- community.</li></ul><p>Two weeks ago I opened up the <a href=\"https://jvinjjenjik.typeform.com/to/uxgAsHPl\">waitlist</a>
652
- for the Rogue Scholar, and I am happy with the feedback I have received so
653
- far: sixteen submissions and a number of encouraging discussions. Consider
654
- adding your science blog to the waitlist, or learn more at the <a href=\"https://rogue-scholar.org\">Rogue
655
- Scholar</a> website. If you have questions, post them in the comments or join
656
- the <a href=\"https://discord.gg/wZcqPt4p\">Discord channel </a>(renamed from
657
- Front Matter to Rogue Scholar).</p><p>It has not escaped our notice that the
658
- specific use of RSS we have postulated immediately suggests a possible mechanism
659
- for the archiving and DOI registration of other scholarly content.</p> ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/88drdpz-znvdjr9","short_id":"qlgxvqdm","url":"https://blog.front-matter.io/posts/launching-the-front-matter-gazette/","title":"Launching
660
- the Front Matter Gazette","summary":"On Wednesday this week I am launching
661
- the Front Matter Gazette, a weekly newsletter that highlights exciting science
662
- stories from around the web. The linked content highlighted in the newsletter
663
- is published...","date_published":"2023-01-30T12:48:26Z","date_modified":"2023-01-30T12:48:26Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
664
- Fenner"}],"image":"https://images.unsplash.com/photo-1521134976835-9963f2185519?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDE2fHxqb3VybmFsfGVufDB8fHx8MTY3NTAxMzMwNA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
665
- <p><img src=\"https://images.unsplash.com/photo-1521134976835-9963f2185519?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDE2fHxqb3VybmFsfGVufDB8fHx8MTY3NTAxMzMwNA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>On
666
- Wednesday this week I am launching the <em>Front Matter Gazette</em>, a weekly
667
- newsletter that highlights exciting science stories from around the web. The
668
- linked content highlighted in the newsletter is published elsewhere and is
669
- free to read whenever possible. The newsletter requires a paid subscription
670
- (<a href=\"https://blog.front-matter.io/#/portal/signup\">available here</a>),
671
- 5 €/month or 50 €/year with a thirty-day free trial and free subscriptions
672
- on request. The subscription fees help pay for the curation effort – finding
673
- and summarizing the most exciting science stories. </p><h3 id=\"why-do-we-need-to-highlight-the-most-interesting-science\">Why
674
- do we need to highlight the most interesting science?</h3><p>With the <em>Front
675
- Matter Gazette,</em> I try a new approach to addressing an old problem: information
676
- overload.</p><figure class=\"kg-card kg-embed-card kg-card-hascaption\"><iframe
677
- width=\"200\" height=\"150\" src=\"https://www.youtube.com/embed/LabqeJEOQyI?feature=oembed\"
678
- frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media;
679
- gyroscope; picture-in-picture; web-share\" allowfullscreen title=\"Web 2.0
680
- Expo NY: Clay Shirky (shirky.com) It''s Not Information Overload. It''s Filter
681
- Failure.\"></iframe><figcaption>Web 2.0 Expo NY: Clay Shirky (shirky.com)
682
- It''s Not Information Overload. It''s Filter Failure.</figcaption></figure><p>The
683
- approach traditionally often used in science has been to use journals as a
684
- filter. There are many reasons why this approach has failed, described for
685
- example in <a href=\"https://asapbio.org/addressing-information-overload-in-scholarly-literature\">this
686
- 2021 post on the ASAPbio blog</a> by Christine Ferguson and me. Three important
687
- limitations are:</p><ul><li><strong>Delays</strong>. The time from submission
688
- to publication for peer-reviewed journal articles can be significant, which
689
- causes critical issues in situations that need quick actions based on science
690
- such as in the COVID pandemic, but also for early career researchers.</li><li><strong>Focus
691
- on the journal article</strong>. Journal articles are the main channel of
692
- scientific communication in many disciplines, but large parts of scholarship
693
- focus on something else, for example, conference proceedings in computer science
694
- or books in the humanities. In addition, newer outputs of scholarship such
695
- as research data or software source code are left out or only captured <em>by
696
- proxy</em>, publishing journals with articles describing software or data.</li><li><strong>Not
697
- Open Science</strong>. Leaving the decision to what is important in science
698
- to journal publishers, often commercial, instead of the scientists themselves,
699
- is the wrong choice as other interests interfere, and marginalized communities
700
- and regions are left out not only of science publishing but also of what science
701
- is highlighted and promoted.</li></ul><p>Two alternative approaches to journals
702
- as a filter are <strong>automation</strong> and <strong>curation</strong>.
703
- In the ASAPbio blog post mentioned earlier, Christine and I discussed an automation
704
- approach we tried out in 2021, filtering relevant biomedical preprints by
705
- the attention they received on Twitter immediately after publication. We have
706
- not continued this activity beyond early 2022 for two reasons: a) I spent
707
- the first <a href=\"https://doi.org/10.53731/bkkzj8g-gd14mb6\">five months
708
- of 2022 in the hospital</a>, and b) in November 2022 I left Twitter and moved
709
- to <a href=\"https://hachyderm.io/@mfenner\">Mastodon</a> after the change
710
- in Twitter ownership.</p><p>There are many initiatives in this space that
711
- try to use computer algorithms to find the most relevant scholarly content,
712
- but Christine and I felt that this was only the first step and that <strong>curation</strong>
713
- was key to finding what is interesting and relevant. Curation is what journal
714
- editors have always done, and what is helped with peer review since it became
715
- increasingly required in the 1960s, but when curation is used to find what
716
- is interesting and relevant, and not what should be published, there is no
717
- longer a need to leave the curation exclusively up to journals.</p><p>An Open
718
- Science approach to curation has many elements, but a newsletter feels like
719
- a good fit. It is a low-tech approach that works even for the busiest scientists,
720
- and it can be combined with the automation approaches discussed earlier. And
721
- curated newsletters about Science and Scholarship work with preprints, research
722
- data, source code, and other forms of scholarship. A related activity, no
723
- longer so low-tech, is science podcasts, which arguably are currently more
724
- popular than science newsletters.</p><h3 id=\"and-who-is-going-to-pay-for-this\">And
725
- who is going to pay for this?</h3><p>There are two elephants in the room for
726
- paying for this activity: advertising and grant funding. Advertising is not
727
- only a frustrating experience for readers and authors, but also doesn''t really
728
- work in a niche market such as science. The current issues at the German <a
729
- href=\"https://scienceblogs.de/\">scienceblogs.de</a> are only the latest
730
- example of the difficulties sustaining science blogging infrastructure.</p><p>Grant
731
- funding is a well-established strategy to pay for Open Science activities,
732
- but has two major limitations: a) it is not a good fit for the long tail of
733
- science (Front Matter for example is not (yet) a non-profit organization because
734
- the time and money required to start a non-profit in Germany are far from
735
- trivial), and b) grant funding likes to pay for innovation and research, getting
736
- funding for open scholarly infrastructure is much harder.</p><p>Of course
737
- Front Matter is open for startup funding for the <em>Front Matter Gazette</em>,
738
- but it should not be a requirement to get the <em>Gazette</em> started, and
739
- I can not promise any financial returns for an investment.</p><p>Paying even
740
- a small fee of 5 € per month for a useful Open Science resource can be a hurdle,
741
- as <a href=\"https://blog.impactstory.org/subscription-announcement\">Impactstory
742
- can attest</a>. That is why we offer a no-questions-asked fee waiver, and
743
- why we start the Gazette as an experiment where we don''t know the outcome
744
- yet.</p><h3 id=\"will-the-front-matter-gazette-work\">Will the Front Matter
745
- Gazette work?</h3><p>Only time will tell whether the Gazette can attract enough
746
- readers to become a sustainable operation, and I will work on the Gazette
747
- until 2024 to make that call. The <a href=\"https;//ghost.org\">Ghost publishing
748
- platform</a> powering this blog since 2021 is for people who believe in this
749
- vision (mostly in domains other than science):</p><blockquote>Ghost is a powerful
750
- app for new-media creators to publish, share, and grow a business around their
751
- content. It comes with modern tools to build a website, publish content, send
752
- newsletters & offer paid subscriptions to members. – <a href=\"https://ghost.org/\">Ghost
753
- Homepage</a></blockquote><p>Future plans for the <em>Front Matter Gazette</em>
754
- in case of a successful start focus on expanding the coverage – five stories
755
- a week is not even the tip of the iceberg of what''s happening every week
756
- in scholarship.</p><h3 id=\"what-is-the-relationship-to-the-rogue-scholar\">What
757
- is the relationship to the Rogue Scholar?</h3><p><a href=\"https://rogue-scholar.org/\">The
758
- Rogue Scholar</a> is a science blog archive that I am working on and plan
759
- to launch in Q2 2023. Making sure that science blogs can be found over time
760
- with the help of full-text search, DOIs plus metadata, and long-term archiving
761
- is the first critical step. Using this open content in creative ways is the
762
- next step, and curation is one important aspect that I try to start addressing
763
- with the <em>Front Matter Gazette</em>. The <em>Front Matter Gazette</em>
764
- will highlight all kinds of scholarly content, not just blogs, and not only
765
- content archived in the Rogue Scholar, but there are of course synergies that
766
- I will try to explore.</p><h3 id=\"what-is-in-the-first-issue-of-the-front-matter-gazette\">What
767
- is in the first issue of the Front Matter Gazette?</h3><p>In the February
768
- 1st issue I will talk about Neanderthal families, ChatGPT in science publishing,
769
- the Tidyverse, eradicating an infectious disease, and medieval manuscripts.</p>
770
- ","tags":["News"],"language":"en"},{"id":"https://doi.org/10.53731/wa7k5-v4t16","short_id":"wneyvxe4","url":"https://blog.front-matter.io/posts/starting-the-rogue-scholar-opml-feed/","title":"Starting
771
- the Rogue Scholar OPML Feed","summary":"While the launch of the Rogue Scholar
772
- blog archive is still a few months away (happening in the second quarter of
773
- this year), I want to give an update on the ongoing work.The Rogue Scholar
774
- blog archive will...","date_published":"2023-03-22T10:42:17Z","date_modified":"2023-03-22T10:42:17Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
775
- Fenner"}],"image":"https://images.unsplash.com/photo-1611864581049-aca018410b97?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDQzfHxmZWVkfGVufDB8fHx8MTY3OTQ3NDc2NQ&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
776
- <p><img src=\"https://images.unsplash.com/photo-1611864581049-aca018410b97?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDQzfHxmZWVkfGVufDB8fHx8MTY3OTQ3NDc2NQ&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>While
777
- the launch of the <a href=\"https://rogue-scholar.org/\">Rogue Scholar</a>
778
- blog archive is still a few months away (happening in the second quarter of
779
- this year), I want to give an update on the ongoing work.</p><p>The <em>Rogue
780
- Scholar</em> blog archive will improve science blogs in important ways,<br>including
781
- full-text search, DOIs and metadata, and long-term archiving. The central
782
- piece of the underlying infrastructure is the <a href=\"https://inveniosoftware.org/products/rdm/\">InvenioRDM
783
- </a>open source repository software. Front Matter is one of the organizations
784
- helping with InvenioRDM development. For the <em>Rogue Scholar,</em> the specific
785
- work needed includes the following:</p><h3 id=\"support-for-rss-feeds\">Support
786
- for RSS Feeds</h3><p>All blogs provide RSS feeds, which will be central to
787
- automatically fetching metadata and content for the <em>Rogue Scholar</em>.
788
- RSS is not built into InvenioRDM and is not needed by most organizations planning
789
- to run InvenioRDM. I will therefore build a separate service for this functionality,
790
- integrating with InvenioRDM via its REST API. For a blog to be archived and
791
- indexed in the <em>Rogue Scholar</em>, users will use this RSS service, providing
792
- basic information such as RSS feed URL, language, license, and contact person
793
- – basically the information collected for the <em>Rogue Scholar</em> <a href=\"https://jvinjjenjik.typeform.com/to/uxgAsHPl?typeform-source=rogue-scholar.org\">waitlist</a>
794
- (feel free to sign up your blog if you haven''t already).</p><p>Next Tuesday
795
- I will publish an <a href=\"https://en.wikipedia.org/wiki/OPML\">OPML</a>
796
- (Outline Processor Markup Language) file with all blogs on the <em>Rogue Scholar</em>
797
- waitlist. OPML is the standard for importing and exporting lists of blogs,
798
- e.g. when switching from one RSS reader to another. It is a natural fit for
799
- managing blogs in <em>Rogue Scholar</em>, and hopefully helps people sign
800
- up for interesting science blogs they want to read. If you are on the <em>Rogue
801
- Scholar </em>waitlist, please make sure your RSS Feed URL and Home Page URL
802
- are correct, and – if you haven''t done so already – pick one (and only one)
803
- of the top-level categories from the <a href=\"https://www.oecd.org/science/inno/38235147.pdf\">OECD
804
- Fields of Science and Technology</a>:</p><ul><li>Natural Sciences</li><li>Engineering
805
- and Technology</li><li>Medical and Health Sciences</li><li>Agricultural Sciences</li><li>Social
806
- Sciences</li><li>Humanities</li></ul><p>The OPML file (and your RSS reader
807
- if you import that file) will group science blogs into these categories. Many
808
- blogs fall into more than one category, but that isn''t supported by OPML.
809
- </p><h3 id=\"hosting-rogue-scholar-infrastructure\">Hosting Rogue Scholar
810
- infrastructure</h3><p>There are <a href=\"https://inveniordm.docs.cern.ch/install/\">several
811
- ways</a> to run InvenioRDM repository software, obviously depending on the
812
- resources available at the hosting organization, and the size and complexity
813
- of the repository. A small data repository for a university department has
814
- different needs than <a href=\"https://zenodo.org/\">Zenodo</a>, one of the
815
- most popular generalist repositories with almost three million records. The
816
- <em>Rogue Scholar</em> sits in the middle, a small to medium-sized repository,
817
- anticipating 2,000 to 20,000 blog posts twelve months after launch. InvenioRDM
818
- relies on <a href=\"https://www.docker.com/\">Docker</a> and Kubernetes for
819
- running production services. This makes sense for large instances such as
820
- Zenodo but adds unnecessary complexity to smaller instances such as the <em>Rogue
821
- Scholar</em>.</p><p>After a substantial amount of deliberation and discussion,
822
- I decided to use a different approach for the <em>Rogue Scholar</em>, and
823
- this might potentially be of interest to other organizations planning to use
824
- InvenioRDM:</p><ul><li>Using virtual machines instead of Docker containers</li><li>Automation
825
- of virtual machine building with <a href=\"https://www.packer.io/\">Packer</a>
826
- and <a href=\"https://www.ansible.com/\">Ansible</a></li><li>Hosting of virtual
827
- machines by cloud provider <a href=\"https://www.digitalocean.com/\">DigitalOcean</a>,
828
- fundamentally similar to hosting a Wordpress or Ghost blog</li><li>Making
829
- the automation generic to also work for other InvenioRDM instances, and other
830
- infrastructure providers, e.g. <a href=\"https://www.openstack.org/\">Openstack</a></li></ul><p>This
831
- will be the focus of my work in the next three months, and luckily I have
832
- learned a lot about infrastructure automation in my previous jobs at <a href=\"https://plos.org/\">PLOS</a>
833
- and <a href=\"https://datacite.org/\">DataCite</a>.</p><h3 id=\"support-for-crossref-doi-registration\">Support
834
- for Crossref DOI registration</h3><p>By default, InvenioRDM uses DataCite
835
- DOIs, but <em>Rogue Scholar</em> will use Crossref DOIs for blogs that don''t
836
- already use DOIs. The Crossref pricing is much more favorable for startups
837
- such as Front Matter, and for annual DOI registration numbers that at least
838
- initially will be in the 100s or low 1000s. I spent a good part of January
839
- and February writing a Python scholarly metadata conversion library that I
840
- released two weeks ago (<a href=\"https://pypi.org/project/commonmeta-py/\">commonmeta-py</a>).
841
- Among other things, commonmeta-py can read and write Crossref metadata and
842
- can enable Crossref DOI registrations in InvenioRDM – which is written in
843
- Python (and Javascript for the frontend).</p><p>As always, reach out to me
844
- with questions and comments.</p> ","tags":[],"language":"en"},{"id":"https://doi.org/10.53731/cbvm43q-qdk3s1s","short_id":"nodz2pdp","url":"https://blog.front-matter.io/posts/science-blog-archive-waitlist/","title":"Sign
845
- up for the science blog archive waitlist","summary":"The science blog archive
846
- that I have started to work on (see previous posts) finally has a name: the
847
- Rogue Scholar. I picked this name because I liked the description in the Urban
848
- Dictionary.A person with...","date_published":"2023-01-02T11:31:52Z","date_modified":"2023-01-02T11:31:52Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
849
- Fenner"}],"image":"https://images.unsplash.com/photo-1577046823799-58b2d217d508?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGhhcHB5JTIwbmV3JTIweWVhcnxlbnwwfHx8fDE2NzI2NTY4MzQ&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
850
- <p><img src=\"https://images.unsplash.com/photo-1577046823799-58b2d217d508?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGhhcHB5JTIwbmV3JTIweWVhcnxlbnwwfHx8fDE2NzI2NTY4MzQ&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>The
851
- science blog archive that I have started to work on (<a href=\"https://doi.org/10.53731/eyf75cj-jsgv26c\">see
852
- previous posts</a>) finally has a name: the <em>Rogue Scholar</em>. I picked
853
- this name because I liked the description in the <a href=\"https://www.urbandictionary.com/define.php?term=rogue%20scholar\">Urban
854
- Dictionary</a>.</p><blockquote>A person with extensive knowledge pertaining
855
- to various subject matters that extends beyond formal education. This person
856
- often <strong>gathers</strong> knowledge from various sources, such as media,
857
- friends, casual reading or the internet.</blockquote><p>And I started a waitlist
858
- for people interested in having their science blog archived in the <em>Rogue
859
- Scholar</em>. There is still a lot of work to do, but I hope to launch the
860
- archive in the second quarter of 2023 with these core features:</p><ul><li>based
861
- on the <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a> open source
862
- software, hosted by Front Matter</li><li>free to archive 50 blog posts per
863
- year. For larger blogs or a backfile of several years, the Rogue Scholar will
864
- charge a one-time fee of 1 € per blog post, and I have started to work on
865
- securing additional funding for this.</li><li>Full-text search of blog content,
866
- typically not available on self-hosted blogs</li><li>DOI registration for
867
- blog posts, facilitating discovery and integration of blogs into the scholarly
868
- record</li><li>free to read and reuse forever, using the Creative Commons
869
- Attribution (<a href=\"https://creativecommons.org/licenses/by/4.0/\">CC-BY</a>)
870
- license</li><li>initially support English and German language posts</li></ul><p>The
871
- form to sign up for the waitlist is available <a href=\"https://jvinjjenjik.typeform.com/to/uxgAsHPl\">here</a>.</p>
872
- ","tags":["News"],"language":"en"},{"id":"https://doi.org/10.53731/a0d9m3n-n7r8h0m","short_id":"3ng2zrg1","url":"https://blog.front-matter.io/posts/guidelines-for-scholarly-blogs/","title":"Guidelines
873
- for Scholarly Blogs","summary":"These guidelines are recommendations for authors
874
- of scholarly blogs to help with long-term archiving, discoverability, and
875
- citation of blog content.They are modeled after the publication A Data Citation...","date_published":"2023-02-06T11:52:24Z","date_modified":"2023-02-06T11:52:24Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
876
- Fenner"}],"image":"https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
877
- <p><img src=\"https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>These
878
- guidelines are recommendations for authors of scholarly blogs to help with
879
- long-term archiving, discoverability, and citation of blog content.<br>They
880
- are modeled after the publication <a href=\"https://doi.org/10.1038/s41597-019-0031-8\">A
881
- Data Citation Roadmap for Scholarly Data Repositories</a>, where many of the
882
- same guidelines apply, and where I was the first author and <a href=\"https://force11.org/group/data-citation-implementation-group/\">co-chair
883
- of the corresponding Force11 working group.</a></p><p>These guidelines focus
884
- on the required or recommended work for scholarly blog authors. For scholarly
885
- blog archives such as the <a href=\"https://rogue-scholar.org\">Rogue Scholar</a>,
886
- additional guidelines are in development.</p><!--kg-card-begin: html--><table>\n<thead>\n<tr>\n<th>Level</th>\n<th
887
- style=\"text-align: right\">#</th>\n<th>Guideline</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Required</td>\n<td
888
- style=\"text-align: right\">1</td>\n<td>The full-text content <em>must</em>
889
- be made available via public RSS feed (in RSS, Atom or JSON Feed format).</td>\n</tr>\n<tr>\n<td>Required</td>\n<td
890
- style=\"text-align: right\">2</td>\n<td>Each blog post in the RSS feed <em>must</em>
891
- have a title, author(s), and publication date.</td>\n</tr>\n<tr>\n<td>Required</td>\n<td
892
- style=\"text-align: right\">3</td>\n<td>Each blog post <em>must</em> have
893
- a URL that resolves to a public landing page specific for that blog post.</td>\n</tr>\n<tr>\n<td>Required</td>\n<td
894
- style=\"text-align: right\">4</td>\n<td>The full-text content <em>must</em>
895
- be made available via a Creative Commons Attribution (CC-BY) license.</td>\n</tr>\n<tr>\n<td>Required</td>\n<td
896
- style=\"text-align: right\">5</td>\n<td>The blog must provide documentation
897
- about long-term archiving, discoverability, and citation.</td>\n</tr>\n<tr>\n<td>Recommended</td>\n<td
898
- style=\"text-align: right\">6</td>\n<td>Each blog post in the RSS feed <em>should</em>
899
- have a persistent identifier, description, language, and last updated date.</td>\n</tr>\n<tr>\n<td>Recommended</td>\n<td
900
- style=\"text-align: right\">7</td>\n<td>The landing page <em>should</em> include
901
- metadata required for citation, and ideally also metadata facilitating discovery,
902
- in human-readable and machine-readable format.</td>\n</tr>\n<tr>\n<td>Recommended</td>\n<td
903
- style=\"text-align: right\">8</td>\n<td>The machine-readable metadata <em>should</em>
904
- use schema.org markup in JSON-LD format.</td>\n</tr>\n<tr>\n<td>Recommended</td>\n<td
905
- style=\"text-align: right\">9</td>\n<td>Metadata <em>should</em> be made available
906
- via HTML meta tags to facilitate use by reference managers.</td>\n</tr>\n<tr>\n<td>Recommended</td>\n<td
907
- style=\"text-align: right\">10</td>\n<td>Metadata <em>should</em> be made
908
- available for download in BibTeX and/or another standard bibliographic format.</td>\n</tr>\n</tbody>\n</table><!--kg-card-end:
909
- html--><p>The requirement for full-text content via RSS feed and with a CC-BY
910
- license comes from the need to make archiving and indexing as simple (and
911
- cheap) as possible. Dealing with multiple licenses, private feeds, and private
912
- content adds an extra level of complexity and is not supportive of Open Science.</p><p>Metadata
913
- via HTML meta tags and JSON-LD (using schema.org markup) are two main strategies
914
- to embed metadata in web pages, to support reference managers but also indexers.
915
- Schema.org is simpler to work with, e.g. for more complex author information
916
- such as separate given and family names, author identifiers such as ORCID,
917
- and affiliation information. On the other hand, reference managers and Google
918
- Scholar currently use HTML meta tags, and it is sometimes easier to add this
919
- information to a blog.</p><p>Registration of DOIs as other persistent identifiers
920
- for blog posts is something that I want to provide via the Rogue Scholar archive,
921
- as the effort required is not trivial. The information required (mainly title,
922
- author(s), publication date, and URL) is readily available via the RSS feed.
923
- Of course, displaying these DOIs on the blog is recommended, and for the DOIs
924
- to resolve to the blog itself rather than the blog archive at the Rogue Scholar
925
- or elsewhere.</p><p>The recommended or optional metadata for science blog
926
- posts is of course a big topic that needs more discussion. Description, language,
927
- and last updated date seem desired and readily available. References used
928
- in blog posts would be fantastic to be included in the metadata, but there
929
- is currently no easy and standard way of doing this. For better discoverability,
930
- it would make sense to provide geo coordinates and/or temporal information,
931
- and all blogs would benefit from using subject classification such as the
932
- <a href=\"https://www.oecd.org/science/inno/38235147.pdf\">OECD Fields of
933
- Science and Technology</a>, but all this would require significantly more
934
- effort.</p><p>These guidelines are a work in progress and are made available
935
- as part of the <a href=\"https://docs.rogue-scholar.org/guidelines\">Rogue
936
- Scholar Documentation</a>. Feedback is greatly appreciated.</p> ","tags":["Feature"],"language":"en"},{"id":"https://doi.org/10.53731/4nwxn-frt36","short_id":"1jgo8yel","url":"https://blog.front-matter.io/posts/does-it-compose/","title":"Does
937
- it compose?","summary":"One question I have increasingly asked myself in the
938
- past few years. Meaning Can I run this open source software using Docker containers
939
- and a Docker Compose file?As the Docker project turned ten this...","date_published":"2023-05-16T11:36:56Z","date_modified":"2023-05-16T11:36:56Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
940
- Fenner"}],"image":"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
941
- <p><img src=\"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>One
942
- question I have increasingly asked myself in the past few years. Meaning </p><blockquote>Can
943
- I run this open source software  using Docker containers and a Docker Compose
944
- file?</blockquote><p>As the Docker project <a href=\"https://snyk.io/blog/the-docker-project-turns-10/\">turned
945
- ten this spring</a>, it has become standard practice to distribute open source
946
- software via Docker images and to provide a <a href=\"https://docs.docker.com/compose/\">Docker
947
- Compose</a> file to run the software together with other dependencies. The
948
- <a href=\"https://github.com/docker/awesome-compose\">Awesome Compose</a>
949
- project has collected many examples, and all you need is a <code>docker-compose.yml</code>file
950
- and a recent installation of Docker, e.g. <a href=\"https://www.docker.com/products/docker-desktop/\">Docker
951
- Desktop</a>. Be aware that Docker Compose has evolved over the years. It started
952
- out as a dedicated Python application but was later integrated into the Docker
953
- application (written in Go) as Compose V2.</p><p>Docker and Docker Compose
954
- allow you to run pretty complex applications without first addressing a long
955
- list of requirements (which might conflict with other software you have installed),
956
- or needing a long and complex build step where many things can go wrong. For
957
- example a self-hosted instance of Supabase (a hosted Postgres database with
958
- additional features) that I installed last week following <a href=\"https://supabase.com/docs/guides/self-hosting/docker\">these
959
- instructions</a>.</p><p>An important open source project that I am involved
960
- in is <a href=\"https://inveniordm.docs.cern.ch/\">InvenioRDM</a>, the turn-key
961
- research data management repository. InvenioRDM started in 2019, with a first
962
- production-suitable version in August 2021, and the <a href=\"https://inveniosoftware.org/products/rdm/#status\">next
963
- major goal </a>is to have the large and popular <a href=\"https://zenodo.org/\">Zenodo</a>
964
- repository running on top of InvenioRDM. Zenodo <a href=\"https://blog.zenodo.org/2023/05/08/2023-05-08-10years/\">turned
965
- ten last week</a>, a few weeks after Docker. Interestingly, my personal tenth
966
- anniversary was last year in May as I became a full-time software developer
967
- and left academic medicine as a medical doctor treating cancer patients in
968
- <a href=\"https://doi.org/10.53731/r294649-6f79289-8cw2j\">May 2012</a>.</p><p>Unfortunately,
969
- InvenioRDM \"doesn''t compose\" yet. It is very close, but there are no ready-made
970
- Docker images to download, and the <a href=\"https://inveniordm.docs.cern.ch/install/\">installation
971
- instructions</a> start with installing a Python command-line tool (invenio-cli).
972
- So if you have 1-2 hours to play with InvenioRDM and get a first impression,
973
- there is no official solution from the InvenioRDM project yet. For this reason,
974
- I started the <a href=\"https://github.com/front-matter/docker-invenio-rdm\">docker-invenio-rdm</a>
975
- repository on Github. It contains a Docker Compose file that uses pre-built
976
- Docker images, and using that file with a <code>docker compose up</code>command
977
- on your local computer should give you a running InvenioRDM within 15 minutes:</p><figure
978
- class=\"kg-card kg-image-card\"><img src=\"https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png\"
979
- class=\"kg-image\" alt loading=\"lazy\" width=\"2000\" height=\"1210\" srcset=\"https://blog.front-matter.io/content/images/size/w600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
980
- 600w, https://blog.front-matter.io/content/images/size/w1000/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
981
- 1000w, https://blog.front-matter.io/content/images/size/w1600/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
982
- 1600w, https://blog.front-matter.io/content/images/2023/05/Bildschirmfoto-2023-05-11-um-10.37.55.png
983
- 2193w\" sizes=\"(min-width: 720px) 720px\"></figure><p>I started this recently
984
- and obviously want to move forward in two directions:</p><ul><li>fine-tune
985
- the initial configuration to provide a great initial experience with InvenioRDM,
986
- e.g. making it easy to <a href=\"https://inveniordm.docs.cern.ch/develop/topics/theming/\">theme</a>
987
- the InvenioRDM instance</li><li>make this an official part of the InvenioRDM
988
- project, extending the <a href=\"https://github.com/inveniosoftware/docker-invenio\">docker-invenio</a>
989
- GitHub repository that provides Docker base images for InvenioRDM and other
990
- projects using the Invenio software.</li></ul><p>But of course, Docker Compose
991
- is not the answer to all questions regarding running Docker-based infrastructure.
992
- For production environments, most people shy away from using Docker Compose.
993
- The reasons for that and the alternatives will be the topic of a future blog
994
- post (spoiler: there is exciting news).</p><p>Docker Compose also needs more
995
- work to be set up correctly for development environments. It is a common practice
996
- and a workflow I used while working at DataCite (where we launched Docker-based
997
- infrastructure in 2016), but for now, the easiest way to set up InvenioRDM
998
- development environments is using the <a href=\"https://inveniordm.docs.cern.ch/install/\">invenio-cli
999
- tool with a local development environment</a>.</p><p>Please reach out to me
1000
- with feedback on running Docker Compose for InvenioRDM (use the <a href=\"https://github.com/front-matter/docker-invenio-rdm/discussions\">discussions</a>
1001
- feature in the GitHub repo), or if you have questions about running InvenioRDM
1002
- in production.</p> ","tags":["News"],"language":"en"},{"id":"https://doi.org/10.53731/fawv321-14359c4","short_id":"56gl1qd9","url":"https://blog.front-matter.io/posts/announcing-commonmeta-ruby/","title":"Announcing
1003
- commonmeta-ruby","summary":"Following recent announcements of the commonmeta
1004
- standard for scholarly metadata and a Python package that converts several
1005
- metadata formats (commonmeta-py), today I am happy to announce commonmeta-ruby,
1006
- a...","date_published":"2023-03-20T14:54:00Z","date_modified":"2023-03-22T12:32:52Z","authors":[{"url":"https://orcid.org/0000-0003-1419-2405","name":"Martin
1007
- Fenner"}],"image":"https://images.unsplash.com/photo-1676284572206-2501ff5c6956?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDUwfHxiaWtlJTIwbSVDMyVCQ25zdGVyfGVufDB8fHx8MTY3OTMyMTU4MA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000","content_html":"
1008
- <p><img src=\"https://images.unsplash.com/photo-1676284572206-2501ff5c6956?crop&#x3D;entropy&cs&#x3D;tinysrgb&fit&#x3D;max&fm&#x3D;jpg&ixid&#x3D;MnwxMTc3M3wwfDF8c2VhcmNofDUwfHxiaWtlJTIwbSVDMyVCQ25zdGVyfGVufDB8fHx8MTY3OTMyMTU4MA&ixlib&#x3D;rb-4.0.3&q&#x3D;80&w&#x3D;2000\"></p><p>Following
1009
- recent announcements of the <a href=\"https://commonmeta.org\">commonmeta</a>
1010
- standard for scholarly metadata and a Python package that converts several
1011
- metadata formats (<a href=\"https://github.com/front-matter/commonmeta-py\">commonmeta-py</a>),
1012
- today I am happy to announce <a href=\"https://github.com/front-matter/commonmeta-ruby\">commonmeta-ruby</a>,
1013
- a Ruby gem and command-line tool to convert scholarly metadata using commonmeta
1014
- as the internal format. commonmeta-ruby is based on the <a href=\"https://github.com/datacite/bolognese\">bolognese
1015
- Ruby library</a> that I started a few ago while working at DataCite, but is
1016
- a major rewrite that uses commonmeta as its intermediary conversion format.</p><p>Originally
1017
- planned for later this year, I decided to speed up the release as Ruby version
1018
- 2.x (currently 2.7.7) reaches its <a href=\"https://endoflife.date/ruby\">end
1019
- of life</a> this month, and <a href=\"https://rubygems.org/gems/briard\">briard</a>
1020
- (the fork I wrote to support additional metadata conversions such as <a href=\"https://citation-file-format.github.io/\">Citation
1021
- File Format</a> and Crossref DOI registrations) didn''t fully work with Ruby
1022
- 3.x. In addition to supporting Ruby 3.x and validating with the <a href=\"https://commonmeta.org/schema\">commonmeta
1023
- JSON Schema</a>, commonmeta-ruby dropped support for DataCite XML. The DataCite
1024
- REST API has always been a JSON API, and DOI registration using DataCite XML
1025
- for many years has used JSON under the hood. Metadata conversion using XML
1026
- is painful, and focussing on JSON metadata simplifies further development.</p><p>The
1027
- next steps for commonmeta are:</p><ul><li>Refine the commonmeta-py and commonmeta-ruby
1028
- libraries by adding tests and real-world implementations (such as the DOI
1029
- registration for this blog post, which was done using commonmeta-ruby)</li><li>Work
1030
- towards a commonmeta v1.0 JSON Schema</li><li>Add support for bibliographies
1031
- (lists of resources) to commonmeta.</li><li>Commonmeta implementations in
1032
- additional languages, in particular Javascript/Typescript.</li></ul> ","tags":["News"],"language":"en"}]}'
1033
- recorded_at: Sun, 04 Jun 2023 13:34:34 GMT
1034
- recorded_with: VCR 6.1.0