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

Hintergrund#

Komplexe Datenobjekte bezeichnet solche Dateien, für die keine unmittelbare Ordnung existiert, weil die Anzahl der Kriterien sehr groß ist. Beispiele sind Bilder, Töne, 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 Datenbank. 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 Datenbank.

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) + ")");