Skip to main content

Command Palette

Search for a command to run...

Rows, Documents, Vectors, Graphs, and Knowledge Objects: Where Does AIKOQL Fit?

Updated
15 min readView as Markdown
Rows, Documents, Vectors, Graphs, and Knowledge Objects: Where Does AIKOQL Fit?

In the first two posts of this series, I introduced why I started building AIKOQL and the idea behind the Knowledge Object.

But there is an obvious question that follows.

Why do we need another abstraction at all?

We already have relational databases.

We have document databases.

We have vector databases.

We have graph databases.

Each of these technologies solves important problems.

So where exactly does AIKOQL fit?

The short answer is:

AIKOQL is not trying to replace them.

The more interesting answer is that each database abstraction represents data differently because each was designed to solve a different class of problems.

AIKOQL is exploring whether AI systems introduce another set of requirements that existing abstractions do not always represent naturally.

To understand that, let's start with the abstractions we already use.


Different abstractions solve different problems

There is no universally perfect database model.

A relational database is excellent at some things.

A document database is excellent at others.

A vector database solves a different problem.

A graph database provides another perspective.

The mistake is assuming that one model should replace all the others.

Instead, we should ask:

What does each abstraction make easy?

And equally important:

What does each abstraction leave to the application layer?


1. Rows: structure, transactions, and consistency

Relational databases represent information as structured data.

For example:

Users

+----+--------+-------------------+
| ID | Name   | Email             |
+----+--------+-------------------+
| 1  | Alice  | alice@example.com |
| 2  | Bob    | bob@example.com   |
+----+--------+-------------------+

This model is incredibly powerful.

Relational databases are excellent when you need:

  • Structured schemas

  • Strong consistency

  • Transactions

  • Constraints

  • SQL queries

  • Joins

  • Reliable business data

For a huge number of applications, a relational database is exactly the right choice.

But imagine asking the database:

Which information about this system is currently valid?

Or:

Which knowledge is supported by the most authoritative evidence?

Or:

What conclusions depend on this piece of information?

Those questions are not impossible to answer with relational databases.

You can build tables for provenance.

You can create temporal models.

You can store confidence scores.

You can create dependency relationships.

But these concepts are not necessarily first-class parts of the data abstraction.

The application has to define what they mean.


2. Documents: flexible and expressive information

Document databases take a different approach.

Instead of forcing information into fixed rows and columns, data can be represented as documents.

For example:

{
  "service": "payments",
  "database": {
    "engine": "PostgreSQL",
    "version": "16"
  },
  "owners": [
    "platform-team"
  ]
}

This is useful for:

  • Flexible schemas

  • Nested data

  • Rapid application development

  • Semi-structured information

  • Evolving data models

Documents are a natural way to represent rich application data.

But a document still primarily answers:

What information was stored?

It does not automatically represent:

  • Whether the information is currently valid

  • Where each statement originated

  • What evidence supports it

  • Whether another source contradicts it

  • How authoritative the source is

  • What knowledge was derived from it

Again, these things can be added.

But they usually become application-level conventions.


3. Vectors: semantic similarity

Vector databases introduced another important capability.

Instead of retrieving information through exact values, vectors allow systems to retrieve information based on semantic similarity.

For example:

Query:

"How do I restart the payment service?"

        ↓

Vector Search

        ↓

Semantically Similar Documents

This changed how we build retrieval systems.

Vector search is particularly useful for:

  • Semantic search

  • Retrieval-Augmented Generation

  • Similarity search

  • Unstructured information

  • AI applications

But semantic similarity is not the same thing as knowledge.

Imagine two documents.

Document A:

"The production database runs on PostgreSQL."

Document B:

"The production database previously ran on PostgreSQL."

Semantically, these statements are very similar.

But temporally, they mean very different things.

A vector search may retrieve both.

The application or LLM must then determine:

Which one is current?

Now imagine another statement:

"According to the approved architecture decision, the production database now runs on CockroachDB."

This introduces another dimension.

The system must consider:

  • Semantic relevance

  • Temporal validity

  • Authority

  • Evidence

  • Knowledge state

Similarity alone is not enough.

This does not make vector databases less useful.

It simply means:

Similarity is one signal. Knowledge requires more context.


4. Graphs: relationships and connected information

Graph databases focus on relationships.

For example:

Service
   │
   ├── DEPENDS_ON ────▶ Database
   │
   ├── OWNED_BY ──────▶ Team
   │
   └── AFFECTED_BY ───▶ Incident

