Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Blocking on non-name attributes #5

Open
markhuberty opened this issue Mar 7, 2013 · 1 comment
Open

Blocking on non-name attributes #5

markhuberty opened this issue Mar 7, 2013 · 1 comment

Comments

@markhuberty
Copy link

The default implementation appears to have disabled blocking on set objects like coauthor or class (in attribute.h, about line 932 or so):

/**
 * Attribute_Set_Intermediary:
 * Third layer of the attribute hierarchy. Specifically
 * designed to handle the data storage issue.
 */
template < typename AttribType >
class Attribute_Set_Intermediary : public Attribute_Intermediary<AttribType> {

private:

   /**
    * Private:
    * static vector < const string * > temporary_storage:
    * static member temporarily used for data loading.
    */
    static vector < const string * > temporary_storage;

protected:

   /**
    * vector < const string * > & get_data_modifiable():
    * still used for data loading only.
    */
    vector < const string * > & get_data_modifiable() {
      return temporary_storage;
    }

public:

   /**
    * const vector < const string * > & get_data() const:
    * override the base function and throw an error,
    * indicating that this function should be forbidden
    * for this class and its child classes.
    */
    const vector < const string * > & get_data() const {
      throw cException_Invalid_Function("Function Disabled");
    }
};

This is problematic for blocking on anything other than a pure string value (e.g., block on patents that share at least 2 IPC codes, 2 coauthors, etc).

Is re-implementing this feature possible/wise?

@doolin
Copy link
Member

doolin commented Mar 7, 2013

possible, almost surely; wise, not clear yet.

The underlying issue is conflating attributes of records with features of similarity vectors. From an implementation pov, these need to be different.

I'll have time this weekend to dig deeper, let me know.

Sent from my iPhone

On Mar 7, 2013, at 7:04 AM, Mark Huberty notifications@github.com wrote:

The default implementation appears to have disabled blocking on set objects like coauthor or class (in attribute.h, about line 932 or so):

/**

  • Attribute_Set_Intermediary:
  • Third layer of the attribute hierarchy. Specifically
  • designed to handle the data storage issue.
    */
    template < typename AttribType >
    class Attribute_Set_Intermediary : public Attribute_Intermediary {

private:

/**
* Private:
* static vector < const string * > temporary_storage:
* static member temporarily used for data loading.
*/
static vector < const string * > temporary_storage;

protected:

/**
* vector < const string * > & get_data_modifiable():
* still used for data loading only.
*/
vector < const string * > & get_data_modifiable() {
return temporary_storage;
}

public:

/**
* const vector < const string * > & get_data() const:
* override the base function and throw an error,
* indicating that this function should be forbidden
* for this class and its child classes.
*/
const vector < const string * > & get_data() const {
throw cException_Invalid_Function("Function Disabled");
}
};
This is problematic for blocking on anything other than a pure string value (e.g., block on patents that share at least 2 IPC codes, 2 coauthors, etc).

Is re-implementing this feature possible/wise?


Reply to this email directly or view it on GitHub.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants