Java Code Examples for org.semanticweb.owlapi.model.OWLOntologyID#getOntologyIRI()

The following examples show how to use org.semanticweb.owlapi.model.OWLOntologyID#getOntologyIRI() . You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: SimpleOntologyValues.java    From mobi with GNU Affero General Public License v3.0 6 votes vote down vote up
/**
 * .
 */
public static OntologyId mobiOntologyId(OWLOntologyID owlId) {
    if (owlId == null) {
        return null;
    }
    Optional<org.semanticweb.owlapi.model.IRI> ontologyIRI = owlId.getOntologyIRI();
    Optional<org.semanticweb.owlapi.model.IRI> versionIRI = owlId.getVersionIRI();
    if (versionIRI.isPresent()) {
        return new SimpleOntologyId.Builder(factory).ontologyIRI(mobiIRI(ontologyIRI.get()))
            .versionIRI(mobiIRI(versionIRI.get())).build();
    } else if (ontologyIRI.isPresent()) {
        return new SimpleOntologyId.Builder(factory).ontologyIRI(mobiIRI(ontologyIRI.get())).build();
    } else {
        return new SimpleOntologyId.Builder(factory).build();
    }
}
 
Example 2
Source File: GraphOwlVisitor.java    From SciGraph with Apache License 2.0 6 votes vote down vote up
@Override
public Void visit(OWLOntology ontology) {
  this.ontology = Optional.of(ontology);
  this.definingOntology = OwlApiUtils.getIri(ontology);
  Long versionNodeID = null;
  Long ontologyNodeID = null;
  OWLOntologyID id = ontology.getOntologyID();
  if (null == id.getOntologyIRI()) {
    logger.fine("Ignoring null ontology ID for " + ontology.toString());
  } else {
    ontologyNodeID = getOrCreateNode(id.getOntologyIRI().toString(), OwlLabels.OWL_ONTOLOGY);
  }
  if (null != id.getVersionIRI()){
    versionNodeID = getOrCreateNode(id.getVersionIRI().toString(), OwlLabels.OWL_ONTOLOGY);
  }
  if (null != ontologyNodeID && null != versionNodeID) {
    graph.createRelationship(ontologyNodeID, versionNodeID, OwlRelationships.OWL_VERSION_IRI);
  }
  return null;
}
 
Example 3
Source File: BioChebiGenerator.java    From owltools with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
private void appendOntologyId(OWLOntologyID ontologyID, StringBuilder sb) {
	Optional<IRI> ontologyIRI = ontologyID.getOntologyIRI();
	if (ontologyIRI.isPresent()) {
		sb.append("Ontology(id=").append(ontologyIRI.get());
		Optional<IRI> versionIRI = ontologyID.getVersionIRI();
		if (versionIRI .isPresent()) {
			sb.append(", version=").append(versionIRI.get());
		}
		sb.append(")");
		
	}
	else {
		sb.append("Ontology with no ID");
	}
}
 
Example 4
Source File: EcoTools.java    From owltools with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
/**
 * Create an instance for the given graph and reasoner.
 * 
 * @param graph
 * @param reasoner
 * @param disposeReasoner set to true, if the reasoner should also be disposed
 * @throws UnknownOWLOntologyException
 * @throws OWLOntologyCreationException
 * 
 * @see #dispose()
 */
public EcoTools (OWLGraphWrapper graph, OWLReasoner reasoner, boolean disposeReasoner) throws UnknownOWLOntologyException, OWLOntologyCreationException {

	// This has bitten me, so let's try and bew specific...
	if( reasoner == null ){ throw new Error("No reasoner was specified for use with the EcoTools. Add a reasoner for the command line"); }
	
	// assume the graph wrapper is more than eco
	// try to find ECO by its purl
	Set<OWLOntology> allOntologies = graph.getAllOntologies();
	OWLOntology eco = null;
	for (OWLOntology owlOntology : allOntologies) {
		OWLOntologyID id = owlOntology.getOntologyID();
		Optional<IRI> ontologyIRI = id.getOntologyIRI();
		if (ontologyIRI.isPresent()) {
			if (ECO_PURL.equals(ontologyIRI.get().toString())) {
				eco = owlOntology;
			}
		}
	}
	if (eco != null) {
		// found eco create new wrapper
		this.eco = new OWLGraphWrapper(eco);
	}
	else {
		// did not find eco, use whole wrapper
		this.eco = graph;
	}
	
	this.reasoner = reasoner;
	this.disposeReasonerP = disposeReasoner;
}
 
