001/** 002 * Test11.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 * 16/06/2007 008 */ 009package es.ucm.fdi.gaia.jcolibri.test.test11; 010 011import java.util.ArrayList; 012 013import org.apache.log4j.LogManager; 014 015import es.ucm.fdi.gaia.jcolibri.datatypes.Instance; 016import es.ucm.fdi.gaia.jcolibri.method.retrieve.NNretrieval.similarity.local.ontology.OntCosine; 017import es.ucm.fdi.gaia.jcolibri.method.retrieve.NNretrieval.similarity.local.ontology.OntDeep; 018import es.ucm.fdi.gaia.jcolibri.method.retrieve.NNretrieval.similarity.local.ontology.OntDeepBasic; 019import es.ucm.fdi.gaia.jcolibri.method.retrieve.NNretrieval.similarity.local.ontology.OntDetail; 020import es.ucm.fdi.gaia.jcolibri.util.FileIO; 021import es.ucm.fdi.gaia.jcolibri.util.OntoBridgeSingleton; 022import es.ucm.fdi.gaia.ontobridge.OntoBridge; 023import es.ucm.fdi.gaia.ontobridge.OntologyDocument; 024 025/** 026 * Checks the ontological similarity functions. 027 * It uses the following ontology: 028 * <p><img src="test11.jpg"/></p> 029 * <p>The similarity funcions implement these formulas:</p> 030 * <p><img src="ontsim.jpg"/></p> 031 * 032 * @author Juan A. Recio-Garc�a 033 * @version 1.0 034 * @see jcolibri.method.retrieve.NNretrieval.similarity.local.ontology 035 */ 036public class Test11 { 037 038 /** 039 * @param args 040 */ 041 public static void main(String[] args) { 042 043 try { 044 // Obtain a reference to OntoBridge 045 OntoBridge ob = OntoBridgeSingleton.getOntoBridge(); 046 // Configure it to work with the Pellet reasoner 047 ob.initWithPelletReasoner(); 048 // Setup the main ontology 049 OntologyDocument mainOnto = new OntologyDocument("http://gaia.fdi.ucm.es/ontologies/personalTrainer.owl", 050 FileIO.findFile("es/ucm/fdi/gaia/jcolibri/test/test11/personalTrainer.owl").toExternalForm()); 051 // There are not subontologies 052 ArrayList<OntologyDocument> subOntologies = new ArrayList<OntologyDocument>(); 053 // Load the ontology 054 ob.loadOntology(mainOnto, subOntologies, false); 055 056 OntCosine cosine = new OntCosine(); 057 OntDeepBasic deepbasic = new OntDeepBasic(); 058 OntDeep deep = new OntDeep(); 059 OntDetail detail = new OntDetail(); 060 061 Instance biceps = new Instance("biceps"); 062 Instance triceps = new Instance("triceps"); 063 Instance pectoralis = new Instance("pectoralis"); 064 Instance abdominis = new Instance("abdominis"); 065 Instance quadriceps = new Instance("quadriceps"); 066 Instance deltoid = new Instance("deltoid"); 067 068 069 System.out.println(ob.LCS("pectoralis", "deltoid")); 070 071 072 System.out.format("\n\t\t\t\tDeepBasic\tDeep\t\tCosine\t\tDetail\n"+ 073 "sim(biceps, triceps)\t\t%.3f\t\t%.3f\t\t%.3f\t\t%.3f\n", 074 deepbasic.compute(biceps, triceps), 075 deep.compute(biceps,triceps), 076 cosine.compute(biceps, triceps), 077 detail.compute(biceps,triceps) 078 ); 079 080 System.out.format("sim(pectoralis, abdominis)\t%.3f\t\t%.3f\t\t%.3f\t\t%.3f\n", 081 deepbasic.compute(pectoralis, abdominis), 082 deep.compute(pectoralis,abdominis), 083 cosine.compute(pectoralis, abdominis), 084 detail.compute(pectoralis,abdominis) 085 ); 086 087 System.out.format("sim(triceps, abdominis)\t\t%.3f\t\t%.3f\t\t%.3f\t\t%.3f\n", 088 deepbasic.compute(triceps, abdominis), 089 deep.compute(triceps,abdominis), 090 cosine.compute(triceps, abdominis), 091 detail.compute(triceps,abdominis) 092 ); 093 094 System.out.format("sim(triceps, cuadriceps)\t%.3f\t\t%.3f\t\t%.3f\t\t%.3f\n", 095 deepbasic.compute(triceps, quadriceps), 096 deep.compute(triceps,quadriceps), 097 cosine.compute(triceps, quadriceps), 098 detail.compute(triceps,quadriceps) 099 ); 100 101 System.out.format("sim(pectoralis, deltoid)\t%.3f\t\t%.3f\t\t%.3f\t\t%.3f\n", 102 deepbasic.compute(pectoralis, deltoid), 103 deep.compute(pectoralis,deltoid), 104 cosine.compute(pectoralis, deltoid), 105 detail.compute(pectoralis,deltoid) 106 ); 107 108 109 }catch(Exception e) 110 { 111 LogManager.getLogger(OntDeepBasic.class).error(e); 112 } 113 114 115 } 116 117}