class DocumentTranslationCLI implements Action {

    @Override
    public Object execute() throws Exception {
        validateOutputLocation(outputDirectory);
        final SemanticTranslator translator = getTranslatorForType(type != null ? type
                : FilenameUtils.getExtension(documentFile.getName()));
        ontologyIriString = ontologyIriString != null ? ontologyIriString
                        : String.format("urn://mobi.inovexcorp.com/extractedOntology/%s", UUID.randomUUID().toString());
        final IRI ontologyIri = valueFactory.createIRI(ontologyIriString);
        final ExtractedOntology ontology = ormFactoryRegistry.createNew(ontologyIri,
                modelFactory.createModel(), ExtractedOntology.class);
        final Model results = translator.translate(Paths.get(documentFile.toURI()), ontology);
        final File outputFile = File.createTempFile(ontologyIri.getLocalName(), ".zip", outputDirectory);
        try (ZipOutputStream os = new ZipOutputStream(new FileOutputStream(outputFile))) {
            final ZipEntry ontologyEntry = new ZipEntry("ontology.ttl");
            os.putNextEntry(ontologyEntry);
            writeData(ontology.getModel(), os);
            ZipEntry dataEntry = new ZipEntry("data.ttl");
            os.putNextEntry(dataEntry);
            writeData(results, os);
        }
        return null;
    }

}