outline/userInput.js
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;
    }
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;
    }
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?)