Die Convex Database ist eine Datenbasis zum Ablegen und Auffinden von komplexen Datenobjekten.

Hintergrund#

Komplexe Datenobjekte bezeichnet Objecte, für die keine unmittelbare Ordnung existiert, weil die Anzahl der Kriterien sehr groß ist. Beispiele sind Zeichenketten, Bilder, Töne oder Dateien. Zwischen solchen Objekten kann jedoch immer eine Ähnlichkeit definiert werden, sei es die Edit-Distance nach Levenshtein.

Bisher bestand das Problem sowohl im Sortieren als auch in den Zugriffsmechanismen einer derartigen Datenbasis. Das Hinzufügen und Entfernen von Elementen verursachte mehr Aufwand, als die gesamte Datenbasis zu vergleichen.

Lösung#

Die Intersult Convex Database verwendet Algorithmen zum effizienten Hinzufügen und Entfernen von Elementen in der Datenbasis.

Beispiel#

public class ConvexTest {
	@Test
	public void test() {
	        String test = "test";
		ConvexSet<String> set = new ConvexSet<String>(new EditDistance(), new LenseCriterion());
		for (int i = 0; i < size; ++i) {
			String string = StringUtils.generateString(10D);
			System.out.println(string);
			set.add(string);
		}
		ConvexSet<String>.Convex convex = set.find(text);
		System.out.println(convex.getValue() + "(" + convex.distance(test) + ")");
	}
}