001package org.dllearner.algorithms.isle.metrics;
002
003import org.dllearner.algorithms.isle.index.Index;
004import org.semanticweb.owlapi.model.OWLEntity;
005
006/**
007 * @author Andre Melo
008 *
009 */
010public class DiceRelevanceMetric extends AbstractRelevanceMetric{
011
012        public DiceRelevanceMetric(Index index) {
013                super(index);
014        }
015
016        @Override
017        public double getRelevance(OWLEntity entityA, OWLEntity entityB) {
018                double nrOfDocumentsA = index.getNumberOfDocumentsFor(entityA);
019                double nrOfDocumentsB = index.getNumberOfDocumentsFor(entityB);
020                
021                if (nrOfDocumentsA==0 || nrOfDocumentsB==0)
022                        return 0;
023                
024                double nrOfDocumentsAandB = index.getNumberOfDocumentsFor(entityA, entityB);
025                
026                double dice = 2 * nrOfDocumentsAandB / (nrOfDocumentsA + nrOfDocumentsB);
027                
028                return dice;
029        }
030
031        @Override
032        public double getNormalizedRelevance(OWLEntity entity1, OWLEntity entity2) {
033                return getRelevance(entity1, entity2);
034        }
035
036
037}