Skip to main content

The dep-light data-primitives library for the cjm context-graph ecosystem — defines the shared data nouns that workflow cores, graph-storage adapters, provenance bundles, and the graph-aware composition layer all speak: structured resource locators with canonical URI rendering, content-hash-primary SourceRef provenance references, atomic typed content slices, GraphNode/GraphEdge/GraphContext containers, and the structured typed query expression executed by graph-storage adapters.

Project description

cjm-context-graph-primitives

The dep-light data-primitives library for the cjm context-graph ecosystem — the shared data nouns that workflow cores, graph-storage adapters, provenance bundles, and the graph-aware composition layer all speak: structured resource locators with canonical URI rendering, content-hash-primary SourceRef provenance references, atomic typed content slices, GraphNode/GraphEdge/GraphContext containers, and the structured typed query expression executed by graph-storage adapters. Data nouns vs storage verbs: everything that consumes or produces graph data depends on this library; only persistence depends on a graph-storage adapter. Capabilities never construct SourceRef — the composition layer does.

Modules

  • cjm_context_graph_primitives.graph — The graph data nouns - GraphNode / GraphEdge / GraphContext. Moved here from cjm-graph-plugin-system per the data-nouns-vs-storage-verbs split (pass-2 Thread 2): every consumer of graph DATA (workflow cores, bundles, the CR-18 graph-aware layer, the storage adapter itself) depends on this library; only persistence depends on the storage adapter. GraphContext satisfies the substrate's FileBackedDTO protocol (to_temp_file) for zero-copy worker transfer. All three nouns are wire-registered (stage 4): graph-storage adapter methods return them typed across the worker boundary.
  • cjm_context_graph_primitives.journal — The write-journal core: append-only JSONL ops — the durable, replayable source of truth.
  • cjm_context_graph_primitives.locators — Structured resource locators - the typed sum type addressing WHERE referenced content lives (CR-19). A locator renders a canonical URI string for the things strings are good at (grep, logs, cache keys, display) while keeping typed field access primary; unknown kinds round-trip losslessly for forward compatibility.
  • cjm_context_graph_primitives.provenance — SourceRef - the cross-cutting provenance reference (CR-19). Identity = content_hash (PRIMARY); location = locator; region = optional atomic typed slice. verify() is hash-based regardless of whether the locator still resolves - the structural fix for dangling row-id provenance (cache-hit rows; ledgers E13/D3).
  • cjm_context_graph_primitives.query — The structured typed query expression (pass-2 Thread 5) - DATA nouns describing graph reads. Execution lives in graph-storage adapters (stage 4 translates expressions per-backend); this library only defines, validates, and (de)serializes them. Typed expressions are the primary, portable surface - no storage-schema leak (the raw-SQL nodes/edges + json_extract coupling of ledger C2/C3), and scale-shaped (server-side filter/page/count answering D13). RawQuery is the explicitly-marked, backend-coupled escape hatch: recurring raw patterns EXPOSE missing typed-expression capabilities.
  • cjm_context_graph_primitives.slices — Atomic typed content slices - WHAT REGION of the located resource a reference consumes. The slice KIND selects the content facet on multi-facet nodes (TimeSlice -> audio, CharSlice -> text), which dissolves the chunk-local-vs-source-coordinate ambiguity without a frame field (pass-2 Thread 2).

API

cjm_context_graph_primitives.graph

  • GraphContext class — Container for graph read results (a subgraph).
  • GraphEdge class — A relationship between two nodes. Composition is ALWAYS edges — grouping,
  • GraphNode class — An entity in a context graph.

cjm_context_graph_primitives.journal

  • append_op function — Append one op record — the envelope-agnostic core append_write wraps.
  • append_write function — Append one write op (skipping an exact (verb,args) duplicate).
  • current_session function — The session key stamped on journal appends (provenance, not replay input).
  • read_journal function — Read every journaled write op (one JSON object per line; missing file = []).

