bolognese 2.3.2 → 2.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +1 -1
- data/.github/workflows/release.yml +2 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +196 -164
- data/README.md +1 -1
- data/bolognese.gemspec +30 -37
- data/lib/bolognese/author_utils.rb +1 -4
- data/lib/bolognese/citeproc_extensions.rb +48 -0
- data/lib/bolognese/datacite_utils.rb +17 -7
- data/lib/bolognese/metadata.rb +8 -5
- data/lib/bolognese/metadata_utils.rb +18 -4
- data/lib/bolognese/readers/crossref_reader.rb +17 -5
- data/lib/bolognese/readers/datacite_reader.rb +11 -34
- data/lib/bolognese/utils.rb +79 -12
- data/lib/bolognese/version.rb +1 -1
- data/lib/bolognese/writers/csv_writer.rb +3 -5
- data/lib/bolognese.rb +1 -4
- data/resources/kernel-4/include/datacite-contributorType-v4.xsd +1 -1
- data/resources/kernel-4/include/datacite-dateType-v4.xsd +1 -1
- data/resources/kernel-4/include/datacite-relatedIdentifierType-v4.xsd +3 -1
- data/resources/kernel-4/include/datacite-relationType-v4.xsd +4 -2
- data/resources/kernel-4/include/datacite-resourceType-v4.xsd +4 -1
- data/resources/kernel-4/metadata.xsd +4 -1
- data/resources/kernel-4.7/include/datacite-contributorType-v4.xsd +37 -0
- data/resources/kernel-4.7/include/datacite-dateType-v4.xsd +27 -0
- data/resources/kernel-4.7/include/datacite-descriptionType-v4.xsd +19 -0
- data/resources/kernel-4.7/include/datacite-funderIdentifierType-v4.xsd +16 -0
- data/resources/kernel-4.7/include/datacite-nameType-v4.xsd +10 -0
- data/resources/kernel-4.7/include/datacite-numberType-v4.xsd +12 -0
- data/resources/kernel-4.7/include/datacite-relatedIdentifierType-v4.xsd +39 -0
- data/resources/kernel-4.7/include/datacite-relationType-v4.xsd +59 -0
- data/resources/kernel-4.7/include/datacite-resourceType-v4.xsd +52 -0
- data/resources/kernel-4.7/include/datacite-titleType-v4.xsd +14 -0
- data/resources/kernel-4.7/include/xml.xsd +286 -0
- data/resources/kernel-4.7/metadata.xsd +715 -0
- metadata +129 -734
- data/spec/array_spec.rb +0 -22
- data/spec/author_utils_spec.rb +0 -259
- data/spec/cli_spec.rb +0 -226
- data/spec/datacite_utils_spec.rb +0 -315
- data/spec/doi_utils_spec.rb +0 -314
- data/spec/find_from_format_spec.rb +0 -114
- data/spec/fixtures/aida.json +0 -82
- data/spec/fixtures/cgimp_package.json +0 -18
- data/spec/fixtures/cit_package.json +0 -19
- data/spec/fixtures/citeproc-no-author.json +0 -26
- data/spec/fixtures/citeproc-no-categories.json +0 -21
- data/spec/fixtures/citeproc.json +0 -36
- data/spec/fixtures/codemeta.json +0 -86
- data/spec/fixtures/codemeta_v2.json +0 -86
- data/spec/fixtures/crosscite.json +0 -63
- data/spec/fixtures/crossref.bib +0 -14
- data/spec/fixtures/crossref.ris +0 -15
- data/spec/fixtures/crossref.xml +0 -606
- data/spec/fixtures/crossref_schema_4.6_values.xml +0 -183
- data/spec/fixtures/datacite-empty-sizes.xml +0 -57
- data/spec/fixtures/datacite-example-ROR-nameIdentifiers.xml +0 -125
- data/spec/fixtures/datacite-example-affiliation.xml +0 -114
- data/spec/fixtures/datacite-example-ancientdates-v4.3.xml +0 -29
- data/spec/fixtures/datacite-example-complicated-tba.xml +0 -56
- data/spec/fixtures/datacite-example-complicated-v3.0.xml +0 -48
- data/spec/fixtures/datacite-example-complicated-v4.0.xml +0 -54
- data/spec/fixtures/datacite-example-complicated-v4.1.xml +0 -57
- data/spec/fixtures/datacite-example-dissertation-v4.4.xml +0 -56
- data/spec/fixtures/datacite-example-escaped-text.xml +0 -56
- data/spec/fixtures/datacite-example-full-v4.4.xml +0 -114
- data/spec/fixtures/datacite-example-full-v4.5.xml +0 -255
- data/spec/fixtures/datacite-example-full-v4.6.xml +0 -114
- data/spec/fixtures/datacite-example-geolocation-2.xml +0 -141
- data/spec/fixtures/datacite-example-geolocation.xml +0 -66
- data/spec/fixtures/datacite-example-nameIdentifier-with-schemeURI.xml +0 -94
- data/spec/fixtures/datacite-example-polygon-v4.1.xml +0 -163
- data/spec/fixtures/datacite-example-relateditems-with-attributes.xml +0 -61
- data/spec/fixtures/datacite-example-relateditems.xml +0 -61
- data/spec/fixtures/datacite-example-xs-string.xml +0 -28
- data/spec/fixtures/datacite-formats-with-xs.xml +0 -22
- data/spec/fixtures/datacite-funderIdentifier.xml +0 -98
- data/spec/fixtures/datacite-geolocation-empty.xml +0 -159
- data/spec/fixtures/datacite-geolocationpolygons-multiple.xml +0 -76
- data/spec/fixtures/datacite-metadata-sample-complicated-v2.2.xml +0 -52
- data/spec/fixtures/datacite-multiple-language.xml +0 -38
- data/spec/fixtures/datacite-multiple-rights.xml +0 -59
- data/spec/fixtures/datacite-schema-2.2.xml +0 -80
- data/spec/fixtures/datacite-seriesinformation.xml +0 -46
- data/spec/fixtures/datacite-space-in-sizes.xml +0 -52
- data/spec/fixtures/datacite-xml-lang.xml +0 -51
- data/spec/fixtures/datacite.json +0 -89
- data/spec/fixtures/datacite.xml +0 -40
- data/spec/fixtures/datacite_blank_name_identifier.xml +0 -22
- data/spec/fixtures/datacite_blank_publisher.xml +0 -18
- data/spec/fixtures/datacite_dataset.xml +0 -58
- data/spec/fixtures/datacite_journal_article.xml +0 -64
- data/spec/fixtures/datacite_malformed_creator.xml +0 -52
- data/spec/fixtures/datacite_missing_creator.xml +0 -33
- data/spec/fixtures/datacite_schema_3.xml +0 -58
- data/spec/fixtures/datacite_software.json +0 -21
- data/spec/fixtures/datacite_software_missing_comma.json +0 -18
- data/spec/fixtures/datacite_software_overlapping_keys.json +0 -18
- data/spec/fixtures/datacite_software_version.json +0 -74
- data/spec/fixtures/edam_package.json +0 -12
- data/spec/fixtures/funding_reference.xml +0 -53
- data/spec/fixtures/gtex.xml +0 -71
- data/spec/fixtures/maremma/codemeta.json +0 -36
- data/spec/fixtures/nist.xml +0 -35
- data/spec/fixtures/ns0.xml +0 -2
- data/spec/fixtures/pure.bib +0 -14
- data/spec/fixtures/pure.ris +0 -15
- data/spec/fixtures/pure.xml +0 -188
- data/spec/fixtures/ris_bug.ris +0 -9
- data/spec/fixtures/schema_4.0.xml +0 -140
- data/spec/fixtures/schema_org.json +0 -50
- data/spec/fixtures/schema_org_4.6_attributes.json +0 -108
- data/spec/fixtures/schema_org_geolocation.json +0 -82
- data/spec/fixtures/schema_org_geoshape.json +0 -550
- data/spec/fixtures/schema_org_gtex.json +0 -75
- data/spec/fixtures/schema_org_list.json +0 -12623
- data/spec/fixtures/schema_org_tdl_iodp_invalid_authors.json +0 -25
- data/spec/fixtures/schema_org_topmed.json +0 -53
- data/spec/fixtures/schema_org_type_as_array.json +0 -41
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/default.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_bibtex.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_citation.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_crossref.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_datacite.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_jats.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/crossref/to_schema_org.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/default.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_bibtex.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_citation.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_datacite_json.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_jats.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/datacite/to_schema_org.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/default.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_datacite.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/convert_from_id/schema_org/to_schema_org.yml +0 -115
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/crossref.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/datacite.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/jalc.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/kisti.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/medra.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_CLI/find_from_format_by_id/op.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/author.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/no_author.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/single_author.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/authors_as_string/with_organization.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_state.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_datacite_metadata/change_title.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_description.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_identifiers.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_name.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_license_url.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/change_state.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/validates_against_schema.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/change_metadata_as_datacite_xml/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/doi_with_protocol.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/dx_doi_org_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/force_test_resolver.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/https_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_api_url/test_resolver_http.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/doi_with_special_characters.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/not_a_doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/sandbox_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_from_url/url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/crossref.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/datacite.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/jalc.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/kisti.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/medra.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_a_valid_prefix.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/not_found.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_registration_agency/op.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/doi_with_protocol.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/dx_doi_org_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/force_stage_resolver.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/https_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/stage_resolver.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/doi_resolver/stage_resolver_http.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref.yml +0 -157
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/crossref_doi_not_url.yml +0 -157
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite.yml +0 -157
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/datacite_doi_http.yml +0 -157
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/github.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/orcid.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/schema_org.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_by_ID/unknown_DOI_registration_agency.yml +0 -157
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/bibtex.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/citeproc.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/codemeta.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crosscite.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/crossref.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/datacite_json.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/ris.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_file/schema_org.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/find_from_format_from_string/crosscite.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_match.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_for_with_schemeUri_in_hash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_match.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/hsh_to_fos_no_match.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_for_match.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_match.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/fos/name_to_fos_no_match.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org/with_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/with_affiliation.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/from_schema_org_creators/without_affiliation.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_codemeta_metadata/metadata_reports.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_ORCID_ID.yml +0 -103
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_SICI_DOI.yml +0 -102
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/DOI_with_data_citation.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/JaLC.yml +0 -137
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/KISTI.yml +0 -158
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/OP.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/affiliation_is_space.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book.yml +0 -138
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/another_book_chapter.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/article_id_as_page_number.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/author_literal.yml +0 -108
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter.yml +0 -170
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_chapter_with_RDF_for_container.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/book_oup.yml +0 -98
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/component.yml +0 -120
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset.yml +0 -130
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dataset_usda.yml +0 -143
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/date_in_future.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/dissertation.yml +0 -129
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/empty_given_name.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/invalid_date.yml +0 -101
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_original_language_title.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with.yml +0 -104
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_RDF_for_container.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_article_with_funding.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/journal_issue.yml +0 -127
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/mEDRA.yml +0 -98
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/markup.yml +0 -105
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/missing_creator.yml +0 -100
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_issn.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles.yml +0 -98
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/multiple_titles_with_missing.yml +0 -450
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/not_found_error.yml +0 -97
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/peer_review.yml +0 -103
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/posted_content_copernicus.yml +0 -102
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/report_osti.yml +0 -144
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/vor_with_url.yml +0 -102
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_crossref_metadata/yet_another_book_chapter.yml +0 -99
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_json_metadata/metadata_from_api.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/BlogPosting.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_staging_system.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_staging_system_schema_3.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_in_with_related_id_system.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/DOI_not_found.yml +0 -102
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Dataset.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_empty_awardTitle.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Funding_schema_version_4.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Referee_report_in_staging_system.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/Schema_org_type.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_only_full_name.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_scheme.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/author_with_wrong_orcid_scheme.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/cc-by_3_0_us.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/content_url.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/date.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/dissertation.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/doi_with_sign.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/empty_subject.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/even_more_subject_scheme_FOR.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_references.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/funding_schema_version_3.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/is_identical_to.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/keywords_with_attributes.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/leading_and_trailing_whitespace.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/more_subject_scheme_FOR.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_author_names_in_one_creatorsName.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/multiple_licenses.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/series-information.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datacite_metadata/subject_scheme_FOR.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date/publication_date.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/date.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year-month.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_date_parts/year.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/date.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year-month.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_from_parts/year.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/date.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year-month.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_date_parts/year.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/future.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/invalid.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/nil.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/past.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_datetime_from_time/present.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_familyName.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_Thai.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_display-order_with_ORCID.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/has_name_in_sort-order.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/hyper-authorship.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/is_organization.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_author_names_in_one_field.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/multiple_name_identifier.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_affiliation_and_country.yml +0 -114
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/name_with_role.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_one_author/only_familyName_and_givenName.yml +0 -57
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/BlogPosting_with_new_DOI.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/harvard_dataverse.yml +0 -40
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/pangaea.yml +0 -57
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_schema_org_metadata/zenodo.yml +0 -62
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/only_title.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_and_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_and_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/get_series_information/title_volume_issue_and_pages.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_as_codemeta_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/github/github_from_url_file.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/DOI_RA_not_Crossref_or_DataCite.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/handle_input/unknown_DOI_prefix.yml +0 -54
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors/none.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_contributors_Translator/supports_Translator_contributorType.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_creators/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_dates_with_Coverage/inserts_date_with_dateType_Coverage.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_descriptions/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_identifier/doi.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_language/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_person/creator_only_name.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publication_year/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_publisher/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers/related_identifier.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_CSTR/supports_CSTR_relatedIdentifierType.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_HasTranslation/supports_HasTranslation_relationType.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_identifiers_RRID/supports_RRID_relatedIdentifierType.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_related_items/insert.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Award/supports_Award_as_resourceTypeGeneral.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_resource_type_with_Project/supports_Project_as_resourceTypeGeneral.yml +0 -71
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_rights_list/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_sizes/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_subjects/insert.yml +0 -73
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_titles/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/insert_version/insert.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_comma.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_family_name.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_known_given_name.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_no_info.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_orcid_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/is_personal_name_/has_type_organization.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/missing_comma.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/nil.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/overlapping_keys.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/jsonlint/valid.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/not_found.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_cc_url/with_trailing_slash_and_to_https.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/SICI_doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_force_datacite_sandbox.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_datacite_sandbox.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_from_url_without_doi_proxy.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_too_long.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_prefix_with_string.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/doi_with_protocol.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/dx_doi_org_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/https_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/not_valid_doi_prefix.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_doi/url_with_one_slash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/doi_as_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/ftp.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/invalid_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_options.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/sandbox_via_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/string.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_id/url_with_utf-8.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_ids/url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_array.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_empty_array.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_hash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_issn/from_string.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/uri.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/normalize_url/with_trailing_slash_and_to_https.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/array_of_strings.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/first.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/hash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/nil.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/parse_attributes/string.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_only_keep_specific_tags.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/sanitize/should_remove_a_tags.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_not_found.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/hsh_to_spdx_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_exists.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/spdx/name_to_spdx_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org/with_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/to_schema_org_identifiers/with_identifiers.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_doi/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_10.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_11.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_12.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_13.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_14.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_4.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_5.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_6.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_7.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_8.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/1_7_9.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/funder_doi_without_prefix.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_funder_doi/non-funder_doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_https.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_sandbox.yml +0 -65
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_sandbox_https.yml +0 -65
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_with_spaces.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_wrong_id.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid/validate_orcid_www.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_https.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_trailing_slash.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_orcid_scheme/validate_orcid_scheme_www.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_as_url.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/doi_with_protocol.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_prefix/only_prefix.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/DOI.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/ISSN.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/URL.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/validate_url/string.yml +0 -48
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/Dataset.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/authors_with_affiliations.yml +0 -114
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/climate_data.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/from_schema_org.yml +0 -115
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/keywords_subject_scheme.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/text.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_bibtex/with_pages.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Dataset.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Journal_article_vancouver_style.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/Missing_author.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/interactive_resource_without_dates.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citation/software_w/version.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Another_dataset.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/BlogPosting_schema_org.yml +0 -115
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/Dataset.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/container_title.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/interactive_resource_without_dates.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/keywords_subject_scheme.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/missing_creator.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/multiple_abstracts.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/organization_author.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/software_w/version.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_only_first_page.yml +0 -50
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_citeproc/with_pages.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_codemeta/SoftwareSourceCode_DataCite_check_codemeta_v2.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/datacite_database_attributes.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_ORCID_ID.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crosscite/with_data_citation_schema_org.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_crossref/from_DataCite.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/climate_data.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/text.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_csv/with_pages.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_ORCID_ID.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_json/with_data_citation_schema_org.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/DOI_not_found.yml +0 -51
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Dataset_in_schema_4_0.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/Text_pass-thru_with_doi_in_options.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_ORCID_ID.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_data_citation_schema_org.yml +0 -115
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_editor.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_datacite_xml/with_version.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Dataset_in_schema_4_0.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/Text_pass-thru.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/book_chapter.yml +0 -88
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/interactive_resource_without_dates.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_ORCID_ID.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_data_citation_schema_org.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_jats_xml/with_editor.yml +0 -49
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/BlogPosting_schema_org.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_rdf_xml/with_pages.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/BlogPosting_schema_org.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/Dataset.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/alternate_name.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/keywords_with_subject_scheme.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/maremma.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_ris/with_pages.yml +0 -52
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Funding_OpenAIRE.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_Cyark.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_IsSupplementTo.yml +0 -106
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/Schema_org_JSON_isReferencedBy.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/alternate_identifiers.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/data_catalog.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/geo_location_box.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/interactive_resource_without_dates.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/maremma_schema_org_JSON.yml +0 -75
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/series_information.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_schema_org/subject_scheme_multiple_keywords.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/BlogPosting_schema_org.yml +0 -117
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/Dataset.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/journal_article.yml +0 -55
- data/spec/fixtures/vcr_cassettes/Bolognese_Metadata/write_metadata_as_turtle/with_pages.yml +0 -52
- data/spec/fixtures/vivli.xml +0 -1
- data/spec/metadata_spec.rb +0 -165
- data/spec/readers/bibtex_reader_spec.rb +0 -65
- data/spec/readers/citeproc_reader_spec.rb +0 -65
- data/spec/readers/codemeta_reader_spec.rb +0 -138
- data/spec/readers/crosscite_reader_spec.rb +0 -43
- data/spec/readers/crossref_reader_spec.rb +0 -1133
- data/spec/readers/datacite_json_reader_spec.rb +0 -82
- data/spec/readers/datacite_reader_spec.rb +0 -1853
- data/spec/readers/npm_reader_spec.rb +0 -68
- data/spec/readers/ris_reader_spec.rb +0 -78
- data/spec/readers/schema_org_reader_spec.rb +0 -371
- data/spec/spec_helper.rb +0 -95
- data/spec/utils_spec.rb +0 -666
- data/spec/writers/bibtex_writer_spec.rb +0 -195
- data/spec/writers/citation_writer_spec.rb +0 -61
- data/spec/writers/citeproc_writer_spec.rb +0 -299
- data/spec/writers/codemeta_writer_spec.rb +0 -45
- data/spec/writers/crosscite_writer_spec.rb +0 -129
- data/spec/writers/crossref_writer_spec.rb +0 -21
- data/spec/writers/csv_writer_spec.rb +0 -94
- data/spec/writers/datacite_json_writer_spec.rb +0 -112
- data/spec/writers/datacite_writer_spec.rb +0 -578
- data/spec/writers/jats_writer_spec.rb +0 -208
- data/spec/writers/rdf_xml_writer_spec.rb +0 -93
- data/spec/writers/ris_writer_spec.rb +0 -207
- data/spec/writers/schema_org_writer_spec.rb +0 -418
- data/spec/writers/turtle_writer_spec.rb +0 -102
|
@@ -69,7 +69,7 @@ module Bolognese
|
|
|
69
69
|
|
|
70
70
|
xml.contributors do
|
|
71
71
|
Array.wrap(contributors).each do |con|
|
|
72
|
-
xml.contributor("contributorType" => con["contributorType"]
|
|
72
|
+
xml.contributor("contributorType" => con["contributorType"]) do
|
|
73
73
|
insert_person(xml, con, "contributor")
|
|
74
74
|
end
|
|
75
75
|
end
|
|
@@ -128,7 +128,7 @@ module Bolognese
|
|
|
128
128
|
def insert_resource_type(xml)
|
|
129
129
|
return xml unless types.is_a?(Hash) && (types["schemaOrg"].present? || types["resourceTypeGeneral"])
|
|
130
130
|
|
|
131
|
-
xml.resourceType(types["resourceType"]
|
|
131
|
+
xml.resourceType(types["resourceType"],
|
|
132
132
|
'resourceTypeGeneral' => types["resourceTypeGeneral"] || Metadata::SO_TO_DC_TRANSLATIONS[types["schemaOrg"]] || "Other")
|
|
133
133
|
end
|
|
134
134
|
|
|
@@ -209,7 +209,9 @@ module Bolognese
|
|
|
209
209
|
attributes = {
|
|
210
210
|
'relatedIdentifierType' => related_identifier["relatedIdentifierType"],
|
|
211
211
|
'relationType' => related_identifier["relationType"],
|
|
212
|
-
'
|
|
212
|
+
'relationTypeInformation' => related_identifier["relationTypeInformation"],
|
|
213
|
+
'resourceTypeGeneral' => related_identifier["resourceTypeGeneral",
|
|
214
|
+
] }.compact
|
|
213
215
|
|
|
214
216
|
attributes.merge({ 'relatedMetadataScheme' => related_identifier["relatedMetadataSchema"],
|
|
215
217
|
'schemeURI' => related_identifier["schemeUri"],
|
|
@@ -228,6 +230,7 @@ module Bolognese
|
|
|
228
230
|
attributes = {
|
|
229
231
|
'relatedItemType' => related_item["relatedItemType"],
|
|
230
232
|
'relationType' => related_item["relationType"],
|
|
233
|
+
'relationTypeInformation' => related_item["relationTypeInformation"],
|
|
231
234
|
}.compact
|
|
232
235
|
|
|
233
236
|
xml.relatedItem(related_item["relatedItem"], attributes) do
|
|
@@ -337,7 +340,7 @@ module Bolognese
|
|
|
337
340
|
return xml unless descriptions.present? || container && container["title"].present?
|
|
338
341
|
|
|
339
342
|
xml.descriptions do
|
|
340
|
-
if container && container["title"].present?
|
|
343
|
+
if (respond_to?(:from) && !from.to_s.include?("datacite")) && container && container["title"].present?
|
|
341
344
|
issue = container["issue"].present? ? "(#{container["issue"]})" : nil
|
|
342
345
|
volume_issue = container["volume"].present? ? [container["volume"], issue].join("") : nil
|
|
343
346
|
pages = [container["firstPage"], container["lastPage"]].compact.join("-") if container["firstPage"].present?
|
|
@@ -387,9 +390,16 @@ module Bolognese
|
|
|
387
390
|
if geo_location["geoLocationPolygon"]
|
|
388
391
|
xml.geoLocationPolygon do
|
|
389
392
|
Array.wrap(geo_location["geoLocationPolygon"]).each do |polygon_point|
|
|
390
|
-
|
|
391
|
-
xml.
|
|
392
|
-
|
|
393
|
+
if polygon_point.has_key?("polygonPoint")
|
|
394
|
+
xml.polygonPoint do
|
|
395
|
+
xml.pointLatitude(polygon_point.dig("polygonPoint", "pointLatitude"))
|
|
396
|
+
xml.pointLongitude(polygon_point.dig("polygonPoint", "pointLongitude"))
|
|
397
|
+
end
|
|
398
|
+
else
|
|
399
|
+
xml.inPolygonPoint do
|
|
400
|
+
xml.pointLatitude(polygon_point.dig("inPolygonPoint", "pointLatitude"))
|
|
401
|
+
xml.pointLongitude(polygon_point.dig("inPolygonPoint", "pointLongitude"))
|
|
402
|
+
end
|
|
393
403
|
end
|
|
394
404
|
end
|
|
395
405
|
end
|
data/lib/bolognese/metadata.rb
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
# frozen_string_literal:
|
|
1
|
+
# frozen_string_literal: false
|
|
2
2
|
|
|
3
3
|
require_relative 'metadata_utils'
|
|
4
4
|
|
|
5
5
|
module Bolognese
|
|
6
6
|
class Metadata
|
|
7
7
|
include Bolognese::MetadataUtils
|
|
8
|
+
include Bolognese::Utils
|
|
8
9
|
|
|
9
10
|
attr_accessor :string, :from, :sandbox, :meta, :regenerate, :issue, :show_errors
|
|
10
11
|
attr_reader :doc, :page_start, :page_end
|
|
@@ -75,8 +76,8 @@ module Bolognese
|
|
|
75
76
|
end
|
|
76
77
|
|
|
77
78
|
# make sure input is encoded as utf8
|
|
78
|
-
|
|
79
|
-
@string =
|
|
79
|
+
string1 = string.dup.force_encoding("UTF-8") if string.present?
|
|
80
|
+
@string = string1
|
|
80
81
|
|
|
81
82
|
# input options for citation formatting
|
|
82
83
|
@style = options[:style]
|
|
@@ -119,7 +120,7 @@ module Bolognese
|
|
|
119
120
|
|
|
120
121
|
@regenerate = options[:regenerate] || read_options.present?
|
|
121
122
|
# generate name for method to call dynamically
|
|
122
|
-
opts = { string:
|
|
123
|
+
opts = { string: string1, sandbox: options[:sandbox], doi: options[:doi], id: id, ra: ra }.merge(read_options)
|
|
123
124
|
@meta = @from.present? ? send("read_" + @from, **opts) : {}
|
|
124
125
|
end
|
|
125
126
|
|
|
@@ -205,7 +206,9 @@ module Bolognese
|
|
|
205
206
|
end
|
|
206
207
|
|
|
207
208
|
def container
|
|
208
|
-
@container ||=
|
|
209
|
+
@container ||= begin
|
|
210
|
+
generate_container(types, related_items, related_identifiers, descriptions) || meta.fetch("container", nil)
|
|
211
|
+
end
|
|
209
212
|
end
|
|
210
213
|
|
|
211
214
|
def geo_locations
|
|
@@ -33,7 +33,6 @@ require_relative 'writers/turtle_writer'
|
|
|
33
33
|
|
|
34
34
|
module Bolognese
|
|
35
35
|
module MetadataUtils
|
|
36
|
-
# include BenchmarkMethods
|
|
37
36
|
include Bolognese::DoiUtils
|
|
38
37
|
include Bolognese::AuthorUtils
|
|
39
38
|
include Bolognese::DataciteUtils
|
|
@@ -140,28 +139,43 @@ module Bolognese
|
|
|
140
139
|
author = to_citeproc(creators)
|
|
141
140
|
end
|
|
142
141
|
|
|
143
|
-
if types["resourceTypeGeneral"] == "Software"
|
|
144
|
-
type = "
|
|
142
|
+
if types["resourceTypeGeneral"] == "Software"
|
|
143
|
+
type = "software"
|
|
145
144
|
else
|
|
146
145
|
type = types["citeproc"]
|
|
147
146
|
end
|
|
148
147
|
|
|
148
|
+
# Filter out contributors who are already creators, editors, or translators to avoid duplication
|
|
149
|
+
creator_names = Array.wrap(creators).map { |c| c["name"] || [c["givenName"], c["familyName"]].compact.join(" ") }.compact
|
|
150
|
+
unique_contributors = Array.wrap(contributors).reject do |c|
|
|
151
|
+
contributor_name = c["name"] || [c["givenName"], c["familyName"]].compact.join(" ")
|
|
152
|
+
creator_names.include?(contributor_name) ||
|
|
153
|
+
c["contributorType"] == "Editor" ||
|
|
154
|
+
c["contributorType"] == "Translator"
|
|
155
|
+
end
|
|
156
|
+
|
|
149
157
|
{
|
|
150
158
|
"type" => type,
|
|
151
159
|
"id" => normalize_doi(doi),
|
|
152
160
|
"categories" => Array.wrap(subjects).map { |k| parse_attributes(k, content: "subject", first: true) }.presence,
|
|
153
161
|
"language" => language,
|
|
154
162
|
"author" => author,
|
|
155
|
-
"contributor" => to_citeproc(
|
|
163
|
+
"contributor" => unique_contributors.presence ? to_citeproc(unique_contributors) : nil,
|
|
164
|
+
"editor" => contributors ? to_citeproc(contributors.select { |c| c["contributorType"] == "Editor" }) : nil,
|
|
156
165
|
"translator" => contributors ? to_citeproc(contributors.select { |c| c["contributorType"] == "Translator" }) : nil,
|
|
157
166
|
"issued" => get_date(dates, "Issued") ? get_date_parts(get_date(dates, "Issued")) : get_date_parts(publication_year.to_s),
|
|
158
167
|
"submitted" => Array.wrap(dates).find { |d| d["dateType"] == "Submitted" }.to_h.fetch("__content__", nil),
|
|
168
|
+
"available-date" => Array.wrap(dates).find { |d| d["dateType"] == "Available" }.to_h.fetch("__content__", nil),
|
|
159
169
|
"abstract" => parse_attributes(descriptions, content: "description", first: true),
|
|
160
170
|
"container-title" => container_title,
|
|
161
171
|
"DOI" => doi,
|
|
162
172
|
"volume" => container.to_h["volume"],
|
|
163
173
|
"issue" => container.to_h["issue"],
|
|
174
|
+
"number" => container.to_h["number"],
|
|
175
|
+
"chapter-number" => container.to_h["chapterNumber"],
|
|
176
|
+
"edition" => container.to_h["edition"],
|
|
164
177
|
"page" => page,
|
|
178
|
+
"page-first" => container.to_h["firstPage"],
|
|
165
179
|
"publisher" => publisher["name"],
|
|
166
180
|
"title" => parse_attributes(titles, content: "title", first: true),
|
|
167
181
|
"URL" => url,
|
|
@@ -144,7 +144,7 @@ module Bolognese
|
|
|
144
144
|
|
|
145
145
|
state = meta.present? || read_options.present? ? "findable" : "not_found"
|
|
146
146
|
|
|
147
|
-
related_identifiers = Array.wrap(crossref_is_part_of(journal_metadata)) + Array.wrap(crossref_references(bibliographic_metadata)) + Array.wrap(crossref_has_translation(program_metadata)) + Array.wrap(crossref_is_translation_of(program_metadata))
|
|
147
|
+
related_identifiers = Array.wrap(crossref_is_part_of(journal_metadata)) + Array.wrap(crossref_references(bibliographic_metadata)) + Array.wrap(crossref_has_translation(program_metadata)) + Array.wrap(crossref_is_translation_of(program_metadata)) + Array.wrap(crossref_is_related_material(program_metadata))
|
|
148
148
|
|
|
149
149
|
container = if journal_metadata.present?
|
|
150
150
|
issn = normalize_issn(journal_metadata.to_h.fetch("issn", nil))
|
|
@@ -282,18 +282,17 @@ module Bolognese
|
|
|
282
282
|
end
|
|
283
283
|
end.compact
|
|
284
284
|
|
|
285
|
-
contributor_type = CR_TO_DC_CONTRIBUTOR_TYPES[a["contributor_role"]]
|
|
286
|
-
|
|
287
285
|
{ "nameType" => "Personal",
|
|
288
286
|
"nameIdentifiers" => name_identifiers,
|
|
289
287
|
"name" => [family_name, given_name].compact.join(", "),
|
|
290
288
|
"givenName" => given_name,
|
|
291
289
|
"familyName" => family_name,
|
|
292
290
|
"affiliation" => affiliation.presence,
|
|
293
|
-
"contributorType" =>
|
|
291
|
+
"contributorType" => contributor_role == 'author' ? nil : CR_TO_DC_CONTRIBUTOR_TYPES[a["contributor_role"]] }.compact
|
|
294
292
|
else
|
|
295
293
|
{ "nameType" => "Organizational",
|
|
296
|
-
"name" => a["name"] || a["__content__"]
|
|
294
|
+
"name" => a["name"] || a["__content__"],
|
|
295
|
+
"contributorType" => contributor_role == 'author' ? nil : CR_TO_DC_CONTRIBUTOR_TYPES[a["contributor_role"]] }.compact
|
|
297
296
|
end
|
|
298
297
|
end
|
|
299
298
|
end
|
|
@@ -396,6 +395,19 @@ module Bolognese
|
|
|
396
395
|
end
|
|
397
396
|
end.compact.unwrap
|
|
398
397
|
end
|
|
398
|
+
|
|
399
|
+
def crossref_is_related_material(program_metadata)
|
|
400
|
+
refs = program_metadata.dig("related_item") if program_metadata.is_a?(Hash)
|
|
401
|
+
Array.wrap(refs).select { |a| a.dig("interwork_relation", "relationship_type") == "isRelatedMaterial" }.map do |c|
|
|
402
|
+
if c.dig("inter_work_relation", "identifier_type") == "doi"
|
|
403
|
+
{ "relatedIdentifier" => parse_attributes(c["inter_work_relation"]).downcase,
|
|
404
|
+
"relationType" => "Other",
|
|
405
|
+
"relatedIdentifierType" => "DOI" }.compact
|
|
406
|
+
else
|
|
407
|
+
nil
|
|
408
|
+
end
|
|
409
|
+
end.compact.unwrap
|
|
410
|
+
end
|
|
399
411
|
end
|
|
400
412
|
end
|
|
401
413
|
end
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'base64'
|
|
4
|
+
|
|
3
5
|
module Bolognese
|
|
4
6
|
module Readers
|
|
5
7
|
module DataciteReader
|
|
@@ -206,7 +208,8 @@ module Bolognese
|
|
|
206
208
|
"resourceTypeGeneral" => ri["resourceTypeGeneral"],
|
|
207
209
|
"relatedMetadataScheme" => ri["relatedMetadataScheme"],
|
|
208
210
|
"schemeUri" => ri["schemeURI"],
|
|
209
|
-
"schemeType" => ri["schemeType"]
|
|
211
|
+
"schemeType" => ri["schemeType"],
|
|
212
|
+
"relationTypeInformation" => ri["relationTypeInformation"]
|
|
210
213
|
}.compact
|
|
211
214
|
end
|
|
212
215
|
|
|
@@ -226,7 +229,7 @@ module Bolognese
|
|
|
226
229
|
"relatedItemIdentifierType" => rii["relatedItemIdentifierType"],
|
|
227
230
|
"relatedMetadataScheme" => rii["relatedMetadataScheme"],
|
|
228
231
|
"schemeURI" => rii["schemeURI"],
|
|
229
|
-
"schemeType" => rii["schemeType"]
|
|
232
|
+
"schemeType" => rii["schemeType"],
|
|
230
233
|
}.compact
|
|
231
234
|
end
|
|
232
235
|
|
|
@@ -241,6 +244,7 @@ module Bolognese
|
|
|
241
244
|
|
|
242
245
|
a = {
|
|
243
246
|
"relationType" => ri["relationType"],
|
|
247
|
+
"relationTypeInformation" => ri["relationTypeInformation"],
|
|
244
248
|
"relatedItemType" => ri["relatedItemType"],
|
|
245
249
|
"relatedItemIdentifier" => relatedItemIdentifier,
|
|
246
250
|
"creators" => get_authors(Array.wrap(ri.dig("creators", "creator"))),
|
|
@@ -262,17 +266,13 @@ module Bolognese
|
|
|
262
266
|
if !gl.is_a?(Hash) || gl["geoLocationPoint"].is_a?(String) || gl["geoLocationBox"].is_a?(String) || gl["geoLocationPolygon"].is_a?(String)
|
|
263
267
|
nil
|
|
264
268
|
else
|
|
265
|
-
|
|
266
|
-
# Handle scenario where multiple geoLocationPolygons are allowed within a single geoLocation
|
|
267
|
-
# we want to return an array if it's already an array (i.e. multiple geoLocationPolygons)
|
|
268
|
-
# vs if it's singular just return the object
|
|
269
|
-
# This is for backwards compatability to allow both scenarios.
|
|
269
|
+
## Array of geoLocationPolygons within a geoLocation is Unsupported in JSON.
|
|
270
270
|
if gl.dig("geoLocationPolygon").kind_of?(Array)
|
|
271
|
-
geoLocationPolygon =
|
|
272
|
-
Array.wrap(glp.dig("polygonPoint")).map { |glpp| { "polygonPoint" => glpp } }.compact.presence
|
|
273
|
-
end.compact.presence
|
|
271
|
+
geoLocationPolygon = nil
|
|
274
272
|
else
|
|
275
|
-
geoLocationPolygon = Array.wrap(gl.dig("geoLocationPolygon", "polygonPoint")).map { |glp| { "polygonPoint" => glp } }
|
|
273
|
+
geoLocationPolygon = Array.wrap(gl.dig("geoLocationPolygon", "polygonPoint")).map { |glp| { "polygonPoint" => glp } }
|
|
274
|
+
.push(Array.wrap(gl.dig("geoLocationPolygon", "inPolygonPoint")).map { |glp| { "inPolygonPoint" => glp } }.first)
|
|
275
|
+
.compact.presence
|
|
276
276
|
end
|
|
277
277
|
|
|
278
278
|
{
|
|
@@ -302,7 +302,6 @@ module Bolognese
|
|
|
302
302
|
"titles" => titles,
|
|
303
303
|
"creators" => get_authors(Array.wrap(meta.dig("creators", "creator"))),
|
|
304
304
|
"contributors" => get_authors(Array.wrap(meta.dig("contributors", "contributor"))),
|
|
305
|
-
"container" => set_container(meta),
|
|
306
305
|
"publisher" => publisher,
|
|
307
306
|
"agency" => "datacite",
|
|
308
307
|
"funding_references" => funding_references,
|
|
@@ -323,28 +322,6 @@ module Bolognese
|
|
|
323
322
|
}.merge(read_options)
|
|
324
323
|
end
|
|
325
324
|
|
|
326
|
-
def set_container(meta)
|
|
327
|
-
series_information = Array.wrap(meta.dig("descriptions", "description")).find { |r| r["descriptionType"] == "SeriesInformation" }.to_h.fetch("__content__", nil)
|
|
328
|
-
si = get_series_information(series_information)
|
|
329
|
-
|
|
330
|
-
is_part_of = Array.wrap(meta.dig("relatedIdentifiers", "relatedIdentifier")).find { |ri| ri["relationType"] == "IsPartOf" }.to_h
|
|
331
|
-
|
|
332
|
-
if si["title"].present? || is_part_of.present?
|
|
333
|
-
{
|
|
334
|
-
"type" => meta.dig("resourceType", "resourceTypeGeneral") == "Dataset" ? "DataRepository" : "Series",
|
|
335
|
-
"identifier" => is_part_of["__content__"],
|
|
336
|
-
"identifierType" => is_part_of["relatedIdentifierType"],
|
|
337
|
-
"title" => si["title"],
|
|
338
|
-
"volume" => si["volume"],
|
|
339
|
-
"issue" => si["issue"],
|
|
340
|
-
"firstPage" => si["firstPage"],
|
|
341
|
-
"lastPage" => si["lastPage"]
|
|
342
|
-
}.compact
|
|
343
|
-
else
|
|
344
|
-
{}
|
|
345
|
-
end
|
|
346
|
-
end
|
|
347
|
-
|
|
348
325
|
def get_titles(meta)
|
|
349
326
|
titles = Array.wrap(meta.dig("titles", "title")).map do |r|
|
|
350
327
|
if r.blank?
|
data/lib/bolognese/utils.rb
CHANGED
|
@@ -32,7 +32,7 @@ module Bolognese
|
|
|
32
32
|
"https://creativecommons.org/licenses/by-nd/2.0" => "https://creativecommons.org/licenses/by-nd/2.0/legalcode",
|
|
33
33
|
"https://creativecommons.org/licenses/by-nd/2.5" => "https://creativecommons.org/licenses/by-nd/2.5/legalcode",
|
|
34
34
|
"https://creativecommons.org/licenses/by-nd/3.0" => "https://creativecommons.org/licenses/by-nd/3.0/legalcode",
|
|
35
|
-
"https://creativecommons.org/licenses/by-nd/4.0" => "https://creativecommons.org/licenses/by-nd/
|
|
35
|
+
"https://creativecommons.org/licenses/by-nd/4.0" => "https://creativecommons.org/licenses/by-nd/4.0/legalcode",
|
|
36
36
|
"https://creativecommons.org/licenses/by-sa/1.0" => "https://creativecommons.org/licenses/by-sa/1.0/legalcode",
|
|
37
37
|
"https://creativecommons.org/licenses/by-sa/2.0" => "https://creativecommons.org/licenses/by-sa/2.0/legalcode",
|
|
38
38
|
"https://creativecommons.org/licenses/by-sa/2.5" => "https://creativecommons.org/licenses/by-sa/2.5/legalcode",
|
|
@@ -67,7 +67,9 @@ module Bolognese
|
|
|
67
67
|
"OutputManagementPlan" => nil,
|
|
68
68
|
"PeerReview" => "Review",
|
|
69
69
|
"PhysicalObject" => nil,
|
|
70
|
+
"Poster" => "Poster",
|
|
70
71
|
"Preprint" => nil,
|
|
72
|
+
"Presentation" => "PresentationDigitalDocument",
|
|
71
73
|
"Report" => "Report",
|
|
72
74
|
"Service" => "Service",
|
|
73
75
|
"Software" => "SoftwareSourceCode",
|
|
@@ -103,7 +105,9 @@ module Bolognese
|
|
|
103
105
|
"OutputManagementPlan" => nil,
|
|
104
106
|
"PeerReview" => "review",
|
|
105
107
|
"PhysicalObject" => nil,
|
|
108
|
+
"Poster" => "document",
|
|
106
109
|
"Preprint" => nil,
|
|
110
|
+
"Presentation" => "presentation",
|
|
107
111
|
"Report" => "report",
|
|
108
112
|
"Service" => nil,
|
|
109
113
|
"Sound" => "song",
|
|
@@ -280,6 +284,8 @@ module Bolognese
|
|
|
280
284
|
"Event" => "Event",
|
|
281
285
|
"ImageObject" => "Image",
|
|
282
286
|
"Movie" => "Audiovisual",
|
|
287
|
+
"Poster" => "Poster",
|
|
288
|
+
"PresentationDigitalDocument" => "Presentation",
|
|
283
289
|
"PublicationIssue" => "Text",
|
|
284
290
|
"Report" => "Report",
|
|
285
291
|
"ScholarlyArticle" => "Text",
|
|
@@ -326,6 +332,8 @@ module Bolognese
|
|
|
326
332
|
"Event" => nil,
|
|
327
333
|
"ImageObject" => "graphic",
|
|
328
334
|
"Movie" => "motion_picture",
|
|
335
|
+
"Poster" => "document",
|
|
336
|
+
"PresentationDigitalDocument" => "presentation",
|
|
329
337
|
"PublicationIssue" => nil,
|
|
330
338
|
"Report" => "report",
|
|
331
339
|
"ScholarlyArticle" => "article-journal",
|
|
@@ -348,8 +356,10 @@ module Bolognese
|
|
|
348
356
|
"Event" => nil,
|
|
349
357
|
"ImageObject" => "FIGURE",
|
|
350
358
|
"Movie" => "MPCT",
|
|
351
|
-
"
|
|
359
|
+
"Poster" => "GEN",
|
|
360
|
+
"PresentationDigitalDocument" => "SLIDE",
|
|
352
361
|
"PublicationIssue" => nil,
|
|
362
|
+
"Report" => "RPRT",
|
|
353
363
|
"ScholarlyArticle" => "JOUR",
|
|
354
364
|
"Service" => nil,
|
|
355
365
|
"SoftwareSourceCode" => "COMP",
|
|
@@ -406,7 +416,9 @@ module Bolognese
|
|
|
406
416
|
"OutputManagementPlan" => nil,
|
|
407
417
|
"PeerReview" => nil,
|
|
408
418
|
"PhysicalObject" => nil,
|
|
419
|
+
"Poster" => "GEN",
|
|
409
420
|
"Preprint" => nil,
|
|
421
|
+
"Presentation" => "SLIDE",
|
|
410
422
|
"Report" => "RRPT",
|
|
411
423
|
"Service" => nil,
|
|
412
424
|
"Software" => "COMP",
|
|
@@ -419,7 +431,7 @@ module Bolognese
|
|
|
419
431
|
|
|
420
432
|
RIS_TO_DC_TRANSLATIONS = {
|
|
421
433
|
"BLOG" => "Text",
|
|
422
|
-
"GEN" => "
|
|
434
|
+
"GEN" => "Poster",
|
|
423
435
|
"CTLG" => "Collection",
|
|
424
436
|
"DATA" => "Dataset",
|
|
425
437
|
"FIGURE" => "Image",
|
|
@@ -428,7 +440,8 @@ module Bolognese
|
|
|
428
440
|
"JOUR" => "JournalArticle",
|
|
429
441
|
"COMP" => "Software",
|
|
430
442
|
"VIDEO" => "Audiovisual",
|
|
431
|
-
"ELEC" => "Text"
|
|
443
|
+
"ELEC" => "Text",
|
|
444
|
+
"SLIDE" => "Presentation"
|
|
432
445
|
}
|
|
433
446
|
|
|
434
447
|
BIB_TO_DC_TRANSLATIONS = {
|
|
@@ -452,7 +465,9 @@ module Bolognese
|
|
|
452
465
|
"motion_picture" => "Audiovisual",
|
|
453
466
|
"article-journal" => "JournalArticle",
|
|
454
467
|
"broadcast" => "Audiovisual",
|
|
455
|
-
"webpage" => "Text"
|
|
468
|
+
"webpage" => "Text",
|
|
469
|
+
"document" => "Poster",
|
|
470
|
+
"presentation" => "Presentation"
|
|
456
471
|
}
|
|
457
472
|
|
|
458
473
|
SO_TO_BIB_TRANSLATIONS = {
|
|
@@ -468,6 +483,8 @@ module Bolognese
|
|
|
468
483
|
"Event" => "misc",
|
|
469
484
|
"ImageObject" => "misc",
|
|
470
485
|
"Movie" => "misc",
|
|
486
|
+
"Poster" => "misc",
|
|
487
|
+
"PresentationDigitalDocument" => "misc",
|
|
471
488
|
"PublicationIssue" => "misc",
|
|
472
489
|
"ScholarlyArticle" => "article",
|
|
473
490
|
"Service" => "misc",
|
|
@@ -651,7 +668,7 @@ module Bolognese
|
|
|
651
668
|
return nil unless uri && uri.host && %w(http https).include?(uri.scheme)
|
|
652
669
|
|
|
653
670
|
# clean up URL
|
|
654
|
-
|
|
671
|
+
normalize_uri_with_path_cleanup(uri)
|
|
655
672
|
rescue Addressable::URI::InvalidURIError
|
|
656
673
|
nil
|
|
657
674
|
end
|
|
@@ -671,9 +688,7 @@ module Bolognese
|
|
|
671
688
|
uri.scheme = "https" if options[:https]
|
|
672
689
|
|
|
673
690
|
# clean up URL
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
uri.to_s
|
|
691
|
+
normalize_uri_with_path_cleanup(uri)
|
|
677
692
|
rescue Addressable::URI::InvalidURIError
|
|
678
693
|
nil
|
|
679
694
|
end
|
|
@@ -932,8 +947,10 @@ module Bolognese
|
|
|
932
947
|
"address" => gl["geoLocationPlace"],
|
|
933
948
|
"polygon" => Array.wrap(gl.dig("geoLocationPolygon")).map do |glp|
|
|
934
949
|
Array.wrap(glp).map do |glpp|
|
|
935
|
-
|
|
936
|
-
|
|
950
|
+
if glpp.dig("polygonPoint")
|
|
951
|
+
[glpp.dig("polygonPoint", "pointLongitude"), glpp.dig("polygonPoint", "pointLatitude")].compact
|
|
952
|
+
end
|
|
953
|
+
end.compact.presence
|
|
937
954
|
end.compact.presence,
|
|
938
955
|
}
|
|
939
956
|
}
|
|
@@ -1430,7 +1447,57 @@ module Bolognese
|
|
|
1430
1447
|
|
|
1431
1448
|
def abstract_description
|
|
1432
1449
|
# Fetch the first description with descriptionType "Abstract"
|
|
1433
|
-
descriptions&.find { |d| d["descriptionType"] == "Abstract" }
|
|
1450
|
+
Array.wrap(descriptions)&.find { |d| d["descriptionType"] == "Abstract" }
|
|
1451
|
+
end
|
|
1452
|
+
|
|
1453
|
+
def generate_container(types, related_items, related_identifiers, descriptions)
|
|
1454
|
+
container_type = (types.respond_to?(:dig) && types&.dig("resourceTypeGeneral")) == "Dataset" ? "DataRepository" : "Series"
|
|
1455
|
+
|
|
1456
|
+
# relatedItem container
|
|
1457
|
+
related_item = Array.wrap(related_items).find { |ri| ri["relationType"] == "IsPublishedIn" }.to_h
|
|
1458
|
+
|
|
1459
|
+
if related_item.present?
|
|
1460
|
+
return {
|
|
1461
|
+
"type" => container_type,
|
|
1462
|
+
"identifier" => related_item.dig("relatedItemIdentifier", "relatedItemIdentifier"),
|
|
1463
|
+
"identifierType" => related_item.dig("relatedItemIdentifier", "relatedItemIdentifierType"),
|
|
1464
|
+
"title" => related_item.dig("titles", 0).then { |t| t ? parse_attributes(t, content: "title", first: true) : nil },
|
|
1465
|
+
"volume" => related_item["volume"],
|
|
1466
|
+
"issue" => related_item["issue"],
|
|
1467
|
+
"edition" => related_item["edition"],
|
|
1468
|
+
"number" => related_item["number"],
|
|
1469
|
+
"chapterNumber" => related_item["numberType"] == "Chapter" ? related_item["number"] : nil,
|
|
1470
|
+
"firstPage" => related_item["firstPage"],
|
|
1471
|
+
"lastPage" => related_item["lastPage"]
|
|
1472
|
+
}.compact
|
|
1473
|
+
end
|
|
1474
|
+
|
|
1475
|
+
# Legacy SeriesInformation/relatedIdentifier container fallback
|
|
1476
|
+
series_information = Array.wrap(descriptions).find { |r| r["descriptionType"] == "SeriesInformation" }.to_h.fetch("description", nil)
|
|
1477
|
+
si = get_series_information(series_information)
|
|
1478
|
+
|
|
1479
|
+
is_part_of = Array.wrap(related_identifiers).find { |ri| ri["relationType"] == "IsPartOf" }.to_h
|
|
1480
|
+
|
|
1481
|
+
if si["title"].present?
|
|
1482
|
+
return {
|
|
1483
|
+
"type" => container_type,
|
|
1484
|
+
"identifier" => is_part_of["relatedIdentifier"],
|
|
1485
|
+
"identifierType" => is_part_of["relatedIdentifierType"],
|
|
1486
|
+
"title" => si["title"],
|
|
1487
|
+
"volume" => si["volume"],
|
|
1488
|
+
"issue" => si["issue"],
|
|
1489
|
+
"firstPage" => si["firstPage"],
|
|
1490
|
+
"lastPage" => si["lastPage"]
|
|
1491
|
+
}.compact
|
|
1492
|
+
end
|
|
1493
|
+
end
|
|
1494
|
+
|
|
1495
|
+
private
|
|
1496
|
+
|
|
1497
|
+
def normalize_uri_with_path_cleanup(uri)
|
|
1498
|
+
normalized_uri = uri.normalize
|
|
1499
|
+
normalized_uri.path = normalized_uri.path.sub(%r{/\z}, "") if normalized_uri.path.present?
|
|
1500
|
+
normalized_uri.to_s
|
|
1434
1501
|
end
|
|
1435
1502
|
end
|
|
1436
1503
|
end
|
data/lib/bolognese/version.rb
CHANGED
|
@@ -4,18 +4,16 @@ module Bolognese
|
|
|
4
4
|
require "csv"
|
|
5
5
|
|
|
6
6
|
def csv
|
|
7
|
-
return nil unless valid?
|
|
8
|
-
|
|
9
7
|
bib = {
|
|
10
8
|
doi: doi,
|
|
11
9
|
url: url,
|
|
12
10
|
registered: get_iso8601_date(date_registered),
|
|
13
11
|
state: state,
|
|
14
|
-
resource_type_general: types["resourceTypeGeneral"],
|
|
15
|
-
resource_type: types["resourceType"],
|
|
12
|
+
resource_type_general: types.respond_to?(:to_h) ? types.to_h["resourceTypeGeneral"] : nil,
|
|
13
|
+
resource_type: types.respond_to?(:to_h) ? types.to_h["resourceType"] : nil,
|
|
16
14
|
title: parse_attributes(titles, content: "title", first: true),
|
|
17
15
|
author: authors_as_string(creators),
|
|
18
|
-
publisher: publisher["name"],
|
|
16
|
+
publisher: publisher.respond_to?(:to_h) ? publisher.to_h["name"] : nil,
|
|
19
17
|
publication_year: publication_year
|
|
20
18
|
}.values
|
|
21
19
|
|
data/lib/bolognese.rb
CHANGED
|
@@ -3,9 +3,7 @@
|
|
|
3
3
|
require 'active_support/all'
|
|
4
4
|
require 'nokogiri'
|
|
5
5
|
require 'maremma'
|
|
6
|
-
require 'postrank-uri'
|
|
7
6
|
require 'bibtex'
|
|
8
|
-
require 'colorize'
|
|
9
7
|
require 'loofah'
|
|
10
8
|
require 'json/ld'
|
|
11
9
|
require 'rdf/turtle'
|
|
@@ -13,13 +11,12 @@ require 'rdf/rdfxml'
|
|
|
13
11
|
require 'logger'
|
|
14
12
|
require 'iso8601'
|
|
15
13
|
require 'jsonlint'
|
|
16
|
-
require 'benchmark_methods'
|
|
17
14
|
require 'gender_detector'
|
|
18
|
-
require 'citeproc/ruby'
|
|
19
15
|
require 'citeproc'
|
|
20
16
|
require 'csl/styles'
|
|
21
17
|
require 'edtf'
|
|
22
18
|
|
|
19
|
+
require "bolognese/citeproc_extensions"
|
|
23
20
|
require "bolognese/version"
|
|
24
21
|
require "bolognese/metadata"
|
|
25
22
|
require "bolognese/cli"
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
2013-05 v3.0: Addition of ID to simpleType element, added values "ResearchGroup" & "Other"
|
|
4
4
|
2014-08-20 v3.1: Addition of value "DataCurator"
|
|
5
5
|
2015-05-14 v4.0 dropped value "Funder", use new "funderReference"
|
|
6
|
-
2024-12-
|
|
6
|
+
2024-12-05 v4.6: Addition of value "Translator" -->
|
|
7
7
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
|
|
8
8
|
<xs:simpleType name="contributorType" id="contributorType">
|
|
9
9
|
<xs:annotation>
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
2013-05 v3.0: Addition of ID to simpleType element; addition of value "Collected"; deleted "StartDate" & "EndDate"
|
|
4
4
|
2017-10-23 v4.1: Addition of value "Other"
|
|
5
5
|
2019-02-14 v4.2: Addition of value "Withdrawn"
|
|
6
|
-
2024-12-
|
|
6
|
+
2024-12-05 v4.6: Addition of value "Coverage"-->
|
|
7
7
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
|
|
8
8
|
<xs:simpleType name="dateType" id="dateType">
|
|
9
9
|
<xs:annotation>
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
2014-08-20 v3.1: Addition of values "arxiv" and "bibcode"
|
|
5
5
|
2015-02-12 v4.0: Addition of value "IGSN"
|
|
6
6
|
2019-02-14 v4.2: Addition of value "w3id"
|
|
7
|
-
2024-12-
|
|
7
|
+
2024-12-05 v4.5: Addition of values "CSTR", "RRID" -->
|
|
8
8
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
|
|
9
9
|
<xs:simpleType name="relatedIdentifierType" id="relatedIdentifierType">
|
|
10
10
|
<xs:annotation>
|
|
@@ -27,7 +27,9 @@
|
|
|
27
27
|
<xs:enumeration value="LSID" />
|
|
28
28
|
<xs:enumeration value="PMID" />
|
|
29
29
|
<xs:enumeration value="PURL" />
|
|
30
|
+
<xs:enumeration value="RAiD" />
|
|
30
31
|
<xs:enumeration value="RRID" />
|
|
32
|
+
<xs:enumeration value="SWHID" />
|
|
31
33
|
<xs:enumeration value="UPC" />
|
|
32
34
|
<xs:enumeration value="URL" />
|
|
33
35
|
<xs:enumeration value="URN" />
|
|
@@ -5,9 +5,10 @@
|
|
|
5
5
|
2014-08-20 v3.1: Addition of values "Reviews" & "IsReviewedBy" and "IsDerivedFrom" & "IsSourceOf"
|
|
6
6
|
2017-10-23 v4.1: Addition of values "Describes", "IsDescribedBy", "HasVersion", "IsVersionOf", "Requires", "IsRequiredBy"
|
|
7
7
|
2019-02-14 v4.2: Addition of values "Obsoletes", "IsObsoletedBy"
|
|
8
|
-
2021-03-05 v4.4: Addition of value "IsPublishedIn"
|
|
8
|
+
2021-03-05 v4.4: Addition of value "IsPublishedIn"
|
|
9
9
|
2024-01-22 v4.5: Addition of values "Collects, "IsCollectedBy"
|
|
10
|
-
2024-12-
|
|
10
|
+
2024-12-05 v4.6: Addition of values "HasTranslation", "IsTranslationOf"
|
|
11
|
+
2026-03-31 v4.7: Addition of value "Other"-->
|
|
11
12
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
|
|
12
13
|
<xs:simpleType name="relationType" id="relationType">
|
|
13
14
|
<xs:annotation>
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
<xs:enumeration value="IsCollectedBy" />
|
|
53
54
|
<xs:enumeration value="HasTranslation" />
|
|
54
55
|
<xs:enumeration value="IsTranslationOf" />
|
|
56
|
+
<xs:enumeration value="Other" />
|
|
55
57
|
</xs:restriction>
|
|
56
58
|
</xs:simpleType>
|
|
57
59
|
</xs:schema>
|
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
2020-01-14 v4.4: Addition of values "Book", "Book Chapter", "ComputationalNotebook", "ConferencePaper", "ConferenceProceeding".
|
|
6
6
|
"Dissertation", "Journal", "JournalArticle", "OutputManagementPlan", "PeerReview", "Preprint", "Report"
|
|
7
7
|
2024-01-22 v4.5: Addition of values "Instrument", "StudyRegistration"
|
|
8
|
-
2024-12-
|
|
8
|
+
2024-12-05 v4.6: Addition of values "Award", "Project"
|
|
9
|
+
2026-03-31 v4.7: Addition of values "Poster", "Presentation"-->
|
|
9
10
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://datacite.org/schema/kernel-4" targetNamespace="http://datacite.org/schema/kernel-4" elementFormDefault="qualified">
|
|
10
11
|
<xs:simpleType name="resourceType" id="resourceType">
|
|
11
12
|
<xs:annotation>
|
|
@@ -33,7 +34,9 @@
|
|
|
33
34
|
<xs:enumeration value="OutputManagementPlan" />
|
|
34
35
|
<xs:enumeration value="PeerReview" />
|
|
35
36
|
<xs:enumeration value="PhysicalObject" />
|
|
37
|
+
<xs:enumeration value="Poster" />
|
|
36
38
|
<xs:enumeration value="Preprint" />
|
|
39
|
+
<xs:enumeration value="Presentation" />
|
|
37
40
|
<xs:enumeration value="Project" />
|
|
38
41
|
<xs:enumeration value="Report" />
|
|
39
42
|
<xs:enumeration value="Service" />
|