## 2 Materials and Methods
### FVSOOMM: A Model and Method to Implement Fuzzy Vector Spaces in an Object-Oriented Model
res=-SquareRoot(-(SomValNeg-SomValPos)/SomWTot)); else res=SquareRoot((SomValNeg+SomValPos)/SomWTot); this.ObjFuzzyV=res;//storescurrentvalueofObjFuzzyVintheobject this.ObjAtW=SomWTot;//storescurrentweightofattributesintheobject returns;//returnthevalueoftheattributeresultantvector }//endofGetFVSAttributeValue ```
``` //MethodthatcomputesthefuzzyvectorofanobjectcompositeorsimplePublicDoubleObjectFuzzyVector(){doubles=0;//resultofFVSVectordoublesonValPos=0,sonValNeg=0,sonWPos=0,sonWNeg=0,attW=0;sonComp=0,sonTotale=0,sonW=0;//ComputestheattributesFVofthisobject doublesFValt=this.GetFVSAttribValue();//ComputatributesFVsolveattW=this.ObjAtW;//donebythepreviouscall doublen=this.ObjNbSubObj();//Numberofsub-objectsofthisobject If(n>0){//ifthisisacompostiobject for(i=1;i<=n;i++)//foreachsub-object{ EUobjectsubO=ObjArrayListSubObj.get(i);//subobject instance doublev=subO.getObjFuzzyV();//readcurrentfuzzysub-objectvalue doublew=(double)subO.getObjW();//readsub-object weight if(v>=0){//valueispositive somValPos+=(w*v*v); somWPos+=w;}//incrementspositiveweights else{//valueisnegative somValNeg+=(w*v*v);//storeinnegativevalues somWNeg+=w;}//incrementsnegativeweights }//endfor somW=somWPos+somWNeg;//Globalsumofweights if(SomValNeg>SomValPlus)//ifnegativesumgreatthanpositivesumComComp=-Math.sqrt(-(SomValNeg-SomValPos)/SomW)); else somComp=Math.sqrt((SomValNeg+SomValPos)/SomW);//ComputestheresultantofthecompositionanditsattributesintWt=attW+somW;//totalWeightattribute+compositiondoublesWAt=Math.sign(resVatt)*resVatt*resVatt;//attributes part doublesComp=Math.sign(somComp)*somComp*somComp;//compositionsomTotale=(sWatt+sComp)/Wt;
```
res=Math.sign(somTotale).Math.sqrt(Mat.sign(somTotale)*somTotale); this.ObjFuzzyV=res;//fuzzyvaluecompositionandattributesinobject }//endiffn>0 compositeobject else//simpleobjectwithattributesonly res=resVatt;//valueofattributeFVSonly returnres;//returntheFVSvalueofobject }//endObjectFuzzyVector()
```
#### 2.3.1 The Case Based Reasoning Cycle

Experience allows the advancement and enhancement of knowledge in a specific area of science. Case-based reasoning (CBR) is a model of experience that is particularly used in medicine to answer questions such as the following: What diagnosis methods were used? What treatments were chosen? What results were observed? Was the patient satisfied? All of these make a case that can be indexed and stored in an object-oriented database. These cases can then be reused in later consultations, where the additional knowledge gained from a past case can be used to provide additional benefit to enhance the relevance and the quality of care. The CBR approach uses a distance measure of the present case to past, similar cases, to retrieve cases from the database. It applies the most similar past cases to the new problem case in order to apply the most appropriate methods to solve the new problem [31; 32; 33]. Several machine learning models are used to apply the CBR approach in different knowledge domains:

* Object-oriented approaches were used to implement the CBR approach [34; 35; 36]. * The fuzzy-object relational system aims to model imprecise requirements with fuzzy objects implemented in relational databases [37]. The literature has described the comparison problem and the recursivity of assessing the relevant attributes in the objects to be compared with a distance [38]. * In health care, CBR was used to implement clinical reasoning and case modeling [39; 40; 41; 42]. * Fuzzy logic, or stochastic approaches, were proposed to account for a set of attributes of various types from many objects, regardless of their structure. The problem becomes complex when it comes to dealing with a large number of objects [43; 44]. * A Bayesian network, combined with a dynamic object-oriented approach, was used to design the resilience of engineering systems, the occurrence of accidents, and the needs of time reasoning [45; 46].