public boolean applyChangeset(Changeset changeset) {

        boolean status = true;

        // First clear resources (if any)
        if (changeset.triplesCleared() > 0) {
            boolean status_c = executeClearResources(changeset.getCleared());
            logger.info("Patch " + changeset.getId() + " CLEARED " + changeset.triplesCleared() + " resources");
            status = status && status_c;
        }

        // Deletions must be executed before additions

        if (changeset.triplesDeleted() > 0) {
            boolean status_d = executeAction(changeset.getDeletions(), Action.DELETE);
            logger.info("Patch " + changeset.getId() + " DELETED " + changeset.triplesDeleted() + " triples");
            status = status && status_d;
        }

        if (changeset.triplesAdded() > 0) {
            boolean status_a = executeAction(changeset.getAdditions(), Action.ADD);
            logger.info("Patch " + changeset.getId() + " ADDED " + changeset.triplesAdded() + " triples");
            status = status && status_a;
        }

        if (changeset.triplesReinserted() > 0) {
            boolean status_a = executeAction(changeset.getReinserted(), Action.ADD);
            logger.info("Patch " + changeset.getId() + " REINSERTED " + changeset.triplesReinserted() + " resources");
            status = status && status_a;
        }

        return status;

    }