예제 #1
0
 // Проверка наличия объектного триплета через шкалу. Если false - точно нет, при true надо продолжать проверку
 public bool ChkOSubjPredObj0(int subj, int pred, int obj)
 {
     // Шкалу добавлю позднее
     if (false && Scale.Range > 0)
     {
         int code = Scale1.Code(Scale.Range, subj, pred, obj);
         //int word = (int)oscale.Root.Element(Scale1.GetArrIndex(code)).Get();
         //int tb = Scale1.GetFromWord(word, code);
         int tb = Scale.Scale1[code];
         if (tb == 0)
         {
             return(false);
         }
         // else if (tb == 1) return true; -- это был источник ошибки
         // else надо считаль длинно, см. далее
     }
     return(!spo_o_index.GetFirst(ent =>
     {
         int su = (int)ent.Field(0).Get();
         int cmp = su.CompareTo(subj);
         if (cmp != 0)
         {
             return cmp;
         }
         int pr = (int)ent.Field(1).Get();
         cmp = pr.CompareTo(pred);
         if (cmp != 0)
         {
             return cmp;
         }
         int ob = (int)ent.Field(2).Get();
         return ob.CompareTo(obj);
     }).IsEmpty);
     //return !spo_o_index.GetFirstByKey(new SubjPredObjInt() { subj = subj, pred = pred, obj = obj }).IsEmpty;
 }
예제 #2
0
 public bool ChkOSubjPredObj(string subj, string pred, string obj)
 {
     if (range > 0)
     {
         int code = Scale2.Code(range, subj, pred, obj);
         int word = (int)oscale.Root.Element(Scale2.GetArrIndex(code)).Get();
         int tb   = Scale2.GetFromWord(word, code);
         if (tb == 0)
         {
             return(false);
         }
         // else if (tb == 1) return true; -- это был источник ошибки
         // else надо считаль длинно, см. далее
     }
     return(!spo_o_index.GetFirst(ent =>
     {
         string su = (string)ent.Field(0).Get();
         int cmp = su.CompareTo(subj);
         if (cmp != 0)
         {
             return cmp;
         }
         string pr = (string)ent.Field(1).Get();
         cmp = pr.CompareTo(pred);
         if (cmp != 0)
         {
             return cmp;
         }
         string ob = (string)ent.Field(2).Get();
         return ob.CompareTo(obj);
     }).IsEmpty);
 }