graflo.architecture.evolution.aspects.provenance.plan¶
Planning the provenance aspect: SourceRecord, Agent and their edges.
A pure planner over the same op vocabulary as every other manifest change. It needs no spec: which types read their facts from a source record and which a record can name are all a caller may add, and the composed lift adds the state and observation scaffolds to the first list itself.
Attributes¶
__all__ = ['plan_provenance']
module-attribute
¶
Classes¶
Functions:¶
plan_provenance(manifest, *, attach=(), mentions=())
¶
The ops that make lineage expressible in manifest.
SourceRecord -wasAttributedTo-> Agent is emitted even when there is
nothing else to attach: it is what makes the schema able to say where a
fact came from, which is the question the world-model profile asks.
The vocabulary is joined with what the manifest has
(:func:~graflo.architecture.evolution.aspects.join.join): a
SourceRecord or Agent it already declares keeps its own properties
and gains the aspect's missing ones, so manifests that carry the
vocabulary, such as source kits, compose and lift in any order.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
manifest
|
GraphManifest
|
the manifest to lift, already |
required |
attach
|
Iterable[str]
|
vertex type names that gain a |
()
|
mentions
|
Iterable[str]
|
vertex type names |
()
|
Raises:
| Type | Description |
|---|---|
LiftError
|
the manifest has no schema, or declares part of the vocabulary in a way that contradicts it. |