001    /**
002     * SelectAttributeMethod.java
003     * jCOLIBRI2 framework. 
004     * @author Juan A. Recio-García.
005     * GAIA - Group for Artificial Intelligence Applications
006     * http://gaia.fdi.ucm.es
007     * 05/11/2007
008     */
009    package jcolibri.extensions.recommendation.navigationByAsking;
010    
011    import java.util.Collection;
012    
013    import jcolibri.cbrcore.Attribute;
014    import jcolibri.cbrcore.CBRCase;
015    import jcolibri.cbrcore.CBRQuery;
016    import jcolibri.exception.ExecutionException;
017    
018    /**
019     * Interface for methods that select an attribute to be asked.
020     * 
021     * @author Juan A. Recio-Garcia
022     * @author Developed at University College Cork (Ireland) in collaboration with Derek Bridge.
023     * @version 1.0
024     *
025     */
026    public interface SelectAttributeMethod
027    {
028        /**
029         * Selects the attribute to be asked
030         * @param cases list of working cases
031         * @param query is the current query
032         * @return selected attribute or null if there are not more attributes to ask.
033         * @throws ExecutionException
034         */
035        public Attribute getAttribute(Collection<CBRCase> cases, CBRQuery query) throws ExecutionException; 
036    }