← Documentation
ADS-IDAC Engine 5.0.0
KB.h
Go to the documentation of this file.
1
9
10#include <iostream>
11#include <typeinfo>
12#pragma once
13
14#include <map>
15#include <boost/serialization/export.hpp>
16
18#include "KBHardWiredUnit.h"
19#include "KBBiasFactorUnit.h"
20#include "InfoChunk.h"
21#include "../ReasonMachine/KBConcept.h" // Added by ClassView
22#include "../ReasonMachine/MentalRepresentation.h" // Added by ClassView
23#include "../ReasonMachine/SentenceUnit.h"
24#include "../ReasonMachine/KnowledgeUnit.h"
25
26#include <memory>
27#include <vector>
28#include <map>
29#include <string>
30#include <boost/serialization/vector.hpp>
31#include <boost/serialization/map.hpp>
32#include <boost/serialization/string.hpp>
33#include <boost/serialization/unique_ptr.hpp>
34#include <boost/serialization/assume_abstract.hpp>
35#include <boost/archive/text_oarchive.hpp>
36#include <boost/archive/text_iarchive.hpp>
37
38typedef std::map<std::string, KBSystemDecompositionUnit *> sdu_type;
39typedef std::map<int, std::string> sfm_type;
40
41namespace boost { namespace archive {
42class binary_oarchive;
43class binary_iarchive;
44} }
45
46class KB {
47 public:
48 // State hooks: the operator's load seeds this KB from the per-role master,
49 // then applies runtime state (hard-wired match-state + bias timers).
50 // serialize() carries every member, for uses outside the state overlay.
51 void state_save(boost::archive::binary_oarchive& ar) const;
52 void state_load(boost::archive::binary_iarchive& ar);
53
54
55 KB();
56 virtual ~KB();
61 void readActionPack(int);
62 void KBcheckHardWiredMatchForAlarmState(std::string, int);
63 void KBcheckHardWiredMatchForComponentState(std::string, int);
64 void KBcheckHardWiredMatchForSupportSystemState(std::string, int);
65 void KBcheckHardWiredMatchForParameterValue(std::string, double, int);
66 void KBcheckHardWiredMatchForParameterTrend(std::string, int);
67 void KBcheckHardWiredMatchForControl(std::string, double);
68 void KBcheckHardWiredMatchForMentalBelief(std::string, int);
69 void KBcheckHardWiredMatchForProcedureActivity(std::string, int);
71 void copyKBForRestart(KB &);
72 void clearKBForRestart();
73 void copyKB(KB &);
74 void outputHardWiredDiagnosisLabelToFile(std::string, std::ofstream &);
75 void outputHardWiredDiagnosisUnitToFile(std::ofstream &);
76 void clearKB();
77 std::string getProcedureNameOfHWDiagnosis(std::string);
78 std::string getStepNameOfHWDiagnosis(std::string);
80 double getConfidenceLevelOfHWDiagnosis(std::string);
81 void saveKBToFile(std::ofstream &);
82 void retrieveKBFromFile(std::ifstream &);
84 std::vector<std::unique_ptr<KBHardWiredUnit>> hard_wired_diagnosis;
85 std::vector<std::unique_ptr<KBSystemDecompositionUnit>> system_decomposition;
86 std::vector<std::unique_ptr<KBBiasFactorUnit>> indicator_bias_factors;
87 std::map<std::string, KBSystemDecompositionUnit *> system_decomposition_map;
88 std::map<int, std::string> system_function_map;
89 private:
90 // Serialization function
92 template<class Archive>
93 void serialize(Archive & ar, const unsigned int version) {
94// std::cout << "Serializing class: " << typeid(*this).name() << std::endl;
100 }
101};
102
std::map< std::string, KBSystemDecompositionUnit * > sdu_type
Definition: KB.h:38
std::map< int, std::string > sfm_type
Definition: KB.h:39
Definition: KB.h:46
KB()
Definition: KB.cpp:17
void readHardWiredDiagnosis(int, InfoChunk &)
Definition: KB.cpp:40
void outputHardWiredDiagnosisLabelToFile(std::string, std::ofstream &)
Definition: KB.cpp:316
void copyKB(KB &)
Definition: KB.cpp:287
void readActionPack(int)
void clearKB()
Definition: KB.cpp:24
void KBcheckHardWiredMatchForControl(std::string, double)
Definition: KB.cpp:225
void initiationForSimulation(int, InfoChunk &)
Definition: KB.cpp:32
void readSystemDecompositionKB(int)
Definition: KB.cpp:150
void KBcheckHardWiredMatchForProcedureActivity(std::string, int)
Definition: KB.cpp:235
void serialize(Archive &ar, const unsigned int version)
Definition: KB.h:93
void retrieveKBFromFile(std::ifstream &)
Definition: KB.cpp:467
std::map< std::string, KBSystemDecompositionUnit * > system_decomposition_map
Definition: KB.h:87
std::string getAssociatedFunctionalDecompositionName(int)
Definition: KB.cpp:383
std::map< int, std::string > system_function_map
Definition: KB.h:88
void copyKBForRestart(KB &)
Definition: KB.cpp:265
void KBcheckHardWiredMatchForParameterTrend(std::string, int)
Definition: KB.cpp:260
void clearKBForRestart()
Definition: KB.cpp:309
void state_load(boost::archive::binary_iarchive &ar)
Definition: KB.cpp:543
KBHardWiredUnit * getPtrToHardWiredDiagnosis(std::string)
Definition: KB.cpp:400
void KBcheckHardWiredMatchForAlarmState(std::string, int)
Definition: KB.cpp:240
void saveKBToFile(std::ofstream &)
Definition: KB.cpp:444
void KBcheckHardWiredMatchForParameterValue(std::string, double, int)
Definition: KB.cpp:255
std::vector< std::unique_ptr< KBBiasFactorUnit > > indicator_bias_factors
Definition: KB.h:86
std::string getStepNameOfHWDiagnosis(std::string)
Definition: KB.cpp:358
void KBcalculateHardWiredConfidence()
Definition: KB.cpp:329
void state_save(boost::archive::binary_oarchive &ar) const
Definition: KB.cpp:535
void KBcheckHardWiredMatchForComponentState(std::string, int)
Definition: KB.cpp:245
void outputHardWiredDiagnosisUnitToFile(std::ofstream &)
Definition: KB.cpp:324
std::string getProcedureNameOfHWDiagnosis(std::string)
Definition: KB.cpp:334
void KBcheckHardWiredMatchForSupportSystemState(std::string, int)
Definition: KB.cpp:250
std::vector< std::unique_ptr< KBHardWiredUnit > > hard_wired_diagnosis
Definition: KB.h:84
friend class boost::serialization::access
Definition: KB.h:91
double getConfidenceLevelOfHWDiagnosis(std::string)
Definition: KB.cpp:422
std::vector< std::unique_ptr< KBSystemDecompositionUnit > > system_decomposition
Definition: KB.h:85
void KBcheckHardWiredMatchForMentalBelief(std::string, int)
Definition: KB.cpp:230
virtual ~KB()
Definition: KB.cpp:21
void readIndicatorBiasFactors(int)
Definition: KB.cpp:103