Example 5
Source File: EcoMapperFactory.java    From owltools with BSD 3-Clause "New" or "Revised" License 5 votes vote down vote up
/**
 * Create a {@link TraversingEcoMapper} instance using the given
 * {@link OWLGraphWrapper}. It is assumed that ECO can be retrieved from the
 * graph using its default IRI. The mappings are retrieved using the PURL.
 * <p>
 * Uses the given reasoner in the traversal methods. If disposeReasoner is
 * set to true, dispose also the reasoner, while calling
 * {@link TraversingEcoMapper#dispose()}.
 * 
 * @param all
 *            graph containing all ontologies, including ECO
 * @param reasoner
 *            reasoner capable of traversing ECO
 * @param disposeReasoner
 *            set to true if the reasoner should be disposed, when calling
 *            {@link TraversingEcoMapper#dispose()}
 * @return mapper
 * @throws IOException
 * @throws OWLException
 * @throws IllegalArgumentException
 *             throw when the reasoner is null, or the
 *             {@link OWLGraphWrapper} does not contain ECO.
 * 
 * @see EcoMapper#ECO_PURL_IRI
 * @see EcoMapper#ECO_MAPPING_PURL
 */
public static TraversingEcoMapper createTraversingEcoMapper(OWLGraphWrapper all, OWLReasoner reasoner, boolean disposeReasoner) throws IOException, OWLException {
	
	// This has bitten me, so let's try and be specific...
	if( reasoner == null )	{
		throw new IllegalArgumentException("No reasoner was specified for use with the EcoTools. Add a reasoner for the command line");
	}
			
	OWLOntology eco = null;
	
	// assume the graph wrapper is more than eco
	// try to find ECO by its purl
	Set<OWLOntology> allOntologies = all.getAllOntologies();
	for (OWLOntology owlOntology : allOntologies) {
		OWLOntologyID id = owlOntology.getOntologyID();
		Optional<IRI> ontologyIRI = id.getOntologyIRI();
		if (ontologyIRI.isPresent()) {
			if (EcoMapper.ECO_PURL_IRI.equals(ontologyIRI.get())) {
				eco = owlOntology;
			}
		}
	}
	if (eco == null) {
		throw new IllegalArgumentException("The specified graph did not contain ECO with the IRI: "+EcoMapper.ECO_PURL_IRI);
	}

	OWLGraphWrapper ecoGraph = new OWLGraphWrapper(eco);
	Reader reader = null;
	try {
		reader = createReader(EcoMapper.ECO_MAPPING_PURL);
		EcoMappings<OWLClass> mappings = loadEcoMappings(reader, ecoGraph);
		return new TraversingEcoMapperImpl(mappings, reasoner, disposeReasoner);
	}
	finally {
		IOUtils.closeQuietly(reader);
	}
}
 
Example 6
Source File: ImportClosureSlurper.java    From owltools with BSD 3-Clause "New" or "Revised" License 4 votes vote down vote up
public void save(File baseFolder, BufferedWriter w) throws IOException, OWLOntologyStorageException {
	w.write("<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n");
	w.write("<catalog prefer=\"public\" xmlns=\"urn:oasis:names:tc:entity:xmlns:xml:catalog\">\n");
	
	for (OWLOntology ont : ontology.getImportsClosure()) {
		validateImports(ont);
		
		OWLOntologyID ontologyID = ont.getOntologyID();
		IRI actualIRI = null;
		Optional<IRI> optional = ontologyID.getOntologyIRI();
		if (optional.isPresent()) {
			actualIRI = optional.get();
		}

		// Not really sure why this is here, but apparently we can get
		// an ontology without an IRI, in which case we'll generate one
		// that is 'sort of' unique (only fails if two different machines run
		// this tool at the exact same time).
		//
		if (actualIRI == null) {
			IRI generatedIRI = IRI.generateDocumentIRI();
			actualIRI = generatedIRI;
		}
		// Always write the actualIRI
		String actualLocalFile = createLocalFileName(actualIRI);
		IRI outputStream = IRI.create(new File(baseFolder, actualLocalFile));
		ont.getOWLOntologyManager().saveOntology(ont, outputStream);
		
		if (LOGGER.isInfoEnabled()) {
			LOGGER.info("name: "+ actualIRI +" local: "+actualLocalFile);
		}
		w.write("  <uri name=\""+ actualIRI  +"\" uri=\""+ actualLocalFile +"\"/>\n");

		//
		// In case there is a difference between the source document IRI
		// and the IRI of the resolved target (e.g., there is an HTTP
		// redirect from a legacy IRI to a newer IRI), then write an entry
		// in the catalog that points the legacy IRI to the newer, canonical one.
		// Examples of this include:
		//  http://purl.obolibrary.org/obo/so.owl
		// which redirects to:
		//  http://purl.obolibrary.org/obo/so-xp.obo.owl
		//

		IRI 			documentIRI = ont.getOWLOntologyManager().getOntologyDocumentIRI(ont);
		if (documentIRI != actualIRI) {
			String sourceLocalFile = createLocalFileName(actualIRI);
			if (LOGGER.isInfoEnabled()) {
				LOGGER.info("alias: "+ documentIRI + " ==> " + actualIRI + " local: "+ sourceLocalFile);
			}
			w.write("  <uri name=\""+ documentIRI +"\" uri=\""+ sourceLocalFile +"\"/>\n");
		}
	}
	w.write("</catalog>\n");
	w.flush();
}