[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[EP-tech] URGENT: Dublin Core output issues
Hi Dago,
No problems with your English!
As you're talking about OpenAire, can I check - do you needs these values to be in the source of the HTML page for an item (like the one you attached), or in the OAI-PMH harvest interface for the item (this is how OpenAire would normally get data)?
If it's in the HTML, the links are generated by this code:
https://github.com/eprints/eprints/blob/3.3/lib/defaultcfg/cfg.d/eprint_render.pl#L136-L137
(but the file will be in [EPRINTS_ROOT]/archives/[ARCHIVEID]/cfg/cfg.d/). To add extra metadata to the profile, I would make a local version of the Export::DC plugin - e.g. as: [EPRINTS_ROOT]/archives/[ARCHIVEID]/cfg/plugins/EPrints/Plugin/Export/DC_Orcid.pm
and then change this section:
https://github.com/eprints/eprints/blob/3.3/perl_lib/EPrints/Plugin/Export/DC.pm#L97-L108
so instead of referencing the 'creators_name' field, it references the 'creator' field, and adds the id attribute if the ORCID is set - something like this:
my $creators = $eprint->get_value( "creators" );
if( defined $creators )
{
foreach my $creator ( @{$creators} )
{
if( defined $creator->{orcid} ){
# the 3rd parameter
push @dcdata, [ "creator", EPrints::Utils::make_name_string( $creator->{name} ), { "id" => "info:eu-repo/dai/mx/orcid/".$creator->{orcid} } ];
else {
push @dcdata, [ "creator", EPrints::Utils::make_name_string( $creator->{name} ) ];
}
}
}
You should be able to do something similar with the other two elements (but they'll be simpler!).
Once this is working, you can change the eprint_render.pl to use your new plugin.
If you regenerate the abstract page:
>[EPRINTS_ROOT]/bin/generate_abstracts [ARCHIVEID] [EPRINTID]
you should see the new data coming through.
The reason I am not suggesting you update the DC plugin directly is that it is used in other places - and something getting DC data might not expect to get an id attribute on the dc:creator element.
If you need the same thing done for the OAI-PMH interface, let me know - I'll explain.
Hope that helps - ask if you need more info!
John
________________________________
From: eprints-tech-bounces at ecs.soton.ac.uk <eprints-tech-bounces at ecs.soton.ac.uk> on behalf of dago <dago.salas at gmail.com>
Sent: 14 August 2017 14:15:07
To: eprints-tech at ecs.soton.ac.uk
Subject: [EP-tech] URGENT: Dublin Core output issues
Hi everyone!
First, sorry for my English. :-D
My time is running out and I have not been able to do the following:
I need this output
<dc:creator id=?info:eu-repo/dai/mx/orcid/1234-5678-1234-5678-?>Juan P?rez P?rez</dc:creator>
Actually I have installed the ORCID support plugin https://bazaar.eprints.org/502/
But I do not know how to integrate the ORCID into an id.
Added to that, I need this too:
<dc:type>info:eu-repo/semantics/article</dc:type>
<dc:rights>info:eu-repo/semantics/openAccess</dc:rights>
As you see, basically is to comply with certain requirements of OpenAire (not all), for that I installed OPENAIRE compliance plugin:
https://github.com/orazionelson/openaire-compliance
[https://avatars1.githubusercontent.com/u/113308?v=4&s=400]<https://github.com/orazionelson/openaire-compliance>
GitHub - orazionelson/openaire-compliance: A plug in to ...<https://github.com/orazionelson/openaire-compliance>
github.com
openaire-compliance - A plug in to ensure repository is openAire compliant
But I feel that?s not working at all fine. I got only this:
<meta name="eprints.eu_type" content="info:eu-repo/semantics/article" />
<meta name="eprints.access_rights" content="info:eu-repo/semantics/openAccess" />
But no DC.type or DC.rights
Any ideas?
My eprints testing server is not for public, so I've attached the view-source for an item.
Greetings from M?xico.
--
Dagoberto Salas
dago.salas at gmail.com<mailto:dago.salas at gmail.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mailman.ecs.soton.ac.uk/pipermail/eprints-tech/attachments/20170814/a77fdf21/attachment.html