> For the complete documentation index, see [llms.txt](https://docs.atfinity.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.atfinity.io/rule-language/declarations/is-ontology-role.md).

# is

**Existence declarations** are the simplest declarations you can create. Each of these declarations must be fulfilled for the document or rule to match. However, for each possible combination multiple matches are created.

### Syntax

`VARIABLE is ONTOLOGY, ROLE_1, ..., ROLE_N`

A match with the name `VARIABLE` is created for an Instance that has the Ontology `ONTOLOGY` and all the roles (`ROLE_1` to `ROLE_N`) mentioned.

A declaration is also valid if there is either an Ontology or a list of Roles after the `is`; providing both of them is optional.

### Example: Just an Ontology

```python
p is Person
```

If there is a `Person` Instance in the Case, it will be available in the variable `p`.

### Example: Just a Role

```python
p is AccountHolder
```

If there is an Ontology Instance with the role `AccountHolder` in the *Case*, it will be available in the variable `p`.

### Example: Ontology and Role

```python
p is Person, AccountHolder
```

If there is a `Person` Instance that has the Role `AccountHolder` in the Case, it will be available in the variable `p`.
