/// <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); }
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; }