From: <lor...@us...> - 2013-01-30 09:55:31
|
Revision: 3893 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3893&view=rev Author: lorenz_b Date: 2013-01-30 09:55:24 +0000 (Wed, 30 Jan 2013) Log Message: ----------- Continued matching. Modified Paths: -------------- trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatching.java Added Paths: ----------- trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatchingTest.java Modified: trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatching.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatching.java 2013-01-25 13:04:28 UTC (rev 3892) +++ trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatching.java 2013-01-30 09:55:24 UTC (rev 3893) @@ -1,6 +1,5 @@ package org.dllearner.scripts; -import java.net.URL; import java.text.DecimalFormat; import java.util.HashMap; import java.util.List; @@ -10,10 +9,7 @@ import java.util.SortedSet; import java.util.TreeSet; -import org.apache.log4j.ConsoleAppender; -import org.apache.log4j.Level; import org.apache.log4j.Logger; -import org.apache.log4j.PatternLayout; import org.dllearner.algorithms.celoe.CELOE; import org.dllearner.core.AbstractLearningProblem; import org.dllearner.core.AbstractReasonerComponent; @@ -24,7 +20,6 @@ import org.dllearner.core.owl.NamedClass; import org.dllearner.core.owl.ObjectProperty; import org.dllearner.kb.SparqlEndpointKS; -import org.dllearner.kb.extraction.ExtractionAlgorithm; import org.dllearner.kb.sparql.ExtractionDBCache; import org.dllearner.kb.sparql.SPARQLTasks; import org.dllearner.kb.sparql.SparqlEndpoint; @@ -35,14 +30,11 @@ import org.dllearner.reasoning.FastInstanceChecker; import org.dllearner.reasoning.SPARQLReasoner; import org.dllearner.utilities.datastructures.Datastructures; +import org.dllearner.utilities.datastructures.SetManipulation; import org.dllearner.utilities.datastructures.SortedSetTuple; import org.dllearner.utilities.examples.AutomaticNegativeExampleFinderSPARQL2; -import org.dllearner.utilities.owl.DLLearnerDescriptionConvertVisitor; import org.dllearner.utilities.owl.OWLAPIDescriptionConvertVisitor; -import org.semanticweb.owlapi.io.ToStringRenderer; -import uk.ac.manchester.cs.owl.owlapi.mansyntaxrenderer.ManchesterOWLSyntaxOWLObjectRendererImpl; - import com.hp.hpl.jena.query.Query; import com.hp.hpl.jena.query.QueryFactory; import com.hp.hpl.jena.query.QuerySolution; @@ -132,9 +124,10 @@ logger.info(nc); // get all via owl:sameAs related individuals SortedSet<Individual> individuals = getRelatedIndividualsNamespaceAware(source, nc, target.getNamespace()); - logger.info(individuals); + logger.info(individuals.size()); //learn concept in KB2 based on the examples if(individuals.size() >= 3){ + individuals = SetManipulation.fuzzyShrinkInd(individuals, 10); List<? extends EvaluatedDescription> learnedClassExpressions = learnClassExpression(target, individuals); mapping.put(nc, learnedClassExpressions); } @@ -260,6 +253,9 @@ String uri = object.asResource().getURI(); //workaround for World Factbook - should be removed later uri = uri.replace("http://www4.wiwiss.fu-berlin.de/factbook/resource/", "http://wifo5-03.informatik.uni-mannheim.de/factbook/resource/"); + //workaround for OpenCyc - should be removed later + uri = uri.replace("http://sw.cyc.com", "http://sw.opencyc.org"); + relatedIndividuals.add(new Individual(uri)); } } @@ -329,40 +325,5 @@ return cache; } - - } - - /** - * @param args - */ - public static void main(String[] args) throws Exception{ - //render output - ToStringRenderer.getInstance().setRenderer(new ManchesterOWLSyntaxOWLObjectRendererImpl()); - //set logging properties - Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.WARN); - Logger.getLogger(ExtractionAlgorithm.class).setLevel(Level.WARN); - Logger.getLogger(org.dllearner.kb.extraction.Manager.class).setLevel(Level.WARN); - Logger.getRootLogger().removeAllAppenders(); - Logger.getRootLogger().addAppender(new ConsoleAppender(new PatternLayout("%m%n"))); - // KB2 - SparqlEndpoint endpoint1 = SparqlEndpoint.getEndpointDBpedia(); - ExtractionDBCache cache1 = new ExtractionDBCache("cache"); - String namespace1 = "http://dbpedia.org/resource/"; - KnowledgeBase kb1 = new KnowledgeBase(endpoint1, cache1, namespace1); - // KB2 - SparqlEndpoint endpoint2 = new SparqlEndpoint(new URL("http://wifo5-03.informatik.uni-mannheim.de/factbook/sparql")); - ExtractionDBCache cache2 = new ExtractionDBCache("cache"); - //TODO problem with World Factbook is that old FU Berlin server is useless because of bugs and current version - //is provide by University Of Mannheim now with another namespace http://wifo5-03.informatik.uni-mannheim.de/factbook/resource/ - //but the DBpedia links are still to the old D2R server instance - //workaround: replace namespace before learning - String namespace2 = "http://www4.wiwiss.fu-berlin.de/factbook/resource/"; - KnowledgeBase kb2 = new KnowledgeBase(endpoint2, cache2, namespace2); - - OntologyMatching matcher = new OntologyMatching(kb1, kb2); - matcher.start(); - - } - } Added: trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatchingTest.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatchingTest.java (rev 0) +++ trunk/scripts/src/main/java/org/dllearner/scripts/OntologyMatchingTest.java 2013-01-30 09:55:24 UTC (rev 3893) @@ -0,0 +1,85 @@ +package org.dllearner.scripts; + +import java.net.URL; + +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.Level; +import org.apache.log4j.Logger; +import org.apache.log4j.PatternLayout; +import org.dllearner.kb.extraction.ExtractionAlgorithm; +import org.dllearner.kb.sparql.ExtractionDBCache; +import org.dllearner.kb.sparql.SparqlEndpoint; +import org.dllearner.kb.sparql.SparqlKnowledgeSource; +import org.dllearner.scripts.OntologyMatching.KnowledgeBase; +import org.junit.Before; +import org.junit.Test; +import org.semanticweb.owlapi.io.ToStringRenderer; + +import uk.ac.manchester.cs.owl.owlapi.mansyntaxrenderer.ManchesterOWLSyntaxOWLObjectRendererImpl; + +public class OntologyMatchingTest { + + private KnowledgeBase dbpedia; + private KnowledgeBase worldFactBook; + private KnowledgeBase openCyc; + private KnowledgeBase linkedGeoData; + + @Before + public void setUp() throws Exception { + // render output + ToStringRenderer.getInstance().setRenderer(new ManchesterOWLSyntaxOWLObjectRendererImpl()); + // set logging properties + Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.WARN); + Logger.getLogger(ExtractionAlgorithm.class).setLevel(Level.WARN); + Logger.getLogger(org.dllearner.kb.extraction.Manager.class).setLevel(Level.WARN); + Logger.getRootLogger().removeAllAppenders(); + Logger.getRootLogger().addAppender(new ConsoleAppender(new PatternLayout("%m%n"))); + + //DBpedia + SparqlEndpoint endpoint = SparqlEndpoint.getEndpointDBpedia(); + ExtractionDBCache cache = new ExtractionDBCache("cache"); + String namespace = "http://dbpedia.org/resource/"; + dbpedia = new KnowledgeBase(endpoint, cache, namespace); + + //World Factbook + //TODO problem with World Factbook is that old FU Berlin server is useless because of bugs and current version + //is provide by University Of Mannheim now with another namespace http://wifo5-03.informatik.uni-mannheim.de/factbook/resource/ + //but the DBpedia links are still to the old D2R server instance + //workaround: replace namespace before learning + endpoint = new SparqlEndpoint(new URL("http://wifo5-03.informatik.uni-mannheim.de/factbook/sparql")); + cache = new ExtractionDBCache("cache"); + namespace = "http://www4.wiwiss.fu-berlin.de/factbook/resource/"; + worldFactBook = new KnowledgeBase(endpoint, cache, namespace); + + //local OpenCyc + endpoint = new SparqlEndpoint(new URL("http://localhost:8890/sparql")); + cache = new ExtractionDBCache("cache"); + namespace = "http://sw.cyc.com"; + openCyc = new KnowledgeBase(endpoint, cache, namespace); + + //LinkedGeoData + endpoint = new SparqlEndpoint(new URL("http://linkedgeodata.org/sparql")); + cache = new ExtractionDBCache("cache"); + namespace = "http://linkedgeodata.org/triplify/"; + linkedGeoData = new KnowledgeBase(endpoint, cache, namespace); + } + + @Test + public void testDBpediaWorldFactbook() { + OntologyMatching matcher = new OntologyMatching(dbpedia, worldFactBook); + matcher.start(); + } + + @Test + public void testDBpediaOpenCyc() { + OntologyMatching matcher = new OntologyMatching(dbpedia, openCyc); + matcher.start(); + } + + @Test + public void testDBpediaLinkedGeoData() { + OntologyMatching matcher = new OntologyMatching(dbpedia, linkedGeoData); + matcher.start(); + } + +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |