System documentation of the GNU Image-Finding Tool
Main Page
Classes
Files
File List
libGIFTAcInvertedFile
include
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
:
87
TID
mMaximumFeatureID
;
90
CArraySelfDestroyPointer<char>
mInvertedFileBuffer
;
92
mutable
CSelfDestroyPointer<istream>
mInvertedFile
;
93
95
mutable
ifstream
mOffsetFile
;
96
98
ifstream
mFeatureDescriptionFile
;
99
101
string
mInvertedFileName
;
102
104
string
mOffsetFileName
;
105
107
string
mFeatureDescriptionFileName
;
108
110
typedef
hash_map<TID,unsigned int>
CIDToOffset
;
//new hash
112
CIDToOffset
mIDToOffset
;
113
115
mutable
hash_map<TID,double>
mFeatureToCollectionFrequency
;
//new hash
116
120
hash_map<TID,unsigned int>
mFeatureDescription
;
//new hash_
121
125
CADIHash
mDocumentInformation
;
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
158
~CAcInvertedFile
();
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
220
bool
newGenerateInvertedFile
();
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