As I understand a property with a `reference`

can have additional filters in the form of `where`

rules, for example:

```
'Blue EV passenger car': text -> .'Vehicles'[]
where '4 Wheels' ~> .'Vehicles'[] .'Number of wheels'?'Four'
where 'At least 4 seats' ~> .'Vehicles'[] .'Number of seats'?'Four or more'
where 'Blue' ~> .'Vehicles'[] .'Color'?'Blue'
where 'EV' ~> .'Vehicles'[] .'Kind of propulsion'?'Electric'
```

My question is on how these `where`

rules form the resulting data set. It seems the *intersection* of the data resulting from each rule determines the final data set, rather than the *union*. Is this correct?

If this is the case, then this would result in an empty set:

```
'Blue and red passenger cars': text -> .'Vehicles'[]
where '4 Wheels' ~> .'Vehicles'[] .'Number of wheels'?'Four'
where 'At least 4 seats' ~> .'Vehicles'[] .'Number of seats'?'Four or more'
where 'Blue' ~> .'Vehicles'[] .'Color'?'Blue'
where 'Red' ~> .'Vehicles'[] .'Color'?'Red'
```

… because a vehicle cannot be blue and red at the same time (at least, in this model; this would need a state `'Blue or red'`

in stategroup `'Color'`

)