preserve prune-bin information when computing oracle
allow joining data in directory
use of insert so that we can book-keep prune-bin information only once (TODO: better interface?)
swap if no graph is inserted
updated to allow "attribute" operation. Currently, we will annotate head-node for each hyperedge