00001
00002
00003
00004
00005
00006
00007
00008 #ifndef INDRI_NOTNODE_HPP
00009 #define INDRI_NOTNODE_HPP
00010
00011 #include "indri/BeliefNode.hpp"
00012 #include "indri/greedy_vector"
00013 #include <string>
00014
00015 class NotNode : public BeliefNode {
00016 private:
00017 BeliefNode* _child;
00018 greedy_vector<ScoredExtentResult> _extents;
00019 std::string _name;
00020
00021 public:
00022 NotNode( const std::string& name, BeliefNode* child );
00023
00024 double maximumBackgroundScore();
00025 double maximumScore();
00026 const greedy_vector<ScoredExtentResult>& score( int documentID, int start, int end, int documentLength );
00027 bool hasMatch( int documentID );
00028 void annotate( class Annotator& annotator, int documentID, int begin, int end );
00029
00030 int nextCandidateDocument();
00031 const std::string& getName() const;
00032 };
00033
00034 #endif // INDRI_NOTNODE_HPP