# TOM (Tabular Object Model)

The Tabular Object Model (TOM) offers a programmatic approach to managing administrative tasks, including model creation, data import, refreshing, and role/permission assignments.

TOM provides access to native tabular metadata, such as **model**, **tables**, **columns**, and **relationships** objects. The object model tree provides an overview of how these components are interconnected.

### **Tabular object model hierarchy**

From a logical standpoint, all tabular objects constitute a tree structure, rooted in a **Model** descending from Database. It's worth noting that **Server** and **Database** aren't strictly tabular because they might represent a multidimensional database on a server operating in Multidimensional mode, or a lower-compatibility tabular model not utilizing tabular metadata for object definitions.

Except for **AttributeHierarchy**, **KPI**, and **LinguisticMetadata**, each child object can be part of a collection. For instance, the **Model** object contains a collection of **Table** objects (via the **Tables** property), where each **Table** object houses a collection of **Column** objects, and so forth.

The lowest level descendant in this hierarchy for any parent object is an **Annotation** object. This object can be employed to optionally expand the schema provided that the necessary code is implemented to manage it.

### **Tabular object model Graphical View**

<figure><img src="/files/AbRaM2Qb77l5vk8Gnwng" 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.powerops.app/powerops/best-practices/data-model-rules/edit-rules/tom-tabular-object-model.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.
