All Downloads are FREE. Search and download functionalities are using the official Maven repository.

edu.stanford.protege.webprotege.project.ProjectImporter Maven / Gradle / Ivy

The newest version!
package edu.stanford.protege.webprotege.project;

import edu.stanford.protege.webprotege.common.ProjectId;
import edu.stanford.protege.webprotege.common.UserId;
import edu.stanford.protege.webprotege.csv.DocumentId;
import edu.stanford.protege.webprotege.ipc.CommandExecutor;
import edu.stanford.protege.webprotege.ipc.ExecutionContext;
import edu.stanford.protege.webprotege.ontology.ProcessUploadedOntologiesRequest;
import edu.stanford.protege.webprotege.ontology.ProcessUploadedOntologiesResponse;
import edu.stanford.protege.webprotege.revision.RevisionManagerFactory;
import org.semanticweb.binaryowl.BinaryOWLMetadata;
import org.semanticweb.binaryowl.BinaryOWLOntologyDocumentHandler;
import org.semanticweb.binaryowl.BinaryOWLOntologyDocumentPreamble;
import org.semanticweb.binaryowl.BinaryOWLOntologyDocumentSerializer;
import org.semanticweb.binaryowl.change.OntologyChangeDataList;
import org.semanticweb.binaryowl.owlapi.BinaryOWLOntologyDocumentParser;
import org.semanticweb.owlapi.io.FileDocumentSource;
import org.semanticweb.owlapi.model.OWLAnnotation;
import org.semanticweb.owlapi.model.OWLAxiom;
import org.semanticweb.owlapi.model.OWLImportsDeclaration;
import org.semanticweb.owlapi.model.OWLOntologyID;

import java.util.Set;
import java.util.concurrent.ExecutionException;

/**
 * Matthew Horridge
 * Stanford Center for Biomedical Informatics Research
 * 2021-11-16
 */
public class ProjectImporter {

    private final CommandExecutor processOntologiesExecutor;


    public ProjectImporter(CommandExecutor processOntologiesExecutor) {
        this.processOntologiesExecutor = processOntologiesExecutor;
    }

    public void createProjectFromSources(ProjectId projectId,
                                         DocumentId documentId,
                                         UserId userId) {
        var request = new ProcessUploadedOntologiesRequest(documentId);
        var response = processOntologiesExecutor.execute(request, new ExecutionContext(userId, ""));
        try {
            response.get().ontologies().forEach(o -> System.out.println("Processed ontology at " + o));
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
        }
        //        // Generate change history
//        var revisionManager = revisionManagerFactory.createRevisionManager(projectId);
//        var r = response.get();
//        var ontologies = r.ontologies();
//
//        // Download from MinIO
//        // Parse each ontology
//        // Generate ontology changes for each
//        // Store revision

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy