EPrints Technical Mailing List Archive

Message: #06771


< Previous (by date) | Next (by date) > | < Previous (in thread) | Next (in thread) > | Messages - Most Recent First | Threads - Most Recent First

Re: [EP-tech] URGENT: Dublin Core output issues


Thank you John!
And yes, I need works with OAI-PMH interface principally . My skills with Perl it's too basic, have mercy. :-)

Question: How can I see the DC metadata for an item? (the DublinCore export give me a plain text without metadata)

Thanks.

On Mon, Aug 14, 2017 at 10:13 AM, John Salter <J.Salter@leeds.ac.uk> wrote:

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@ecs.soton.ac.uk <eprints-tech-bounces@ecs.soton.ac.uk> on behalf of dago <dago.salas@gmail.com>
Sent: 14 August 2017 14:15:07
To: eprints-tech@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:
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@gmail.com

*** 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/




--
Dagoberto Salas
dago.salas@gmail.com