ckanext-jena is an extension for enabling the semantic aspect of CKAN with Apache Jena.
This extension provides an ability to let users store a certain semantic resource (e.g. rdf, ttl, owl) in Apache Jena and perform SPARQL semantic queries.
Notes:
- Apache Jena and Fuseki server need to be running.
- jena_search_sparql api can be called with
resource_idandqparameters for semantic queries.
This extension was developed and tested under CKAN-2.7.3 and Apache Jena-3.9.0
To install ckanext-jena:
Activate your CKAN virtual environment, for example:
. /usr/lib/ckan/default/bin/activate
Install the ckanext-jena Python package into your virtual environment:
pip install ckanext-jena
Add
jenasetting in your CKAN config file (by default the config file is located at/etc/ckan/default/production.ini) as follows:ckan.plugins = jena <other-plugins> ckan.jena.fuseki.url = http://127.0.0.1:3030/ ckan.jena.fuseki.username = admin ckan.jena.fuseki.password = admin
Restart CKAN. For example if you've deployed CKAN with Apache on Ubuntu:
sudo service apache2 reload
To install ckanext-jena for development, activate your CKAN virtualenv and do:
git clone https://github.com/etri-odp/ckanext-jena.git cd ckanext-jena python setup.py develop pip install -r dev-requirements.txt
To run the tests, do:
nosetests --nologcapture --with-pylons=test.ini
To run the tests and produce a coverage report, first make sure you have
coverage installed in your virtualenv (pip install coverage) then run:
nosetests --nologcapture --with-pylons=test.ini --with-coverage --cover-package=ckanext.jena --cover-inclusive --cover-erase --cover-tests
ckanext-jena should be available on PyPI as https://pypi.python.org/pypi/ckanext-jena. If that link doesn't work, then you can register the project on PyPI for the first time by following these steps:
Create a source distribution of the project:
python setup.py sdist
Register the project:
python setup.py register
Upload the source distribution to PyPI:
python setup.py sdist upload
Tag the first release of the project on GitHub with the version number from the
setup.pyfile. For example if the version number insetup.pyis 0.0.1 then do:git tag 0.0.1 git push --tags
This work was supported by Institute for Information & communications Technology Promotion (IITP) grant funded by the Korea government (MSIT) (No.2017-00253, Development of an Advanced Open Data Distribution Platform based on International Standards)