Skip to main content

Python bindings for Rudof

Project description

Rudof Python bindings

The Python bindings for rudof are called pyrudof. They are available at pypi.

For more information, you can access the readthedocs documentation. We keep several tutorials about rudof as Jupyter notebooks in: [https://rudof-project.github.io/tutorials].

After compiling and installing this module, a Python library called pyrudof should be available.

Build the development version

This module is based on pyo3 and maturin.

To build and install the development version of pyrudof you need to clone this git repository, go to the python directory (the one this README is in) and run:

pip install maturin

followed by:

pip install .

If you are using .env, you can do the following:

python3 -m venv .venv

followed by:

source .venv/bin/activate

or

source .venv/bin/activate.fish

and once you do that, you can locally install que package as:

pip install -e .

Running the tests

Go to the tests folder:

cd tests

and run:

python3 -m unittest discover -vvv

Using rudof_generate

The pyrudof package includes bindings for rudof_generate, which allows you to generate synthetic RDF data from ShEx or SHACL schemas.

Basic Example

import pyrudof

# Create configuration
config = pyrudof.GeneratorConfig()
config.set_entity_count(100)
config.set_output_path("output.ttl")
config.set_output_format(pyrudof.OutputFormat.Turtle)

# Create generator
generator = pyrudof.DataGenerator(config)

# Load schema and generate data
generator.run("schema.shex")

Configuration Options

The GeneratorConfig class provides many configuration options:

config = pyrudof.GeneratorConfig()

# Generation parameters
config.set_entity_count(1000)           # Number of entities to generate
config.set_seed(42)                     # Random seed for reproducibility

# Schema format
config.set_schema_format(pyrudof.SchemaFormat.ShEx)  # or SchemaFormat.SHACL

# Output configuration
config.set_output_path("data.ttl")
config.set_output_format(pyrudof.OutputFormat.Turtle)  # or OutputFormat.NTriples
config.set_compress(False)              # Whether to compress output
config.set_write_stats(True)            # Write generation statistics

# Cardinality strategy
config.set_cardinality_strategy(pyrudof.CardinalityStrategy.Balanced)
# Options: Minimum, Maximum, Random, Balanced

# Parallel processing
config.set_worker_threads(4)            # Number of worker threads
config.set_batch_size(100)              # Batch size for processing
config.set_parallel_writing(True)       # Enable parallel file writing
config.set_parallel_file_count(4)       # Number of output files (when parallel)

Loading Schemas

You can load schemas in different ways:

# Load ShEx schema
generator.load_shex_schema("schema.shex")

# Load SHACL schema
generator.load_shacl_schema("shapes.ttl")

# Auto-detect schema format
generator.load_schema_auto("schema_file")

# Then generate data
generator.generate()

Complete Workflow

The run() method provides a convenient way to load a schema and generate data in one step:

# Auto-detect format
generator.run("schema.shex")

# Specify format explicitly
generator.run_with_format("shapes.ttl", pyrudof.SchemaFormat.SHACL)

Configuration Files

You can also load configuration from TOML or JSON files:

# Load from TOML
config = pyrudof.GeneratorConfig.from_toml_file("config.toml")

# Load from JSON
config = pyrudof.GeneratorConfig.from_json_file("config.json")

# Save configuration
config.to_toml_file("saved_config.toml")

Available Enums

  • SchemaFormat: ShEx, SHACL
  • OutputFormat: Turtle, NTriples
  • CardinalityStrategy: Minimum, Maximum, Random, Balanced

For more examples, see the examples/generate_example.py file.

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 Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyrudof-0.1.142-cp37-abi3-win_amd64.whl (8.0 MB view details)

Uploaded CPython 3.7+Windows x86-64

pyrudof-0.1.142-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (11.5 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ x86-64

pyrudof-0.1.142-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (11.8 MB view details)

Uploaded CPython 3.7+manylinux: glibc 2.17+ ARM64

pyrudof-0.1.142-cp37-abi3-macosx_11_0_arm64.whl (8.4 MB view details)

Uploaded CPython 3.7+macOS 11.0+ ARM64

pyrudof-0.1.142-cp37-abi3-macosx_10_12_x86_64.whl (8.9 MB view details)

Uploaded CPython 3.7+macOS 10.12+ x86-64

File details

Details for the file pyrudof-0.1.142-cp37-abi3-win_amd64.whl.

File metadata

File hashes

Hashes for pyrudof-0.1.142-cp37-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 01aeab2be544478480e94282e73a2e3d82e48f8f8fad16a8d84e80e039b563e5
MD5 6cef15bb5450b25d06627dac5cd7b014
BLAKE2b-256 4fa80a50e95203699c462eb2f85c683d14d2bf498f2a9fbb63360ce5a04df34e

See more details on using hashes here.

File details

Details for the file pyrudof-0.1.142-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyrudof-0.1.142-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4a28c84012e582f8643bb968fed4bb01efbae5ef106cf0156377098182761de7
MD5 53b594eb221dd266cbb086818cd14834
BLAKE2b-256 c80ab32c3f46f94086296f9579ef302b03c6111c864f2c27aed0cb8b15cfd5b1

See more details on using hashes here.

File details

Details for the file pyrudof-0.1.142-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for pyrudof-0.1.142-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 0b62661605bd53fd0fd89b0f908ea0cce845fe5ada565db348235c09c3fba550
MD5 e94912b56d14b5c93ac4f28cfac50aec
BLAKE2b-256 69e413f219b88667b5e07df4fe514fe4913bf6bc9da181218f37bda90289ad8b

See more details on using hashes here.

File details

Details for the file pyrudof-0.1.142-cp37-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyrudof-0.1.142-cp37-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ccbd21f433f5a531aea693f0aeef62e4e6457d6f3b6947b07332311653e1e1b5
MD5 c68eaede011de83dbae1d99a7f694b31
BLAKE2b-256 db7583e4811274f0689e2a3028069208be05017913c23bfa63f32553c4a43d17

See more details on using hashes here.

File details

Details for the file pyrudof-0.1.142-cp37-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for pyrudof-0.1.142-cp37-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6a19024fc3e64554b34d7b1562bdb885b6859e7511ee03b19b4a4069e48a3981
MD5 436edabdd6de622c29915b8826c7fb39
BLAKE2b-256 7653a7832d691062b4f2a5bcf807009b652b77d75f1576b3c592548521481189

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