Information service UNESCO Thesaurus

Hello everyone, I am a long time CA user and it has been running well so far, but it is incomplete if the information presented without the service information from UNESCO Thesaurus.

My question is how can UNESCO Thesaurus be integrated with CA as well as AAT and Wikidata?

Thank you,


  • Since it's accessible via a SPARQL endpoint, it should be possible to integrate it using code along the lines of what is used for the Getty vocabularies (AAT, TGN, ULAN). However, we have no plans to integrate the UNESCO Thesaurus at this time.


  • Thanks for the answer, so do we just customize the providence/app/conf/linked_data.conf directory?  

  • Hi,

    There is a "not easy" solution for that... I saw that UNESCO Thesaurus was available through a Tematres server here:

    But as you see here it was not updated after 2016... But that's mean it is possible to create an updated Tematres server for UNESCO Thesaurus...

    And once you made (or found) it, there exists a plugin made by Ideesculture (Thank you Gauthier): Tematres Information Service for CollectiveAccess.

    I know, it is not easy... but maybe this will help you.

  • thanks for all the information, I'll try it

  • Hi,

    I've tried the solution I've proposed you. Here are details:

    Step 1. Install the Tematres Information Service for CollectiveAccess as explained in its Installation section.

    Step 2. I've slightly modified this plugin to adapt in my case, because I wanted to show thesaurus terms followed by numeric identifier between parenthesis, so, in the file Tematres.php I changed this:

           foreach ($va_results as $va_result) {

              $va_return['results'][] = array(

              'label' => $va_result['term_id'] . " – " . $va_result['string'],

              'url' => $vs_url . "/index.php?tema=" . $va_result['term_id'],

              'idno' => $va_result['term_id'] * 1,



    into this:

          foreach ($va_results as $va_result) {

              $va_return['results'][] = array(

                  'label' => $va_result['string']." (".$va_result['term_id'].")",

                  'url' => $vs_url2 . "/index.php?tema=" . $va_result['term_id'],

                  'idno' => $va_result['term_id'] * 1,



    and just after the line 90:

           $vs_url = caGetOption('url', $pa_settings, '');

    I added the line:

          $vs_url2 = $vs_url;

    because I wanted an URL pointing directly to the "human readable" term in my Tematres server.

    Step 3. I created a metadata for objects named UNESCO_thesaurus, with type InformationService; choosen service Tematres, and Tematres service URL:  (because I've installed the latest version, 3.2, of Tematres server accessible at this URL, and imported the latest version of UNESCO Thesaurus in skos format, file unesco-thesaurus.rdf, but only in french.)

    Step 4. I added the metadata somewhere in the UI of objects.

    Step 5. I edited an object and added some terms in the metadata.

    Step 6. In order to display this new field in Pawtucket, I edited the ca_objects_default_html.php file. Here is the code I added somewhere:

                    {{{<ifcount code="ca_objects.UNESCO_thesaurus" min="1" max="1"><br/><b>Domaine</b> (<a href="" target="_blank">Thésaurus de l'UNESCO</a>) : </ifcount>}}}

                    {{{<ifcount code="ca_objects.UNESCO_thesaurus" min="2"><br/><b>Domaines</b> (<a href="" target="_blank">Thésaurus de l'UNESCO</a>) : </ifcount>}}}

                {{{<unit relativeTo="ca_objects.UNESCO_thesaurus" delimiter=" ; "><a href="^ca_objects.UNESCO_thesaurus.url" target="_blank" >^ca_objects.UNESCO_thesaurus</a></unit>}}}

    Step 7. Flush the cache of Pawtucket (delete all files in app/tmp)

    You can see the result for just one object in my website. It is in french, so you have to adapt...

    You can see that, when you click on a term, you go to the page of this term in the Tematres server.

    Hope this will help you. But I proved it is possible 😉

  • thank you very much ,the example site above is what I was expecting,

    after I tried using the plugin from tematres that I downloaded and customized, there was a problem that the list of service information did not appear in the metadata. The CA that I run is version 1.7.14. is there an adjustment to the source code of the tematres plugin with my CA version? sorry I'm not very expert in programming.  😥

  • edited March 19


    I'm actually using Providence 1.7.5. I hope for you that Tematres plugin is compatible with 1.7.14. @gautier could confirm that.

    Try to flush the Providence cache files, and try again, just to see... (Delete all files inside /app/tmp/ directory.) You'll have to re-login after that.

    Here is a screen capture of what is displayed when I choose InformationService.

    EDIT: I've just downloaded the 1.7.14 version to see a difference with 1.7.5. It seems that some directories in Providence has changed their path. In 1.7.5. the path was /app/lib/core/Plugins/InformationService/

    In 1.7.14, the path is: app/lib/Plugins/InformationService/

    So you have to adapt the path inside the Tematres.php. Try to change these lines:

    require_once __CA_LIB_DIR__ . "/core/Plugins/InformationService/BaseInformationServicePlugin.php";
    require_once __CA_LIB_DIR__ . "/core/Plugins/IWLPlugInformationService.php";   



  • I really thank you very much for the explanation above, this will really help me to learn and dig deeper into the current CA features 😀

  • Hi,

    I have made small adjustments to the tematress source code with the input above and now it can run on my CA which turned out to be version 1.7.17. here is the appearance and my Tematres file. once again thank you for the answers that have been given

  • Well done! You can now try to install your own Tematres server and import the UNESCO thesaurus. Or you can use mine but I imported the French part only. I can also import the English part but I do not guarantee that it will be permanently available.

Sign In or Register to comment.