Skip to main content

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
  • SHACL validate or apply rules to RDF data

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.

Once you have installed kurra (see below), you can ask it to tell you what commands it supports 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
 
╭─ Options ─────────────────────────────────────────────────────────────────────╮
│ --help  -h        Show this message and exit.                                 │
╰───────────────────────────────────────────────────────────────────────────────╯
╭─ Commands ────────────────────────────────────────────────────────────────────╮
│ sparql   SPARQL query an RDF database                                         │
│ fuseki   Fuseki database commands                                             │
│ gsp      Graph Store Protocol commands                                        │
│ olis     Olis commands                                                        │
╰───────────────────────────────────────────────────────────────────────────────╯

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 reformat, make_dataset, export_quads

Development

Install the Poetry project and its dependencies:

task install

Format code:

task format

Test:

task test

You can test the command like app while in development with:

uv tool kurra {COMMANDS}

With {COMMANDS} as per the usual kurra CLI.

Releasing

To build a new release:

  • format code: task format
  • pass tests: task test
  • update version in pyproject.toml
  • Git commit & push all updates
  • Git tag with release version
    • git tag 2.2.4
    • git push --tags
  • make GitHub release
    • this will trigger pypi.yml workflow to publish to PyPI
  • update version in pyproject.toml to next release alpha and push
    • with message 2.2.4 post release

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:

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.3.7.tar.gz (111.1 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.3.7-py3-none-any.whl (34.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kurra-2.3.7.tar.gz
  • Upload date:
  • Size: 111.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kurra-2.3.7.tar.gz
Algorithm Hash digest
SHA256 8964664a41a3c2afd5c3bbb04e33af80e16989422eda0b2ecb4f80920c9b77d3
MD5 2b09c57588aa9aa5707236192d53c6a0
BLAKE2b-256 3948b248532a391b090d0af62b811147382fcfb21ff9b3db566e46713b747af5

See more details on using hashes here.

Provenance

The following attestation bundles were made for kurra-2.3.7.tar.gz:

Publisher: pypi.yml on Kurrawong/kurra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: kurra-2.3.7-py3-none-any.whl
  • Upload date:
  • Size: 34.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for kurra-2.3.7-py3-none-any.whl
Algorithm Hash digest
SHA256 42d695a07f03229ead43f5eb1130283d9bcfc2bdbe006b3fa6255dfabc9d21b3
MD5 4b870e5916e12eb035b18c4390e7bf14
BLAKE2b-256 d712c1f878500a168182bfbdc4e9427fa9bcd4c99898f614d4650312a21ab341

See more details on using hashes here.

Provenance

The following attestation bundles were made for kurra-2.3.7-py3-none-any.whl:

Publisher: pypi.yml on Kurrawong/kurra

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

3.0.6

2 files

3.0.5

2 files

3.0.4

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.4.0

2 files

2.3.8

2 files

This release

2.3.7 This release

2 files

2.3.6

2 files

2.3.5

2 files

2.3.4

2 files

2.3.3

2 files

2.3.2

2 files

2.3.1

2 files

2.3.0

2 files

2.2.7

2 files

2.2.6

2 files

2.2.5

2 files

2.2.4

2 files

2.2.3

2 files

2.2.2

2 files

2.2.1

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.7

2 files

2.0.6

2 files

2.0.5

2 files

2.0.4

2 files

2.0.3

2 files

2.0.2

2 files

2.0.1

2 files

2.0.0

2 files

1.6.0

2 files

1.5.9

2 files

1.5.8

2 files

1.5.7

2 files

1.5.6

2 files

1.5.5

2 files

1.5.4

2 files

1.5.3

2 files

1.5.2

2 files

1.5.1

2 files

1.5.0

2 files

1.4.8

2 files

1.4.7

2 files

1.4.6

2 files

1.4.5

2 files

1.4.3

2 files

1.4.2

2 files

1.4.1

2 files

1.3.0

2 files

1.2.0

2 files

1.1.0

2 files

1.0.3

2 files

1.0.2

2 files

1.0.1

2 files

1.0.0

2 files

0.6.3

2 files

0.6.2

2 files

0.6.1

2 files

0.6.0

2 files

Supported by

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