code: def tag_clauses(self):
          
          if not self.is_tagged(CLAUSE_ANNOTATION):
              self.tag_clause_annotations()
  
          def from_sentence(words):
              """Function that extracts clauses from a signle sentence."""
              clauses = defaultdict(list)
              start = words[0][START]
              end = words[0][END]
              clause = words[0][CLAUSE_IDX]
              for word in words:
                  if word[CLAUSE_IDX] != clause:
                      clauses[clause].append((start, end))
                      start, clause = word[START], word[CLAUSE_IDX]
                  end = word[END]
              clauses[clause].append((start, words[-1][END]))
              clauses = [(key, {START: [s for s, e in clause], END: [e for s, e in clause]}) for key, clause in clauses.items()]
              return [v for k, v in sorted(clauses)]
  
          clauses = []
          sentences = self.divide()
          for sentence in sentences:
              clauses.extend(from_sentence(sentence))
  
          self[CLAUSES] = clauses
          return self
docs: Create ``clauses`` multilayer.
  
          Depends on clause annotations.