# is with where

An **Existence** **declaration** that allows selecting specific *Instances* based on some condition that has to be fulfilled regarding that *Instance*.

### Syntax

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

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`), and the value for the `Information Field` matches the `CONDITION`.

`self` can be used inside the condition instead of `VARIABLE`.

### Example: with VARIABLE Information Field

```python
p is Person where p.first_name = 'John'
```

If there is a `Person` Instance in the Case and the value of its Information Field `first_name` is 'John', it will be available in the variable `p`. In this example the `CONDITION` is `p.first_name = 'John'`.

### Example: with self Information Field

```
p is Person where self.first_name = 'John'
```

The same expression can be written with `self` inside the `CONDITION` to obtain the same result.
