[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[EP-tech] URGENT: Dublin Core output issues

Hi Dago,
I'll try and make the Perl bits easy? Are you OK with XML, and metadata stuff (if not, some of the stuff below may need more explanation!)
For what you are trying to do, has someone specified a metadata format that your data should be available in (e.g. OpenAire uses the 'oai_datacite' format)?
If not, and you're trying to create our own, I'd suggest making a new metadata prefix - again, in case something is trying to harvest the oai_dc profile (which should be valid against the DC profile).

Firstly, a quick OAI-PMH summary - so you can get to the DC representation:

For the OAI-PMH interface, go to:

There should be a 'sample OAI identifier' on the page - something like 'oai:your.server.name:1234'
Make a note of this - it's useful to get to specific records in the OAI-PMH interface - outlined below.

If you now go to:
You should be able to see the 'oai_dc' format listed - and some others. The metadata prefixes shown can be used for the parameter in the URL below.

Normally OAI-PMH is used to get many records, but you can get one at a time (very useful for testing!) using a URL like:
using the identifier format you found from the 'Identify' URL.

In a browser, the response will be styled using an XSLT. If you view the source, you should be able to see the XML - which will include some OAI sections, and the oai_dc formatted output in the <metadata>element.

Now, for the 'getting the ORCIDs in' part. This will make a new metadata profile - oai_dc_orcids.
I haven't changed the other parts of the DC data for the other OpenAire type sections - hopefully you'll be able to do this (let me know if you can't!).
If you save this: https://gist.github.com/jesusbagpuss/134f0f1bd908e98878c3567cf7fbbd91
to [EPRINTS_ROOT]/archives/[ARCHIVEID]/cfg/plugins/EPrints/Plugin/Export/OAI_DC_ORCID.pm
Then run:
[EPRINTS_ROOT]/bin/epadmin test [ARCHIVEID]
-hopefully it will report 'OK'.
Then re-start Apache, and try visiting e.g.:
(note the metadataPrefix oa_dc_orcid is the same as the one in the file you just created).

If this works, and the source shows the orcid as expected, you should be able to update that file to add the other elements.

Sorry - that's quite a lot of information. If you need more help, you know where we are :o)


From: eprints-tech-bounces at ecs.soton.ac.uk [mailto:eprints-tech-bounces at ecs.soton.ac.uk] On Behalf Of dago
Sent: 14 August 2017 16:56
To: eprints-tech at ecs.soton.ac.uk; John Salter <J.Salter at leeds.ac.uk>
Subject: 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)


On Mon, Aug 14, 2017 at 10:13 AM, John Salter <J.Salter at leeds.ac.uk<mailto:J.Salter at 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:
(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:

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<http://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!


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

As you see, basically is to comply with certain requirements of OpenAire (not all), for that I installed OPENAIRE compliance plugin:
[Image removed by sender.]<https://github.com/orazionelson/openaire-compliance>

GitHub - orazionelson/openaire-compliance: A plug in to ...<https://github.com/orazionelson/openaire-compliance>
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>

*** 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 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/cd671d70/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image001.jpg
Type: image/jpeg
Size: 1100 bytes
Desc: image001.jpg
Url : http://mailman.ecs.soton.ac.uk/pipermail/eprints-tech/attachments/20170814/cd671d70/attachment-0001.jpg