001/**
002 * 
003 */
004package org.dllearner.algorithms.isle.metrics;
005
006import org.dllearner.algorithms.isle.index.Index;
007import org.semanticweb.owlapi.model.OWLEntity;
008
009/**
010 * @author Andre Melo
011 *
012 */
013public class SCIRelevanceMetric extends AbstractRelevanceMetric {
014
015        public SCIRelevanceMetric(Index index) {
016                super(index);
017        }
018
019        @Override
020        public synchronized double getRelevance(OWLEntity entityA, OWLEntity entityB){
021                double fA = index.getNumberOfDocumentsFor(entityA);
022                double fB = index.getNumberOfDocumentsFor(entityB);
023                double fAB = index.getNumberOfDocumentsFor(entityA, entityB);
024                double N = index.getTotalNumberOfDocuments();
025                
026                if (fA==0 || fB==0 || fAB==0)
027                        return 0;
028                
029                
030                double pA = fA / N;
031                double pB = fB / N;
032                double pAB = fAB / N;
033                
034                double sci = pAB / (pA * Math.sqrt(pB));
035                
036                return sci;
037        }
038        
039        @Override
040        public synchronized double getNormalizedRelevance(OWLEntity entityA, OWLEntity entityB){
041                //TODO
042                return Double.NaN;
043        }
044
045}