Created on Feb. 23, 2013, 11:10 a.m. by Hevok & updated by Hevok on May 2, 2013, 5:18 p.m.

`FILTER` Constraints are Evaluated in 3-valued Logic.

When one uses `FILTER` expressions and one combines them, RDF or `FILTER` expression within SPARQL on need to take into consideration that SPARQL is not necessary based on a Binary Logic, but in fact it is based on Ternary Logic, i.e. 3-valued Logic because each part that is connected via **or** or **and** can be either True, False or there might be an Error.

Error is treated as a special third return Value that has to be taken into consideration when it is combined with the **or** or **and** Operators.

In the end one comes up with a Value Table. If for instance True is combined with Error via **and** it will be of course an Error and when connected via and **or** it will be True. On the other hand when one connect False with an Error in the case of an **or** it will be an Error and in the case of an **and** it will be False.

This is a Ternary Pattern for terms in SPARQL that will be combined via disconnectives **or** or **and**

A |
B* |
A||B |
A&&B |

T | T | T | T |

T | F | T | F |

F | T | T | F |

F | F | F | F |

T | E | T | E |

E | T | T | E |

F | E | E | F |

E | F | E | F |

E | E | E | E |

- True, False, and
**Error**

A |
!A |

T | F |

F | T |

E | E |

## Comment on This Data Unit