Wikidata-powered keyword field for CKAN
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
ckanext
docs
.gitignore
LICENSE.txt
MANIFEST.in
README.rst
requirements.txt
setup.cfg
setup.py

README.rst

ckanext-wikidatakeyword

This extension adds Wikidata-powered keyword field in CKAN datasets.

This new extra field "keywords" will appear in the dataset form by the form snippet.

docs/keywords-form.png

When displayed, each keyword will appear by the display snippet, eg.:

docs/keywords-display.png

Requirements

This extension is only tested in CKAN 2.7 and later with ckanext-scheming installed.

Installation

To install ckanext-wikidatakeyword:

  1. Activate your CKAN virtual environment, for example:

    . /usr/lib/ckan/default/bin/activate
    
  2. Install the ckanext-wikidatakeyword Python package into your virtual environment:

    pip install -e 'git+https://github.com/depositar-io/ckanext-wikidatakeyword.git#egg=ckanext-wikidatakeyword'
    
  3. Install Python dependencies:

    pip install -r /usr/lib/ckan/default/src/ckanext-wikidatakeyword/requirements.txt
    pip install -r /usr/lib/ckan/default/src/ckanext-scheming/requirements.txt
    
  4. Add wikidatakeyword and scheming_datasets to the ckan.plugins setting in your CKAN config file (by default the config file is located at /etc/ckan/default/production.ini).

  5. Add ckanext.wikidatakeyword:presets.json to your scheming.presets configuration settings:

    scheming.presets = ckanext.scheming:presets.json
                       ckanext.wikidatakeyword:presets.json
    
  6. A keyword field in a scheming schema will look something like (/usr/lib/ckan/default/src/ckanext-scheming/ckanext/scheming/ckan_dataset.json if you are not using a custom extension):

    {
      "field_name": "keywords",
      "label": "Keywords",
      "preset": "wikidata_keyword"
    }
    
  7. Add a file templates/scheming/package/read.html in your custom extension (or modify /usr/lib/ckan/default/src/ckanext-scheming/ckanext/scheming/templates/scheming/package/read.html if you are not using a custom extension):

    {% ckan_extends %}
    
    {% block package_additional_info %}
      {% if pkg.keywords %}
        {% snippet 'wikidatakeyword/snippets/wikidatakeyword_list.html', keywords=pkg.keywords %}
      {% endif %}
      {{ super() }}
    {% endblock %}
    
  8. Add a file templates/scheming/package/snippets/additional_info.html in your custom extension (or modify /usr/lib/ckan/default/src/ckanext-scheming/ckanext/scheming/templates/scheming/package/snippets/additional_info.html if you are not using a custom extension):

    {% ckan_extends %}
    
    {% block package_additional_info %}
      {% do exclude_fields.append('keywords') %}
      {{ super() }}
    {% endblock %}
    
  9. Add the new field in your CKAN Solr schema file (by default the config file is located at /usr/lib/ckan/default/src/ckan/ckan/config/solr/schema.xml) between the <fields> tag:

    <field name="keywords_facet" type="string" indexed="true" stored="true" multiValued="true"/>
    
  10. Restart CKAN and Solr. For example if you've deployed CKAN with Apache on Ubuntu:

    sudo service jetty8 restart
    sudo service apache2 reload