Succu noticed that when migrating constraints to statements different kinds of exceptions are mixed. We probably need some grouping. How to differ exception list from normal exceptional item? We probably need a new property.
Another option : specify a class of exceptions. A property « exception class »
If an item is an instance of the execption class, then the constraint is not relevant.
In spirit, if we require for example items with a birth date to have a death date, and if we have a subclass of « fiction human », say « immortal », that should actually not have one
birth date : constraint : requires statement property : death date exception class : immortal
Which reads in english « any item with a birth date should have a death date except immortal instances »
A more real example : on the « author » property
Any item with an author should be contemporary with an author … except for example editions of that work.
author : constraint : contemporary exception class : edition`