ApertureDB Terminology
ApertureDB is a database purpose-built for multimodal AI. It is not just a graph database, a vector database, or raw data storage but these technologies along with some data preparation support is blending together to build a data layer that lets data teams centralize, unify, search, and access different modalities of data via a unified interface. To achieve that, certain ApertureDB concepts are different as compared to traditional databases, as explained on this page.
Objects
ApertureDB allows management of unstructured or multimodal data. Therefore, there are certain data types that are recognized as first class citizens in ApertureDB vocabulary. The current set of these objects is listed below:
- Entity (a way to represent application-specific information or metadata)
- Image
- Video
- Blob (could be anything as text files, pdfs, audio files)
- DescriptorSet or collection (or search space) of embeddings
- Descriptor or embeddings
- BoundingBox (rectangular region of interest on an image)
- Polygon (set of points making a polygon region of interest on an image)
- Clip (portion of a video)
- Frame
Connections
Connections express the relationship between objects.
Schema
Described in more detail here, all Objects above with Connections between them lead to creating a "graph schema" that represents everything added to ApertureDB. Users don't need to pre-define it but as they are added objects, connections, their properties, we get to a schema that resembles a property graph model.
Commands
Commands: perform specific actions on objects (Add/Find/Update/Delete) and the database (GetStatus/GetSchema). There are certain advanced operations that allow you to do things like extract frames from videos, perform intersection over union for polygons and bounding boxes, and so on. server make up a query. In the ApertureDB query language, commands are represented as JSON objects. All commands in one query execute as one database transaction.
Operations
With advanced support for certain multimodal data types like images and videos, you can process or augment them on-the-fly while storing or when fetching data.
Server
ApertureDB is split in a classic server-client architecture where the database server listens for requests from multiple clients on a designated port, executes the queries after authentication and access control checks, and returns a response to the clients. It also allows monitoring and logging for administrative purposes.
Client
ApertureDB clients are essentially Python, C++ applications that connect with the server and send queries expecting a response. You can write command line queries, scripts, or execute Python commands in Notebooks. You can also use ApertureDB's REST endpoints to send queries from web applications or other languages.
Query
A sequence of one or more commands sent as a set of instructions to the ApertureDB server from an ApertureDB client is a query. It is executed as one database transaction (learn more).