001/* 002 * BioJava development code 003 * 004 * This code may be freely distributed and modified under the 005 * terms of the GNU Lesser General Public Licence. This should 006 * be distributed with the code. If you do not have a copy, 007 * see: 008 * 009 * http://www.gnu.org/copyleft/lesser.html 010 * 011 * Copyright for this code is held jointly by the individual 012 * authors. These should be listed in @author doc comments. 013 * 014 * For more information on the BioJava project and its aims, 015 * or to join the biojava-l mailing list, visit the home page 016 * at: 017 * 018 * http://www.biojava.org/ 019 * 020 */ 021package org.biojava.nbio.ontology; 022 023import java.util.Set; 024 025/** 026 * This is an interface for optimizing ontology operators. 027 * 028 * <p> 029 * Some ontology implementations will be able to compute some derived properties 030 * very quickly because of how they store their data. This is likely to out- 031 * perform generic implementations of algorithms using the Ontology interface 032 * to get the same result. Ontology instances provide an instance of 033 * OntologyOps, publishing optimizations of some common operations. The reasoner 034 * may then choose to call OntologyOps methods on the Ontology instance rather 035 * than using its fall-back implementations. 036 * </p> 037 * 038 * @author Matthew Pocock 039 * @since 1.4 040 */ 041public interface OntologyOps { 042 /** 043 * Get the set of all remote terms. 044 * 045 * <p> 046 * We do not currently specify whether this set is mutable or not, and if it 047 * will reflect modifications to the optimised ontolgies. 048 * </p> 049 * 050 * @return a Set containing all remote terms in the ontology 051 */ 052 public Set getRemoteTerms(); 053}