src.dackar.RCA.cross_pattern.models

Classes

HistoricalDocExtraction

Canonical cross-pattern representation of a single doc extraction record.

CrossPatternLink

A single link between one HistoricalSignalEpisode and one HistoricalDocExtraction.

CandidateCrossPatternEvidence

Aggregated cross-pattern evidence for a single causality candidate.

Module Contents

class src.dackar.RCA.cross_pattern.models.HistoricalDocExtraction[source]

Canonical cross-pattern representation of a single doc extraction record.

Produced by converting a SemanticMatch (from DocExtractionStore.query()) into a richer object that carries temporal and FM resolution metadata needed for the linkage rules in rules.py.

Instances are treated as immutable inputs by CrossPatternLinker.run(): the linker never writes back onto them. Episode↔doc linkage is reported in the run() result (per-candidate linked_episode_ids / linked_doc_ids and the flat all_links), not by mutating these objects.

doc_id: str[source]
doc_type: str[source]
asset_id: str | None[source]
event_time_start: datetime.datetime | None[source]
event_time_end: datetime.datetime | None[source]
event_time_confidence: str[source]
identified_effect: str | None[source]
assessed_cause: str | None[source]
inferred_fm_label: str | None[source]
fm_id_candidate: str | None[source]
fm_id_candidate_alt: str | None[source]
fm_resolution_status: str[source]
fm_resolution_score: float | None[source]
confidence: str[source]
cause_is_symptom: bool[source]
epistemic_class: str | None = None[source]
classification_resolution_level: str | None = None[source]
degraded_classification: bool = False[source]

A single link between one HistoricalSignalEpisode and one HistoricalDocExtraction.

Carries full provenance so analysts can trace exactly which checks passed (direct reference, temporal, or semantic/FM; asset compatibility is scored separately as asset_match).

episode_id: str[source]
doc_id: str[source]
asset_match: bool[source]
time_overlap_hours: float | None[source]
linkage_precedence_level: int[source]
component_overlap: List[str][source]
fm_alignment_score: float | None[source]
signal_similarity_score: float[source]
document_similarity_score: float | None[source]
provenance: Dict[str, Any][source]
class src.dackar.RCA.cross_pattern.models.CandidateCrossPatternEvidence[source]

Aggregated cross-pattern evidence for a single causality candidate.

Produced by CrossPatternLinker.run() — one instance per candidate in causality_candidates[“candidates”].

candidate_id: str[source]
component_id: str[source]
fm_id: str[source]
linked_episode_ids: List[str][source]
linked_doc_ids: List[str][source]
support_posture: str[source]
reinforcement_strength: str | None[source]
linkage_outcome: str[source]
evidence_paths: List[CrossPatternLink][source]