Graphs are extremely powerful when relationships are central to the problem.

They are useful for:

  • Relationship traversal

  • Network analysis

  • Knowledge graphs

  • Recommendations

  • Dependency analysis

  • Connected entities

Graphs answer an important question:

How are things connected?

But a relationship alone does not necessarily tell us:

Is this relationship still valid?

Where did it come from?

Who asserted it?

Is it verified?

Was it superseded?

What evidence supports it?

A graph can represent those concepts.

But once again, the meaning of those concepts often needs to be defined by the application.


The AI problem: combining multiple kinds of context

This is where the architecture of modern AI applications becomes interesting.

A typical AI system may look like this:

                 ┌──────────────────┐
                 │   Relational DB  │
                 │                  │
                 └────────┬─────────┘
                          │
                 ┌────────▼─────────┐
                 │  Document Store  │
                 └────────┬─────────┘
                          │
                 ┌────────▼─────────┐
                 │    Vector DB     │
                 └────────┬─────────┘
                          │
                 ┌────────▼─────────┐
                 │     Graph DB     │
                 └────────┬─────────┘
                          │
                          ▼
                   Application Logic
                          │
                          ▼
                     AI / LLM Agent

The application becomes responsible for combining everything.

It decides:

  • Which database to query

  • Which results are relevant

  • Which information is current

  • Which source is authoritative

  • Which information should be trusted

  • Which relationships matter

  • Which historical information should be ignored

  • Which contradictions need to be resolved

The LLM then receives the final context.

This works.

But it raises a question:

Should all of this knowledge interpretation live outside the data layer?

That is one of the questions AIKOQL is exploring.


The Knowledge Object: adding meaning to information

AIKOQL introduces the idea of a Knowledge Object as a potential abstraction above raw information.

Conceptually:

Knowledge Object

        Content
           │
           ▼

      +----------+
      | Knowledge|
      |  Object  |
      +----------+
           │
     ┌─────┼──────────────┐
     │     │              │
     ▼     ▼              ▼

Provenance  Time      Relationships
Evidence    State     Derivation
Authority   Confidence Lifecycle

A Knowledge Object is not defined only by its content.

It can also carry context about that content.

For example:

Knowledge:
"The production database runs on PostgreSQL."

Context:

Identity:
production.database.engine

Source:
Architecture Document

Authority:
Approved Architecture Decision

Evidence:
Infrastructure Configuration

Valid From:
January 2025

Valid Until:
June 2026

Current State:
Superseded

Superseded By:
knowledge-object-xyz

Now consider what an AI agent can ask.

Instead of:

Find documents mentioning PostgreSQL.

It could eventually ask:

What is the current production database?

The system now has the opportunity to consider:

  • Relevance

  • Time

  • Knowledge state

  • Authority

  • Evidence

That is the difference I am exploring.


AIKOQL is not another vector database

This is an important clarification.

AIKOQL is not trying to say:

"Vector search is obsolete."

Vector search remains extremely useful.

But vector search primarily helps answer:

What information is semantically related?

A Knowledge Object explores additional questions:

Is this information current?

Is it verified?

Where did it come from?

What supports it?

What contradicts it?

What knowledge was derived from it?

Can an AI agent reuse it?

Semantic retrieval can be part of a knowledge system.

But semantic retrieval alone does not define knowledge.


AIKOQL is not another graph database

Relationships are also important.

Knowledge Objects can have relationships.

For example:

Knowledge A

    │
    ├── DERIVED_FROM ─────▶ Knowledge B
    │
    ├── CONTRADICTS ──────▶ Knowledge C
    │
    └── SUPERSEDES ───────▶ Knowledge D

But AIKOQL is exploring relationships with additional meaning.

If Knowledge B becomes invalid, what happens to Knowledge A?

If Knowledge D was superseded, should the system return it as current knowledge?

If Knowledge C contradicts another verified statement, should both remain visible?

Relationships become operational.

They are not only used for traversal.

They can influence how knowledge is interpreted.


AIKOQL is not trying to replace relational databases

This is probably the most important point.

AIKOQL does not need to become the system of record for everything.

You should still use the best storage system for the workload.

For example:

Financial transactions
        ↓
Relational Database

Large analytical queries
        ↓
Columnar Database

Application documents
        ↓
Document Store

Semantic similarity
        ↓
Vector Search

Highly connected entities
        ↓
Graph Database

AIKOQL is exploring a different role.

