System documentation of the GNU Image-Finding Tool

CAcSQLInvertedFile.h
1 /* -*- mode: c++ -*-
2 */
3 /*
4 
5  GIFT, a flexible content based image retrieval system.
6  Copyright (C) 1998, 1999, 2000, 2001, 2002, CUI University of Geneva
7 
8  Copyright (C) 2003, 2004 Bayreuth University
9  2005 Bamberg University
10  This program is free software; you can redistribute it and/or modify
11  it under the terms of the GNU General Public License as published by
12  the Free Software Foundation; either version 2 of the License, or
13  (at your option) any later version.
14 
15  This program is distributed in the hope that it will be useful,
16  but WITHOUT ANY WARRANTY; without even the implied warranty of
17  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18  GNU General Public License for more details.
19 
20  You should have received a copy of the GNU General Public License
21  along with this program; if not, write to the Free Software
22  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
23 
24 */
25 // -*- mode: c++ -*-
26 
27 
28 class CXMLElement;
29 
49 #ifndef _CINVERTEDFILEACCESSOR
50 #define _CINVERTEDFILEACCESSOR
51 #include "libGIFTAcInvertedFile/include/uses-declarations.h"
52 #include <string>
53 #include "libMRML/include/TID.h"
54 #include "libMRML/include/CSelfDestroyPointer.h"
55 #include "libMRML/include/CArraySelfDestroyPointer.h"
56 #include "libGIFTAcInvertedFile/include/CDocumentFrequencyList.h"
57 #include "CCollectionFrequencyList.h"
58 #include "libGIFTAcInvertedFile/include/CADIHash.h"
59 #include "libGIFTAcURL2FTS/include/CAcURL2FTS.h"
60 #include <iostream>
61 #include <fstream>
62 #include <map>
63 #include <vector>
64 #ifdef HAS_HASH_MAP
65 #include <hash_map>
66 #else
67 #define hash_map map
68 #endif
69 #include <functional>
70 #include <algorithm>
71 
72 #include "libMRML/include/CMagic.h"
73 
74 
75 typedef TID TFeatureID ;
76 
83 class CAcInvertedFile:public CAcURL2FTS{
84 
85 protected:
93 
95  mutable ifstream mOffsetFile;
96 
99 
102 
105 
108 
110  typedef hash_map<TID,unsigned int> CIDToOffset;//new hash
113 
115  mutable hash_map<TID,double> mFeatureToCollectionFrequency;//new hash
116 
120  hash_map<TID,unsigned int> mFeatureDescription;//new hash_
121 
127 
130  void writeOffsetFileElement(TID inFeatureID,
131  int inPosition,
132  ostream& inOpenOffsetFile);
134  CDocumentFrequencyList* getFeatureFile(string inFileName)const;
135 public:
137  bool operator()()const;
138 
153  CAcInvertedFile(const CXMLElement& inCollectionElement);
155  bool init(bool);
156 
159 
161  string IDToURL(TID inID)const;
162 
164  TID URLToID(const string& inURL)const;
165 
169  CDocumentFrequencyList* FeatureToList(TFeatureID)const;
170 
172  CDocumentFrequencyList* URLToFeatureList(string inURL)const;
173 
175  CDocumentFrequencyList* DIDToFeatureList(TID inDID)const;
176 
178 
179 
183  double FeatureToCollectionFrequency(TFeatureID)const;
184 
186  unsigned int getFeatureDescription(TID inFeatureID)const;
188 
192  double DIDToMaxDocumentFrequency(TID)const;
193 
195  double DIDToDFSquareSum(TID)const;
196 
198  double DIDToSquareDFLogICFSum(TID)const;
200 
201  /*@name Inverted File Generation and Consistency Checking*/
203 
211  bool generateInvertedFile();
212 
221 
224  bool checkConsistency();
225 
229  bool findWithinStream(TID inFeatureID,
230  TID inDocumentID,
231  double inDocumentFrequency)const;
232 
234 
236  TID getMaximumFeatureID()const;
244  list<TID>* getAllFeatureIDs()const;
245 };
246 
247 #endif

Need for discussion? Want to contribute? Contact
help-gift@gnu.org Generated using Doxygen