code: function addNewObject (e) {
        var predicateTd = UI.utils.getTarget(e).parentNode.parentNode
        // var predicateTerm = UI.utils.getAbout(kb, predicateTd)
        var isInverse = predicateTd.parentNode.AJAR_inverse
          // var titleTerm=UI.utils.getAbout(kb,UI.utils.ancestor(predicateTd.parentNode,'TD'));
          // set pseudo lastModifiedStat here
        this.lastModifiedStat = predicateTd.parentNode.AJAR_statement
  
        var insertTr = this.appendToPredicate(predicateTd)
        var reqTerm = this.generateRequest(' (Error) ', insertTr, false)
        let preStat = insertTr.previousSibling.AJAR_statement
        if (!isInverse) { this.formUndetStat(insertTr, preStat.subject, preStat.predicate, reqTerm, preStat.why, false) } else { this.formUndetStat(insertTr, reqTerm, preStat.predicate, preStat.object, preStat.why, true) }
  
        outline.walk('moveTo', insertTr.lastChild)
        this.startFillInText(insertTr.lastChild)
          // this.statIsInverse=false;
      }
docs: Called when a blue cross on a predicate is clicked tr.AJAR_inverse stores whether the clicked predicate is an inverse one tr.AJAR_statement (an incomplete statement in TempFormula) stores the destination(why), now determined by the preceding one (is this good?)