Another Excel to RDF converter for SKOS vocabs, but one that include profile-based validation of results.
Project description
VocExcel
Another Excel-to-RDF converter for SKOS vocabs, but one that:
- uses fixed templates to keep it simple
- meets particular SKOS profile outcomes (VocPub)
- is under active development, production use, and is commercially supported
An online version of VocExcel is available at https://tools.kurrawong.ai/tools/vocexcel.
Creating vocabularies
The process to create an RDF vocabulary from an Excel template is:
- Fill in a copy of an Excel template
- Process it
- Using one of the options, and export an RDF file
- You can choose to validate the RDF produced while processing
Templates
The template files in this repository’s vocexcel/templates/ folder are to be used to create vocabularies. The templates hopefully contain all the information needed to understand how to fill them in.
Use one Excel workbook per vocabulary.
Latest Template
- vocexcel/templates/VocExcel-template-090.xlsx
Unless you have a good reason to do something different, please use the latest version of the template.
Older templates still convert, so if you’ve used one and like it, keep using it.
Examples
Example filled-in templates versions are given in the tests/data/ folder. Just ensure you’re looking at examples prefixed with the same template version you are after, e.g. 0.8.10 = 0812.xlsx.
As per semantic versioning, a template of 0.8.5 will work with 0.8.10.
Processing
To process an Excel template, you will need to either:
- run the VocExcel Python script, or
- use an online tool
- for example https://tools.kurrawong.ai/tools/vocexcel
The Python script can also run as a Python module, i.e. within a larger Python workflow.
Installation
VocExcel uses uv package manager.
You can install VocExcel from PyPI, the Python package index: https://pypi.org/project/vocexcel
Or you can clone this repository and install VocExcel’s dependencies using uv or a similar tool, using the provided pyproject.toml file.
Running
As a command line script
The Python script convert.py in the vocexcel/ directory can be run on Windows/Unix/Linux/Mac systems like this:
python convert.py some-excel-file.xlsx
If you install this program using a Python packaging tool such as uv, then it will run like this:
vocexel some-excel-file.xlsx
An example, using one of the test data files to convert from Excel to RDF:
python convert.py tests/data/0812.xlsx
To convert the other way - RDF to Excel - from with you’ll get a v0.8.x template result:
python convert.py tests/data/085_rdf.ttl
The command line argument options can be found by typing:
python convert.py -h
They are:
usage: vocexcel [-h] [-i] [-o OUTPUTFILE] [input_file]
positional arguments:
input_file The Excel file to convert to a SKOS vocabulary in RDF or an RDF file to convert to an Excel file. (default: None)
options:
-h, --help show this help message and exit
-i, --info The version and other info of this instance of VocExcel. (default: False)
-o OUTPUTFILE, --outputfile OUTPUTFILE
An optionally-provided output file path. If not provided, output from Excel-> RDF is to standard out and RDF->Excel is input file with .xlsx file ending. (default: None)
As a Python library
The convert.py file uses the functions excel_to_rdf() and rdf_to_excel() to do conversions, so you can directly them in other Python programs by importing them like:
from vocexcel.convert import excel_to_rdf, rdf_to_excel
from pathlib import Path
rdf_to_excel(Path(".") / "path" / "to" / "vocab-file.xlsx")
# or
excel_to_rdf(Path(".") / "path" / "to" / "vocab-file.ttl")
Online
KurrawongAI maintains an online VocExcel tool at https://tools.kurrawong.ai/tools/vocexcel
License
This code is licensed using the BSD 3-Clause. See the LICENSE for the deed. Note that Excel is property of Microsoft.
Contact
Commercial support:
https://docs.kurrawong.ai/products/tools/vocexcel/
info@kurrawong.ai
Lead Developer:
Nicholas Car
Data Architect
KurrawongAI
nick@kurrawong.ai
Release Procedure
- update version number in pyprojects.toml
- update ref to latest template, if changed, in README.md
- Git commit all changes
- push to GitHub:
git push
- push to GitHub:
- add a Git tag matching the version number
- push tags to GitHub:
git push --tags
- push tags to GitHub:
- make a release on GitHub
- this will trigger a PyPI release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vocexcel-0.9.4.tar.gz.
File metadata
- Download URL: vocexcel-0.9.4.tar.gz
- Upload date:
- Size: 4.6 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a1c429c4ece4db443f7d376bc05cf4d9ff7baf078fb0f46ecf85d3b6489c6399
|
|
| MD5 |
8df31b7f1b67992c9e75b1b58ee33605
|
|
| BLAKE2b-256 |
5401ba99ce192ed2ef0825e42b1fc669b44c405a7e5a91e2af6e8df5c020e035
|
Provenance
The following attestation bundles were made for vocexcel-0.9.4.tar.gz:
Publisher:
pypi.yml on Kurrawong/VocExcel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vocexcel-0.9.4.tar.gz -
Subject digest:
a1c429c4ece4db443f7d376bc05cf4d9ff7baf078fb0f46ecf85d3b6489c6399 - Sigstore transparency entry: 1189984935
- Sigstore integration time:
-
Permalink:
Kurrawong/VocExcel@887844723f778154a75f6639848dde5e24d8cb0c -
Branch / Tag:
refs/tags/0.9.4 - Owner: https://github.com/Kurrawong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@887844723f778154a75f6639848dde5e24d8cb0c -
Trigger Event:
release
-
Statement type:
File details
Details for the file vocexcel-0.9.4-py3-none-any.whl.
File metadata
- Download URL: vocexcel-0.9.4-py3-none-any.whl
- Upload date:
- Size: 1.4 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
101e323bdc779f6bfade9f74d1a89f28b8df0e86849152bc8b28a950c3090837
|
|
| MD5 |
7932b6f38dca9f6388e2e9c455af2699
|
|
| BLAKE2b-256 |
4c5c7ee5cbdfc201cb64d1f368449b91676f902ce4b8a201a5ad742cd1ac7c6f
|
Provenance
The following attestation bundles were made for vocexcel-0.9.4-py3-none-any.whl:
Publisher:
pypi.yml on Kurrawong/VocExcel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
vocexcel-0.9.4-py3-none-any.whl -
Subject digest:
101e323bdc779f6bfade9f74d1a89f28b8df0e86849152bc8b28a950c3090837 - Sigstore transparency entry: 1189984938
- Sigstore integration time:
-
Permalink:
Kurrawong/VocExcel@887844723f778154a75f6639848dde5e24d8cb0c -
Branch / Tag:
refs/tags/0.9.4 - Owner: https://github.com/Kurrawong
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
pypi.yml@887844723f778154a75f6639848dde5e24d8cb0c -
Trigger Event:
release
-
Statement type: