graflo.architecture.evolution.aspects.state.vocabulary¶
The state aspect's types: how a fact changes over time, and what was measured.
Not a manifest. These are the pieces the planner instantiates against
whatever types the input already has, which is the difference between a
reference model you compose onto and a transformation you apply. Time and unit
conventions are stated in :mod:graflo.architecture.evolution.aspects.iris.
Attributes¶
OBSERVATION_SUFFIX = 'Observation'
module-attribute
¶
OBSERVED_PROPERTY = 'observed_property'
module-attribute
¶
RESULT_TIME = 'result_time'
module-attribute
¶
RESULT_UNIT = 'result_unit'
module-attribute
¶
RESULT_VALUE = 'result_value'
module-attribute
¶
STATE_SUFFIX = 'State'
module-attribute
¶
VALID_FROM = 'valid_from'
module-attribute
¶
VALID_TO = 'valid_to'
module-attribute
¶
__all__ = ['OBSERVED_PROPERTY', 'RESULT_TIME', 'RESULT_UNIT', 'RESULT_VALUE', 'VALID_FROM', 'VALID_TO', 'feature_of_interest_edge', 'observation_type_name', 'observation_vertex', 'specialization_edge', 'state_type_name', 'state_vertex']
module-attribute
¶
Classes¶
Functions:¶
feature_of_interest_edge(subject)
¶
<Subject>Observation -hasFeatureOfInterest-> <Subject>.
Source code in graflo/architecture/evolution/aspects/state/vocabulary.py
observation_type_name(vertex)
¶
observation_vertex(subject, key_fields)
¶
The Observation type for one subject: a measurement at a time.
result_unit is a property rather than a contract-level declaration
because this type is abstract: one measuring temperature and one measuring
pressure are the same type here, so the unit has to travel with the row.
Source code in graflo/architecture/evolution/aspects/state/vocabulary.py
specialization_edge(subject)
¶
<Subject>State -specializationOf-> <Subject>.
Source code in graflo/architecture/evolution/aspects/state/vocabulary.py
state_type_name(vertex)
¶
state_vertex(subject, key_fields, moved)
¶
The State type for one subject: its key, its mutable facts, a validity interval.
Keyed on the subject's own key plus valid_from: the same property of
the same entity holds many values over time, and those are different facts
rather than revisions of one. Closing valid_to instead of overwriting is
what makes the history queryable at all.