EPrints Technical Mailing List Archive
See the EPrints wiki for instructions on how to join this mailing list and related information.
Message: #03793
< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First
[EP-tech] Re: ORCiD
- To: "eprints-tech@ecs.soton.ac.uk" <eprints-tech@ecs.soton.ac.uk>
- Subject: [EP-tech] Re: ORCiD
- From: "Brian D. Gregg" <bdgregg@pitt.edu>
- Date: Fri, 16 Jan 2015 14:52:52 +0000
All, What we have done here at the University of Pittsburgh is added and 'orcid' field to both the user's record and the creator's field in our IR. Additionally there are other "Author" type fields that could also use the 'orcid' field added as well such as composer, contributors, exhibitors, producers, and lyricists. Which to me begs for these to be rolled into the creators field somehow. If you are going to use auto completion for the creators field make sure to tweak the lookup code to include adding the 'orcid' field or it won't populate as expected. Additionally we've added an ORCID "pattern" validator (does not login to ORCID) to ensure we're not just accepting junk into the field. What we haven't done yet is to validate the 'orcid' field in the user's record (just a variation of the theme), nor have we added anything into the issues_search.pl which would flag items as well (another variation). If the following is useful, please use as needed. :-) This is the code we put into eprint_validate.pl: # ORCID ID Validator for individuals # Reference: http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier # REGEX: ^\d{4}-\d{4}-\d{4}-(\d{3}X|\d{4})$ # my @name_fields = qw( creators contributors etdcommittee exhibitors producers conductors lyricists ); foreach my $name_field ( @name_fields ) { if( $eprint->is_set( $name_field ) ) { foreach my $creator ( @{ $eprint->value( $name_field ) } ) { my $orcid = $creator->{orcid}; next unless defined $orcid; if ($session->get_repository->can_call ( "validators", "isValidORCID" ) ) { if (!$session->get_repository->call( [ "validators", "isValidORCID" ], $orcid )) { my $field_text = $session->html_phrase( "eprint_fieldname_$name_field" ); my $field_frag = $session->make_element( "span", class=>"ep_problem_field:$name_field" ); $field_frag->appendChild($field_text); push @problems, $session->html_phrase( "warnings:orcid_invalid", orcid => $session->get_repository->make_text($orcid), field => $field_frag, ); } } else { $session->get_repository->log( "Can not call isValidORCID." ); } } } } And we added this function after the last "};" in the file. ############################################ # Function: isValidORCID # Description: Used to validate ORCID IDs # $c->{validators}->{isValidORCID} = sub { my $ORCID = $_[0]; #Check for valid length of 19 characters. my $size = length($ORCID); if ($size > 19 ) { return 0; } else { $ORCID =~ s/\-//g; my @chars = split(//, $ORCID); my $total = 0; for ( my $i=0; $i<15; $i++) { $total = ($total + $chars[$i]) *2; } my $remainder = $total % 11; my $result = (12 - $remainder) % 11; return ($chars[15] == ($result==10 ? 'X' : $result)) } Hope this helps someone. Cheers! -Brian. Brian D. Gregg Solutions Architect | Manager Systems Development University of Pittsburgh | University Library System Address: 7500 Thomas Blvd. Room 129 Pittsburgh, PA 15208 Tel: (412) 648-3264 | Email: bdgregg@pitt.edu | Fax: (412) 648-3585 -----Original Message----- From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of Lizz Jennings Sent: Friday, January 16, 2015 9:13 AM To: eprints-tech@ecs.soton.ac.uk Subject: [EP-tech] Re: ORCiD I created an additional sub-field as I still wanted to capture email addresses, and ORCID isn't all that widely used here yet. Lizz -- Lizz Jennings BA MSc ACLIP MCLIP (Revalidated 2014) Technical Data Officer The Library 4.10, University of Bath, Bath, BA2 7AY UK Ext. 3570 (External 01225 383570) E.Jennings@bath.ac.uk Research Data Management: http://www.bath.ac.uk/research/data -----Original Message----- From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of John Salter Sent: 16 January 2015 14:10 To: eprints-tech@ecs.soton.ac.uk Subject: [EP-tech] ORCiD Hi, How is anyone storing an ORCiD in EPrints? Out-of-the-box, EPrints has creators with a name component, and an id component. The default name of this field is 'Email': https://github.com/eprints/eprints/blob/3.3/lib/lang/en/phrases/system.xml#L396 I was thinking or using it to store the ORCiD instead of the email address, but didn't know if any 'best practice' was emerging yet? Cheers, John *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech *** Archive: http://www.eprints.org/tech.php/ *** EPrints community wiki: http://wiki.eprints.org/ *** EPrints developers Forum: http://forum.eprints.org/ *** Options: http://mailman.ecs.soton.ac.uk/mailman/listinfo/eprints-tech *** Archive: http://www.eprints.org/tech.php/ *** EPrints community wiki: http://wiki.eprints.org/ *** EPrints developers Forum: http://forum.eprints.org/
- References:
- [EP-tech] ORCiD
- From: John Salter <J.Salter@leeds.ac.uk>
- [EP-tech] Re: ORCiD
- From: Lizz Jennings <E.Jennings@bath.ac.uk>
- [EP-tech] ORCiD
- Prev by Date: [EP-tech] Re: ORCiD
- Next by Date: [EP-tech] Antwort: Re: ORCiD
- Previous by thread: [EP-tech] Re: ORCiD
- Next by thread: [EP-tech] Re: ORCiD
- Index(es):