code: function noctua_graph(new_id){
      bbop_graph.call(this);
      this._is_a = 'bbop-graph-noctua.graph';
  
      // Deal with id or generate a new one.
      if( typeof(new_id) !== 'undefined' ){
  	this.id(new_id);
      }
  
      // The old edit core.
      this.core = {
  	'edges': {}, // map of id to edit_edge - edges not completely anonymous
  	'node_order': [], // initial table order on redraws
  	'node2elt': {}, // map of id to physical object id
  	'elt2node': {},  // map of physical object id to id
  	// Remeber that edge ids and elts ids are the same, so no map
  	// is needed.
  	'edge2connector': {}, // map of edge id to virtual connector id
  	'connector2edge': {}  // map of virtual connector id to edge id 
      };
  
      this._annotations = [];
      //this._referenced_subgraphs = []; // not for graph yet, or maybe ever
  
      // Some things that come up in live noctua environments. These are
      // graph properties that may or may not be there. If unknown,
      // null; if positively true (bad), true; may be false otherwise.
      this._inconsistent_p = null;
      this._modified_p = null;
  }
docs: Sublcass of bbop-graph for use with Noctua ideas and concepts.
  
  Unlike the superclass, can take an id as an argument, or will
  generate on on its own.
  
  @constructor
  @see module:bbop-graph
  @alias graph
  @param {String} [new_id] - new id; otherwise new unique generated
  @returns {this}