001    /**
002     * Copyright (C) 2007-2011, Jens Lehmann
003     *
004     * This file is part of DL-Learner.
005     *
006     * DL-Learner is free software; you can redistribute it and/or modify
007     * it under the terms of the GNU General Public License as published by
008     * the Free Software Foundation; either version 3 of the License, or
009     * (at your option) any later version.
010     *
011     * DL-Learner is distributed in the hope that it will be useful,
012     * but WITHOUT ANY WARRANTY; without even the implied warranty of
013     * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
014     * GNU General Public License for more details.
015     *
016     * You should have received a copy of the GNU General Public License
017     * along with this program.  If not, see <http://www.gnu.org/licenses/>.
018     */
019    
020    package org.dllearner.learningproblems;
021    
022    import java.util.Set;
023    
024    import org.dllearner.core.Score;
025    import org.dllearner.core.owl.Individual;
026    
027    /**
028     * The score class is used to store how well a class description did
029     * on a learning problem.
030     * 
031     * @author Jens Lehmann
032     *
033     */
034    public abstract class ScorePosNeg extends Score {
035            
036            private static final long serialVersionUID = -4646131678864109469L;
037    
038            public abstract double getScoreValue();
039            
040            // example coverage
041            public abstract Set<Individual> getCoveredPositives();
042            public abstract Set<Individual> getCoveredNegatives();
043            public abstract Set<Individual> getNotCoveredPositives();
044            public abstract Set<Individual> getNotCoveredNegatives(); 
045            
046            /**
047             * The score of a concept depends on how good it classifies the
048             * examples of a learning problem and the length of the concept
049             * itself. If a given concept is known to have equal classification
050             * properties than the concept this score object is based on, then
051             * this method can be used to calculate its score value by using the
052             * length of this concept as parameter.
053             * 
054             * @param newLength Length of the concept.
055             * @return Score.
056             */
057            public abstract ScorePosNeg getModifiedLengthScore(int newLength);
058            
059    }