Conceptually:

                 Existing Data Systems
                         │
         ┌───────────────┼───────────────┐
         │               │               │
         ▼               ▼               ▼

     Relational       Documents        Vectors
         │               │               │
         └───────────────┼───────────────┘
                         │
                         ▼

                  Knowledge Layer
                         │
                  ┌──────▼──────┐
                  │   AIKOQL    │
                  │             │
                  │ Knowledge   │
                  │   Objects   │
                  └──────┬──────┘
                         │
              ┌──────────┼──────────┐
              │          │          │
              ▼          ▼          ▼

           Agents     Retrieval   Reasoning

This is the architectural space I find interesting.

AIKOQL does not necessarily need to replace the systems underneath.

It can explore becoming a knowledge-aware layer that gives AI systems richer context.


Where Knowledge Objects fit

The simplest way I currently think about the data ecosystem is this:

Rows answer:

What structured data do we have?

Documents answer:

What information was written or stored?

Vectors answer:

What information is semantically related?

Graphs answer:

How are entities connected?

Knowledge Objects explore:

What does this information mean in context?

And that context can include:

  • Identity

  • Provenance

  • Evidence

  • Authority

  • Epistemic state

  • Temporal validity

  • Relationships

  • Derivation

  • Lineage

  • Confidence

  • Lifecycle

This is the central hypothesis behind AIKOQL.


A different retrieval question

Traditional retrieval often looks like this:

Query

   ↓

Search

   ↓

Top K Results

   ↓

LLM

But a knowledge-aware system may eventually need something more like:

Query

   ↓

Semantic Relevance

   +

Authority

   +

Temporal Validity

   +

Evidence

   +

Knowledge State

   +

Relationships

   ↓

Contextual Knowledge

   ↓

AI Agent

The difference is subtle but important.

The goal is not simply:

Retrieve the most similar information.

The goal becomes:

Retrieve the most relevant knowledge for this decision.

That may eventually require different signals depending on the workload.

A customer support agent might prioritize current information.

A research system might prioritize evidence.

A compliance system might prioritize provenance.

An autonomous agent might need to understand confidence and uncertainty.

This is why I don't think there will be one universal retrieval strategy.

The Knowledge Object can potentially provide the information required to make those decisions.


The role of AIKOQL in an existing architecture

One of the most important design principles for AIKOQL is interoperability.

AIKOQL should not assume that it owns all the data.

Real organizations already have:

  • PostgreSQL

  • MySQL

  • ClickHouse

  • Elasticsearch

  • Object storage

  • Data warehouses

  • Vector databases

  • APIs

  • Documents

  • Event streams

Replacing all of this infrastructure is unrealistic.

The more interesting problem is:

How can knowledge be built from information that already exists?

Conceptually:

Existing Data

     │

     ▼

┌───────────────────┐
│ Relational Data   │
├───────────────────┤
│ Documents         │
├───────────────────┤
│ Files             │
├───────────────────┤
│ APIs              │
├───────────────────┤
│ Events            │
└─────────┬─────────┘
          │
          ▼

    Knowledge Extraction

          │
          ▼

    Knowledge Objects

          │
          ▼

   Knowledge-Aware AI

That is a much more realistic position than claiming:

Move everything into AIKOQL.

The goal is to work with existing infrastructure.


Knowledge-aware does not mean knowledge is always correct

Another important distinction.

A Knowledge Object does not mean the system magically knows the truth.

Knowledge can be:

  • Incomplete

  • Conflicting

  • Outdated

  • Unverified

  • Inferred

  • Incorrect

AIKOQL is therefore exploring explicit knowledge state.

For example:

Observed

      ↓

Asserted

      ↓

Verified

Or:

Knowledge

   ├── Contradicted
   │
   ├── Superseded
   │
   └── Invalidated

The goal is not to pretend uncertainty does not exist.

The goal is to make uncertainty visible.

For AI systems, this may be more important than storing another confidence score in a metadata field.

An AI agent should eventually be able to distinguish between:

"This is verified."

and:

"This was observed but has not been verified."

and:

"This information was previously valid but has been superseded."

Those distinctions are part of the Knowledge Object model.


From data to knowledge infrastructure

The direction I am currently exploring looks something like this:

                    DATA
                     │
                     ▼
             ┌───────────────┐
             │     Rows      │
             │   Documents   │
             │    Vectors    │
             │    Graphs     │
             └───────┬───────┘
                     │
                     ▼

               INFORMATION
                     │
                     ▼

             ┌───────────────┐
             │    AIKOQL     │
             │               │
             │   Knowledge   │
             │    Objects    │
             └───────┬───────┘
                     │
                     ▼

                KNOWLEDGE
                     │
          ┌──────────┼──────────┐
          │          │          │
          ▼          ▼          ▼

       Retrieval   Memory   Reasoning
          │          │          │
          └──────────┼──────────┘
                     │
                     ▼

              AI Applications

