src.dackar.RCA.cross_pattern.models =================================== .. py:module:: src.dackar.RCA.cross_pattern.models Classes ------- .. autoapisummary:: src.dackar.RCA.cross_pattern.models.HistoricalDocExtraction src.dackar.RCA.cross_pattern.models.CrossPatternLink src.dackar.RCA.cross_pattern.models.CandidateCrossPatternEvidence Module Contents --------------- .. py:class:: HistoricalDocExtraction 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. .. py:attribute:: doc_id :type: str .. py:attribute:: doc_type :type: str .. py:attribute:: asset_id :type: Optional[str] .. py:attribute:: event_time_start :type: Optional[datetime.datetime] .. py:attribute:: event_time_end :type: Optional[datetime.datetime] .. py:attribute:: event_time_confidence :type: str .. py:attribute:: identified_effect :type: Optional[str] .. py:attribute:: assessed_cause :type: Optional[str] .. py:attribute:: inferred_fm_label :type: Optional[str] .. py:attribute:: fm_id_candidate :type: Optional[str] .. py:attribute:: fm_id_candidate_alt :type: Optional[str] .. py:attribute:: fm_resolution_status :type: str .. py:attribute:: fm_resolution_score :type: Optional[float] .. py:attribute:: confidence :type: str .. py:attribute:: cause_is_symptom :type: bool .. py:attribute:: epistemic_class :type: Optional[str] :value: None .. py:attribute:: classification_resolution_level :type: Optional[str] :value: None .. py:attribute:: degraded_classification :type: bool :value: False .. py:class:: CrossPatternLink 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). .. py:attribute:: link_id :type: str .. py:attribute:: episode_id :type: str .. py:attribute:: doc_id :type: str .. py:attribute:: asset_match :type: bool .. py:attribute:: time_overlap_hours :type: Optional[float] .. py:attribute:: temporal_link_skipped :type: bool .. py:attribute:: linkage_precedence_level :type: int .. py:attribute:: component_overlap :type: List[str] .. py:attribute:: fm_alignment_score :type: Optional[float] .. py:attribute:: signal_similarity_score :type: float .. py:attribute:: document_similarity_score :type: Optional[float] .. py:attribute:: link_confidence :type: float .. py:attribute:: provenance :type: Dict[str, Any] .. py:class:: CandidateCrossPatternEvidence Aggregated cross-pattern evidence for a single causality candidate. Produced by CrossPatternLinker.run() — one instance per candidate in causality_candidates["candidates"]. .. py:attribute:: candidate_id :type: str .. py:attribute:: component_id :type: str .. py:attribute:: fm_id :type: str .. py:attribute:: linked_episode_ids :type: List[str] .. py:attribute:: linked_doc_ids :type: List[str] .. py:attribute:: best_link_score :type: float .. py:attribute:: support_posture :type: str .. py:attribute:: reinforcement_strength :type: Optional[str] .. py:attribute:: linkage_outcome :type: str .. py:attribute:: evidence_paths :type: List[CrossPatternLink]