00001 /*========================================================================== 00002 * Copyright (c) 2004 University of Massachusetts. All Rights Reserved. 00003 * 00004 * Use of the Lemur Toolkit for Language Modeling and Information Retrieval 00005 * is subject to the terms of the software license set forth in the LICENSE 00006 * file included with this software, and also available at 00007 * http://www.lemurproject.org/license.html 00008 * 00009 *========================================================================== 00010 */ 00011 00012 00013 // 00014 // QueryAnnotation 00015 // 00016 // 21 July 2004 -- tds 00017 // 00018 00019 #ifndef INDRI_QUERYANNOTATION_HPP 00020 #define INDRI_QUERYANNOTATION_HPP 00021 00022 #include "indri/EvaluatorNode.hpp" 00023 #include <string> 00024 #include <vector> 00025 #include <map> 00026 #include "indri/QuerySpec.hpp" 00027 00028 struct QueryAnnotationNode { 00029 std::string name; 00030 std::string type; 00031 std::string queryText; 00032 std::vector<QueryAnnotationNode*> children; 00033 }; 00034 00035 class QueryAnnotation { 00036 private: 00037 QueryAnnotationNode* _queryTree; 00038 EvaluatorNode::MResults _annotations; 00039 std::vector<ScoredExtentResult> _results; 00040 00041 public: 00042 QueryAnnotation(); 00043 QueryAnnotation( indri::lang::Node* queryRoot, EvaluatorNode::MResults& annotations, std::vector<ScoredExtentResult>& results ); 00044 ~QueryAnnotation(); 00045 00046 const QueryAnnotationNode* getQueryTree() const; 00047 const std::map< std::string, std::vector<ScoredExtentResult> >& getAnnotations() const; 00048 const std::vector<ScoredExtentResult>& getResults() const; 00049 }; 00050 00051 #endif // INDRI_DOCUMENTANNOTATION_HPP