# Guide

![](/files/-MD8p39GXPkhL-RVC2vf)

## Before You Begin

Before starting to work with RecallGraph, take a few minutes to go through the background and terminology to set the context for understanding the terms used in this guide. To make things easier, essential concepts and terms used in this guide will be linked to their respective documentation.

{% content-ref url="/pages/-M6D3atUlmHU7ZuYoe6Z" %}
[Background](/recallgraph-docs/understanding-recallgraph/concepts.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M6D7ZGgK5nJQQ0LBMYX" %}
[Terminology](/recallgraph-docs/understanding-recallgraph/terminology.md)
{% endcontent-ref %}

{% hint style="warning" %}
If you are migrating from an older version, be sure to carefully go through the [changelog](/recallgraph-docs/working-with-recallgraph/changelog.md) to understand what has changed. Take special note of **breaking changes**, if any.
{% endhint %}

## Initial Setup

Before starting with the guide, you need to have RecallGraph installed on a server you can access (e.g. your `localhost`). Follow the instructions provided in the link below:

{% content-ref url="/pages/-M6D7wtDyE33zwgfVAV9" %}
[Installation](/recallgraph-docs/working-with-recallgraph/installation.md)
{% endcontent-ref %}

After installation, once you login to the web console, you should see the service listed (possibly among other installed services) in the *SERVICES* tab as shown below:

![Service mounted under /recallgraph](/files/-M6_56PvdnFKExaDq6uF)

## Structure of this Guide

{% hint style="info" %}
For all examples shown in the following sections, it is assumed that the service has been locally installed in a database named `acme_hrms`, with mount point `/recallgraph`. This is purely for convenience, and does not in any way affect the API's behavior.
{% endhint %}

RecallGraph works by maintaining an internal log of all changes that its tracked documents (vertices/edges) have gone through. Based on this log, it supports point-in-time (i.e. historical) lookbacks, traversals and even weighted shortest path queries.

To aid with the examples, we will build a simple narrative of an organization's employee database, where we track new hires, attrition, changes to reporting structure and designation (promotions, temporary assignments, etc.). The narrative will go through stages of first entering initial employees' data, followed by addition of new hires, a few cessations and a few internal movements. At each stage, the overall structure of the organization will be different, and we will see how to look at current and previous versions of  the organization.

{% hint style="info" %}
This guide assumes minimal knowledge of ArangoDB and its web console (esp Swagger). Experienced users may find some sections a little tedious, but they had to be designed that way to help new developers get comfortable with the interface.
{% endhint %}

To align with the logical sequence of entering data, scanning the logs to identify interesting events and time points, and finally running historical graph and document queries *as of* those time points, the guide is structured into the following sections, in order:

{% content-ref url="/pages/-M6ZvyS49yv3eoMKmiTC" %}
[Persisting Documents](/recallgraph-docs/working-with-recallgraph/guide/persisting-documents.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M6ZwL2Ik\_r7FTHg1-J-" %}
[Analyzing the Event Log](/recallgraph-docs/working-with-recallgraph/guide/analyzing-the-event-log.md)
{% endcontent-ref %}

{% content-ref url="/pages/-M6ZwdTQ0dUtBonlZYZo" %}
[Navigating History](/recallgraph-docs/working-with-recallgraph/guide/navigating-history.md)
{% endcontent-ref %}


---

# 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://adityamukho.gitbook.io/recallgraph-docs/working-with-recallgraph/guide.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.
