/* -*- mode: c++ -*- 
*/
/* 

    GIFT, a flexible content based image retrieval system.
    Copyright (C) 1998, 1999, 2000 CUI, University of Geneva

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA

*/
/***************************************
*
* 
*
****************************************
*
* modification history:
*
* HM 090399 created the documentation
*
****************************************
*
* compiler defines used:
*
*
****************************************/
#ifndef _CDOCUMENTNORMALIZER
#define _CDOCUMENTNORMALIZER

#include "CDocumentFrequencyElement.h"
#include "CWeightingFunction.h"
#include "CInvertedFileAccessor.h"

/** For normalizing weights like in Salton/Buckley we need to now all the
  features in the query or all the features in a document. This base class is
  supposed to handle both.

  For getting additional information (ADI) it needs to know the accessor.
 */
class CDocumentNormalizer{
protected:
  ///
  const CInvertedFileAccessor* mAccessor;
public:
/***************************************
*
* 
*
***************************************/
  ///
  CDocumentNormalizer(const CInvertedFileAccessor* inAccessor);

/***************************************
*
* 
*
***************************************/
  ///Translating in the end the information into a normalizing value
  virtual double getValue()const;

/***************************************
*
* 
*
***************************************/
  /**Considers a document feature 
    and applies the weighting function to this feature */
  virtual void considerDocumentFeature(const CDocumentFrequencyElement& 
				       inFeature,
				       const CWeightingFunction& 
				       inFunction);

/***************************************
*
* 
*
***************************************/
  ///Considers a query feature (calls considerDocumentFeature)
  void considerQueryFeature(const CWeightingFunction& 
			      inFeature);

/***************************************
*
* 
*
***************************************/
  ///
  virtual CDocumentNormalizer* constructNew()const;

};
#endif

Documentation generated by muellerw@pc7170 on Fre Sep 29 14:43:08 CEST 2000