Beispiel #1
0
 /// <summary>
 /// Найти объект, кторый связан с текущим исходящий связью (Source = this)
 /// </summary>
 public SemObject FindFromObject(string word, SemLinkType typ = SemLinkType.Undefined, SemObjectType otyp = SemObjectType.Undefined)
 {
     foreach (SemLink li in LinksFrom)
     {
         if (typ != SemLinkType.Undefined && typ != li.Typ)
         {
             continue;
         }
         if (li.Target.IsValue(word, otyp))
         {
             return(li.Target);
         }
     }
     return(null);
 }
Beispiel #2
0
 public SemLink AddLink(SemLinkType typ, SemObject src, SemObject tgt, string ques = null, bool or = false, string prep = null)
 {
     if (src == null || tgt == null)
         return null;
     foreach (SemLink li in src.Graph.Links)
     {
         if (li.Typ == typ && li.Source == src && li.Target == tgt)
             return li;
     }
     if (src.Graph != tgt.Graph)
     {
         foreach (SemLink li in tgt.Graph.Links)
         {
             if (li.Typ == typ && li.Source == src && li.Target == tgt)
                 return li;
         }
     }
     if (tgt.Morph.NormalCase == "ДОМ")
     {
     }
     SemLink res = new SemLink(this, src, tgt) { Typ = typ, Question = ques, IsOr = or, Preposition = prep };
     Links.Add(res);
     return res;
 }