Skip to main content

A Python package of RDF data manipulation functions that can be called from the command line or other software

Project description

Kurra

A Python package of RDF data manipulation and data management functions that can be called from the command line or other software.

This library uses the RDFLib under-the-hood to process RDF data. It supplies functions to:

  • manipulate local RDF files
  • send commands to RDF databases "triplestores"
  • SPARQL query files or databases

kurra is for convenience: the functions it provides are simple but kurra saves you having to reinvent wheels.

CLI app

kurra presents a Command Line Interface that can be used on Mac, Linux and Windows (WSL) command prompts.

The hierarchy of functions provided is:

  • db - run commands against RDF databases
    • list
    • create
    • upload
    • clear
    • delete
    • sparql
  • file - run commands on local RDF files
    • format
    • upload
    • quads
    • sparql
  • shacl
    • validate - SHACL validate a file
  • sparql - SPARQL query files or databases

Once you have installed kurra (see below), you can ask it to tell you what each command does and what inputs are needed by using the --help or just -h, command, e.g.:

kurra -h

which will return something like:

╭─ Options ─────────────────────────────────────────────────────────────────────────────────╮
│ --version             -v                                                                  │
│ --help                -h        Show this message and exit.                               │
╰───────────────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────────────╮
│ db       RDF database commands                                                            │
│ file     RDF file commands                                                                │
│ shacl    SHACL commands                                                                   │
│ sparql   SPARQL queries to local RDF files or a database                                  │
╰───────────────────────────────────────────────────────────────────────────────────────────╯

To find out more about the specific options within db, file, shacl & sparql, run the help command at the next level, like this:

kurra db -h

or

kurra file -h

etc. for shacl & sparql

To get further help for the particular commands. For db, you will see something like this:

 Usage: kurra db [OPTIONS] COMMAND [ARGS]...
                                
 RDF database commands. Currently only Fuseki is supported 
 
╭─ Options ─────────────────────────────────────────────────────────────────────────╮
│ --help  -h        Show this message and exit.                                     │
╰───────────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────────╮
│ list     Get the list of database repositories                                    │
│ create   Create a new database repository. Provide either the dataset name and... │
│ upload   Upload file(s) to a database repository                                  │
│ clear    Clear a database repository                                              │
│ delete   Delete a database repository                                             │
│ sparql   Query a database repository                                              │
╰───────────────────────────────────────────────────────────────────────────────────╯

Installation

CLI App

The recommended way to manage and run Python CLI apps is to use the Python package uv which you will need to install first, see the uv installation instructions. then:

uv tool install kurra

Now you can invoke kurra anywhere in your terminal as long as ~/.local/bin is in your PATH.

See the uv documentation on installing tools for more information.

Library

You can also install kurra as a Python library for used of its functions in other applications

pip install kurra

Use the relevant command to add dependencies to your project if you are using a tool like uv, poetry, or conda.

Then import it and use in your code, e.g. for the format functions:

from kurra.file import _format_file, make_dataset, export_quads

Development

Install the Poetry project and its dependencies:

task install

Format code:

task code

To build a new release:

  1. format all code: task code
  2. test: task test
  3. update the version in pyproject.toml
  4. commit & push all changes
  5. git tag with the same version number
  6. push the tag - git push --tags
  7. build the release - uv build
  8. publish the release on PyPI - uv publish -u __token__ -p {TOKEN}, {TOKEN} is an actual token
  9. make the release on GitHub - https://github.com/Kurrawong/kurra/releases
  • don't forget to add the dist zips & wheels to it
  1. update version number in pyproject.toml to next alpha & push

License

BSD-3-Clause license. See LICENSE.

Contact & Support

kurra is maintained by:

KurrawongAI
http://kurrawong.ai
info@kurrawong.ai

Please contact them for all use & support issues.

You can also log issues at the kurra issue tracker:

Release Procedure

  • update version in pyproject.toml
  • commit all updates
  • tag with version
  • uv build
  • uv publish -u __token__ -p {TOKEN}
  • make a GitHub Release
    • add release notes

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

kurra-2.0.3.tar.gz (114.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kurra-2.0.3-py3-none-any.whl (23.9 kB view details)

Uploaded Python 3

File details

Details for the file kurra-2.0.3.tar.gz.

File metadata

  • Download URL: kurra-2.0.3.tar.gz
  • Upload date:
  • Size: 114.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.1

File hashes

Hashes for kurra-2.0.3.tar.gz
Algorithm Hash digest
SHA256 5f7c3c3f8e33b8c989c566a244188c0f0cd98766e0d5ff9870d555e9b60497c3
MD5 f277218d829f85afc18b5af1c0982b42
BLAKE2b-256 9c71ed7380ccf1f25ea2972b3bc8b02fbc0db584ae3b217519909c64d638271b

See more details on using hashes here.

File details

Details for the file kurra-2.0.3-py3-none-any.whl.

File metadata

  • Download URL: kurra-2.0.3-py3-none-any.whl
  • Upload date:
  • Size: 23.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.1

File hashes

Hashes for kurra-2.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 f8a90e31db127f398cb4562b2b4f517357ab6d55f5d95d9a81cb04d00b8789ee
MD5 7730bf632db6b97e448cd1a7621a9b73
BLAKE2b-256 c4670da0bb6b72b3f5e997f7d63a1dbfbf6b7cfda6972cfee0530bf207b43e65

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page