Skip to main content

Exports from tables to Semantic Knowledge Graphs, with a simple declarative mapping.

Project description

OntoWeaver

OntoWeaver is a tool for importing table data in Semantic Knowledge Graphs (SKG) databases.

OntoWeaver allows writing a simple declarative mapping to express how columns from a Pandas table are to be converted as typed nodes or edges in an SKG.

It provides a simple layer of abstraction on top of Biocypher, which remains responsible for doing the ontology alignment, supporting several graph database backends, and allowing reproducible & configurable builds.

With a pure Biocypher approach, you would have to write a whole adapter by hand, with OntoWeaver, you just have to express a mapping in YAML, looking like:

row: # The meaning of an entry in the input table.
   map:
      column: <column name in your CSV>
      to_subject: <ontology node type to use for representing a row>

transformers: # How to map cells to nodes and edges.
    - map: # Map a column to a node.
        column: <column name>
        to_object: <ontology node type to use for representing a column>
        via_relation: <edge type for linking subject and object nodes>
    - map: # Map a column to a property.
        column: <another name>
        to_property: <property name>
        for_object: <type holding the property>

metadata: # Optional properties added to every node and edge.
    - source: "My OntoWeaver adapter"
    - version: "v1.2.3"

Installation

The project is written in Python and uses Poetry. You can install the necessary dependencies in a virtual environment like this:

git clone https://github.com/oncodash/ontoweaver.git
cd ontoweaver
poetry install

Poetry will create a virtual environment according to your configuration (either centrally or in the project folder). You can activate it by running poetry shell inside the project directory.

Theoretically, the graph can be imported in any [graph] database supported by BioCypher (Neo4j, ArangoDB, CSV, RDF, PostgreSQL, SQLite, NetworkX, … see BioCypher's documentation).

Usage Documentation

Detailed documentation with tutorials and a more detailed installation guide is available here.

Tests

Tests are located in the tests/ subdirectory and may be a good starting point to see OntoWeaver in practice. You may start with tests/test_simplest.py which shows the simplest example of mapping tabular data through BioCypher.

To run tests, use pytest:

poetry run pytest

or, alternatively:

poetry shell
pytest

Contributing

In case of any questions, or improvements feel free to open an issue or a pull request!

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

ontoweaver-0.1.3.tar.gz (43.1 kB view details)

Uploaded Source

Built Distribution

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

ontoweaver-0.1.3-py3-none-any.whl (48.0 kB view details)

Uploaded Python 3

File details

Details for the file ontoweaver-0.1.3.tar.gz.

File metadata

  • Download URL: ontoweaver-0.1.3.tar.gz
  • Upload date:
  • Size: 43.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/24.3.0

File hashes

Hashes for ontoweaver-0.1.3.tar.gz
Algorithm Hash digest
SHA256 83d380231048a8e1c9ba3ea2e58be8f2529da4bd54afe7584d40a983d2388cb7
MD5 df73755bf2ec5fe996d217eba0466f20
BLAKE2b-256 f3d79cb0bb1198c5568849be1835a3e5714d0680f364d0f0fe71155cf3c0f870

See more details on using hashes here.

File details

Details for the file ontoweaver-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: ontoweaver-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 48.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/24.3.0

File hashes

Hashes for ontoweaver-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 12027953b18f7c2d583891f629d4345d652c9afb6e4a7808966a445d2c7afee1
MD5 8909a78cd5708479f26391acc2551285
BLAKE2b-256 b13b1423309680e92f4d0904032b30d4991b80a3f13f8282e931b8ef6a89f4a4

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