예제 #1
0
void indri::infnet::WeightedSumNode::annotate( indri::infnet::Annotator& annotator, int documentID, indri::index::Extent &extent ) {
  annotator.add(this, documentID, extent);

  for( unsigned i=0; i<_children.size(); i++ ) {
    _children[i]->annotate( annotator, documentID, extent );
  }
}
void indri::infnet::ContextInclusionAndNode::annotate( indri::infnet::Annotator& annotator, int documentID, indri::index::Extent &extent ) {
  std::vector<child_type>::iterator iter;
  annotator.add( this, documentID, extent);

  for( iter = _children.begin(); iter != _children.end(); iter++ ) {
    (*iter).node->annotate( annotator, documentID, extent );
  }
}
예제 #3
0
void indri::infnet::PlusNode::annotate( indri::infnet::Annotator& annotator, lemur::api::DOCID_T documentID, indri::index::Extent &extent ) {
  std::vector<BeliefNode*>::iterator iter;
  annotator.add( this, documentID, extent );

  for( iter = _children.begin(); iter != _children.end(); iter++ ) {
    (*iter)->annotate( annotator, documentID, extent );
  }
}
예제 #4
0
void indri::infnet::FixedPassageNode::annotate( indri::infnet::Annotator& annotator, lemur::api::DOCID_T documentID, indri::index::Extent &extent ) {
  annotator.add(this, documentID, extent);

  // round down to find where the passage starts
  _buildSubextents( extent ); 
  const indri::utility::greedy_vector<bool>& matches = _child->hasMatch( documentID, _subextents );

  for( size_t i=0; i<_subextents.size(); i++ ) {
    if (matches[i])
      _child->annotate( annotator, documentID, _subextents[i] );
  }
}