Skip to main content

Materialize RDF knowledge graphs from RML/YARRRML mappings with Morph-KGC compatibility

Project description

worph logo

worph

CI PyPI version Python License: Apache-2.0

worph is a public project at wordlift/worph, forked from morph-kgc. It keeps compatibility with retained morph_kgc imports while evolving the primary implementation under src/worph/.

Table of Contents

Overview

worph provides RML/YARRRML materialization flows with compatibility for existing morph_kgc consumers. The codebase includes regression suites and compatibility shims used in CI to validate behavior against retained tests.

Repository Layout

  • src/worph/: primary package implementation
  • .ci_shims/morph_kgc/: compatibility shim re-exporting from worph
  • test/: regression and issue-driven test suites
  • examples/: runnable configs and sample scripts
  • specs/: compatibility, playbook, and agent-guidance documents
  • specs/agents/: specialist subagent briefs used during planning/review
  • docs/: operational documentation

Quick Start

uv sync --extra test
uv run python -m worph examples/csv/config.ini

CLI Commands

Run using the package entrypoint:

uv run worph examples/json/config.ini

Equivalent module form:

uv run python -m worph examples/xml/config.ini

Testing

Run full CI-aligned tests with shim compatibility enabled:

PYTHONPATH=.ci_shims:src uv run pytest -q

Run the explicit shim validation test:

PYTHONPATH=.ci_shims:src uv run pytest -q test/test_ci_shim_uses_worph.py

Compatibility

Some retained tests still import morph_kgc. CI sets PYTHONPATH=.ci_shims:src so imports resolve to .ci_shims/morph_kgc first, then delegate to worph.

XPath note (breaking change):

  • worph no longer auto-rewrites non-standard XPath shorthand attribute syntax.
  • Mappings must use standard XPath syntax (for example foo/@bar, not foo@bar).
  • Migration examples:
    • country@name -> country/@name
    • neighbor@name -> neighbor/@name

Documentation

Release

Publishing to PyPI is handled inside .github/workflows/ci.yml.

  • Trigger: push a version tag like 0.1.9 or v0.1.9
  • Gate: publish job runs only after test-and-examples succeeds
  • Auth: PyPI Trusted Publisher (OIDC)

Trusted Publisher settings on pypi.org:

  • Owner: wordlift
  • Repository: worph
  • Workflow name: ci.yml
  • Environment: empty (unless you add one in GitHub)

License

All code and documentation in this repository are licensed under the Apache License 2.0.

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

worph-0.1.9.tar.gz (563.1 kB view details)

Uploaded Source

Built Distribution

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

worph-0.1.9-py3-none-any.whl (42.3 kB view details)

Uploaded Python 3

File details

Details for the file worph-0.1.9.tar.gz.

File metadata

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

File hashes

Hashes for worph-0.1.9.tar.gz
Algorithm Hash digest
SHA256 eff1bfbb95b0b9fbbeeab7e6c4b55c106d1cd3b60404cc55f47484f0c4bba861
MD5 87095571abdb610d07d07a3b5a2c7a54
BLAKE2b-256 3045aa6f5afa40c107985693282a7f6367c729916968e1026c564407a87b6f6f

See more details on using hashes here.

Provenance

The following attestation bundles were made for worph-0.1.9.tar.gz:

Publisher: ci.yml on wordlift/worph

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

File details

Details for the file worph-0.1.9-py3-none-any.whl.

File metadata

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

File hashes

Hashes for worph-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 5fc881e4a42b34e12ac4bc1b71063ca8c7a6b98761522765d03c16f92a7325f0
MD5 46a8f35f0f5a626d1db2381543168591
BLAKE2b-256 25aa9f621fb5fb30a1e5dda5bc26983417bc2ad32eef34fd7564f333824b43ea

See more details on using hashes here.

Provenance

The following attestation bundles were made for worph-0.1.9-py3-none-any.whl:

Publisher: ci.yml on wordlift/worph

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

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