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: + *
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.
*/ package io.nosqlbench.virtdata.lib.vectors.dnn;