Combining tabling and constraints is possible. XSB does it. Whether it is complete or comes with limitations, I do not know. Tabling involves term copying and constraints and term copying are bad friends. As is though, SWI-Prolog’s answer tables (implemented as tries) cannot represent attributes.