Skip to main content

ApertureDB Terminology

ApertureDB represents media, application metadata, and feature vectors as objects connected in a graph. Its query language combines property filters, graph traversal, and vector similarity search.

Objects​

An object is a stored item that can have properties and connections to other objects. ApertureDB supports these object types:

  • Entity: application-specific information or metadata.
  • Image: image data and its metadata.
  • Video: video data and its metadata.
  • Blob: binary data such as text, PDF, or audio files.
  • DescriptorSet: a collection of embeddings with a shared search configuration.
  • Descriptor: a feature vector, also called an embedding.
  • BoundingBox: a rectangular region of interest on an image.
  • Polygon: a polygonal region of interest on an image.
  • Clip: a portion of a video.
  • Frame: an individual video frame.

Connections​

Graph connections are directed relationships between stored objects. A client connection is the network session used to send requests; it is a different concept.

Schema​

The schema describes the object classes, graph connections, and properties present in the database. It follows a property graph model and emerges as data is added; classes and properties need not be declared in advance.

Commands​

A command performs an action on an object or the database. Examples include AddImage, FindEntity, GetStatus, and GetSchema. Other commands extract video frames or calculate intersection over union for regions.

Commands are represented as JSON objects. Graph mutations share a graph transaction. Account-management side effects and response construction have separate failure boundaries, described in transactions and references.

Operations​

Operations process images or videos during ingestion or retrieval. They can transform media as part of a query without requiring a separate processing step in the client application.

Server​

The database server accepts requests from clients, checks authentication and permissions, executes queries, and returns responses. It also provides monitoring and logging for administration.

Client​

A client is an application that connects to the server and sends queries. ApertureDB provides Python and C++ clients. The REST API supports web applications and other languages. Clients can run in applications, scripts, command-line tools, or notebooks.

Query​

A query is an ordered sequence of one or more commands sent in one request. The request envelope carries the commands and any binary inputs. The response and error rules describe the returned results and failure cases.

Properties and arrays​

Properties attach named, typed values to objects or graph connections. An Entity is the application-defined object type; “object” also includes images, videos, descriptors, and the other built-in types. A property's native storage type is consistent within a class, even though classes and properties need not be predeclared.

An array stored as a property is data. An expression array such as ["$age", ">=", 18] is a query condition. The property reference and filter reference define their syntax and allowed types.

References​

_ref names a set of objects within one request. Later commands consume that reference through ref or a command-specific field. References are not saved object IDs and do not survive the request. Their scope and use are described in transactions and references.

Descriptors​

A descriptor is a numeric feature vector, also called an embedding. A descriptor set defines the dimension and similarity-search configuration for its vectors. Graph connections associate descriptors with their source objects. The vector search example shows how these vectors and connections participate in a query.

Deployment components​

The database stores and queries data; Lenz routes client requests; the web proxy serves web and REST traffic; ZooKeeper coordinates distributed services; the checkpointer manages checkpoints. Their ports, settings, and TLS boundaries are specified by the selected deployment package.