From 2c94e81f6b2aa9f968f2f97a384e74bee9daabf7 Mon Sep 17 00:00:00 2001
From: Jonathan Shook
Date: Tue, 5 Mar 2024 10:14:09 -0600
Subject: [PATCH] partial docs work
---
.../dnn/circular/bitfield_filling_curve_2.svg | 4542 +++++++++++++++++
.../vectors/dnn/circular/package-info.java | 25 +
.../lib/vectors/dnn/package-info.java | 24 +-
3 files changed, 4590 insertions(+), 1 deletion(-)
create mode 100644 virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/bitfield_filling_curve_2.svg
create mode 100644 virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/package-info.java
diff --git a/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/bitfield_filling_curve_2.svg b/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/bitfield_filling_curve_2.svg
new file mode 100644
index 000000000..cbc9ce0af
--- /dev/null
+++ b/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/bitfield_filling_curve_2.svg
@@ -0,0 +1,4542 @@
+
+
+
+
diff --git a/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/package-info.java b/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/package-info.java
new file mode 100644
index 000000000..631ea6ed5
--- /dev/null
+++ b/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/circular/package-info.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright (c) 2024 nosqlbench
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+/**
+ *
This package contains an implementation of
+ * {@link io.nosqlbench.virtdata.lib.vectors.dnn.circular.CircularPartitioner},
+ * a space-filling curve which maps ordinals onto 2-d vectors which fall on the unit circle
+ * with increasing density. This allows vector values to get progressive closer together radially
+ * as the arc intervals are divided in half at each level of resolution.
+ *
+ */
+package io.nosqlbench.virtdata.lib.vectors.dnn.circular;
diff --git a/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/package-info.java b/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/package-info.java
index bd8d5c9df..388bdc721 100644
--- a/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/package-info.java
+++ b/virtdata-lib-vectors/src/main/java/io/nosqlbench/virtdata/lib/vectors/dnn/package-info.java
@@ -15,6 +15,28 @@
*/
/**
- * This is an experimental package based on the DNN or "Das/Direct Nearest Neighbor" method.
+ *
This package contains experimental support for new methods for testing vector stores.
+ * projective simulation ... TBD
+ * of vector spaces
+ * within which provably correct KNN relationships can be derived from affine ordinal relationships.
+ * In other words, vectors in some projective space which are addressable by some ordinal identity
+ * can be constructed with procedural generation methods, and provably correct KNN neighborhoods of
+ * some size can be derived on the fly in a closed form calculation.
+ *
+ *
The vector spaces constructed in this way are not intended nor guaranteed to be dimensionally disperse.
+ * They are meant to provide an algebraic basis for exercising vector storage systems with increasing
+ * cardinality of vectors. This means that vector stores can be tested to incrementally higher limits
+ * while their performance and accuracy are both measured.
+ *
+ *
Each vector scheme in this method has the following properties:
+ *
+ *
All vectors within the space are enumerable. Each increasing ordinal value describes a new and distinct
+ * vector. The value of this vector is deterministic within the parameters of the space.
+ *
+ *
+ *
+ *
This work is largely inspired by the DNN or "Das/Direct Nearest Neighbor" method, pioneered by
+ * Shaunak Das at DataStax. Additional implementations and ideas are contributed by the vector performance
+ * team and our testing community.