EPrints Technical Mailing List Archive
Message: #03795
< 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: John Salter <J.Salter@leeds.ac.uk>
- Date: Fri, 16 Jan 2015 15:16:08 +0000
Hi Gregg (and thanks to the others too!), This seems like the solution I want to use. Our records are harvested by a CRIS, and we don’t have real users in our EPrints install. Have you also added a custom render function for those fields - to render them as recommended here; http://support.orcid.org/knowledgebase/articles/116780-structure-of-the-orcid-identifier#Express ? (I've just found this: http://blogs.kent.ac.uk/orcid/2014/10/09/technical-update-2/ - which may be of use to others too!) To answer your point about the composers/exhibitors etc., in EPrints, there is the 'contributor' field that encompasses all these things and more (see: https://github.com/eprints/eprints/blob/3.3/lib/defaultcfg/namedsets/contributor_type). I don't know if there are any migration tools to move from the disparate fields to this one - or if there are any nice workflow options to e.g. display Creators: contributor[@type=creator] (show only creators, but also auto-set the type to creator) Editors: contributor[@type=editor] Other contributors: contributor[@type!=creator and @type!=editor] I've been meaning to play with this field for a while - but haven't got around to it (yet). Cheers, John -----Original Message----- From: eprints-tech-bounces@ecs.soton.ac.uk [mailto:eprints-tech-bounces@ecs.soton.ac.uk] On Behalf Of Brian D. Gregg Sent: 16 January 2015 14:53 To: eprints-tech@ecs.soton.ac.uk Subject: [EP-tech] Re: ORCiD 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/ *** 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] Re: ORCiD
- From: "Brian D. Gregg" <bdgregg@pitt.edu>
- [EP-tech] ORCiD
- Prev by Date: [EP-tech] Antwort: Re: ORCiD
- Next by Date: [EP-tech] Re: ORCiD
- Previous by thread: [EP-tech] Re: ORCiD
- Next by thread: [EP-tech] Re: ORCiD
- Index(es):