Purpose:
This class is a specific version of dkDatastore. Its purpose is to implement the Query By Image Content (QBIC) datastore. Image search (QBIC) provides image indexing and search mechanisms for earlier Content Manager. However, it does not store any images. QBIC indexes image parts of documents and processes search requests using the index. The results of an image query submitted to QBIC are item IDs, which are keys to retrieve the actual image from the Content Manager datastore.
The execute and evaluate functions of DKDatastoreQBIC take image query strings expressed in QBIC image query language. The DKImageQuery object accepts queries in the syntax.
Class summary:
class DKDatastoreQBIC: public dkDatastore { ... ... DKDatastoreQBIC(); virtual ~DKDatastoreQBIC(); virtual void connect (const char* datastore_name, const char* user_name, const char* authentication, const char* connect_string = ""); virtual void createDatabase(const char* database_name); virtual void deleteDatabase(const char* database_name); virtual void createCatalog(const char* database_name, const char* catalog_name); virtual void deleteCatalog(const char* database_name, const char* catalog_name); virtual void openCatalog(const char* database_name, const char* catalog_name); virtual void closeCatalog(); virtual void addColorFeature(); virtual void addDrawFeature(); virtual void addColorHistogramFeature(); virtual void addTextureFeature(); virtual void addFeature(unsigned long featureSelection, DKBoolean bReCatalog); virtual void removeColorFeature(); virtual void removeDrawFeature(); virtual void removeColorHistogramFeature(); virtual void removeTextureFeature(); virtual void processImages(DKImageRecordQBIC* imageList, long count); virtual void queueImages(DKImageRecordQBIC* imageList, long count); virtual void processImageQueue(); virtual void reCatalogImages(unsigned long featureSelectionList); virtual DKAny listDatabases(); virtual DKAny listCatalogs(); virtual DKAny listCatalogs(const char* database_name); virtual DKAny listFeatures(); virtual DKAny listColorImages(); virtual DKAny listHistogramImages(); virtual DKAny listDrawImages(); virtual DKAny listTextureImages(); virtual DKString databaseName(); virtual DKString catalogName(); virtual DKAny listServers(); virtual DKString getLibServerName(); };
Members:
DKDatastoreQBIC(); virtual ~DKDatastoreQBIC();
The connect_string is not required; it is reserved for future use.
virtual void connect (const char* datastore_name, const char* user_name, const char* authentication, const char* connect_string = "");
virtual void createDatabase(const char* database_name);
virtual void deleteDatabase(const char* database_name);
virtual void createCatalog(const char* database_name, const char* catalog_name);
virtual void deleteCatalog(const char* database_name, const char* catalog_name);
virtual void openCatalog(const char* database_name, const char* catalog_name);
virtual void closeCatalog();
virtual void addColorFeature();
virtual void addDrawFeature();
virtual void addColorHistogramFeature();
virtual void addTextureFeature();
Adds the specified feature to the current catalog. When bReCatalog is set to TRUE, the image search server will re-analyze the new feature for the existing images. A feature can be specified in the following constants:
QbColor or QbColorFeatureClass QbColorHistogram or QbColorHistogramFeatureClass QbDraw or QbDrawFeatureClass QbTexture or QbTextureFeatureClass
virtual void addFeature(unsigned long featureSelection, DKBoolean bReCatalog);
virtual void removeColorFeature();
virtual void removeDrawFeature();
virtual void removeColorHistogramFeature();
virtual void removeTextureFeature();
class DKImageRecordQBIC { public: DKImageRecordQBIC(const char* dlItemID, const char* dlPartNo, const char* dlRepType, const char* indexItemID, const char* transaction); DKImageRecordQBIC(); void setDlItemID(const char* dlItemID); void setDlPartNo(const char* dlPartNo); void setDlRepType(const char* dlRepType); void setIndexItemID(const char* indexItemID); void setTransaction(const char* transaction); DKString getDlItemID(); DKString getDlPartNo(); DKString getDlRepType(); DKString getIndexItemID(); DKString getTransaction(); };
An array of DKImageRecordQBIC objects and the count of objects in that array must be passed to this function. Initialize indexItemID to zero.
virtual void processImages(DKImageRecordQBIC* imageList, long count);
class DKImageRecordQBIC { public: DKImageRecordQBIC(const char* dlItemID, const char* dlPartNo, const char* dlRepType, const char* indexItemID, const char* transaction); DKImageRecordQBIC(); void setDlItemID(const char* dlItemID); void setDlPartNo(const char* dlPartNo); void setDlRepType(const char* dlRepType); void setIndexItemID(const char* indexItemID); void setTransaction(const char* transaction); DKString getDlItemID(); DKString getDlPartNo(); DKString getDlRepType(); DKString getIndexItemID(); DKString getTransaction(); };
An array of DKImageRecordQBIC objects and the count of objects in that array must be passed to this function. Initialize indexItemID to zero.
virtual void queueImages(DKImageRecordQBIC* imageList, long count);
virtual void processImageQueue();
QbColor or QbColorFeatureClass QbColorHistogram or QbColorHistogramFeatureClass QbDraw or QbDrawFeatureClass QbTexture or QbTextureFeatureClass
For example, reCatalogImages(QbColor | QbDraw) will re-analyze QbColorFeatureClass and QbTextureFeatureClass features for all the images in the current catalog.
virtual void reCatalogImages(unsigned long featureSelectionList);
class DKIndexQBIC { public: DKString string(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKIndexQBIC objects.
virtual DKAny listDatabases();
class DKIndexQBIC { public: DKString string(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKIndexQBIC objects.
virtual DKAny listCatalogs();
class DKIndexQBIC { public: DKString string(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKSequentialCollection objects.
virtual DKAny listCatalogs(const char* database_name);
The return value is a sequential collection containing DKIndexQBIC objects, describing the feature.
class DKIndexQBIC { public: DKString string(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKIndexQBIC objects.
virtual DKAny listFeatures();
The return value is a sequential collection containing DKImageInfoQBIC objects, describing the image.
class DKImageInfoQBIC { public: DKString dlItemID(); DKString dlPartNo(); DKString dlRepType(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKImageInfoQBIC objects.
virtual DKAny listColorImages();
The return value is a sequential collection containing DKImageInfoQBIC objects, describing the image.
class DKImageInfoQBIC { public: DKString dlItemID(); DKString dlPartNo(); DKString dlRepType(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKImageInfoQBIC objects.
virtual DKAny listHistogramImages();
The return value is a sequential collection containing DKImageInfoQBIC objects, describing the image.
class DKImageInfoQBIC { public: DKString dlItemID(); DKString dlPartNo(); DKString dlRepType(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKImageInfoQBIC objects.
virtual DKAny listDrawImages();
The return value is a sequential collection containing DKImageInfoQBIC objects, describing the image.
class DKImageInfoQBIC { public: DKString dlItemID(); DKString dlPartNo(); DKString dlRepType(); }
It is necessary to extract the object from DKAny to cast it to DKSequentialCollection, then iterate over it to get DKImageInfoQBIC objects.
virtual DKAny listTextureImages();
virtual DKString databaseName();
virtual DKString catalogName();
The return value is a sequential collection containing DKServerInfoQBIC objects, describing the server.
class DKServerInfoQBIC { public: DKString serverName(); DKString hostName(); DKString portNumber(); }
It is necessary to extract the object from DKAny and cast it to DKSequentialCollection, then iterate over it to get DKServerInfoQBIC objects.
virtual DKAny listServers();
virtual DKString getLibServerName();
(c) Copyright International Business Machines Corporation 1996, 2003. IBM Corp. All rights reserved.