Edit in JSFiddle

jQuery(document).ready(function($) {
  $('#research-area').select2({
    minimumInputLength: 3,
    placeholder: 'Enter a term',
    multiple: true,
    create: true,
    ajax: {
      url: "https://fast.oclc.org/searchfast/fastsuggest",
      dataType: 'jsonp',
      quietMillis: 100,
      data: function(term, page) {
        return {
          queryIndex: "suggest50",
          rows: 10,
          suggest: "autoSubject",
          queryReturn: "idroot,auth,type,suggest50",
          query: term
        };
      },
      results: function(data, page) {
        if (data.response.numFound === 0) {
          return [{}];
        } else {
          return {
            results: prepResult(data.response.docs)
          };
        }
      }
    },
    initSelection: function(element, callback) {
      var label = $(element).data('value');
      var uri = $(element).data('object');
      var data = [{
        id: uri,
        text: label
      }];
      callback(data);
      //callback({"term": $(elment).data('value')});
    },
    createSearchChoice: function(item, data) {
      return;
    },
    dropdownCssClass: "bigdrop",
    tokenSeparators: [",", "|"]
  });
  $('#research-area').select2('data', getInitialData() || []);
  $('#research-area').on("change", function(e) {
    var subject = $(this).parent().data('subject');
    var changeSet = {};
    changeSet.subject = subject;
    changeSet.predicate = $(this).data('predicate');
    if (e.added !== undefined) {
      changeSet.object = fastURI(e.added.id);
      console.debug("Add");
      console.debug(changeSet);
      logChange(changeSet, 'added');
    }

    if (e.removed !== undefined) {
      changeSet.object = fastURI(e.removed.id);
      console.debug("Remove");
      console.debug(changeSet);
      logChange(changeSet, 'removed');
    }
  });
});

function prepResult(docs) {
  return _.map(docs, function(d) {
    return {
      'id': d.idroot,
      'text': d.suggest50[0]
    };
  });
}

function fastURI(fstId) {
  return 'http://id.worldcat.org/fast/' + fstId.replace(/fst0+/, '');
}

function logChange(changeSet, action) {
  $('#output table').append('<tr><td>' + changeSet.subject + '</td><td>' + changeSet.predicate + '</td><td>' + changeSet.object + '</td><td>' + action + '</td></tr>');
}

//This would be replaced by a query in a real situation.
function getInitialData() {
  id = '932231';
  return [{
    'text': 'Forests and forestry',
    'id': id
  }];
}

//http://fast.oclc.org/searchfast/fastsuggest?&query=[query]&queryIndex=[queryIndex]&queryReturn=[queryReturn]&suggest=autosuggest&rows=[numRows]&callback=[callbackFunction]