Search in sources :

Example 1 with ImportedOntologyMetadata

use of edu.stanford.bmir.protege.web.shared.project.ImportedOntologyMetadata in project webprotege by protegeproject.

the class ImportsCacheManager method parseOntologyDocument.

private void parseOntologyDocument(File ontologyDocument) {
    try {
        WRITE_LOCK.lock();
        try (InputStream is = new BufferedInputStream(new FileInputStream(ontologyDocument))) {
            BinaryOWLOntologyDocumentSerializer serializer = new BinaryOWLOntologyDocumentSerializer();
            final Handler handler = new Handler();
            serializer.read(is, handler, new OWLDataFactoryImpl());
            OWLOntologyID id = handler.getOntologyID();
            if (id.getOntologyIRI().isPresent()) {
                ontologyIDs.add(id);
                iri2Document.put(id.getOntologyIRI().get(), IRI.create(ontologyDocument.toURI()));
                if (id.getVersionIRI().isPresent()) {
                    iri2Document.put(id.getVersionIRI().get(), IRI.create(ontologyDocument));
                }
                metadataMap.put(id, new ImportedOntologyMetadata(id, handler.getDocumentIRI(), handler.getTimestamp()));
            }
        } catch (IOException | BinaryOWLParseException | UnloadableImportException e) {
            logger.error("An error occurred", e);
        }
    } finally {
        WRITE_LOCK.unlock();
    }
}
Also used : BinaryOWLParseException(org.semanticweb.binaryowl.BinaryOWLParseException) ImportedOntologyMetadata(edu.stanford.bmir.protege.web.shared.project.ImportedOntologyMetadata) BinaryOWLOntologyDocumentSerializer(org.semanticweb.binaryowl.BinaryOWLOntologyDocumentSerializer) OWLDataFactoryImpl(uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl)

Example 2 with ImportedOntologyMetadata

use of edu.stanford.bmir.protege.web.shared.project.ImportedOntologyMetadata in project webprotege by protegeproject.

the class ImportsCacheManager method cacheOntologyIfNotAlreadyCached.

private void cacheOntologyIfNotAlreadyCached(OWLOntology ont) {
    try {
        WRITE_LOCK.lock();
        if (ontologyIDs.contains(ont.getOntologyID())) {
            return;
        }
        final File file = getFreshImportCacheFile();
        try (DataOutputStream os = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(file)))) {
            final long timestamp = System.currentTimeMillis();
            IRI documentIRI = ont.getOWLOntologyManager().getOntologyDocumentIRI(ont);
            final ImportedOntologyMetadata value = new ImportedOntologyMetadata(ont.getOntologyID(), documentIRI, timestamp);
            BinaryOWLMetadata metadata = toBinaryOWLMetadata(value);
            BinaryOWLOntologyDocumentSerializer serializer = new BinaryOWLOntologyDocumentSerializer();
            serializer.write(new OWLOntologyWrapper(ont), os, metadata);
            ontologyIDs.add(ont.getOntologyID());
            metadataMap.put(ont.getOntologyID(), value);
            logger.info("Cached imported ontology: " + ont.getOntologyID() + " in " + file.getName());
        } catch (IOException e) {
            logger.error("An error occurred whilst caching an ontology: {}", e.getMessage(), e);
        }
    } finally {
        WRITE_LOCK.unlock();
    }
}
Also used : OWLOntologyWrapper(org.semanticweb.binaryowl.owlapi.OWLOntologyWrapper) BinaryOWLMetadata(org.semanticweb.binaryowl.BinaryOWLMetadata) ImportedOntologyMetadata(edu.stanford.bmir.protege.web.shared.project.ImportedOntologyMetadata) BinaryOWLOntologyDocumentSerializer(org.semanticweb.binaryowl.BinaryOWLOntologyDocumentSerializer)

Aggregations

ImportedOntologyMetadata (edu.stanford.bmir.protege.web.shared.project.ImportedOntologyMetadata)2 BinaryOWLOntologyDocumentSerializer (org.semanticweb.binaryowl.BinaryOWLOntologyDocumentSerializer)2 BinaryOWLMetadata (org.semanticweb.binaryowl.BinaryOWLMetadata)1 BinaryOWLParseException (org.semanticweb.binaryowl.BinaryOWLParseException)1 OWLOntologyWrapper (org.semanticweb.binaryowl.owlapi.OWLOntologyWrapper)1 OWLDataFactoryImpl (uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl)1