This extension adds Wikidata-powered keyword field in CKAN datasets.
This new extra field "Wikidata Keywords" will appear in the dataset form by the form snippet.
When displayed, each keyword will appear by the display snippet, eg.:
This extension is only tested in CKAN 2.9 and later with ckanext-scheming installed.
To install ckanext-wikidatakeyword:
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
Install the ckanext-wikidatakeyword Python package into your virtual environment:
pip install -e 'git+https://github.com/depositar/ckanext-wikidatakeyword.git#egg=ckanext-wikidatakeyword'
Install Python dependencies:
pip install -r /usr/lib/ckan/default/src/ckanext-wikidatakeyword/requirements.txt
Add
wikidatakeyword
andscheming_datasets
to theckan.plugins
setting in your CKAN config file (by default the config file is located at/etc/ckan/default/ckan.ini
).Add
ckanext.wikidatakeyword:presets.json
to your scheming.presets configuration settings:scheming.presets = ckanext.scheming:presets.json ckanext.wikidatakeyword:presets.json
A keyword field in a scheming schema will look something like (
/usr/lib/ckan/default/src/ckanext-scheming/ckanext/scheming/ckan_dataset.yaml
if you are not using a custom extension):- field_name: keywords
label: Wikidata Keywords preset: wikidata_keyword
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 %}
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 %}
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"/>
Restart CKAN and Solr. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service jetty8 restart sudo service apache2 reload