← Documentation
ADS-IDAC Engine 5.0.0
Instantiation.cpp
Go to the documentation of this file.
1// Instantiation.cpp: implementation of the Instantiation class.
2//
4
5#include "Instantiation.h"
6#include "ReasonMachine.h"
7using namespace std;
8
10// Construction/Destruction
12
14{
15 this->m_label_pt = NULL;
16 this->m_indefinite_instance_pt = NULL;
17 this->m_ID_indefinite = "";
18 this->m_ID_lable_group_name = "";
19}
20
22{
23/*
24 Label * m_label_pt;
25 ConceptComposedUnit * m_indefinite_instance_pt;
26 vector<ConceptComposedUnit *> m_instance_list;
27
28 vector<string> m_ID_instance_list;
29 string m_ID_indefinite;
30 string m_ID_lable;
31*/
32 this->m_instance_list.clear();
33 this->m_ID_instance_list.clear();
34}
35
37{//
38 vector<string>::iterator str_itr;
39 string ID;
40 this->m_ID_indefinite = _inst_pt->m_ID_indefinite;
42 for(str_itr = _inst_pt->m_ID_instance_list.begin(); str_itr != _inst_pt->m_ID_instance_list.end(); str_itr++)
43 {
44 ID = *str_itr;
45 this->m_ID_instance_list.push_back(ID);
46 }
47}
48
50{
51 vector<ConceptComposedUnit *>::iterator CC_itr;
52 string ID;
54 if(this->m_ID_instance_list.size() == 0)
55 {
56 for(CC_itr = this->m_instance_list.begin(); CC_itr != this->m_instance_list.end(); CC_itr++)
57 {
58 ID = (*CC_itr)->m_ID;
59 this->m_ID_instance_list.push_back(ID);
60 }
61 }
62}
63
65{
66 ReasonMachine * RM_pt;
67 RM_pt = (ReasonMachine *)_pt;
68/*
69 vector<string> m_ID_instance_list;
70 string m_ID_indefinite;
71 string m_ID_lable;
72*/
73 //ConceptComposedUnit * m_indefinite_instance_pt;
74 this->m_indefinite_instance_pt =(ConceptComposedUnit *)(RM_pt->m_Concept_Base->FindConceptByID(this->m_ID_indefinite));
75 if(this->m_indefinite_instance_pt == NULL)
76 {this->ErrorMessage("could not find the indefinite concept " + this->m_ID_indefinite); return;}
77
78 //vector<ConceptComposedUnit *> m_instance_list;
79 vector<string>::iterator str_itr;
80 ConceptComposedUnit * CC_pt;
81 for(str_itr = this->m_ID_instance_list.begin(); str_itr != this->m_ID_instance_list.end(); str_itr++)
82 {
83 CC_pt = (ConceptComposedUnit *)(RM_pt->m_Concept_Base->FindConceptByID(*str_itr));
84 if(CC_pt == NULL)
85 {this->ErrorMessage("could not find the concept " + *str_itr); return;}
86 this->m_instance_list.push_back(CC_pt);
87 }
88
89 //Label * m_label_pt;
90 //Inst_pt->m_label_pt = this->CheckExistanceOfLabelGroupByName(name);
91 this->m_label_pt = RM_pt->m_IB->CheckExistanceOfLabelGroupByName(this->m_ID_lable_group_name);
92 if(this->m_label_pt == NULL)
93 {this->ErrorMessage("could not find the label group " + this->m_ID_lable_group_name); return;}
94}
95
97{
98 cout << r5pars_.timesno << " " << str << " in Instantiation.cpp" <<'\n';
99 ofstream fout("err messages.txt", ios::app);
100 fout << r5pars_.timesno << " " << str << '\n';
101 fout.close();
102 //r5pars_.terminateall = true;
103}
Diagnostic reasoning engine — knowledge representation, mental model, and inference.
std::string m_ID
Definition: IDElement.h:16
std::string m_ID_indefinite
Definition: Instantiation.h:26
ConceptComposedUnit * m_indefinite_instance_pt
Definition: Instantiation.h:22
virtual ~Instantiation()
void ErrorMessage(std::string)
Label * m_label_pt
Definition: Instantiation.h:21
void BuildConnectionsForThisInstantiation(void *)
void CopyInfoFromAnotherInstantiationGroup(Instantiation *_inst_pt)
std::vector< ConceptComposedUnit * > m_instance_list
Definition: Instantiation.h:23
void ConvertInstantiationInfoToString()
std::vector< std::string > m_ID_instance_list
Definition: Instantiation.h:25
std::string m_ID_lable_group_name
Definition: Instantiation.h:27
std::unique_ptr< KBConcept > m_Concept_Base
std::unique_ptr< InstantiationBase > m_IB
struct @0 r5pars_