Research Article

FoodWiki: Ontology-Driven Mobile Safe Food Consumption System

Algorithm 2

getIntoleranceScore (CList, PList).
(1) List3 = null; res_score = 0; =size(CList); =size(PList);
(2) for to do - - for each concept in CList
(3) for to do - - for each concept in PList
(4) score = 0;
(5) degree=MatchingScore(Concept  , Concept  )
(6) if (degreeDISSIMILAR) then
(7) if (degree=EXACT) then
   Score = 1.00/distance(, ); end if
(8) if (degree=PLUGIN) then
   Score = 0.75/distance(, ); end if
(9) if (degree=SUBSUME) then
   Score = 0.5/distance(, ); end if
(10) else score = 0;
(11) end if
(12) List3 score;
(13) end for
(14) score ← Max(List3); - - returns max scored matched concepts from CList & PList
(15) if (score ≠ 0) then
(16) Find int kindex(Max(List3)); - - returns index of max scored matched concepts from the lists
(17) DeleteRow(); DeleteRow(); - - delete concepts from CList & PList
(18) ; - - decrease sizes of the CList & PList
(19) ;  j  1; - - start the for loops again for the next concept
(20) Calculate res_score = res_score+score;
(21) List3 null; goto Step, take next
(22) else
(23) Calculate res_score=res_score+0;  - -goto Step, for next
(24) end if
(25) end for
(26) if (res_score =0) then no matching exists; return 0;
(27) else return{res_score = res_score/((size(CList)/size(PList)))}; - - : Jaro_Winkler_Distance,
  final res_score gives the IntoleranceScore()
(28) end if