A Dataset is a collection of Items with a function that can return a unique identifier for each item.
A MultiLabelDataset has a set of labels associated with each item, and, optionally an index of labels.
A TermDataset has a set of terms associated with each item, and, optionally an index of terms and a tokenizer describing how those terms were created.