src/English/relations/en_OldRelationFinder.cpp
/** this function deals specifically with lists of type OTH
 *  with children of only one EDT type
 *
 *  for example: in "a boxer and an emigre", we don't get "a boxer" as
 *  a PER, so the list is of type OTH. Same with "Bob, 52," (annoying but true)
 *
 */
this function deals specifically with lists of type OTH
with children of only one EDT type

for example: in "a boxer and an emigre", we don't get "a boxer" as
a PER, so the list is of type OTH. Same with "Bob, 52," (annoying but true)
this function deals specifically with lists of type OTH with children of only one EDT type for example : in " a boxer and an emigre " we don ' t get " a boxer " as a PER so the list is of type OTH . Same with " Bob 52 " ( annoying but true )
void OldRelationFinder::findListInstances(Argument *left, Argument *right,
										   Proposition *prop, bool leftIsList)
{
	const Mention *iter;
	if (leftIsList)
		iter = left->getMention(_currentMentionSet)->getChild();
	else iter = right->getMention(_currentMentionSet)->getChild();
	if (_relationFinderType == ACE) {
		EntityType etype = iter->getEntityType();
		const Mention *temp_iter = iter->getNext();
		while (temp_iter != 0) {
			if (temp_iter->getEntityType() != etype &&
				etype.isRecognized() &&
				temp_iter->getEntityType().isRecognized())
			{
				if (DEBUG) {
					_debugStream << "MISMATCHED SET: ";
					if (leftIsList)
						_debugStream << left->getMention(_currentMentionSet)->getNode()->toTextString();
					else _debugStream << right->getMention(_currentMentionSet)->getNode()->toTextString();
					_debugStream << L"\n";
				}
				return;
			}
			temp_iter = temp_iter->getNext();
		}
	}
	if (_relationFinderType == ITEA && !leftIsList) {
		Mention *stackedOrgs[10];
		int n_orgs = RelationUtilities::get()->getOrgStack(right->getMention(_currentMentionSet),
			stackedOrgs, 10);
		if (n_orgs != 0) {
			_instance->setStandardListInstance(left, right, leftIsList,
				iter, prop, _currentMentionSet);
			int type = _model->findBestRelationType(_instance);
			int subordinate_type = RelationTypeSet::getTypeFromSymbol(SpecialRelationCases::getSubordinateType());
			addRelation(left->getMention(_currentMentionSet), stackedOrgs[0], type, 1.0);
			for (int i = 0; i < n_orgs - 1; i++) {
				addRelation(stackedOrgs[i], stackedOrgs[i+1], subordinate_type, 1.0);
			}
			return;
		}
	}
	while (iter != 0) {
		if (iter->getEntityType().isRecognized()) {
			_instance->setStandardListInstance(left, right, leftIsList,
				iter, prop, _currentMentionSet);
			if (leftIsList)
				classifyInstance(iter, right->getMention(_currentMentionSet));
			else classifyInstance(left->getMention(_currentMentionSet), iter);
		}
		iter = iter->getNext();
	}
}
void OldRelationFinder :: findListInstances ( Argument * left , Argument * right , Proposition * prop , bool leftIsList ) { const Mention * iter ; if ( leftIsList ) iter = left -> getMention ( _currentMentionSet ) -> getChild ( ) ; else iter = right -> getMention ( _currentMentionSet ) -> getChild ( ) ; if ( _relationFinderType == ACE ) { EntityType etype = iter -> getEntityType ( ) ; const Mention * temp_iter = iter -> getNext ( ) ; while ( temp_iter != 0 ) { if ( temp_iter -> getEntityType ( ) != etype && etype . isRecognized ( ) && temp_iter -> getEntityType ( ) . isRecognized ( ) ) { if ( DEBUG ) { _debugStream << " " ; if ( leftIsList ) _debugStream << left -> getMention ( _currentMentionSet ) -> getNode ( ) -> toTextString ( ) ; else _debugStream << right -> getMention ( _currentMentionSet ) -> getNode ( ) -> toTextString ( ) ; _debugStream << L" \n " ; } return ; } temp_iter = temp_iter -> getNext ( ) ; } } if ( _relationFinderType == ITEA && ! leftIsList ) { Mention * stackedOrgs [ 10 ] ; int n_orgs = RelationUtilities :: get ( ) -> getOrgStack ( right -> getMention ( _currentMentionSet ) , stackedOrgs , 10 ) ; if ( n_orgs != 0 ) { _instance -> setStandardListInstance ( left , right , leftIsList , iter , prop , _currentMentionSet ) ; int type = _model -> findBestRelationType ( _instance ) ; int subordinate_type = RelationTypeSet :: getTypeFromSymbol ( SpecialRelationCases :: getSubordinateType ( ) ) ; addRelation ( left -> getMention ( _currentMentionSet ) , stackedOrgs [ 0 ] , type , 1.0 ) ; for ( int i = 0 ; i < n_orgs - 1 ; i ++ ) { addRelation ( stackedOrgs [ i ] , stackedOrgs [ i + 1 ] , subordinate_type , 1.0 ) ; } return ; } } while ( iter != 0 ) { if ( iter -> getEntityType ( ) . isRecognized ( ) ) { _instance -> setStandardListInstance ( left , right , leftIsList , iter , prop , _currentMentionSet ) ; if ( leftIsList ) classifyInstance ( iter , right -> getMention ( _currentMentionSet ) ) ; else classifyInstance ( left -> getMention ( _currentMentionSet ) , iter ) ; } iter = iter -> getNext ( ) ; } }
this function deals specifically with lists of type OTH
  with children of only one EDT type
this function deals specifically with lists of type OTH with children of only one EDT type
// EELD has looser handling of lists -- ACE doesn't go through mismatched lists
 //if (type == RelationTypeSet::getTypeFromSymbol(
 //	SpecialRelationCases::getSubordinateType()))
 //{
 //}
