Catmandu-ORCID

Open Tools for Library and Research Services

View the Project on GitHub LibreCat/Catmandu-ORCID

Install

# cpan Task::Catmandu
# cpan WWW::ORCID
# cpan Catmandu::ORCID

Extend your Perl scripts fast and easily

Extract

You need to import all publications from an author into your environment. If you happen to know the ORCID of the researcher, then in Catmandu we can say something like:

catmandu convert ORCID --id 0000-0001-8390-6171 to JSON

or, if you fancy YAML, we can say

catmandu convert ORCID --id 0000-0001-8390-6171 to YAML

Transform

Most probably the ORCID record format won't fit your local data model. You need to clean up the data and map it to your local requirements. In Catmandu we can process each record with a small DSL language:

catmandu convert ORCID --id 0000-0001-8390-6171 to YAML --fix fix.txt

with fix.txt as:

move_field('work-title.title.value','title');
move_field('work-citation.citation','citation');
move_field('put-code','_id');
remove_field('work-citation');
remove_field('work-contributors');
remove_field('work-external-identifiers');
remove_field('work-source');
remove_field('work-title');
remove_field('visibility');

Load

All this hard work you need to store somewhere. In MongoDB?

catmandu import ORCID --id 0000-0001-8390-6171 to MongoDB --database_name testing

Or, maybe in ElasticSearch?

catmandu import ORCID --id 0000-0001-8390-6171 to ElasticSearch --index_name testing

Lazy

Of course, you can do all this also with our functional Perl API-s. But we tend to be lazy. Why type something like this?

use Catmandu::Importer::ORCID;
my $importer =
   Catmandu::Importer::ORCID->new(id => '0000-0001-8390-6171');

$importer->each(sub {
   my $pub = shift;
   print Dumper($pub);
});

when you don't need to?

More, more, more

Check out our low level WWW::ORCID API to find all the exended functionality: search, bio, works, profiles, and support to create new profiles!

Join

Join us at LibreCat : an open collaboration to provide freely available tools for library and research services.