bolognese
Ruby gem and command-line utility for conversion of DOI metadata
Science Score: 67.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 190 DOI reference(s) in README -
○Academic publication links
-
✓Committers with academic emails
1 of 16 committers (6.3%) from academic institutions -
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (6.0%) to scientific vocabulary
Repository
Ruby gem and command-line utility for conversion of DOI metadata
Basic Info
Statistics
- Stars: 46
- Watchers: 14
- Forks: 14
- Open Issues: 16
- Releases: 54
Metadata Files
README.md
Bolognese: a Ruby library for conversion of DOI Metadata
Ruby gem and command-line utility for conversion of DOI metadata from and to different metadata formats, including schema.org.
Features
Bolognese reads and/or writes these metadata formats:
| Format | Name | Content Type | Read | Write |
|---|---|---|---|---|
| CrossRef Unixref XML | crossref | application/vnd.crossref.unixref+xml | Yes | No |
| DataCite XML | datacite | application/vnd.datacite.datacite+xml | Yes | Yes |
| DataCite JSON | datacite_json | application/vnd.datacite.datacite+json | Yes | Yes |
| Schema.org in JSON-LD | schema_org | application/vnd.schemaorg.ld+json | Yes | Yes |
| RDF XML | rdf_xml | application/rdf+xml | No | Yes |
| RDF Turtle | turtle | text/turtle | No | Yes |
| Citeproc JSON | citeproc | application/vnd.citationstyles.csl+json | Yes | Yes |
| Formatted text citation | citation | text/x-bibliography | No | Yes |
| Codemeta | codemeta | application/vnd.codemeta.ld+json | Yes | Yes |
| JATS | jats | application/vnd.jats+xml | No | Yes |
| CSV | csv | text/csv | No | Yes |
| BibTeX | bibtex | application/x-bibtex | Yes | Yes |
| RIS | ris | application/x-research-info-systems | Yes | Yes |
| Crosscite | crosscite | application/vnd.crosscite.crosscite+json | Yes | Yes |
Crosscite is the format used internally by bolognese.
Installation
Requires Ruby 2.2 or later. Then add the following to your Gemfile to install the
latest version:
ruby
gem 'bolognese'
Then run bundle install to install into your environment.
You can also install the gem system-wide in the usual way:
bash
gem install bolognese
Commands
Run the bolognese command with either an identifier (DOI or URL) or filename:
bolognese https://doi.org/10.7554/elife.01567
bolognese example.xml
Bolognese can read BibTeX files (file extension .bib), RIS files (file extension .ris), Crossref or DataCite XML files (file extension .xml), DataCite JSON files (file extension `Citeproc JSON files ().
The input format (e.g. Crossref XML or BibteX) is automatically detected, but
you can also provide the format with the --from or -f flag. The supported
input formats are listed in the table above.
The output format is determined by the --to or -t flag, and defaults to schema_org.
Show all commands with bolognese help:
Commands:
bolognese # convert metadata
bolognese --version, -v # print the version
bolognese help [COMMAND] # Describe available commands or one specific command
Errors
Errors are returned to STDOUT.
All DataCite XML input is validated against the corresponding schema version (kernel 2.1, 2.2, 3, or 4).
Examples
Read Crossref XML:
``` bolognese https://doi.org/10.7554/elife.01567 -t crossref
<?xml version="1.0" encoding="UTF-8"?>
Convert Crossref XML to schema.org/JSON-LD: ``` bolognese https://doi.org/10.7554/elife.01567
{ "@context": "http://schema.org", "@type": "ScholarlyArticle", "@id": "https://doi.org/10.7554/elife.01567", "url": "http://elifesciences.org/lookup/doi/10.7554/eLife.01567", "additionalType": "JournalArticle", "name": "Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth", "author": [{ "@type": "Person", "givenName": "Martial", "familyName": "Sankar" }, { "@type": "Person", "givenName": "Kaisa", "familyName": "Nieminen" }, { "@type": "Person", "givenName": "Laura", "familyName": "Ragni" }, { "@type": "Person", "givenName": "Ioannis", "familyName": "Xenarios" }, { "@type": "Person", "givenName": "Christian S", "familyName": "Hardtke" }], "license": "http://creativecommons.org/licenses/by/3.0/", "datePublished": "2014-02-11", "dateModified": "2015-08-11T05:35:02Z", "isPartOf": { "@type": "Periodical", "name": "eLife", "issn": "2050-084X" }, "citation": [{ "@type": "CreativeWork", "@id": "https://doi.org/10.1038/nature02100", "position": "1", "datePublished": "2003" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1534/genetics.109.104976", "position": "2", "datePublished": "2009" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1034/j.1399-3054.2002.1140413.x", "position": "3", "datePublished": "2002" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1162/089976601750399335", "position": "4", "datePublished": "2001" }, { "@type": "CreativeWork", "position": "5", "datePublished": "1995" }, { "@type": "CreativeWork", "position": "6", "datePublished": "1993" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1016/j.semcdb.2009.09.009", "position": "7", "datePublished": "2009" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1242/dev.091314", "position": "8", "datePublished": "2013" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1371/journal.pgen.1002997", "position": "9", "datePublished": "2012" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1038/msb.2010.25", "position": "10", "datePublished": "2010" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1016/j.biosystems.2012.07.004", "position": "11", "datePublished": "2012" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1016/j.pbi.2005.11.013", "position": "12", "datePublished": "2006" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1105/tpc.110.076083", "position": "13", "datePublished": "2010" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1073/pnas.0808444105", "position": "14", "datePublished": "2008" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1016/0092-8674(89)90900-8", "position": "15", "datePublished": "1989" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1126/science.1066609", "position": "16", "datePublished": "2002" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1104/pp.104.040212", "position": "17", "datePublished": "2004" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1038/nbt1206-1565", "position": "18", "datePublished": "2006" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1073/pnas.77.3.1516", "position": "19", "datePublished": "1980" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1093/bioinformatics/btq046", "position": "20", "datePublished": "2010" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1105/tpc.111.084020", "position": "21", "datePublished": "2011" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.5061/dryad.b835k", "position": "22", "datePublished": "2014" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1016/j.cub.2008.02.070", "position": "23", "datePublished": "2008" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1111/j.1469-8137.2010.03236.x", "position": "24", "datePublished": "2010" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1007/s00138-011-0345-9", "position": "25", "datePublished": "2012" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1016/j.cell.2012.02.048", "position": "26", "datePublished": "2012" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.1038/ncb2764", "position": "27", "datePublished": "2013" }], "funder": [{ "@type": "Organization", "name": "SystemsX" }, { "@type": "Organization", "@id": "https://doi.org/10.13039/501100003043", "name": "EMBO" }, { "@type": "Organization", "@id": "https://doi.org/10.13039/501100001711", "name": "Swiss National Science Foundation" }, { "@type": "Organization", "@id": "https://doi.org/10.13039/501100006390", "name": "University of Lausanne" }], "provider": { "@type": "Organization", "name": "Crossref" } } ```
Convert Crossref XML to DataCite XML: ``` bolognese https://doi.org/10.7554/elife.01567 -t datacite
<?xml version="1.0" encoding="UTF-8"?>
``` bolognese https://doi.org/10.7554/elife.01567 -t bibtex
@article{https://doi.org/10.7554/elife.01567, doi = {10.7554/eLife.01567}, url = {http://elifesciences.org/lookup/doi/10.7554/eLife.01567}, author = {Sankar, Martial and Nieminen, Kaisa and Ragni, Laura and Xenarios, Ioannis and Hardtke, Christian S}, title = {Automated quantitative histology reveals vascular morphodynamics during Arabidopsis hypocotyl secondary growth}, journal = {eLife}, year = {2014} } ```
Read DataCite XML: ``` bolognese 10.5061/DRYAD.8515 -t datacite
<?xml version="1.0" encoding="UTF-8"?>
Convert DataCite XML to schema.org/JSON-LD: ```sh bolognese 10.5061/DRYAD.8515
{ "@context": "http://schema.org", "@type": "Dataset", "@id": "https://doi.org/10.5061/dryad.8515", "additionalType": "DataPackage", "name": "Data from: A new malaria agent in African hominids.", "alternateName": "Ollomo B, Durand P, Prugnolle F, Douzery EJP, Arnathau C, Nkoghe D, Leroy E, Renaud F (2009) A new malaria agent in African hominids. PLoS Pathogens 5(5): e1000446.", "author": [{ "@type": "Person", "givenName": "Benjamin", "familyName": "Ollomo" }, { "@type": "Person", "givenName": "Patrick", "familyName": "Durand" }, { "@type": "Person", "givenName": "Franck", "familyName": "Prugnolle" }, { "@type": "Person", "givenName": "Emmanuel J. P.", "familyName": "Douzery" }, { "@type": "Person", "givenName": "Céline", "familyName": "Arnathau" }, { "@type": "Person", "givenName": "Dieudonné", "familyName": "Nkoghe" }, { "@type": "Person", "givenName": "Eric", "familyName": "Leroy" }, { "@type": "Person", "givenName": "François", "familyName": "Renaud" }], "license": "http://creativecommons.org/publicdomain/zero/1.0/", "version": "1", "keywords": "Phylogeny, Malaria, Parasites, Taxonomy, Mitochondrial genome, Africa, Plasmodium", "datePublished": "2011", "hasPart": [{ "@type": "CreativeWork", "@id": "https://doi.org/10.5061/dryad.8515/1" }, { "@type": "CreativeWork", "@id": "https://doi.org/10.5061/dryad.8515/2" }], "citation": [{ "@type": "CreativeWork", "@id": "https://doi.org/10.1371/journal.ppat.1000446" }], "schemaVersion": "http://datacite.org/schema/kernel-3", "publisher": { "@type": "Organization", "name": "Dryad Digital Repository" }, "provider": { "@type": "Organization", "name": "DataCite" } } ```
Convert DataCite XML to schema version 4.0: ``` bolognese 10.5061/DRYAD.8515 -t datacite --schema_version http://datacite.org/schema/kernel-4
<?xml version="1.0" encoding="UTF-8"?>
Convert DataCite XML to Codemeta:
``` bolognese https://doi.org/10.5063/f1m61h5x -t codemeta
{
"@context":"https://raw.githubusercontent.com/codemeta/codemeta/master/codemeta.jsonld",
"@type":"SoftwareSourceCode",
"@id":"https://doi.org/10.5063/f1m61h5x",
"identifier":"https://doi.org/10.5063/f1m61h5x",
"title":"dataone: R interface to the DataONE network of data repositories",
"agents":{
"@type":"Person",
"givenName":"Matthew B.",
"familyName":"Jones"
},
"datePublished":"2016",
"publisher":{
"@type":"Organization",
"name":"KNB Data Repository"
}
}
```
Convert DataCite XML to BibTeX:
``` bolognese 10.5061/DRYAD.8515 -t bibtex
@misc{https://doi.org/10.5061/dryad.8515, doi = {10.5061/DRYAD.8515}, author = {Ollomo, Benjamin and Durand, Patrick and Prugnolle, Franck and Douzery, Emmanuel J. P. and Arnathau, Céline and Nkoghe, Dieudonné and Leroy, Eric and Renaud, François}, keywords = {Phylogeny, Malaria, Parasites, Taxonomy, Mitochondrial genome, Africa, Plasmodium}, title = {Data from: A new malaria agent in African hominids.}, publisher = {Dryad Digital Repository}, year = {2011} } ```
Convert schema.org/JSON-LD to DataCite XML:
``` bolognese https://blog.datacite.org/eating-your-own-dog-food -t datacite
<?xml version="1.0" encoding="UTF-8"?>
Convert schema.org/JSON-LD to BibTeX:
``` bolognese https://blog.datacite.org/eating-your-own-dog-food -t bibtex
@article{https://doi.org/10.5438/4k3m-nyvg, doi = {10.5438/4k3m-nyvg}, url = {https://blog.datacite.org/eating-your-own-dog-food}, author = {Fenner, Martin}, keywords = {datacite, doi, metadata, featured}, title = {Eating your own Dog Food}, publisher = {DataCite}, year = {2016} } ```
Convert Codemeta to schema.org/JSON-LD:
``` bolognese https://github.com/datacite/maremma
{
"@context":"http://schema.org",
"@type":"SoftwareSourceCode",
"@id":"https://doi.org/10.5438/qeg0-3gm3",
"url":"https://github.com/datacite/maremma",
"name":"Maremma: a Ruby library for simplified network calls",
"author":{
"@type":"person",
"@id":"http://orcid.org/0000-0003-0077-4738",
"name":"Martin Fenner"
},
"description":"Simplifies network calls, including json/xml parsing and error handling. Based on Faraday.",
"keywords":"faraday, excon, net/http",
"dateCreated":"2015-11-28",
"datePublished":"2017-02-24",
"dateModified":"2017-02-24",
"publisher":{
"@type":"Organization",
"name":"DataCite"
}
}
```
Convert Codemeta to DataCite XML:
``` bolognese https://github.com/datacite/maremma -t datacite
<?xml version="1.0" encoding="UTF-8"?>
Development
We use rspec for unit testing:
bundle exec rspec
Follow along via Github Issues. Please open an issue if conversion fails or metadata are not properly supported.
Note on Patches/Pull Requests
- Fork the project
- Write tests for your new feature or a test that reproduces a bug
- Implement your feature or make a bug fix
- Do not mess with Rakefile, version or history
- Commit, push and make a pull request. Bonus points for topical branches.
License
bolognese is released under the MIT License.
Owner
- Name: DataCite
- Login: datacite
- Kind: organization
- Email: info@datacite.org
- Website: https://www.datacite.org
- Twitter: DataCite
- Repositories: 111
- Profile: https://github.com/datacite
Connecting research, identifying knowledge
Citation (CITATION)
To cite bolognese in publications, please use:
Fenner, M. (2017). Bolognese: a Ruby library for conversion of DOI Metadata.
DataCite. https://doi.org/10.5438/n138-z3mk
A BibTeX entry for bolognese is
@misc{https://doi.org/10.5438/n138-z3mk,
doi = {10.5438/n138-z3mk},
url = {https://github.com/datacite/bolognese},
author = {Fenner, Martin},
keywords = {doi, metadata, crossref, datacite, schema.org, bibtex, codemeta},
title = {Bolognese: a Ruby library for conversion of DOI Metadata},
publisher = {DataCite},
note = {Ruby gem and command-line utility for conversion of DOI metadata from and to different metadata formats, including schema.org.},
year = {2017}
}
GitHub Events
Total
- Create event: 11
- Release event: 3
- Issues event: 2
- Watch event: 5
- Delete event: 5
- Issue comment event: 7
- Push event: 16
- Pull request review comment event: 3
- Pull request event: 10
- Pull request review event: 11
Last Year
- Create event: 11
- Release event: 3
- Issues event: 2
- Watch event: 5
- Delete event: 5
- Issue comment event: 7
- Push event: 16
- Pull request review comment event: 3
- Pull request event: 10
- Pull request review event: 11
Committers
Last synced: almost 3 years ago
All Time
- Total Commits: 724
- Total Committers: 16
- Avg Commits per committer: 45.25
- Development Distribution Score (DDS): 0.38
Top Committers
| Name | Commits | |
|---|---|---|
| Martin Fenner | m****r@d****g | 449 |
| Martin Fenner | m****r@d****g | 71 |
| Richard Hallett | r****t@d****g | 57 |
| GitHub Action | a****n@g****m | 44 |
| Richard Hallett | r****d@r****m | 24 |
| jrhoads | j****s@d****g | 20 |
| Kristian Garza | k****a@g****m | 16 |
| kjgarza | k****a@d****g | 13 |
| Paul Danelli | p****i@g****m | 10 |
| Cody Ross | c****s@g****m | 7 |
| Chris Gorgolewski | c****o@g****m | 4 |
| Mike Bennett | m****t@d****g | 4 |
| dependabot[bot] | 4****]@u****m | 2 |
| Rob Kaufman | r****b@n****m | 1 |
| Lars Willighagen | l****n@g****m | 1 |
| Chris Colvard | c****r@i****u | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 6 months ago
All Time
- Total issues: 70
- Total pull requests: 79
- Average time to close issues: 4 months
- Average time to close pull requests: 20 days
- Total issue authors: 21
- Total pull request authors: 17
- Average comments per issue: 1.04
- Average comments per pull request: 0.47
- Merged pull requests: 68
- Bot issues: 2
- Bot pull requests: 5
Past Year
- Issues: 4
- Pull requests: 8
- Average time to close issues: about 1 month
- Average time to close pull requests: 8 days
- Issue authors: 2
- Pull request authors: 4
- Average comments per issue: 1.0
- Average comments per pull request: 0.25
- Merged pull requests: 6
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mfenner (19)
- richardhallett (11)
- ashwinisukale (7)
- codycooperross (6)
- prdanelli (4)
- svogt0511 (2)
- jrhoads (2)
- digitaldogsbody (2)
- sentry-io[bot] (2)
- MaryHirsch (2)
- larsgw (1)
- cjcolvar (1)
- hrzepa (1)
- flange-ipb (1)
- atmodatcode (1)
Pull Request Authors
- codycooperross (15)
- svogt0511 (14)
- richardhallett (10)
- kjgarza (10)
- ashwinisukale (10)
- mfenner (6)
- dependabot[bot] (5)
- jrhoads (4)
- digitaldogsbody (3)
- prdanelli (3)
- wendelfabianchinsamy (2)
- larsgw (2)
- kaysiz (2)
- cjcolvar (1)
- chrisgorgo (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- rubygems 754,827 total
- Total docker downloads: 17
- Total dependent packages: 4
- Total dependent repositories: 24
- Total versions: 346
- Total maintainers: 2
rubygems.org: bolognese
Ruby gem and command-line utility for conversion of DOI metadata from and to different metadata formats, including schema.org.
- Homepage: https://github.com/datacite/bolognese
- Documentation: http://www.rubydoc.info/gems/bolognese/
- License: MIT
-
Latest release: 2.3.5
published 9 months ago
Rankings
Dependencies
- jshint ^2.9.5 development
- activesupport 6.1.6
- addressable 2.8.0
- amazing_print 1.4.0
- benchmark_methods 0.7
- bibtex-ruby 6.0.0
- bolognese 1.9.16
- builder 3.2.4
- citeproc 1.0.10
- citeproc-ruby 1.1.14
- colorize 0.8.1
- concurrent-ruby 1.1.10
- crack 0.4.5
- crass 1.0.6
- csl 1.6.0
- csl-styles 1.0.1.11
- diff-lcs 1.5.0
- docile 1.4.0
- ebnf 2.3.1
- edtf 3.0.8
- excon 0.71.1
- faraday 0.17.5
- faraday-encoding 0.0.5
- faraday_middleware 0.14.0
- gender_detector 0.1.2
- haml 5.2.2
- hashdiff 1.0.1
- htmlentities 4.3.4
- i18n 1.10.0
- iso8601 0.9.1
- json 2.6.2
- json-canonicalization 0.3.0
- json-ld 3.2.1
- json-ld-preloaded 3.2.0
- jsonlint 0.3.0
- latex-decode 0.3.2
- link_header 0.0.8
- loofah 2.18.0
- maremma 4.9.8
- matrix 0.4.2
- mini_portile2 2.8.0
- minitest 5.16.1
- multi_json 1.15.0
- multipart-post 2.2.3
- namae 1.1.1
- nokogiri 1.13.6
- oj 3.13.14
- oj_mimic_json 1.0.1
- optimist 3.0.1
- postrank-uri 1.0.24
- public_suffix 2.0.5
- racc 1.6.0
- rack 2.2.3.1
- rack-test 0.8.3
- rake 12.3.3
- rdf 3.2.8
- rdf-aggregate-repo 3.2.1
- rdf-rdfa 3.2.0
- rdf-rdfxml 3.2.0
- rdf-turtle 3.2.1
- rdf-vocab 3.2.1
- rdf-xsd 3.2.1
- rexml 3.2.5
- rspec 3.11.0
- rspec-core 3.11.0
- rspec-expectations 3.11.0
- rspec-mocks 3.11.1
- rspec-support 3.11.0
- rspec-xsd 0.1.0
- scanf 1.0.0
- simplecov 0.17.1
- simplecov-html 0.10.2
- sxp 1.2.2
- temple 0.8.2
- thor 1.2.1
- tilt 2.0.10
- tzinfo 2.0.4
- unicode-types 1.7.0
- unicode_utils 1.4.0
- vcr 3.0.3
- webmock 3.14.0
- zeitwerk 2.6.0
- bundler >= 1.0 development
- hashdiff >= 1.0.0.beta1, < 2.0.0 development
- rack-test ~> 0 development
- rake ~> 12.0 development
- rspec ~> 3.4 development
- rspec-xsd ~> 0.1.0 development
- simplecov = 0.17.1 development
- vcr ~> 3.0, >= 3.0.3 development
- webmock ~> 3.0, >= 3.0.1 development
- activesupport >= 4.2.5
- benchmark_methods ~> 0.7
- bibtex-ruby >= 5.1.0
- builder ~> 3.2, >= 3.2.2
- citeproc-ruby ~> 1.1, >= 1.1.12
- colorize ~> 0.8.1
- concurrent-ruby ~> 1.1, >= 1.1.5
- csl-styles ~> 1.0, >= 1.0.1.10
- edtf ~> 3.0, >= 3.0.4
- faraday ~> 0.17.3
- gender_detector ~> 0.1.2
- iso8601 ~> 0.9.1
- json-ld-preloaded ~> 3.1, >= 3.1.3
- jsonlint ~> 0.3.0
- loofah ~> 2.0, >= 2.0.3
- maremma >= 4.9.4, < 5
- namae ~> 1.0
- nokogiri >= 1.13.2, < 1.14
- oj ~> 3.10
- oj_mimic_json ~> 1.0, >= 1.0.1
- postrank-uri ~> 1.0, >= 1.0.18
- rdf-rdfxml ~> 3.1
- rdf-turtle ~> 3.1
- thor >= 0.19