Open Tools for Library and Research Services
View the Project on GitHub LibreCat/Catmandu-ORCID
# cpan Task::Catmandu
# cpan WWW::ORCID
# cpan Catmandu::ORCID
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
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');
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
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?
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 us at LibreCat : an open collaboration to provide freely available tools for library and research services.