'Call Mace4 to build a model for each current discourse thread.
:param thread_id: thread ID
:type thread_id: str
:param show: If ``True``, display the model that has been found.'

def models(self, thread_id=None, show=True, verbose=False):

    self._construct_readings()
    self._construct_threads()
    threads = ({thread_id: self._threads[thread_id]} if thread_id else self._threads)
    for (tid, modelfound) in self._check_consistency(threads, show=show, verbose=verbose):
        idlist = [rid for rid in threads[tid]]
        if (not modelfound):
            print(('Inconsistent    discourse:    %s    %s:' % (tid, idlist)))
            for (rid, reading) in self.expand_threads(tid):
                print(('                %s:    %s' % (rid, reading.normalize())))
            print()
        else:
            print(('Consistent    discourse:    %s    %s:' % (tid, idlist)))
            for (rid, reading) in self.expand_threads(tid):
                print(('                %s:    %s' % (rid, reading.normalize())))
            print()
