public override bool Equals(object o) { if (this == o) { return(true); } if (!(o is Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention)) { return(false); } if (!base.Equals(o)) { return(false); } Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention that = (Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention)o; if (anchor != null ? !anchor.Equals(that.anchor) : that.anchor != null) { return(false); } if (eventModification != null ? !eventModification.Equals(that.eventModification) : that.eventModification != null) { return(false); } if (parents != null ? !parents.Equals(that.parents) : that.parents != null) { return(false); } return(true); }
public virtual bool Contains(Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention e) { if (this == e) { return(true); } foreach (ExtractionObject a in GetArgs()) { if (a is Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention) { Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention ea = (Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention)a; if (ea.Contains(e)) { return(true); } } } return(false); }
public virtual void MergeEvent(Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention e, bool discardSameArgDifferentName) { // merge types if necessary string oldType = type; type = ExtractionObject.ConcatenateTypes(type, e.GetType()); if (!type.Equals(oldType)) { // This is not important: we use anchor types in the parser, not event types // This is done just for completeness of code logger.Fine("Type changed from " + oldType + " to " + type + " during check 3 merge."); } // add e's arguments for (int i = 0; i < e.GetArgs().Count; i++) { ExtractionObject a = e.GetArg(i); string an = e.GetArgNames()[i]; // TODO: we might need more complex cycle detection than just contains()... if (a is Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention && ((Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention)a).Contains(this)) { logger.Info("Found event cycle during merge between e1 " + this + " and e2 " + e); } else { // remove e from a's parents if (a is Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention) { ((Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention)a).RemoveParent(e); } // add a as an arg to this AddArg(a, an, discardSameArgDifferentName); } } // remove e's arguments. they are now attached to this, so we don't want them moved around during removeEvents e.ResetArguments(); // remove e from its parent(s) to avoid using this argument in other merges of the parent e.RemoveFromParents(); }
public virtual void AddParent(Edu.Stanford.Nlp.IE.Machinereading.Structure.EventMention p) { parents.Add(p); }