001package org.biojava.ontology; 002 003import java.util.Set; 004 005/** 006 * This is an interface for optimizing ontology operators. 007 * 008 * <p> 009 * Some ontology implementations will be able to compute some derived properties 010 * very quickly because of how they store their data. This is likely to out- 011 * perform generic implementations of algorithms using the Ontology interface 012 * to get the same result. Ontology instances provide an instance of 013 * OntologyOps, publishing optimizations of some common operations. The reasoner 014 * may then choose to call OntologyOps methods on the Ontology instance rather 015 * than using its fall-back implementations. 016 * </p> 017 * 018 * @author Matthew Pocock 019 * @since 1.4 020 */ 021public interface OntologyOps { 022 /** 023 * Get the set of all remote terms. 024 * 025 * <p> 026 * We do not currently specify whether this set is mutable or not, and if it 027 * will reflect modifications to the optimised ontolgies. 028 * </p> 029 * 030 * @return a Set containing all remote terms in the ontology 031 */ 032 public Set getRemoteTerms(); 033}