OJS3: Supporting agencies are not displaying in the OAI

Hi, I need to show the Supporting Agencies in the OAI registers, but I don’t know how can I do it. I know than the file is plugins/metadata/dc11/filter/Dc11SchemaArticleAdapter.inc.php but I don’t know how can I get the Supporting Agencies, Can you help me ?

@asmecher can you help me in this topic ?

Hi @JCar,

What version of OJS 3.x are you working with?

Regards,
Alec Smecher
Public Knowledge Project Team

the version is 3.1.1.4.

Hi @JCar,

You can see e.g. plugins/reports/articles/ArticleReportPlugin.inc.php, which generates the articles report:

$submissionAgencyDao = DAORegistry::getDAO('SubmissionAgencyDAO');

[...]

case $index == 'agencies':
    $agencies = $submissionAgencyDao->getAgencies($article->getId(), array($article->getLocale()));
    $columns[$index] = join(', ', $agencies[$article->getLocale()]);
    break;

You can see here the SubmissionAgencyDAO being used to fetch and concatenate a list of contributing agencies for a submission.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher,
I tried to do but never show me the Supporting Agencies…I only can I do than show the supporting agencies in the same place with keywords in the file /plugins/metadata/dc11/filter/Dc11schemaArticleAdapter.inc.php.

            $submissionAgencyDao = DAORegistry::getDAO('SubmissionAgencyDAO');
            $agencies=$submissionAgencyDao->getAgencies($article->getId(), array(AppLocale::getLocale()));
            $agenciesStrings = array_map(function($e){ return implode('; ', $e); }, $agencies);

            $subjectDao = DAORegistry::getDAO('SubmissionSubjectDAO');
            $subjects = $subjectDao->getSubjects($article->getId(), $journal->getSupportedSubmissionLocales());
            $subjectsStrings = array_map(function($e){ return implode('; ', $e); }, $subjects);
            $dcSubjects = array_merge_recursive(
                    (array) $disciplinesStrings,
                    (array) $keywordsStrings,
                    (array) $agenciesStrings,
                    (array) $subjectsStrings
            );

            $this->_addLocalizedElements($dc11Description, 'dc:subject', $dcSubjects);

when I tried to do in other place I couldn’t to show the informations. I don’t know what is the correct label for Agencies supporting in the field ‘dc:agencies’ and how can I do it in other place. can you help me ?

Hi @JCar,

If you wanted to add a dc:agencies metadata property, you would need to modify the Dublin Core metadata schema definition (lib/pkp/plugins/metadata/dc11/schema/PKPDc11Schema.inc.php). However, that would be breaking the standard, so I don’t recommend it.

Regards,
Alec Smecher
Public Knowledge Project Team

Hi @asmecher ,
Many thanksI understand than If I do that, I would breaking the standard and I don’t like to do. How can I write the correct field for supporting Agencies in the OAI ? looks the fields than I have at the moment.

How can I do write in the list a new field with the correct standar for supporting agencies?

Hi @JCar,

That’s more a question about the unqualified Dublin Core standard than OJS; see e.g. https://guides.library.ucsc.edu/c.php?g=618773&p=4306386 for details.

Regards,
Alec Smecher
Public Knowledge Project Team

1 Like