@c  This document is part of the Liza Data Collection Framework manual.
@c  Copyright (C) 2017 R-T Specialty, LLC.
@c
@c    Permission is granted to copy, distribute and/or modify this document
@c    under the terms of the GNU Free Documentation License, Version 1.3
@c    or any later version published by the Free Software Foundation;
@c    with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
@c    Texts.  A copy of the license is included in the section entitled ``GNU
@c    Free Documentation License''.

@node Predicate System
@chapter Predicate System
@maintstart
@footnote{
  New programs (using the old incarnation of TAME) use the classifier
    embedded into the rater by TAME.
  Old ones, however, still use the @dfn{Global Classifier}.
  This system isn't as well tested as TAME's@mdash{
    }which needs to work properly for the sake of calculating premium@mdash{
    }and has suffered from a number of bugs in the past.

  The solution is to migrate all programs to TAME and remove that old
    code.}
@maintend

@tip{
  For a practical application of these concepts, see its use in the
    Program@tie{}XML (@pxref{Specifying Predicates}).}

@cindex Predicate
@cindex Classifier
@cindex Applicability
@cindex Domain of discourse, Predicate
The @dfn{predicate system} determines the @dfn{applicability} of
  certain objects (like questions and assertions) by associating them
  with predicates.
The domain of discourse (variables which may be quantified) is listed
  in @ref{t:predicate-dod}.

What it means for some object to be applicable depends on the context.

@float Table, t:predicate-dod
@multitable @columnfractions 0.25 0.10 0.65
  @headitem Type @tab Prefix @tab Description

  @item Classifications
    @tab @emph{None}
    @tab Results of applying an external @dfn{classifier} to the bucket
      (@pxref{Bucket}).

  @item Bucket Truth Predicate
    @tab @code{q:}
    @tab
      Whether the given name in the bucket (@pxref{Bucket}) is
        non-empty and non-zero.
      The prefix @samp{q:} refers to its most common use
        case---questions (@pxref{Program UI,,Program@tie{}UI}).
@end multitable
@caption{Predicate system domain of discourse}
@end float

This system is limited to existential quantification over the domain
  of discourse.
For other quantifiers and higher-order logic,
  defer to one of the systems that contributes to the domain of
  discourse,
    like the classifier.@footnote{
      This is usually TAME.
      The Program XML also supports inline classifications
        with TAME's syntax (@pxref{Specifying Predicates}).}

Predicates are usually specified in the Program XML
  (@pxref{Specifying Predicates}) and compiled into the program
  (@pxref{Program}).