This is not a finished architecture.

It is a direction.

And like everything else in AIKOQL, it needs to survive real implementation and testing.


Where I think AIKOQL can provide value

I currently see the strongest potential for AIKOQL in workloads where AI systems need more than retrieval.

For example:

AI Agents

Agents need persistent memory.

But memory is not simply a chat history.

An agent may need:

  • Facts

  • Observations

  • Experiences

  • Derived conclusions

  • Historical knowledge

A Knowledge Object can provide a structured way to represent these different categories.


Enterprise Knowledge Systems

Organizations have information spread across:

  • Documents

  • Wikis

  • Databases

  • APIs

  • Internal tools

AIKOQL is exploring whether knowledge can preserve:

  • Provenance

  • Authority

  • Evidence

  • Temporal validity

while making it available to AI systems.


Long-Running AI Workflows

Autonomous systems may need to remember why they made a decision.

They may need to revisit previous conclusions.

They may need to invalidate conclusions when new information appears.

This requires more than storing messages.

It requires lineage.


Explainable AI Systems

When an AI system produces a conclusion, users increasingly ask:

Why?

Knowledge lineage could potentially help answer:

  • What information contributed to this?

  • Where did it come from?

  • Was it verified?

  • What other knowledge did the system rely on?

This is an important direction for AI infrastructure.


The important question is not replacement

The wrong question is:

Can AIKOQL replace PostgreSQL?

Or:

Can AIKOQL replace ClickHouse?

Or:

Can AIKOQL replace a vector database?

Those comparisons may be useful when testing specific workloads, but they are not the central question.

The better question is:

What becomes possible when knowledge itself has a first-class lifecycle?

Can an AI system reason more reliably?

Can it distinguish historical information from current knowledge?

Can it trace derived conclusions?

Can it identify contradictions?

Can it reuse validated experience?

Can it explain why it retrieved something?

Those are the questions I am building AIKOQL to explore.


Where does AIKOQL fit?

My current answer is simple:

AIKOQL is not trying to replace rows, documents, vectors, or graphs.

Each of those abstractions solves a real problem.

AIKOQL is exploring what happens when we add another layer:

Knowledge with context, provenance, state, time, relationships, and lineage.

Rows store structured facts.

Documents store flexible information.

Vectors help discover semantic similarity.

Graphs represent relationships.

Knowledge Objects explore how information can become operational knowledge for AI systems.

That distinction is still being tested.

And I expect my understanding of it to evolve as AIKOQL evolves.

But this is the space I believe is worth exploring.


What comes next

In the next post, I want to move from the abstraction itself to one of the hardest practical problems:

From Documents to Knowledge Objects: Rethinking AI Data Ingestion

Because if Knowledge Objects are going to be useful, we need to answer:

Where do they come from?

Documents are not just text.

They contain:

  • Tables

  • Diagrams

  • Charts

  • Images

  • Formulas

  • Structured sections

  • Relationships

Flattening everything into plain text can destroy meaning.

So the next part of the AIKOQL journey will explore how information moves from raw data and multimodal documents toward structured knowledge.

The real challenge is not just storing knowledge.

It is understanding how to create it without losing the context that made the information meaningful in the first place.


AIKOQL is an evolving open project. The architecture and ideas described here are being actively tested and may change as the system encounters real workloads, benchmarks, and engineering constraints.

If you work with databases, vector search, graphs, RAG, AI agents, or knowledge systems, I would love your perspective.

Do you think AI systems need a knowledge-aware layer, or should these capabilities remain in the application layer built on top of existing databases?

Building AIKOQL: Exploring AI-Native Knowledge Infrastructure

Part 3 of 9

A public engineering journey exploring AI-native knowledge infrastructure. From Knowledge Objects and agent memory to provenance, multimodal ingestion, Rust architecture, storage systems, and real-world benchmarking.

Up next

From Documents to Knowledge Objects: Rethinking AI Data Ingestion

In the previous posts, I introduced why I started building AIKOQL, what a Knowledge Object is, and where I believe AIKOQL fits alongside relational databases, document stores, vector databases, and gr

More from this blog

A

AIKOQL

9 posts