final Interner<String> metadataInterner = Interners.newStrongInterner();
final Interner<OWLOntologyID> ontologyIDInterner = Interners.newStrongInterner();
changeLog.readChanges(inputStream, project.getDataFactory(), new BinaryOWLChangeLogHandler() {
public void handleChangesRead(OntologyChangeRecordList list, SkipSetting skipSetting, long l) {
BinaryOWLMetadata metadata = list.getMetadata();
String userName = metadataInterner.intern(metadata.getStringAttribute(USERNAME_METADATA_ATTRIBUTE, ""));
Long revisionNumberValue = metadata.getLongAttribute(REVISION_META_DATA_ATTRIBUTE, 0l);
RevisionNumber revisionNumber = RevisionNumber.getRevisionNumber(revisionNumberValue);
String description = metadataInterner.intern(metadata.getStringAttribute(DESCRIPTION_META_DATA_ATTRIBUTE, ""));
RevisionType type = RevisionType.valueOf(metadata.getStringAttribute(REVISION_TYPE_META_DATA_ATTRIBUTE, RevisionType.EDIT.name()));
final UserId userId = UserId.getUserId(userName);
final List<OWLOntologyChangeRecord> changeRecords = internChangeRecords(list, axiomInterner, ontologyIDInterner);
Revision revision = new Revision(userId, revisionNumber, changeRecords, list.getTimestamp(), description, type);