AntonisZks / Information-Systems-Software-Development-Project

A university project implementing Vamana-Indexing-Algorithm (VIA) for Approximate-Nearest-Neighbors (ANN) problem.
2 stars 0 forks source link

Extend the DataVector class #60

Closed AntonisZks closed 2 weeks ago

AntonisZks commented 2 weeks ago

Since we are dealing with a different type of data, I suggest we extend our existed DataVector class to be compatible with the current state of the project. Specifically, what I suggest is creatiing two new classes, BaseDataVector and QueryDataVector that both are sub-classes of the main DataVector class.

According to the dataset website

  1. The BaseDataVector class will have two extra attributes:
    • C (Categorical Attribute) and
    • T (Timestump Attribute).
  2. The QueryDataVector class will have four extra attributes:
    • query type that can take values 0, 1, 2 and 3,
    • v (for the categorical value C),
    • l (for the timestamp value T), and
    • r (for the timestamp value T).

The resulted classes should look somthing like the following:

/* Base Data Vector Class */
template <typename dvector_t>
class BaseDataVector : public DataVector {
private:
    unsigned int C, T; // Extra Attributes
    ...
public:
    ...
};

and

/* Query Data Vector Class */
template <typename dvector_t>
class QueryDataVector : public DataVector {
private:
    unsigned int v, l, r; // Extra attributes
    ...
public:
    ...
};

@StavrosJKw can you work on this? Any other suggestion about this topic is accepted.

StavrosJKw commented 2 weeks ago

Thank you for Issuing this @AntonisZks , I will get right on it

StavrosJKw commented 2 weeks ago

I implemented the subclasses of DataVector, that will help us read the new datasets. They can be found in the file BQDataVectors.h in the directory

include/DataStructures/DataVector/BQDataVector.h

I am still considering enhancing the classes with more methods. If the need arises further in development I will add them.