20 Related Work
Full decomposition with unary predicates
Predica’s treatment of all attributes as unary predicates over decomposed domains resonates with several strands of prior work, but the specific combination of ideas does not appear in the literature as a unified modelling foundation.
In classical first-order logic, it is well known that n-ary predicates can be simulated using unary predicates together with additional structure, and that monadic fragments of first-order logic enjoy strong decidability properties. However, these results are typically presented as technical encodings or proof techniques rather than as a basis for data modelling or schema design.
In knowledge representation, especially in frame systems, semantic networks, and description logics, one finds the notion of roles that behave much like unary predicates on individuals. Binary and higher-arity relations are still treated as primitive, and n-ary relations are often handled via reification, but there is no systematic commitment to representing all information as unary predicates over a recursively decomposed domain.
In the relational model and its successors, attributes are sometimes informally described as roles, and domains are allowed to be arbitrarily complex. Nonetheless, n-ary relations remain the primary semantic unit, and there is no move to reconstruct them compositionally from families of unary predicates. Attribute-centric perspectives have been explored, but not to the extent of eliminating n-ary relations as primitives.
Categorical and type-theoretic semantics introduce another closely related perspective: predicates can be viewed as families of sets indexed by a domain, and unary predicates correspond to fibres in a fibration or objects in a comprehension category. This aligns well with Predica’s view of attributes as unary predicates whose extensions vary over domain instances, but these constructions are typically used to model existing logics and type systems, not to drive a reorganisation of data modelling around unary predicates.
Finally, in programming languages and type theory, higher-arity functions and tuples are routinely encoded using unary functions and nested pairs (via currying and Church encodings). These encodings demonstrate that higher-arity structure can be reduced to iterated unary structure, but they are employed as representational devices rather than as a semantic stance on how information should be modelled.
Predica differs from these lines of work by taking the unary perspective as foundational: all attributes are unary predicates; domains are recursively decomposed; and n-ary relations are reconstructed from the cross-product of unary predicate facts. This yields a uniform representation of information that removes the need for tuple-valued attributes, relation-valued attributes, and possreps, while keeping natural language predicates as the primary semantic anchor.