I would like to be able to attach arbitrary metadata to an attribute. For example, a flag that says whether it is possible for that attribute to be null/missing. Certain of my custom learners would understand this metadata. I only really need this in the API, not necessarily the UI.

I've tried to figure out how to do this with the existing API. I could have my own implementation of Attribute, but then I would also need my own BinomialAttribute, DateAttribute, etc. And then, I would need to modify AttributeFactory; I see no support for replacing the AttributeFactory. Maybe AttributeFactory should be a singleton object, not a set of static methods (except for something like setInstance/getInstance.)

Hi,perhaps it would be a better solution not to change the attributes, but implement an own exampleset, providing a method for getting arbitrary meta data on the attributes. It could simply store a map from attribute to your meta data. Your learner then would only need to ensure, it get's the correct type of exampleset.