From: <jen...@us...> - 2013-10-22 12:07:38
|
Revision: 4124 http://sourceforge.net/p/dl-learner/code/4124 Author: jenslehmann Date: 2013-10-22 12:07:35 +0000 (Tue, 22 Oct 2013) Log Message: ----------- unit test for ISLE without external corpus Modified Paths: -------------- trunk/test/isle/swore/ontology.owl Added Paths: ----------- trunk/components-core/src/test/java/org/dllearner/algorithms/isle/ISLETestNoCorpus.java Added: trunk/components-core/src/test/java/org/dllearner/algorithms/isle/ISLETestNoCorpus.java =================================================================== --- trunk/components-core/src/test/java/org/dllearner/algorithms/isle/ISLETestNoCorpus.java (rev 0) +++ trunk/components-core/src/test/java/org/dllearner/algorithms/isle/ISLETestNoCorpus.java 2013-10-22 12:07:35 UTC (rev 4124) @@ -0,0 +1,87 @@ +package org.dllearner.algorithms.isle; + +import java.io.File; +import java.util.Map; + +import org.dllearner.algorithms.isle.index.semantic.SemanticIndex; +import org.dllearner.algorithms.isle.index.semantic.simple.SimpleSemanticIndex; +import org.dllearner.algorithms.isle.index.syntactic.OWLOntologyLuceneSyntacticIndexCreator; +import org.dllearner.algorithms.isle.index.syntactic.SyntacticIndex; +import org.dllearner.algorithms.isle.metrics.PMIRelevanceMetric; +import org.dllearner.algorithms.isle.metrics.RelevanceMetric; +import org.dllearner.algorithms.isle.metrics.RelevanceUtils; +import org.dllearner.algorithms.isle.textretrieval.EntityTextRetriever; +import org.dllearner.algorithms.isle.textretrieval.RDFSLabelEntityTextRetriever; +import org.dllearner.core.AbstractReasonerComponent; +import org.dllearner.core.KnowledgeSource; +import org.dllearner.core.owl.Entity; +import org.dllearner.core.owl.NamedClass; +import org.dllearner.kb.OWLAPIOntology; +import org.dllearner.learningproblems.ClassLearningProblem; +import org.dllearner.reasoning.FastInstanceChecker; +import org.junit.Test; +import org.semanticweb.owlapi.apibinding.OWLManager; +import org.semanticweb.owlapi.model.OWLDataFactory; +import org.semanticweb.owlapi.model.OWLOntology; +import org.semanticweb.owlapi.model.OWLOntologyManager; +import org.semanticweb.owlapi.vocab.OWLRDFVocabulary; + +import uk.ac.manchester.cs.owl.owlapi.OWLDataFactoryImpl; + +public class ISLETestNoCorpus { + + private OWLOntologyManager manager; + private OWLOntology ontology; + private OWLDataFactory df = new OWLDataFactoryImpl(); + private EntityTextRetriever textRetriever; + private RelevanceMetric relevance; + private String searchField = "label"; + private SemanticIndex semanticIndex; + private SyntacticIndex syntacticIndex; + + // we assume that the ontology is named "ontology.owl" and that all text files + // are in a subdirectory called "corpus" + private String testFolder = "../test/isle/swore/"; +// NamedClass cls = new NamedClass("http://example.com/father#father"); + NamedClass cls = new NamedClass("http://ns.softwiki.de/req/CustomerRequirement"); + + public ISLETestNoCorpus() throws Exception{ + manager = OWLManager.createOWLOntologyManager(); + ontology = manager.loadOntologyFromOntologyDocument(new File(testFolder + "ontology.owl")); + textRetriever = new RDFSLabelEntityTextRetriever(ontology); + syntacticIndex = new OWLOntologyLuceneSyntacticIndexCreator(ontology, df.getRDFSLabel(), searchField).buildIndex(); + + + } + + // uses the rdfs:label, rdfs:comment (or other properties) of the class directly instead of an external corpus + @Test + public void testISLENoCorpus() throws Exception { + KnowledgeSource ks = new OWLAPIOntology(ontology); + AbstractReasonerComponent reasoner = new FastInstanceChecker(ks); + reasoner.init(); + + ClassLearningProblem lp = new ClassLearningProblem(reasoner); + lp.setClassToDescribe(cls); + lp.init(); + + semanticIndex = new SimpleSemanticIndex(ontology, syntacticIndex); + semanticIndex.buildIndex(df.getOWLAnnotationProperty(OWLRDFVocabulary.RDFS_COMMENT.getIRI()), "en"); + +// semanticIndex = new SimpleSemanticIndex(ontology, syntacticIndex); +// semanticIndex.buildIndex(createDocuments()); + + relevance = new PMIRelevanceMetric(semanticIndex); + + Map<Entity, Double> entityRelevance = RelevanceUtils.getRelevantEntities(cls, ontology, relevance); + NLPHeuristic heuristic = new NLPHeuristic(entityRelevance); + + ISLE isle = new ISLE(lp, reasoner); + isle.setHeuristic(heuristic); + isle.init(); + + isle.start(); + } + + +} Modified: trunk/test/isle/swore/ontology.owl =================================================================== --- trunk/test/isle/swore/ontology.owl 2013-10-15 14:46:35 UTC (rev 4123) +++ trunk/test/isle/swore/ontology.owl 2013-10-22 12:07:35 UTC (rev 4124) @@ -669,7 +669,7 @@ <!-- http://ns.softwiki.de/req/CustomerRequirement --> <owl:Class rdf:about="&req;CustomerRequirement"> - <rdfs:label>customer requirement</rdfs:label> + <rdfs:label>customer requirement (a requirement created by a customer)</rdfs:label> <owl:equivalentClass> <owl:Class> <owl:intersectionOf rdf:parseType="Collection"> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |