commonmeta-ruby 3.3.2 → 3.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -1
- data/bin/commonmeta +1 -1
- data/commonmeta.gemspec +1 -0
- data/lib/commonmeta/cli.rb +10 -0
- data/lib/commonmeta/readers/json_feed_reader.rb +1 -1
- data/lib/commonmeta/utils.rb +55 -1
- data/lib/commonmeta/version.rb +1 -1
- data/lib/commonmeta.rb +1 -0
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/crossref.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/datacite.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/jalc.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/kisti.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/medra.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/not_found.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/doi_registration_agency/op.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/crossref.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/datacite_doi_http.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/cff-converter-python.yml +9 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff.yml +16 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +14 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_codemeta_metadata/maremma.yml +10 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_codemeta_metadata/metadata_reports.yml +9 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +74 -74
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +73 -73
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +70 -70
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/JaLC.yml +159 -159
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/KISTI.yml +128 -128
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/OP.yml +72 -72
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/affiliation_is_space.yml +73 -73
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/another_book.yml +109 -109
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/another_book_chapter.yml +71 -71
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/article_id_as_page_number.yml +74 -74
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/author_literal.yml +82 -82
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book.yml +71 -71
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_chapter.yml +72 -72
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +70 -70
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/book_oup.yml +69 -69
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/component.yml +91 -91
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dataset.yml +101 -102
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dataset_usda.yml +133 -133
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/date_in_future.yml +78 -78
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/dissertation.yml +100 -100
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/empty_given_name.yml +72 -72
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/invalid_date.yml +73 -73
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article.yml +72 -72
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +70 -70
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with.yml +76 -514
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +70 -70
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_article_with_funding.yml +73 -73
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/journal_issue.yml +69 -69
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/mEDRA.yml +69 -69
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/markup.yml +78 -78
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/missing_creator.yml +73 -73
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_issn.yml +72 -72
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_titles.yml +71 -70
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +716 -716
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/not_found_error.yml +63 -63
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/peer_review.yml +74 -74
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/posted_content.yml +71 -71
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/posted_content_copernicus.yml +73 -73
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/report_osti.yml +117 -117
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/vor_with_url.yml +75 -75
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/yet_another_book.yml +69 -69
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +70 -70
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_crossref_raw/journal_article.yml +10 -10
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/dissertation.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/funding_references.yml +11 -11
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datacite_metadata/subject_scheme.yml +20 -20
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_id.yml +6 -419
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_post_uuid.yml +7 -260
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_doi_prefix_for_blog/by_blog_post_uuid_specific_prefix.yml +3 -136
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/by_blog_id.yml +225 -1432
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/not_indexed_posts.yml +1380 -2112
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/unregistered_posts.yml +6 -172
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blog_post_with_non-url_id.yml +7 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/blogger_post.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_author_name_suffix.yml +8 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_doi.yml +7 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_with_organizational_author.yml +3 -3
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/ghost_post_without_doi.yml +8 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/jekyll_post.yml +8 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/substack_post_with_broken_reference.yml +90 -176
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/syldavia_gazette_post_with_references.yml +25 -25
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/upstream_post_with_references.yml +61 -61
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post.yml +8 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item_metadata/wordpress_post_with_references.yml +20 -20
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_familyName.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/name_with_affiliation_crossref.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_one_author/only_familyName_and_givenName.yml +43 -36
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/BlogPosting.yml +158 -158
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +162 -162
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +178 -180
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/harvard_dataverse.yml +226 -230
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/pangaea.yml +43 -36
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/upstream_blog.yml +94 -94
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_schema_org_metadata/zenodo.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/handle_input/unknown_DOI_prefix.yml +5 -5
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_schema_errors/is_valid.yml +13 -13
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/BlogPosting.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/Dataset.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/climate_data.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/from_schema_org.yml +159 -159
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/maremma.yml +12 -10
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/text.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/with_data_citation.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_bibtex/with_pages.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +17 -17
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_cff/ruby-cff.yml +16 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Dataset.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Journal_article.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +19 -19
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/Missing_author.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_citation/software_w/version.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +27 -27
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_doi.yml +8 -54
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_rogue_scholar_with_organizational_author.yml +3 -3
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_from_upstream_blog.yml +10 -53
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/json_feed_item_with_references.yml +62 -62
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/posted_content.yml +15 -15
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +29 -29
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_crossref/schema_org_from_upstream_blog.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/Another_dataset.yml +28 -28
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/BlogPosting.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/BlogPosting_schema_org.yml +158 -158
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/Dataset.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/container_title.yml +11 -11
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/interactive_resource_without_dates.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/journal_article.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/keywords_subject_scheme.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/maremma.yml +9 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/missing_creator.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/multiple_abstracts.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/organization_author.yml +19 -19
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/software.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/software_w/version.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/with_only_first_page.yml +13 -13
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csl/with_pages.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/climate_data.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/maremma.yml +10 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/text.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/with_data_citation.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_csv/with_pages.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/dissertation.yml +17 -17
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/from_schema_org.yml +158 -158
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/journal_article.yml +18 -18
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/maremma.yml +10 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/with_ORCID_ID.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_datacite/with_data_citation.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/book_chapter.yml +15 -13
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +158 -158
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/maremma.yml +12 -10
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_jats_xml/with_editor.yml +13 -13
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/BlogPosting.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +159 -159
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/Dataset.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/alternate_name.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/journal_article.yml +8 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/maremma.yml +9 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_ris/with_pages.yml +7 -7
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Funding.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +17 -17
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +33 -33
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/data_catalog.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/geo_location_box.yml +12 -12
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/journal_article.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +10 -8
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/series_information.yml +9 -9
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/subject_scheme.yml +11 -11
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +11 -11
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/BlogPosting.yml +4 -4
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/Dataset.yml +6 -6
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/journal_article.yml +14 -14
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_turtle/with_pages.yml +12 -12
- data/spec/readers/cff_reader_spec.rb +6 -6
- data/spec/readers/crossref_reader_spec.rb +3 -3
- data/spec/readers/crossref_xml_reader_spec.rb +7 -7
- data/spec/readers/json_feed_reader_spec.rb +13 -13
- data/spec/readers/schema_org_reader_spec.rb +2 -3
- data/spec/spec_helper.rb +1 -0
- data/spec/utils_spec.rb +1 -1
- data/spec/writers/cff_writer_spec.rb +3 -3
- data/spec/writers/ris_writer_spec.rb +2 -2
- data/spec/writers/schema_org_writer_spec.rb +1 -1
- metadata +21 -423
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/default.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_bibtex.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_crossref_xml.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_datacite.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref/to_schema_org.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/default.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_bibtex.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_crossref_xml.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_datacite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_file/crossref_xml/to_schema_org.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/default.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_bibtex.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_citation.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_crossref_xml.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_datacite.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_jats.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/crossref/to_schema_org.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/default.yml +0 -172
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_bibtex.yml +0 -172
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_citation.yml +0 -172
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_datacite.yml +0 -172
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_jats.yml +0 -172
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/datacite/to_schema_org.yml +0 -172
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/default.yml +0 -1098
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_datacite.yml +0 -1098
- data/spec/fixtures/vcr_cassettes/Briard_CLI/convert_from_id/schema_org/to_schema_org.yml +0 -1100
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/crossref.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/datacite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/jalc.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/kisti.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/medra.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_CLI/find_from_format_by_id/op.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/author.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/no_author.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/single_author.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/authors_as_string/with_organization.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/crossref.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/datacite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/jalc.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/kisti.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/medra.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/not_found.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/doi_registration_agency/op.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/datacite_doi_http.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/hsh_to_fos_no_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_for_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/fos/name_to_fos_no_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org/with_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/with_affiliation.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/from_schema_org_creators/without_affiliation.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/cff-converter-python.yml +0 -200
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff.yml +0 -154
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_cff_metadata/ruby-cff_repository_url.yml +0 -154
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_codemeta_metadata/metadata_reports.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +0 -337
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +0 -347
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +0 -359
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/JaLC.yml +0 -384
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/KISTI.yml +0 -330
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/OP.yml +0 -969
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/affiliation_is_space.yml +0 -358
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book.yml +0 -312
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/another_book_chapter.yml +0 -465
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/article_id_as_page_number.yml +0 -276
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/author_literal.yml +0 -492
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book.yml +0 -523
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter.yml +0 -377
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +0 -336
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/book_oup.yml +0 -289
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/component.yml +0 -289
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dataset_usda.yml +0 -341
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/date_in_future.yml +0 -570
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/dissertation.yml +0 -301
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/empty_given_name.yml +0 -303
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/invalid_date.yml +0 -307
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article.yml +0 -461
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +0 -276
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with.yml +0 -470
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +0 -519
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_article_with_funding.yml +0 -456
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/journal_issue.yml +0 -270
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/mEDRA.yml +0 -310
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/markup.yml +0 -329
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/missing_creator.yml +0 -307
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_issn.yml +0 -393
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles.yml +0 -265
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +0 -860
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/not_found_error.yml +0 -209
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/peer_review.yml +0 -287
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content.yml +0 -326
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/posted_content_copernicus.yml +0 -297
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/report_osti.yml +0 -315
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/vor_with_url.yml +0 -451
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book.yml +0 -816
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +0 -324
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_crossref_raw/journal_article.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/dissertation.yml +0 -152
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/funding_references.yml +0 -175
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datacite_metadata/subject_scheme.yml +0 -328
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date/publication_date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year-month.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_date_parts/year.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year-month.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_from_parts/year.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year-month.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_date_parts/year.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/future.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/invalid.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/nil.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/past.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_datetime_from_time/present.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_familyName.yml +0 -133
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +0 -153
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/is_organization.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/name_with_affiliation_crossref.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_one_author/only_familyName_and_givenName.yml +0 -468
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/get_schema_org_metadata_front_matter/BlogPosting.yml +0 -534
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/harvard_dataverse.yml +0 -1838
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/pangaea.yml +0 -468
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/upstream_blog.yml +0 -885
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_schema_org_metadata/zenodo.yml +0 -583
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/only_title.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_and_pages.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_and_pages.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/get_series_information/title_volume_issue_and_pages.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_cff_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_as_codemeta_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_cff_file.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/github/github_from_url_file.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/handle_input/unknown_DOI_prefix.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_comma.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_family_name.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_id.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_known_given_name.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_no_info.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_orcid_id.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/is_personal_name_/has_type_organization.yml +0 -164
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/json_schema_errors/is_valid.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/not_found.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/doi_as_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/filename.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/ftp.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/invalid_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_options.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/sandbox_via_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_id/url_with_utf-8.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_ids/url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_array.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_empty_array.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_hash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_issn/from_string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/uri.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/array_of_strings.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/first.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/hash_with_array_value.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/nil.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/parse_attributes/string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_anothe_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/decode_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/random_doi/encode_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/onlies_keep_specific_tags.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/sanitize/removes_a_tags.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_not_found.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/hsh_to_spdx_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_exists.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/spdx/name_to_spdx_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org/with_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/to_schema_org_identifiers/with_identifiers.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_with_spaces.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_wrong_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid/validate_orcid_www.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/DOI.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/ISSN.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/URL.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/validate_url/string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/BlogPosting.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/Dataset.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +0 -186
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/climate_data.yml +0 -74
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/from_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +0 -149
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/text.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_data_citation.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_bibtex/with_pages.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/Collection_of_Jupyter_notebooks.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_Zenodo.yml +0 -150
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/SoftwareSourceCode_also_Zenodo.yml +0 -93
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_cff/ruby-cff.yml +0 -154
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Dataset.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +0 -299
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/Missing_author.yml +0 -199
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_citation/software_w/version.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +0 -76
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +0 -76
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/another_schema_org_from_front-matter.yml +0 -541
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/journal_article_from_datacite.yml +0 -85
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/posted_content.yml +0 -283
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_another_science_blog.yml +0 -123
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_front_matter.yml +0 -477
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_crossref/schema_org_from_upstream_blog.yml +0 -1025
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/Another_dataset.yml +0 -110
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/BlogPosting.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/BlogPosting_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/Dataset.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/container_title.yml +0 -153
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/interactive_resource_without_dates.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/journal_article.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/keywords_subject_scheme.yml +0 -149
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/missing_creator.yml +0 -199
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/multiple_abstracts.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/organization_author.yml +0 -314
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/software.yml +0 -90
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/software_w/version.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/with_only_first_page.yml +0 -333
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csl/with_pages.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/climate_data.yml +0 -74
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/text.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_data_citation.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_csv/with_pages.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/from_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/with_ORCID_ID.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite/with_data_citation.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/from_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/book_chapter.yml +0 -163
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/from_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_jats_xml/with_editor.yml +0 -355
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/journal_article.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_rdf_xml/with_pages.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/Dataset.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/alternate_name.yml +0 -138
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/journal_article.yml +0 -115
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +0 -149
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_ris/with_pages.yml +0 -112
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Another_Schema_org_JSON.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding.yml +0 -192
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +0 -150
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +0 -98
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +0 -160
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +0 -153
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +0 -131
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/data_catalog.yml +0 -136
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/geo_location_box.yml +0 -181
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +0 -127
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/journal_article.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/series_information.yml +0 -174
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme.yml +0 -199
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +0 -201
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/Dataset.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/journal_article.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Briard_Metadata/write_metadata_as_turtle/with_pages.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_for_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/hsh_to_fos_no_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_for_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/fos/name_to_fos_no_match.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/from_schema_org/with_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date/publication_date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/year-month.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_date_parts/year.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/year-month.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_from_parts/year.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/date.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/year-month.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_date_parts/year.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/future.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/invalid.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/nil.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/past.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_datetime_from_time/present.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/all_posts.yml +0 -3602
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/behind_the_science.yml +0 -1176
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language.yml +0 -360
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/citation_style_language_blog.yml +0 -360
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/front-matter_blog.yml +0 -1034
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream.yml +0 -2438
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed/upstream_blog.yml +0 -2438
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_json_feed_item/by_uuid.yml +0 -136
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/license.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_link/url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/only_title.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_and_pages.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_volume_and_pages.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/get_series_information/title_volume_issue_and_pages.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_as_cff_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_as_codemeta_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_cff_file.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/github/github_from_url_file.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/json_feed_unregistered_url/all_posts.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/not_found.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/doi_as_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/filename.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/ftp.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/invalid_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/sandbox_via_options.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/sandbox_via_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_id/url_with_utf-8.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_array.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_empty_array.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_hash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_issn/from_string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/uri.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/with_trailing_slash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/array.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/array_of_strings.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/first.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/hash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/hash_with_array_value.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/nil.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/parse_attributes/string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_anothe_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_another_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/decode_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_doi/encode_doi.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_id/decode_another_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_id/decode_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/random_id/encode_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/sanitize/onlies_keep_specific_tags.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/sanitize/removes_a_tags.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_not_found.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/hsh_to_spdx_url.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/name_to_spdx_exists.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/spdx/name_to_spdx_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/to_schema_org/with_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/to_schema_org_identifiers/with_identifiers.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_sandbox.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_with_spaces.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_wrong_id.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid/validate_orcid_www.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/DOI.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/ISSN.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/URL.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/validate_url/string.yml +0 -221
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +0 -81
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +0 -530
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/journal_article.yml +0 -247
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/maremma.yml +0 -86
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_rdf_xml/with_pages.yml +0 -228
- data/spec/fixtures/vcr_cassettes/Commonmeta_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +0 -153
- 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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fGRvZyUyMGZvb2R8ZW58MHx8fHwxNjgxNzQyOTYy&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fG9wZW4lMjBmb3IlMjBidXNpbmVzc3xlbnwwfHx8fDE2ODA1OTI3NTU&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
146
|
-
<p><img src=\"https://images.unsplash.com/photo-1575663620136-5ebbfcc2c597?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDR8fG9wZW4lMjBmb3IlMjBidXNpbmVzc3xlbnwwfHx8fDE2ODA1OTI3NTU&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
507
|
-
<p><img src=\"https://images.unsplash.com/photo-1585838017777-5003198884b5?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMyfHxicm9rZW58ZW58MHx8fHwxNjc0NjUyMTEy&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMzfHxjYXRhbG9nfGVufDB8fHx8MTY4MDEyMTQ2MQ&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
582
|
-
<p><img src=\"https://images.unsplash.com/photo-1662582632158-7f0f6e9a617b?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDMzfHxjYXRhbG9nfGVufDB8fHx8MTY4MDEyMTQ2MQ&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGFyY2hpdmV8ZW58MHx8fHwxNjczODg2NDI2&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
612
|
-
<p><img src=\"https://images.unsplash.com/photo-1597092451116-27787c07901d?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDJ8fGFyY2hpdmV8ZW58MHx8fHwxNjczODg2NDI2&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE2fHxqb3VybmFsfGVufDB8fHx8MTY3NTAxMzMwNA&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
665
|
-
<p><img src=\"https://images.unsplash.com/photo-1521134976835-9963f2185519?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE2fHxqb3VybmFsfGVufDB8fHx8MTY3NTAxMzMwNA&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQzfHxmZWVkfGVufDB8fHx8MTY3OTQ3NDc2NQ&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
776
|
-
<p><img src=\"https://images.unsplash.com/photo-1611864581049-aca018410b97?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDQzfHxmZWVkfGVufDB8fHx8MTY3OTQ3NDc2NQ&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGhhcHB5JTIwbmV3JTIweWVhcnxlbnwwfHx8fDE2NzI2NTY4MzQ&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
850
|
-
<p><img src=\"https://images.unsplash.com/photo-1577046823799-58b2d217d508?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGhhcHB5JTIwbmV3JTIweWVhcnxlbnwwfHx8fDE2NzI2NTY4MzQ&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
877
|
-
<p><img src=\"https://images.unsplash.com/photo-1584631277142-0ca0cfc76aec?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDZ8fGd1aWRlbGluZXxlbnwwfHx8fDE2NzU2ODM0NDc&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
941
|
-
<p><img src=\"https://images.unsplash.com/photo-1523351964962-1ee5847816c3?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=M3wxMTc3M3wwfDF8c2VhcmNofDUzfHxjb250YWluZXJ8ZW58MHx8fHwxNjg0MjMyMTQ0fDA&ixlib=rb-4.0.3&q=80&w=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=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUwfHxiaWtlJTIwbSVDMyVCQ25zdGVyfGVufDB8fHx8MTY3OTMyMTU4MA&ixlib=rb-4.0.3&q=80&w=2000","content_html":"
|
|
1008
|
-
<p><img src=\"https://images.unsplash.com/photo-1676284572206-2501ff5c6956?crop=entropy&cs=tinysrgb&fit=max&fm=jpg&ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUwfHxiaWtlJTIwbSVDMyVCQ25zdGVyfGVufDB8fHx8MTY3OTMyMTU4MA&ixlib=rb-4.0.3&q=80&w=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
|