cjm_context_graph_primitives.locators

  • FileRef class — Locator for a filesystem artifact (e.g. a consumed run manifest).
  • GraphNodeRef class — Locator for a node in a context graph.
  • UnknownLocator class — Lossless carrier for a locator kind this library version does not know.
  • locator_from_dict function — Reconstruct a locator from its wire dict.

cjm_context_graph_primitives.provenance

  • SourceRef class — A provenance reference to (a region of) a resource.

cjm_context_graph_primitives.query

  • EdgeQuery class — Typed edge read: filter / order / page / project / count.
  • EdgeQueryResult class — Typed result of an EdgeQuery — exactly one field is populated,
  • NodeQuery class — Typed node read: filter / traverse / order / page / project / count.
  • NodeQueryResult class — Typed result of a NodeQuery — exactly one field is populated,
  • OrderBy class — Result ordering by one property (server-side; C2/C3 ORDER BY index).
  • PropertyPredicate class — One property comparison; a query's where list combines predicates with AND.
  • RawQuery class — The explicitly-marked, backend-coupled escape hatch.
  • RawQueryResult class — Typed result of a RawQuery — tabular, backend-shaped (the columns are
  • RelationPredicate class — Match nodes that have an edge of relation_type (one-hop, typed traversal —
  • SourcePredicate class — Match nodes whose sources contain a reference matching by content hash
  • query_from_dict function — Reconstruct a query expression from its tagged wire dict.
  • result_from_dict function — Reconstruct a query result from its tagged wire dict.

cjm_context_graph_primitives.slices

  • CharSlice class — Character-range slice into a text facet.
  • FrameSlice class — Frame-range slice into a video facet.
  • FullContent class — Whole-facet reference (no range) — selects a content facet without slicing.
  • LineSlice class — Line-range slice into code or structured text.
  • PageSlice class — Page slice into a paginated document facet (PDF, EPUB).
  • TimeSlice class — Temporal slice into an audio/video facet, in seconds.
  • UnknownSlice class — Lossless carrier for a slice kind this library version does not know.
  • parse_slice function — Parse a canonical slice string into a typed slice.
  • slice_from_dict function — Reconstruct a typed slice from its wire dict.

Dependencies

Depends on: cjm-substrate Used by: cjm-capability-graph-sqlite, cjm-context-graph-layer, cjm-context-graph-projection, cjm-dev-graph-schema, cjm-markdown-decompose-core, cjm-notebook-decompose-core, cjm-python-decompose-core, cjm-transcript-correction-core, cjm-transcript-correction-tui, cjm-transcript-decomp-core, cjm-transcript-graph-schema

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

cjm_context_graph_primitives-0.0.14.tar.gz (29.1 kB view details)

Uploaded Source

Built Distribution

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

cjm_context_graph_primitives-0.0.14-py3-none-any.whl (26.8 kB view details)

Uploaded Python 3

File details

Details for the file cjm_context_graph_primitives-0.0.14.tar.gz.

File metadata

File hashes

Hashes for cjm_context_graph_primitives-0.0.14.tar.gz
Algorithm Hash digest
SHA256 36049697d8f3ce55d6eb506ac0af626efb2bcbacc6a14a7a3b903720f8dc75de
MD5 6763fd4c4b84658f2f81b1bc3199ccf0
BLAKE2b-256 84dd2c7926355d8e2dba46488e0b70003c33cee121deb4e13e7b8667c1ce6319

See more details on using hashes here.

File details

Details for the file cjm_context_graph_primitives-0.0.14-py3-none-any.whl.

File metadata

File hashes

Hashes for cjm_context_graph_primitives-0.0.14-py3-none-any.whl
Algorithm Hash digest
SHA256 1199d3d730262a1d6d06fbaaffdc4b99b21318013f5429c60b6d38a5f11a28b6
MD5 c312fb816daf38d72ba741dbd5c59ad6
BLAKE2b-256 20ecf9c949afc2a607e893e36538abe84347864a829bc9a89ed4c0e25c831d08

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