Search code examples
cluster-analysiselki

ELKI - Use List<String> of objects to populate the Database


Sorry for the naive question, but I got stuck while following all the pieces of tutorials available. So, is there a way to populate a Database db from a simple List rather than loading it reading a file?

Basically what I'm looking for is something similar to:

List objects = ...

Database db = ClassGenericsUtil.parameterizeOrAbort(ArrayDatabase.class, params, objects);

db.initialize();

Thanks in advance.


Solution

  • What are the contents of your Strings? Same as understood by the ELKI parsers?

    This will likely require some code modifications, because the parsers are designed around Javas InputStream. I don't suggest wrapping a List<String> into an InputStream although that would probably be the least-effort approach.

    Why don't you try extending AbstractDatabaseConnection (or implementing DatabaseConnection)? The database connection format, MultipleObjectsBundle is not much more than List<Object> and relation metadata; fairly easy to construct.

    Alternatively, you could use your own code to parse the Strings into double[] and then use ArrayAdapterDatabaseConnection; which will wrap the double[] as DoubleVector for you and construct the bundles.