A typed knowledge-graph interface for reified-infon (hyperedge) facts: ingest, store, retrieve over a pluggable data layer. Embedded SQLite default; bring-your-own backend via one protocol.
Project description
hyper-kg
A small, typed knowledge-graph interface for reified-infon facts — ingest a pile of infons, store them as a property graph, and retrieve with typed primitives. Dependency-free core (stdlib SQLite), with a bring-your-own data layer via one protocol.
An infon is a reified hyperedge: a fact promoted to a first-class, addressable node binding typed role-participants (subject, object, …), carrying polarity, an evidence-mass triple, and provenance — so other facts can point at it.
from hyper_kg import KG
kg = KG.open("sqlite:///world.db") # or "sqlite://:memory:", or a custom scheme
# write a pile of infons (the {subject,predicate,object,polarity,mass,...} dict shape)
kg.write_infons("doc1", pile) # dedup → fan out → one transaction → idempotent
# typed retrieval
kg.find(predicate="supplies", polarity="affirmed")
kg.neighbors("Samsung SDI", hops=2)
# optional: extract straight from text (needs `pip install hyper-kg[extract]`)
kg.ingest("Samsung SDI supplies cells to BMW.", doc_id="doc2")
What it does
write_infons(doc_id, pile)— each infon fans out into an:Infonnode + canonical:Entitynodes +HAS_INFON/S_OF/O_OFedges, batched in one transaction. Idempotent by content-hash id (re-ingest is a no-op). Deduped by(subject, predicate, object, polarity).- Typed retrieval —
find(...)(indexed by subject/predicate/object/polarity),neighbors(node, hops=...)(graph walk),get_infon(id),anchors(). - Bring your own backend — implement the
KGStoreprotocol and register it:KG.register_backend("mydb", MyStoreClass) kg = KG.open("mydb://...")
Design
- Entities arrive canonical. Subject/object are expected to be already-normalized canonical
ids (e.g. resolved at extraction time), so there is no entity-resolution pass — the graph stays
connected by construction. Un-anchored novel entities can be flagged
provisional. - Generic property graph.
nodes(id, labels, props_json + virtual indexed columns)andedges(src, dst, type, props_json)— no per-fact schema migration. - Typed ops, not query strings. The interface is a small typed method API every backend implements natively, so SQL and custom backends are first-class. A graph-native backend may expose an optional query escape hatch.
License
Apache-2.0.
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hyper_kg-0.1.6.tar.gz.
File metadata
- Download URL: hyper_kg-0.1.6.tar.gz
- Upload date:
- Size: 24.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
de63acf2098dc5b6c351238d7ac5c7fc616591bbcdcf054dab0cf96f4a07a648
|
|
| MD5 |
ba435f02241fea671d3d2d62db2adc64
|
|
| BLAKE2b-256 |
db48b6dcada3464de9332724d789d1e26b6bbe002c86edf38ae5eade7c3bd03c
|
File details
Details for the file hyper_kg-0.1.6-py3-none-any.whl.
File metadata
- Download URL: hyper_kg-0.1.6-py3-none-any.whl
- Upload date:
- Size: 26.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7a1be9b2a4ad874266ae3e0e8f5907b9fa72fbf2ab120924c917354261374c39
|
|
| MD5 |
3e94e3b1df1476b7e5473b80b1cfec28
|
|
| BLAKE2b-256 |
ee6afe0e6cc0e5b5527d53031b55190f4993f619553d9004063a61e9342460a8
|