# Version Control and Querying

## Understanding the Interaction Between Deep Lake's Versions, Queries, and Dataset Views.

Version control is the core of the Deep Lake data format, and it interacts with queries and view as follows:

* Datasets have commits and branches, and they can be traversed or merged using Deep Lake's Python API.&#x20;
* Queries are applied on top of commits, and in order to save a query result as a `view`, the dataset cannot be in an uncommitted state (no changes were performed since the prior commit).&#x20;
* Each saved `view` is associated with a particular commit, and the view itself contains information on which dataset indices satisfied the query condition.

This logical approach was chosen in order to preserve data lineage. Otherwise, it would be possible to change data on which a query was executed, thereby potentially invalidating the saved view, since the indices that satisfied the query condition may no longer be correct after the dataset was changed.&#x20;

**Please check out our** [**Getting Stated Guide**](/v3.6.3/getting-started/deep-learning.md) **to learn how to use the Python API to** [**version your data**](/v3.6.3/getting-started/deep-learning/dataset-version-control.md)**,** [**run queries, and save views**](/v3.6.3/enterprise-features/compute-engine/querying-datasets.md)**.**&#x20;

An example workflow using version control and queries is shown below.&#x20;

<figure><img src="/files/ROLOWL2K8XHSQ5k7J959" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-v3.activeloop.ai/v3.6.3/how-it-works/version-control-and-querying.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
