A library to store data in a knowledge graph
Project description
Setup
Install knowledge-graph using these commands:
git clone https://github.com/hyroai/knowledge-graph.git
pip install -e ./knowledge-graph
pip install cloud-utils@https://github.com/hyroai/cloud-utils/tarball/master
Publish to PyPI
After merging your new branch to the main branch, You need to publish a new version to PyPI. On the repo's main view go to the "Code" tab on top and then press on releases. Click "Draft a new release" and create you new release with semantic version that follows the rules here: https://semver.org/. Publishing your new release will create a new version on PyPI using the latest commit on main.
When to use querying.py
vs querying_raw.py
Both modules provide querying abilities, but querying.py
relies on a global store of kgs, storred by their hash value. The code retrieves the kg instance from this map ad hoc. This was built so we can have a serializable representation of a node in the kg, Node
, which has graph_id
and node_id
, and not have to serialize the entire kg any time we serialize an object containing them (e.g. if we're serializing or hashing a NounPhrase
for some reason).
The global store is an impure component that can make some code have different behaviours depending on what happened before (whether or not the kg was loaded).
Consequently, in contexts where you have a Element
and KnowledgeGraph
, prefer using querying_raw.py
, giving the graph instance explicitly. This is mainly when creating graphs or enriching them.
In contexts where all you have is Node
, use querying.py
.
If you implement new querying functions, you can implement them in querying_raw.py
, and lift them to querying.py
using storage.run_on_kg_and_node
.
Do not use the internal modules inside the knowledge_graph
directory
Instead, rely on the imports in knowledge_graph/__init__.py
, possibly add what you need there (in rare cases this is required).
Relations naming conventions
Relation are the middle part of the triplet. Although they can safely be named anything, we use a naming convention that serves as mnemonic device. For example the relation person/gender
implies the left hand side is an entity representing a person, whereas the right hand side is a gender, so we can expect a triplet like Alice,person/gender,female
.
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 Distribution
Built Distribution
File details
Details for the file knowledge-graph-0.0.30.tar.gz
.
File metadata
- Download URL: knowledge-graph-0.0.30.tar.gz
- Upload date:
- Size: 16.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd9aadbfb301a18300ab17004c05429e58ff727e2da4d9c30d67db89d6f96ff5 |
|
MD5 | ecb95b1f4bf469e4668564b0af10d2e6 |
|
BLAKE2b-256 | ec49b07d475cbd8c38e11271ff3680b6305d68373ad5c155cda7e13ceea128d5 |
File details
Details for the file knowledge_graph-0.0.30-py3-none-any.whl
.
File metadata
- Download URL: knowledge_graph-0.0.30-py3-none-any.whl
- Upload date:
- Size: 19.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2df0dba807e29aac07c2818018a85626437988123ab2a03388915d15f2b30ad3 |
|
MD5 | 62ed62f4c81463ac439b709c1499adcc |
|
BLAKE2b-256 | 6e3afe7a645384a3eb6f8c0fa123a27f798d8162d291a3a7ba86c410dfad0701 |