You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(120) |
Sep
(36) |
Oct
(116) |
Nov
(17) |
Dec
(44) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(143) |
Feb
(192) |
Mar
(74) |
Apr
(84) |
May
(105) |
Jun
(64) |
Jul
(49) |
Aug
(120) |
Sep
(159) |
Oct
(156) |
Nov
(51) |
Dec
(28) |
2009 |
Jan
(17) |
Feb
(55) |
Mar
(33) |
Apr
(57) |
May
(54) |
Jun
(28) |
Jul
(6) |
Aug
(16) |
Sep
(38) |
Oct
(30) |
Nov
(26) |
Dec
(52) |
2010 |
Jan
(7) |
Feb
(91) |
Mar
(65) |
Apr
(2) |
May
(14) |
Jun
(25) |
Jul
(38) |
Aug
(48) |
Sep
(80) |
Oct
(70) |
Nov
(75) |
Dec
(77) |
2011 |
Jan
(68) |
Feb
(53) |
Mar
(51) |
Apr
(35) |
May
(65) |
Jun
(101) |
Jul
(29) |
Aug
(230) |
Sep
(95) |
Oct
(49) |
Nov
(110) |
Dec
(63) |
2012 |
Jan
(41) |
Feb
(42) |
Mar
(25) |
Apr
(46) |
May
(51) |
Jun
(44) |
Jul
(45) |
Aug
(29) |
Sep
(12) |
Oct
(9) |
Nov
(17) |
Dec
(2) |
2013 |
Jan
(12) |
Feb
(14) |
Mar
(7) |
Apr
(16) |
May
(54) |
Jun
(27) |
Jul
(11) |
Aug
(5) |
Sep
(85) |
Oct
(27) |
Nov
(37) |
Dec
(32) |
2014 |
Jan
(8) |
Feb
(29) |
Mar
(5) |
Apr
(3) |
May
(22) |
Jun
(3) |
Jul
(4) |
Aug
(3) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <lor...@us...> - 2011-11-23 14:24:26
|
Revision: 3432 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3432&view=rev Author: lorenz_b Date: 2011-11-23 14:24:16 +0000 (Wed, 23 Nov 2011) Log Message: ----------- Added option to use the class popularity in the score. Added method to get the number of instances for a given class. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-23 13:16:44 UTC (rev 3431) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-23 14:24:16 UTC (rev 3432) @@ -75,6 +75,7 @@ private boolean useWordNetDistance = false; private boolean suggestMostGeneralClasses = true; + private boolean useClassPopularity = true; public DisjointClassesLearner(SparqlEndpointKS ks){ this.ks = ks; @@ -239,7 +240,14 @@ SortedSet<Description> mostGeneralClasses = reasoner.getClassHierarchy().getMostGeneralClasses(); } for(NamedClass cls : completeDisjointclasses){ - evalDesc = new EvaluatedDescription(cls, new AxiomScore(1)); + if(useClassPopularity){ + double[] confidenceInterval = Heuristics.getConfidenceInterval95Wald(reasoner.getIndividualsCount(cls), 0); + double accuracy = (confidenceInterval[0] + confidenceInterval[1]) / 2; + evalDesc = new EvaluatedDescription(cls, new AxiomScore(1- accuracy)); + } else { + evalDesc = new EvaluatedDescription(cls, new AxiomScore(1)); + } + evalDescs.add(evalDesc); } @@ -268,7 +276,7 @@ public static void main(String[] args) throws Exception{ DisjointClassesLearner l = new DisjointClassesLearner(new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList()))); - l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/AdministrativeRegion")); + l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/SoccerClub")); l.init(); l.getReasoner().prepareSubsumptionHierarchy(); // System.out.println(l.getReasoner().getClassHierarchy().getSubClasses(new NamedClass("http://dbpedia.org/ontology/Athlete"), false));System.exit(0); Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2011-11-23 13:16:44 UTC (rev 3431) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2011-11-23 14:24:16 UTC (rev 3432) @@ -568,6 +568,17 @@ } return null; } + + public int getIndividualsCount(NamedClass nc){ + String query = String.format("SELECT COUNT(?s) WHERE {" + + "?s a ?type." + + "}", + nc.getURI()); + ResultSet rs = executeSelectQuery(query); + int cnt = rs.next().get(rs.getResultVars().get(0)).asLiteral().getInt(); + return cnt; + + } @Override public DataRange getRange(DatatypeProperty datatypeProperty) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-23 13:16:51
|
Revision: 3431 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3431&view=rev Author: lorenz_b Date: 2011-11-23 13:16:44 +0000 (Wed, 23 Nov 2011) Log Message: ----------- Added option to return only the most general classes in the disjointness axioms. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-23 10:04:53 UTC (rev 3430) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-23 13:16:44 UTC (rev 3431) @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Map.Entry; @@ -38,6 +39,7 @@ import org.dllearner.core.config.ConfigOption; import org.dllearner.core.config.NamedClassEditor; import org.dllearner.core.owl.Axiom; +import org.dllearner.core.owl.ClassHierarchy; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.DisjointClassesAxiom; import org.dllearner.core.owl.NamedClass; @@ -71,6 +73,9 @@ private List<EvaluatedDescription> currentlyBestEvaluatedDescriptions; private SortedSet<Description> subClasses; + private boolean useWordNetDistance = false; + private boolean suggestMostGeneralClasses = true; + public DisjointClassesLearner(SparqlEndpointKS ks){ this.ks = ks; } @@ -83,6 +88,22 @@ this.classToDescribe = classToDescribe; } + public boolean isUseWordNetDistance() { + return useWordNetDistance; + } + + public void setUseWordNetDistance(boolean useWordNetDistance) { + this.useWordNetDistance = useWordNetDistance; + } + + public boolean isSuggestMostGeneralClasses() { + return suggestMostGeneralClasses; + } + + public void setSuggestMostGeneralClasses(boolean suggestMostGeneralClasses) { + this.suggestMostGeneralClasses = suggestMostGeneralClasses; + } + @Override public void start() { logger.info("Start learning..."); @@ -200,6 +221,11 @@ Set<NamedClass> completeDisjointclasses = new TreeSet<NamedClass>(allClasses); completeDisjointclasses.removeAll(class2Count.keySet()); + //drop all classes which have a super class in this set + if(suggestMostGeneralClasses && reasoner.isPrepared()){ + keepMostGeneralClasses(completeDisjointclasses); + } + //we remove the asserted subclasses here completeDisjointclasses.removeAll(subClasses); for(Description subClass : subClasses){ @@ -221,9 +247,6 @@ for(Entry<NamedClass, Integer> entry : sortByValues(class2Count)){ // evalDesc = new EvaluatedDescription(entry.getKey(), // new AxiomScore(1 - (entry.getValue() / (double)all))); - System.out.println(entry.getKey()); - System.out.println(all); - System.out.println(entry.getValue()); double[] confidenceInterval = Heuristics.getConfidenceInterval95Wald(all, entry.getValue()); double accuracy = (confidenceInterval[0] + confidenceInterval[1]) / 2; evalDesc = new EvaluatedDescription(entry.getKey(), @@ -235,6 +258,13 @@ return evalDescs; } + private void keepMostGeneralClasses(Set<NamedClass> classes){ + ClassHierarchy h = reasoner.getClassHierarchy(); + for(NamedClass nc : new HashSet<NamedClass>(classes)){ + classes.removeAll(h.getSubClasses(nc)); + } + } + public static void main(String[] args) throws Exception{ DisjointClassesLearner l = new DisjointClassesLearner(new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList()))); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-23 10:04:59
|
Revision: 3430 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3430&view=rev Author: lorenz_b Date: 2011-11-23 10:04:53 +0000 (Wed, 23 Nov 2011) Log Message: ----------- Small change. Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/LatexWriter.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/LatexWriter.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/LatexWriter.java 2011-11-23 07:25:39 UTC (rev 3429) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/util/LatexWriter.java 2011-11-23 10:04:53 UTC (rev 3430) @@ -24,7 +24,7 @@ beginSummaryTable(); } - private String loadPraeambel(){ + public String loadPraeambel(){ StringBuilder praeamble = new StringBuilder(); try { Scanner scanner = new Scanner(new FileInputStream(this.getClass().getClassLoader().getResource(PRAEAMBEL_FILE).getPath())); @@ -107,6 +107,11 @@ summary.append("id & question & P & R & \\\\\\hline\\hline\n"); } + @Override + public String toString() { + return sb.toString(); + } + public void endSummaryTable(){ summary.append("\\end{tabular}\n"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-23 07:25:47
|
Revision: 3429 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3429&view=rev Author: lorenz_b Date: 2011-11-23 07:25:39 +0000 (Wed, 23 Nov 2011) Log Message: ----------- Continued script. Modified Paths: -------------- trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java Modified: trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java =================================================================== --- trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java 2011-11-22 21:19:51 UTC (rev 3428) +++ trunk/scripts/src/main/java/org/dllearner/scripts/SPARQLSampleDebugging.java 2011-11-23 07:25:39 UTC (rev 3429) @@ -4,11 +4,15 @@ import java.io.ByteArrayOutputStream; import java.net.URL; import java.util.Collections; +import java.util.EnumSet; import java.util.HashSet; import java.util.Set; +import org.apache.log4j.ConsoleAppender; +import org.apache.log4j.FileAppender; import org.apache.log4j.Level; import org.apache.log4j.Logger; +import org.apache.log4j.SimpleLayout; import org.dllearner.algorithm.qtl.util.ModelGenerator; import org.dllearner.algorithm.qtl.util.ModelGenerator.Strategy; import org.dllearner.kb.sparql.ExtractionDBCache; @@ -16,11 +20,14 @@ import org.dllearner.kb.sparql.SparqlQuery; import org.semanticweb.owlapi.apibinding.OWLManager; import org.semanticweb.owlapi.model.IRI; +import org.semanticweb.owlapi.model.OWLAxiom; import org.semanticweb.owlapi.model.OWLOntology; import org.semanticweb.owlapi.model.OWLOntologyCreationException; import org.semanticweb.owlapi.model.OWLOntologyManager; import org.semanticweb.owlapi.reasoner.OWLReasoner; +import com.clarkparsia.owlapi.explanation.PelletExplanation; +import com.clarkparsia.pellet.owlapiv3.PelletReasoner; import com.clarkparsia.pellet.owlapiv3.PelletReasonerFactory; import com.hp.hpl.jena.query.ResultSet; import com.hp.hpl.jena.rdf.model.Model; @@ -31,32 +38,47 @@ private SparqlEndpoint endpoint; private ExtractionDBCache cache = new ExtractionDBCache("cache"); - private int sampleSize = 1000; - private int depth = 3; + private int sampleSize = 10; + private int depth = 5; + private int nrOfChunks = 10; + private int maxNrOfExplanations = 10; private Logger logger = Logger.getLogger(SPARQLSampleDebugging.class); + static {PelletExplanation.setup();} + public SPARQLSampleDebugging(SparqlEndpoint endpoint) { this.endpoint = endpoint; } - private Set<String> extractSampleResources(int offset){ - logger.info("Extracting " + sampleSize + "sample resources..."); + private Set<String> extractSampleResourcesChunked(int size){ + logger.info("Extracting " + sampleSize + " sample resources..."); long startTime = System.currentTimeMillis(); Set<String> resources = new HashSet<String>(); - String query = String.format("SELECT DISTINCT ?s WHERE {?s a ?type} LIMIT %d OFFSET %d", sampleSize, offset); + String query = "SELECT COUNT(DISTINCT ?s) WHERE {?s a ?type}"; ResultSet rs = SparqlQuery.convertJSONtoResultSet(cache.executeSelectQuery(endpoint, query)); + int max = rs.next().getLiteral(rs.getResultVars().get(0)).getInt(); - while(rs.hasNext()){ - resources.add(rs.next().getResource("s").getURI()); + for(int i = 0; i < nrOfChunks; i++){ + int offset = (int)(Math.random() * max); + offset = Math.min(offset, offset-(size/nrOfChunks)); + + query = String.format("SELECT DISTINCT ?s WHERE {?s a ?type} LIMIT %d OFFSET %d", (size/nrOfChunks), offset); + logger.info(query); + rs = SparqlQuery.convertJSONtoResultSet(cache.executeSelectQuery(endpoint, query)); + + while(rs.hasNext()){ + resources.add(rs.next().getResource("s").getURI()); + } } + logger.info("...done in " + (System.currentTimeMillis()-startTime) + "ms."); return resources; } - private Set<String> extractSampleResourcesRandom(int size){ - logger.info("Extracting " + sampleSize + "sample resources..."); + private Set<String> extractSampleResourcesSingle(int size){ + logger.info("Extracting " + sampleSize + " sample resources..."); long startTime = System.currentTimeMillis(); Set<String> resources = new HashSet<String>(); @@ -67,9 +89,8 @@ for(int i = 0; i < size; i++){ int random = (int)(Math.random() * max); query = String.format("SELECT DISTINCT ?s WHERE {?s a ?type} LIMIT 1 OFFSET %d", random); - System.out.println(random); rs = SparqlQuery.convertJSONtoResultSet(cache.executeSelectQuery(endpoint, query)); - resources.add(rs.next().getResource("s").getURI());System.out.println(resources); + resources.add(rs.next().getResource("s").getURI()); } @@ -90,9 +111,31 @@ } + private Set<Set<OWLAxiom>> computeExplanations(OWLOntology ontology){ + logger.info("Computing explanations..."); + long startTime = System.currentTimeMillis(); + boolean useGlassBox = true; + PelletExplanation expGen = new PelletExplanation(ontology, useGlassBox); + Set<Set<OWLAxiom>> explanations = expGen.getInconsistencyExplanations(maxNrOfExplanations); + logger.info("...done in " + (System.currentTimeMillis()-startTime) + "ms."); + return explanations; + } + + private Set<Set<OWLAxiom>> computeExplanations(PelletReasoner reasoner){ + logger.info("Computing explanations..."); + long startTime = System.currentTimeMillis(); + PelletExplanation expGen = new PelletExplanation(reasoner); + Set<Set<OWLAxiom>> explanations = expGen.getInconsistencyExplanations(maxNrOfExplanations); + logger.info("...done in " + (System.currentTimeMillis()-startTime) + "ms."); + return explanations; + } + private OWLOntology loadReferenceOntology() throws OWLOntologyCreationException{ + long startTime = System.currentTimeMillis(); + logger.info("Loading reference ontology..."); OWLOntology ontology = OWLManager.createOWLOntologyManager().loadOntologyFromOntologyDocument( getClass().getClassLoader().getResourceAsStream("dbpedia_0.75.owl")); + logger.info("...done in " + (System.currentTimeMillis()-startTime) + "ms."); return ontology; } @@ -113,38 +156,112 @@ public void run() throws OWLOntologyCreationException{ OWLOntology reference = loadReferenceOntology(); + Set<OWLOntology> ontologies = new HashSet<OWLOntology>(); + ontologies.add(reference); OWLOntology sample; OWLOntology merged; OWLReasoner reasoner; - for(int i = 0; i < 1; i++){ - Set<String> resources = extractSampleResourcesRandom(sampleSize); + for(int i = 0; i < 100; i++){ + Set<String> resources = extractSampleResourcesChunked(sampleSize); sample = extractSampleModule(resources); - Set<OWLOntology> ontologies = new HashSet<OWLOntology>(); ontologies.add(sample); - ontologies.add(reference); merged = OWLManager.createOWLOntologyManager().createOntology(IRI.create("http://merged.en"), ontologies); reasoner = PelletReasonerFactory.getInstance().createNonBufferingReasoner(merged); + Logger pelletLogger = Logger.getLogger("org.mindswap.pellet"); + pelletLogger.setLevel(Level.OFF); + boolean isConsistent = reasoner.isConsistent(); logger.info("Consistent: " + isConsistent); - System.out.println(isConsistent); reasoner.dispose(); + if(!isConsistent){ + Set<Set<OWLAxiom>> explanations = computeExplanations(merged); + for(Set<OWLAxiom> explanation : explanations){ + System.out.println(explanation); + } + break; + + } + ontologies.remove(sample); + } } + public void run2() throws OWLOntologyCreationException{ + OWLOntology reference = loadReferenceOntology(); + OWLReasoner reasoner = PelletReasonerFactory.getInstance().createReasoner(reference); + OWLOntologyManager man = OWLManager.createOWLOntologyManager(); + + Set<String> resources = extractSampleResourcesChunked(sampleSize); + for(String resource : resources){ + logger.info("Resource " + resource); + OWLOntology module = extractSampleModule(Collections.singleton(resource)); + man.addAxioms(reference, module.getLogicalAxioms()); + reasoner.flush(); + logger.info(reasoner.getRootOntology().getLogicalAxiomCount()); + boolean isConsistent = reasoner.isConsistent(); + logger.info("Consistent: " + isConsistent); + if(!isConsistent){ + Set<Set<OWLAxiom>> explanations = computeExplanations(reference); + for(Set<OWLAxiom> explanation : explanations){ + logger.info(explanation); + } + } + man.removeAxioms(reference, module.getLogicalAxioms()); + + } + + } + + public void run3() throws OWLOntologyCreationException{ + OWLOntology reference = loadReferenceOntology(); + Set<OWLOntology> ontologies = new HashSet<OWLOntology>(); + ontologies.add(reference); + PelletReasoner reasoner; + OWLOntology merged; + OWLOntology module; + + Set<String> resources = extractSampleResourcesChunked(sampleSize); + for(String resource : resources){ + logger.info("Resource " + resource); + module = extractSampleModule(Collections.singleton(resource)); + ontologies.add(module); + merged = OWLManager.createOWLOntologyManager().createOntology(IRI.create("http://merged.en"), ontologies); + reasoner = PelletReasonerFactory.getInstance().createNonBufferingReasoner(merged); + boolean isConsistent = reasoner.isConsistent(); + logger.info("Consistent: " + isConsistent); + if(!isConsistent){ + Set<Set<OWLAxiom>> explanations = computeExplanations(reasoner); + for(Set<OWLAxiom> explanation : explanations){ + logger.info(explanation); + } + } + ontologies.remove(module); + reasoner.dispose(); + + } + + } + /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { Logger.getRootLogger().setLevel(Level.INFO); + Logger.getRootLogger().removeAllAppenders(); + Logger.getRootLogger().addAppender(new ConsoleAppender(new SimpleLayout())); + Logger.getRootLogger().addAppender(new FileAppender(new SimpleLayout(), "log/debug.log")); Logger.getLogger(SPARQLSampleDebugging.class).setLevel(Level.INFO); + java.util.logging.Logger pelletLogger = java.util.logging.Logger.getLogger("com.clarkparsia.pellet"); + pelletLogger.setLevel(java.util.logging.Level.OFF); + SparqlEndpoint endpoint = new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList()); - new SPARQLSampleDebugging(endpoint).run(); + new SPARQLSampleDebugging(endpoint).run3(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-22 21:19:57
|
Revision: 3428 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3428&view=rev Author: lorenz_b Date: 2011-11-22 21:19:51 +0000 (Tue, 22 Nov 2011) Log Message: ----------- Continued WordNet similarity measure. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java Modified: trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java 2011-11-22 14:39:43 UTC (rev 3427) +++ trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java 2011-11-22 21:19:51 UTC (rev 3428) @@ -32,33 +32,96 @@ try { IndexWord iw = dict.getIndexWord(pos, s1);//dict.getMorphologicalProcessor().lookupBaseForm(pos, s) // IndexWord iw = dict.getMorphologicalProcessor().lookupBaseForm(pos, s); + getUpwardHierachy(s1, pos); + getUpwardHierachy(s2, pos); + + + } catch (JWNLException e) { + e.printStackTrace(); + } + + + return -1; + } + + private List<PointerTarget> getUpwardHierachy(PointerTarget target){ + List<PointerTarget> hierarchy = new ArrayList<PointerTarget>(); + try { + PointerTarget[] targets = target.getTargets(PointerType.HYPERNYM); + for (PointerTarget t : targets) { + hierarchy.add(t); + hierarchy.addAll(getUpwardHierachy(t)); + } + } catch (JWNLException e) { + e.printStackTrace(); + } + return hierarchy; + + } + +// private List<List<PointerTarget>> getUpwardHierachies(List<List<PointerTarget>> targets){ +// List<List<PointerTarget>> hierarchies = new ArrayList<List<PointerTarget>>(); +// try { +// PointerTarget[] targets = target.getTargets(PointerType.HYPERNYM); +// for (PointerTarget t : targets) { +// hierarchy.add(t); +// hierarchy.addAll(getUpwardHierachy(t)); +// } +// } catch (JWNLException e) { +// e.printStackTrace(); +// } +// return hierarchy; +// +// } + + private List<PointerTarget> getUpwardHierachy2(PointerTarget target){ + List<PointerTarget> hierarchy = new ArrayList<PointerTarget>(); + try { + PointerTarget[] targets = target.getTargets(PointerType.HYPERNYM); + for (PointerTarget t : targets) { + hierarchy.add(t); + hierarchy.addAll(getUpwardHierachy(t)); + } + } catch (JWNLException e) { + e.printStackTrace(); + } + return hierarchy; + + } + + private void getUpwardHierachy(String word, POS pos){ + try { + IndexWord iw = dict.getIndexWord(pos, word); + for(Synset synset : iw.getSenses()){ + for(PointerTarget t : getUpwardHierachy(synset)){ + System.out.print(((Synset)t).getWord(0).getLemma() + "-->"); + } + System.out.println(); + } + } catch (JWNLException e) { + e.printStackTrace(); + } + + } + + private void getHypernyms(IndexWord iw){ + try { if(iw != null){ Synset[] synsets = iw.getSenses(); for(Synset s : synsets){ System.out.println(s); PointerTarget[] targets = s.getTargets(PointerType.HYPERNYM); - for (PointerTarget target : targets) - { - Word[] words = ((Synset) target).getWords(); - for (Word word : words) - { - System.out.println(word); - } - } + for (PointerTarget target : targets) { + Word[] words = ((Synset) target).getWords(); + for (Word word : words) { + System.out.println(word); + } + } } -// Word[] words = synsets[0].getWords(); -// for(Word w : words){ -// String c = w.getLemma(); -// System.out.println(c); -// } } - } catch (JWNLException e) { e.printStackTrace(); } - - - return -1; } public static void main(String[] args) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-22 14:39:49
|
Revision: 3427 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3427&view=rev Author: lorenz_b Date: 2011-11-22 14:39:43 +0000 (Tue, 22 Nov 2011) Log Message: ----------- Added WordNet API dependency. Modified Paths: -------------- trunk/components-core/pom.xml Modified: trunk/components-core/pom.xml =================================================================== --- trunk/components-core/pom.xml 2011-11-22 14:39:14 UTC (rev 3426) +++ trunk/components-core/pom.xml 2011-11-22 14:39:43 UTC (rev 3427) @@ -49,62 +49,6 @@ </executions> </plugin> <plugin> - <groupId>de.tarent.maven.plugins</groupId> - <artifactId>maven-pkg-plugin</artifactId> - <version>2.1.0</version> - <configuration> - - <defaultTarget>all</defaultTarget> - - <defaultDistro>ubuntu_intrepid</defaultDistro> - <shortDescription>This is the libraries that are necessary for - running dl-learner.</shortDescription> - - <defaults> - <section>libs</section> - <architecture>all</architecture> - <srcAuxFilesDir>src/main/pkg</srcAuxFilesDir> - <maintainer>Jens Lehmann</maintainer> - <bundleDependencies> - <boolean>true</boolean> - </bundleDependencies> - </defaults> - - - - <targetConfigurations> - - <targetConfiguration> - <target>i386</target> - - <architecture>i386</architecture> - <srcJNIFilesDir>src/main/native/i386</srcJNIFilesDir> - - </targetConfiguration> - - <targetConfiguration> - <target>armel</target> - - <architecture>armel</architecture> - <srcJNIFilesDir>src/main/native/armel</srcJNIFilesDir> - - </targetConfiguration> - - </targetConfigurations> - - <distroConfigurations> - <distroConfiguration> - - <distros> - <distro>ubuntu_intrepid</distro> - <distro>ubuntu_karmic</distro> - </distros> - - </distroConfiguration> - </distroConfigurations> - </configuration> - </plugin> - <plugin> <groupId>com.mycila.maven-license-plugin</groupId> <artifactId>maven-license-plugin</artifactId> <configuration> @@ -296,5 +240,10 @@ <groupId>org.aksw.commons</groupId> <artifactId>collections</artifactId> </dependency> + <dependency> + <groupId>net.didion.jwnl</groupId> + <artifactId>jwnl</artifactId> + <version>1.4.1.RC2</version> + </dependency> </dependencies> </project> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-22 14:39:25
|
Revision: 3426 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3426&view=rev Author: lorenz_b Date: 2011-11-22 14:39:14 +0000 (Tue, 22 Nov 2011) Log Message: ----------- Started WordNet similarity measure. Added Wald95 method to disjoint classes algorithm. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java Added Paths: ----------- trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java trunk/components-core/src/main/resources/wordnet_properties.xml Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-21 18:38:32 UTC (rev 3425) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-22 14:39:14 UTC (rev 3426) @@ -45,6 +45,7 @@ import org.dllearner.kb.sparql.SPARQLTasks; import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.learningproblems.AxiomScore; +import org.dllearner.learningproblems.Heuristics; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -126,7 +127,10 @@ oldCnt = result.get(cls); if(oldCnt == null){ oldCnt = Integer.valueOf(newCnt); + } else { + oldCnt += newCnt; } + result.put(cls, oldCnt); qs.getLiteral("count").getInt(); repeat = true; @@ -215,8 +219,15 @@ //secondly, create disjoint classexpressions with score 1 - (#occurence/#all) for(Entry<NamedClass, Integer> entry : sortByValues(class2Count)){ +// evalDesc = new EvaluatedDescription(entry.getKey(), +// new AxiomScore(1 - (entry.getValue() / (double)all))); + System.out.println(entry.getKey()); + System.out.println(all); + System.out.println(entry.getValue()); + double[] confidenceInterval = Heuristics.getConfidenceInterval95Wald(all, entry.getValue()); + double accuracy = (confidenceInterval[0] + confidenceInterval[1]) / 2; evalDesc = new EvaluatedDescription(entry.getKey(), - new AxiomScore(1 - (entry.getValue() / (double)all))); + new AxiomScore(1 - accuracy)); evalDescs.add(evalDesc); } @@ -227,7 +238,7 @@ public static void main(String[] args) throws Exception{ DisjointClassesLearner l = new DisjointClassesLearner(new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList()))); - l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/Person")); + l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/AdministrativeRegion")); l.init(); l.getReasoner().prepareSubsumptionHierarchy(); // System.out.println(l.getReasoner().getClassHierarchy().getSubClasses(new NamedClass("http://dbpedia.org/ontology/Athlete"), false));System.exit(0); Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java 2011-11-21 18:38:32 UTC (rev 3425) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/SimpleSubclassLearner.java 2011-11-22 14:39:14 UTC (rev 3426) @@ -19,7 +19,9 @@ package org.dllearner.algorithms; +import java.net.URL; import java.util.ArrayList; +import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -214,7 +216,8 @@ } public static void main(String[] args) throws Exception{ - SparqlEndpointKS ks = new SparqlEndpointKS(SparqlEndpoint.getEndpointDBpediaLiveOpenLink()); + SparqlEndpointKS ks = new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), + Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList())); SPARQLReasoner reasoner = new SPARQLReasoner(ks); reasoner.prepareSubsumptionHierarchy(); @@ -223,11 +226,13 @@ l.setReasoner(reasoner); ConfigHelper.configure(l, "maxExecutionTimeInSeconds", 10); - l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/Bridge")); + l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/AdministrativeRegion")); l.init(); l.start(); - System.out.println(l.getCurrentlyBestEvaluatedDescriptions(5)); + for(EvaluatedAxiom e : l.getCurrentlyBestEvaluatedAxioms(Integer.MAX_VALUE, 0.75)){ + System.out.println(e); + } } } Added: trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java (rev 0) +++ trunk/components-core/src/main/java/org/dllearner/utilities/WordnetSimilarity.java 2011-11-22 14:39:14 UTC (rev 3426) @@ -0,0 +1,68 @@ +package org.dllearner.utilities; + +import java.util.ArrayList; +import java.util.List; + +import net.didion.jwnl.JWNL; +import net.didion.jwnl.JWNLException; +import net.didion.jwnl.data.IndexWord; +import net.didion.jwnl.data.POS; +import net.didion.jwnl.data.PointerTarget; +import net.didion.jwnl.data.PointerType; +import net.didion.jwnl.data.Synset; +import net.didion.jwnl.data.Word; +import net.didion.jwnl.dictionary.Dictionary; + +public class WordnetSimilarity { + + public Dictionary dict; + + public WordnetSimilarity(){ + try { + JWNL.initialize(this.getClass().getClassLoader().getResourceAsStream("wordnet_properties.xml")); + dict = Dictionary.getInstance(); + } catch (JWNLException e) { + e.printStackTrace(); + } + } + + public double computeSimilarity(String s1, String s2, POS pos){ + List<String> synonyms = new ArrayList<String>(); + + try { + IndexWord iw = dict.getIndexWord(pos, s1);//dict.getMorphologicalProcessor().lookupBaseForm(pos, s) +// IndexWord iw = dict.getMorphologicalProcessor().lookupBaseForm(pos, s); + if(iw != null){ + Synset[] synsets = iw.getSenses(); + for(Synset s : synsets){ + System.out.println(s); + PointerTarget[] targets = s.getTargets(PointerType.HYPERNYM); + for (PointerTarget target : targets) + { + Word[] words = ((Synset) target).getWords(); + for (Word word : words) + { + System.out.println(word); + } + } + } +// Word[] words = synsets[0].getWords(); +// for(Word w : words){ +// String c = w.getLemma(); +// System.out.println(c); +// } + } + + } catch (JWNLException e) { + e.printStackTrace(); + } + + + return -1; + } + + public static void main(String[] args) { + System.out.println(new WordnetSimilarity().computeSimilarity("writer", "teacher", POS.NOUN)); + } + +} Added: trunk/components-core/src/main/resources/wordnet_properties.xml =================================================================== --- trunk/components-core/src/main/resources/wordnet_properties.xml (rev 0) +++ trunk/components-core/src/main/resources/wordnet_properties.xml 2011-11-22 14:39:14 UTC (rev 3426) @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<jwnl_properties language="en"> + <version publisher="Princeton" number="3.0" language="en"/> + <dictionary class="net.didion.jwnl.dictionary.FileBackedDictionary"> + <param name="morphological_processor" value="net.didion.jwnl.dictionary.morph.DefaultMorphologicalProcessor"> + <param name="operations"> + <param value="net.didion.jwnl.dictionary.morph.LookupExceptionsOperation"/> + <param value="net.didion.jwnl.dictionary.morph.DetachSuffixesOperation"> + <param name="noun" value="|s=|ses=s|xes=x|zes=z|ches=ch|shes=sh|men=man|ies=y|"/> + <param name="verb" value="|s=|ies=y|es=e|es=|ed=e|ed=|ing=e|ing=|"/> + <param name="adjective" value="|er=|est=|er=e|est=e|"/> + <param name="operations"> + <param value="net.didion.jwnl.dictionary.morph.LookupIndexWordOperation"/> + <param value="net.didion.jwnl.dictionary.morph.LookupExceptionsOperation"/> + </param> + </param> + <param value="net.didion.jwnl.dictionary.morph.TokenizerOperation"> + <param name="delimiters"> + <param value=" "/> + <param value="-"/> + </param> + <param name="token_operations"> + <param value="net.didion.jwnl.dictionary.morph.LookupIndexWordOperation"/> + <param value="net.didion.jwnl.dictionary.morph.LookupExceptionsOperation"/> + <param value="net.didion.jwnl.dictionary.morph.DetachSuffixesOperation"> + <param name="noun" value="|s=|ses=s|xes=x|zes=z|ches=ch|shes=sh|men=man|ies=y|"/> + <param name="verb" value="|s=|ies=y|es=e|es=|ed=e|ed=|ing=e|ing=|"/> + <param name="adjective" value="|er=|est=|er=e|est=e|"/> + <param name="operations"> + <param value="net.didion.jwnl.dictionary.morph.LookupIndexWordOperation"/> + <param value="net.didion.jwnl.dictionary.morph.LookupExceptionsOperation"/> + </param> + </param> + </param> + </param> + </param> + </param> + <param name="dictionary_element_factory" value="net.didion.jwnl.princeton.data.PrincetonWN17FileDictionaryElementFactory"/> + <param name="file_manager" value="net.didion.jwnl.dictionary.file_manager.FileManagerImpl"> + <param name="file_type" value="net.didion.jwnl.princeton.file.PrincetonRandomAccessDictionaryFile"/> + <param name="dictionary_path" value="/opt/wordnet/dict"/> + </param> + </dictionary> + <resource class="PrincetonResource"/> +</jwnl_properties> \ No newline at end of file This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2011-11-21 18:38:43
|
Revision: 3425 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3425&view=rev Author: kurzum Date: 2011-11-21 18:38:32 +0000 (Mon, 21 Nov 2011) Log Message: ----------- reformatted conf file. Thank you for adding multicolumn strings, Jens Modified Paths: -------------- trunk/examples/sparql/new_approach.conf Modified: trunk/examples/sparql/new_approach.conf =================================================================== --- trunk/examples/sparql/new_approach.conf 2011-11-21 18:25:06 UTC (rev 3424) +++ trunk/examples/sparql/new_approach.conf 2011-11-21 18:38:32 UTC (rev 3425) @@ -4,23 +4,74 @@ ks1.type = "OWL File" ks1.url = "http://dbpedia.org/sparql" ks1.defaultGraphURIs= {"http://dbpedia.org"} -ks1.sparql = " Construct { ?s1 ?p1 ?o1. ?o1 ?p2 ?o2 . ?p1 a owl:ObjectProperty . ?p2 a owl:ObjectProperty . ?s1 a owl:Thing . ?o1 a owl:Thing . ?o2 a owl:Thing . } { ?s1 ?p1 ?o1. OPTIONAL{ ?o1 ?p2 ?o2.} . Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink>, <http://dbpedia.org/ontology/thumbnail>, <http://dbpedia.org/property/website>, <http://xmlns.com/foaf/0.1/homepage> ,<http://xmlns.com/foaf/0.1/depiction>, <http://xmlns.com/foaf/0.1/page> ) )) . Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink>, <http://dbpedia.org/ontology/thumbnail>, <http://dbpedia.org/property/website>, <http://xmlns.com/foaf/0.1/homepage> ,<http://xmlns.com/foaf/0.1/depiction>, <http://xmlns.com/foaf/0.1/page> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . Filter ( ?s1 IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . } " +ks1.sparql = " +Construct { + ?s1 ?p1 ?o1. + ?o1 ?p2 ?o2 . + ?p1 a owl:ObjectProperty . + ?p2 a owl:ObjectProperty . + ?s1 a owl:Thing . + ?o1 a owl:Thing . + ?o2 a owl:Thing . +} { + ?s1 ?p1 ?o1. + OPTIONAL{ ?o1 ?p2 ?o2.} . + Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink>, <http://dbpedia.org/ontology/thumbnail>, <http://dbpedia.org/property/website>, <http://xmlns.com/foaf/0.1/homepage> ,<http://xmlns.com/foaf/0.1/depiction>, <http://xmlns.com/foaf/0.1/page> ) )) . + Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink>, <http://dbpedia.org/ontology/thumbnail>, <http://dbpedia.org/property/website>, <http://xmlns.com/foaf/0.1/homepage> ,<http://xmlns.com/foaf/0.1/depiction>, <http://xmlns.com/foaf/0.1/page> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . + Filter ( ?s1 IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . +} " ks2.type = "OWL File" ks2.url = "http://dbpedia.org/sparql" ks2.defaultGraphURIs= {"http://dbpedia.org"} -ks2.sparql = "Construct { ?s a ?class . ?s a owl:Thing . ?class a owl:Class . ?class rdfs:subClassOf ?super . ?super a owl:Class . } { ?s a ?class . OPTIONAL { ?class rdfs:subClassOf ?super . } . Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . } " +ks2.sparql = "Construct { + ?s a ?class . + ?s a owl:Thing . + ?class a owl:Class . + ?class rdfs:subClassOf ?super . + ?super a owl:Class . +} { + ?s a ?class . + OPTIONAL { ?class rdfs:subClassOf ?super . } . + Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . + Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . +} " ks3.type = "OWL File" ks3.url = "http://dbpedia.org/sparql" ks3.defaultGraphURIs= {"http://dbpedia.org"} -ks3.sparql = "Construct { ?o a ?class . ?o a owl:Thing . ?class a owl:Class . ?class rdfs:subClassOf ?super .?super a owl:Class . } { ?s ?p ?o . ?o a ?class . OPTIONAL { ?class rdfs:subClassOf ?super . } . Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . } " +ks3.sparql = "Construct { + ?o a ?class . + ?o a owl:Thing . + ?class a owl:Class . + ?class rdfs:subClassOf ?super . + ?super a owl:Class . +} { + ?s ?p ?o . + ?o a ?class . + OPTIONAL { ?class rdfs:subClassOf ?super . } . + Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . + Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . +} " ks4.type = "OWL File" ks4.url = "http://dbpedia.org/sparql" ks4.defaultGraphURIs= {"http://dbpedia.org"} -ks4.sparql = "Construct { ?o a ?class . ?o a owl:Thing . ?class a owl:Class . ?class rdfs:subClassOf ?super . ?super a owl:Class . } { ?s ?p1 ?o1 . ?o1 ?p2 ?o . ?o a ?class . OPTIONAL { ?class rdfs:subClassOf ?super . } . Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . } " +ks4.sparql = "Construct { + ?o a ?class . + ?o a owl:Thing . + ?class a owl:Class . + ?class rdfs:subClassOf ?super . + ?super a owl:Class . +} { + ?s ?p1 ?o1 . + ?o1 ?p2 ?o . + ?o a ?class . + OPTIONAL { ?class rdfs:subClassOf ?super . } . + Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . + Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . +} " This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2011-11-21 18:25:17
|
Revision: 3424 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3424&view=rev Author: kurzum Date: 2011-11-21 18:25:06 +0000 (Mon, 21 Nov 2011) Log Message: ----------- added generic rest interface Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/server/Rest.java Modified: trunk/interfaces/src/main/java/org/dllearner/server/Rest.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/server/Rest.java 2011-11-21 15:34:59 UTC (rev 3423) +++ trunk/interfaces/src/main/java/org/dllearner/server/Rest.java 2011-11-21 18:25:06 UTC (rev 3424) @@ -1,8 +1,10 @@ package org.dllearner.server; -import com.jamonapi.Monitor; -import com.jamonapi.MonitorFactory; -import org.apache.commons.lang.StringUtils; +import org.apache.commons.httpclient.util.ExceptionUtil; +import org.apache.commons.lang.exception.ExceptionUtils; +import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor; +import org.dllearner.learningproblems.EvaluatedDescriptionPosNeg; +import org.json.simple.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,8 +14,6 @@ import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.PrintWriter; -import java.net.URLEncoder; -import java.security.InvalidParameterException; import java.util.HashMap; import java.util.Map; @@ -41,6 +41,8 @@ * @throws java.io.IOException */ private void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { + JSONObject result = new JSONObject(); + JSONObject learningResult = new JSONObject(); try { String conf = null; if (!isSet("conf", httpServletRequest)) { @@ -49,80 +51,77 @@ conf = httpServletRequest.getParameter("conf"); } - /*todo learn - Description d = learn (conf); - String concept = d.getConceptAsString (); - String sparql = new SPARLQConverter().convert(d); - */ - String concept = "hasCar some (ClosedCar and ShortCar)"; - String sparql = "SELECT ?instances { ?instances :hasCar ?o . ?o rdf:type :ClosedCar. ?o2 rdf:type :ShortCar "; + /*todo learn*/ - String result="{\"concept\": \""+concept+"\", \"SPARQL\":\""+sparql+"\"}"; - result+="\n\nconf was:\n"+conf; + if (isSet("debug", httpServletRequest) && httpServletRequest.getParameter("debug").equalsIgnoreCase("true")) { - httpServletResponse.setContentType("text/plain"); - PrintWriter out = httpServletResponse.getWriter(); - out.println(result); - out.close(); + String manchester = "author some (Artist and Writer)"; + String sparql = "prefix dbo: <http://dbpedia.org/ontology/>\n" + + "SELECT ?instances WHERE {\n" + + "?instances dbo:author ?o . ?o a dbo:Artist . ?o a dbo:Writer .\n" + + "} "; + + learningResult.put("success", "1"); + learningResult.put("manchester", manchester); + learningResult.put("kbsyntax", "other syntax"); + learningResult.put("sparql", sparql); + learningResult.put("truePositives", "uri1, uri2"); + learningResult.put("truePositives", "uri1, uri2"); + learningResult.put("trueNegatives", "uri1, uri2"); + learningResult.put("falseNegatives", "uri1, uri2"); + } else { + + EvaluatedDescriptionPosNeg ed = learn(conf); + + SparqlQueryDescriptionConvertVisitor sqd = new SparqlQueryDescriptionConvertVisitor(); + learningResult.put("success", "1"); + learningResult.put("manchester", ed.getDescription().toManchesterSyntaxString(null, null)); + learningResult.put("kbsyntax", ed.getDescription().toKBSyntaxString()); + learningResult.put("sparql", sqd.getSparqlQuery(ed.getDescription())); + learningResult.put("truePositives", EvaluatedDescriptionPosNeg.getJSONArray(ed.getCoveredPositives())); + learningResult.put("falsePositives", EvaluatedDescriptionPosNeg.getJSONArray(ed.getNotCoveredPositives())); + learningResult.put("trueNegatives", EvaluatedDescriptionPosNeg.getJSONArray(ed.getNotCoveredNegatives())); + learningResult.put("falseNegatives", EvaluatedDescriptionPosNeg.getJSONArray(ed.getCoveredNegatives())); + } + + } catch (IllegalArgumentException e) { String msg = e.getMessage();// + printParameterMap(httpServletRequest); log.error(msg); - httpServletResponse.setContentType("text/plain"); - PrintWriter out = httpServletResponse.getWriter(); - out.println(msg); - out.close(); + learningResult.put("success", "0"); + learningResult.put("error", msg); + learningResult.put("stacktrace", ExceptionUtils.getFullStackTrace(e)); } catch (Exception e) { String msg = "An error occured: " + e.getMessage(); //+ printParameterMap(httpServletRequest); log.error(msg, e); - httpServletResponse.setContentType("text/plain"); - PrintWriter out = httpServletResponse.getWriter(); - out.println(msg); - out.close(); - + learningResult.put("success", "0"); + learningResult.put("error", msg); + learningResult.put("stacktrace", ExceptionUtils.getFullStackTrace(e)); } - } + result.put("learningresult", learningResult); + httpServletResponse.setContentType("text/plain"); + PrintWriter out = httpServletResponse.getWriter(); + out.println(result.toJSONString()); + out.close(); - - public static String requiredParameter(String parameterName, HttpServletRequest hsr) { - - if (!isSet(parameterName, hsr)) { - throw new IllegalArgumentException("Missing parameter: " + parameterName + " is required. "); - } - return hsr.getParameter(parameterName); } - public static String requiredParameter(String parameterName, HttpServletRequest hsr, String... requiredValues) { - String value = requiredParameter(parameterName, hsr); - if (!oneOf(value, requiredValues)) { - throw new InvalidParameterException("Wrong value for parameter " + parameterName + ", value was: " + value + ", but must be one of ( " + StringUtils.join(requiredValues, ", ") + " ) "); - } - return value; - } + /** + * TODO + * This function takes the config string as in a conf file and the returns an EvaluatedDescription + * + * @param conf the content of a conf file + * @return + */ + public EvaluatedDescriptionPosNeg learn(String conf) { - - public static String getDocumentation(String serviceUrl) { - String doc = ""; - try { - doc = "\nExample1: \n " + serviceUrl + "?input=" + URLEncoder.encode("That's a lot of nuts! That'll be four bucks, baby! You want fries with that? ", "UTF-8") + "&type=text"; - doc += "\nExample2: \n " + serviceUrl + "?input=" + URLEncoder.encode("That's a lot of nuts! That's a lot of nuts! ", "UTF-8") + "&type=text"; - } catch (Exception e) { - log.error("", e); - } - return doc; + return null; } - public static boolean oneOf(String value, String... possibleValues) { - for (String s : possibleValues) { - if (s.equals(value)) { - return true; - } - } - return false; - } public static boolean isSet(String parameterName, HttpServletRequest hsr) { boolean retVal = hsr.getParameterValues(parameterName) != null && hsr.getParameterValues(parameterName).length == 1 && hsr.getParameter(parameterName).length() > 0; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2011-11-21 15:35:05
|
Revision: 3423 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3423&view=rev Author: jenslehmann Date: 2011-11-21 15:34:59 +0000 (Mon, 21 Nov 2011) Log Message: ----------- allowed multiline strings Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj Modified: trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java 2011-11-21 15:12:51 UTC (rev 3422) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java 2011-11-21 15:34:59 UTC (rev 3423) @@ -403,18 +403,6 @@ finally { jj_save(8, xla); } } - private boolean jj_3_1() { - if (jj_3R_6()) return true; - if (jj_scan_token(16)) return true; - return false; - } - - private boolean jj_3_7() { - if (jj_scan_token(18)) return true; - if (jj_scan_token(19)) return true; - return false; - } - private boolean jj_3_3() { if (jj_scan_token(20)) return true; if (jj_3R_6()) return true; @@ -489,6 +477,18 @@ return false; } + private boolean jj_3_1() { + if (jj_3R_6()) return true; + if (jj_scan_token(16)) return true; + return false; + } + + private boolean jj_3_7() { + if (jj_scan_token(18)) return true; + if (jj_scan_token(19)) return true; + return false; + } + /** Generated Token Manager. */ public ConfParserTokenManager token_source; SimpleCharStream jj_input_stream; Modified: trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java 2011-11-21 15:12:51 UTC (rev 3422) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParserTokenManager.java 2011-11-21 15:34:59 UTC (rev 3423) @@ -120,7 +120,7 @@ jjCheckNAddTwoStates(3, 4); break; case 3: - if ((0xfffffffbffffdbffL & l) != 0L) + if ((0xfffffffbffffffffL & l) != 0L) jjCheckNAddTwoStates(3, 4); break; case 4: Modified: trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj 2011-11-21 15:12:51 UTC (rev 3422) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj 2011-11-21 15:34:59 UTC (rev 3423) @@ -114,7 +114,8 @@ | < ID: ["a"-"z"] (["_","a"-"z","A"-"Z","0"-"9"])* > | < NUMBER: (["1"-"9"] (["0"-"9"])* | "0") > | < DOUBLE: (["1"-"9"] (["0"-"9"])* | "0") "." (["0"-"9"])* > - | <STRING: "\"" (~["\"","\\","\n","\r"])* "\""> + | < STRING: "\"" (~["\"","\\"])* "\""> +// | < STRING: "\"" (~["\"","\\","\n","\r"])* "\""> } void Start() : This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2011-11-21 15:13:02
|
Revision: 3422 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3422&view=rev Author: kurzum Date: 2011-11-21 15:12:51 +0000 (Mon, 21 Nov 2011) Log Message: ----------- replaced the sparql component with a conf file Modified Paths: -------------- trunk/examples/sparql/new_approach.conf Modified: trunk/examples/sparql/new_approach.conf =================================================================== --- trunk/examples/sparql/new_approach.conf 2011-11-21 14:43:55 UTC (rev 3421) +++ trunk/examples/sparql/new_approach.conf 2011-11-21 15:12:51 UTC (rev 3422) @@ -4,22 +4,28 @@ ks1.type = "OWL File" ks1.url = "http://dbpedia.org/sparql" ks1.defaultGraphURIs= {"http://dbpedia.org"} -ks1.sparql = " Construct { ?s1 ?p1 ?o1. ?o1 ?p2 ?o2 . ?p1 a owl:ObjectProperty . ?p2 a owl:ObjectProperty . ?s1 a owl:Thing . ?o1 a owl:Thing . ?o2 a owl:Thing . } { ?s1 ?p1 ?o1. OPTIONAL{ ?o1 ?p2 ?o2.} Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink> ) )) . Filter (! (?p2 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . Filter ( ?s1 IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) } " +ks1.sparql = " Construct { ?s1 ?p1 ?o1. ?o1 ?p2 ?o2 . ?p1 a owl:ObjectProperty . ?p2 a owl:ObjectProperty . ?s1 a owl:Thing . ?o1 a owl:Thing . ?o2 a owl:Thing . } { ?s1 ?p1 ?o1. OPTIONAL{ ?o1 ?p2 ?o2.} . Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink>, <http://dbpedia.org/ontology/thumbnail>, <http://dbpedia.org/property/website>, <http://xmlns.com/foaf/0.1/homepage> ,<http://xmlns.com/foaf/0.1/depiction>, <http://xmlns.com/foaf/0.1/page> ) )) . Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink>, <http://dbpedia.org/ontology/thumbnail>, <http://dbpedia.org/property/website>, <http://xmlns.com/foaf/0.1/homepage> ,<http://xmlns.com/foaf/0.1/depiction>, <http://xmlns.com/foaf/0.1/page> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . Filter ( ?s1 IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . } " ks2.type = "OWL File" ks2.url = "http://dbpedia.org/sparql" ks2.defaultGraphURIs= {"http://dbpedia.org"} -ks2.sparql = "Construct { ?s1 a ?cl1 . ?s1 a owl:Thing . ?cl1 a owl:Class . ?o2 a ?cl2. ?o2 a owl:Thing . ?cl2 a owl:Class . } { ?s1 ?p1 ?o1 . OPTIONAL { ?o1 ?p2 ?o2. } Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (! (?p2 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . ?s1 a ?cl1 . OPTIONAL {?o2 a ?cl2. } Filter ( ?cl1 LIKE <http://dbpedia.org/ontology/%> ) . Filter ( ?cl2 LIKE <http://dbpedia.org/ontology/%> ) . } " +ks2.sparql = "Construct { ?s a ?class . ?s a owl:Thing . ?class a owl:Class . ?class rdfs:subClassOf ?super . ?super a owl:Class . } { ?s a ?class . OPTIONAL { ?class rdfs:subClassOf ?super . } . Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . } " -ks2.type = "OWL File" -ks2.url = "http://dbpedia.org/sparql" -ks2.defaultGraphURIs= {"http://dbpedia.org"} -ks2.sparql = "Construct { ?s1 a ?cl1 . ?s1 a owl:Thing . ?cl1 a owl:Class . ?o2 a ?cl2. ?o2 a owl:Thing . ?cl2 a owl:Class . } { ?s1 ?p1 ?o1 . OPTIONAL { ?o1 ?p2 ?o2. } Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (! (?p2 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . ?s1 a ?cl1 . OPTIONAL {?o2 a ?cl2. } Filter ( ?cl1 LIKE <http://dbpedia.org/ontology/%> ) . Filter ( ?cl2 LIKE <http://dbpedia.org/ontology/%> ) . } " +ks3.type = "OWL File" +ks3.url = "http://dbpedia.org/sparql" +ks3.defaultGraphURIs= {"http://dbpedia.org"} +ks3.sparql = "Construct { ?o a ?class . ?o a owl:Thing . ?class a owl:Class . ?class rdfs:subClassOf ?super .?super a owl:Class . } { ?s ?p ?o . ?o a ?class . OPTIONAL { ?class rdfs:subClassOf ?super . } . Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . } " +ks4.type = "OWL File" +ks4.url = "http://dbpedia.org/sparql" +ks4.defaultGraphURIs= {"http://dbpedia.org"} +ks4.sparql = "Construct { ?o a ?class . ?o a owl:Thing . ?class a owl:Class . ?class rdfs:subClassOf ?super . ?super a owl:Class . } { ?s ?p1 ?o1 . ?o1 ?p2 ?o . ?o a ?class . OPTIONAL { ?class rdfs:subClassOf ?super . } . Filter ( ?s IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) . Filter ( ?class LIKE <http://dbpedia.org/ontology/%> ) . } " + + reasoner.type = "fast instance checker" -reasoner.sources = {ks1, ks2} +reasoner.sources = {ks1, ks2, ks3, ks4 } lp.type = "posNegStandard" lp.positiveExamples = {"http://dbpedia.org/resource/Berlin"} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2011-11-21 14:44:06
|
Revision: 3421 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3421&view=rev Author: kurzum Date: 2011-11-21 14:43:55 +0000 (Mon, 21 Nov 2011) Log Message: ----------- added sparql capabilities to owlfile Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/kb/OWLFile.java Added Paths: ----------- trunk/examples/sparql/new_approach.conf Modified: trunk/components-core/src/main/java/org/dllearner/kb/OWLFile.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/kb/OWLFile.java 2011-11-21 12:46:47 UTC (rev 3420) +++ trunk/components-core/src/main/java/org/dllearner/kb/OWLFile.java 2011-11-21 14:43:55 UTC (rev 3421) @@ -25,6 +25,7 @@ import java.net.URL; import java.util.Collection; import java.util.LinkedList; +import java.util.List; import org.apache.log4j.Logger; import org.dllearner.core.AbstractKnowledgeSource; @@ -32,131 +33,144 @@ import org.dllearner.core.ComponentInitException; import org.dllearner.core.OntologyFormat; import org.dllearner.core.OntologyFormatUnsupportedException; +import org.dllearner.core.config.ListStringEditor; import org.dllearner.core.options.ConfigEntry; import org.dllearner.core.options.ConfigOption; import org.dllearner.core.options.InvalidConfigOptionValueException; import org.dllearner.core.options.URLConfigOption; import org.dllearner.core.owl.KB; import org.dllearner.reasoning.OWLAPIDIGConverter; +import org.dllearner.utilities.URLencodeUTF8; /** * @author Jens Lehmann - * + * @author Sebastian Hellmann + * <p/> + * SH: I added SPARQL capabilities. Either URL is set directly or the basedir and filename is set or the URL and the SPARQL query is set */ @ComponentAnn(name = "OWL File", shortName = "owlfile", version = 0.9) public class OWLFile extends AbstractKnowledgeSource { - private static Logger logger = Logger.getLogger(OWLFile.class); - - // TODO: turn this into a config option - private URL url; + private static Logger logger = Logger.getLogger(OWLFile.class); + + // TODO: turn this into a config option + private URL url; private String fileName; - private String baseDir; -// private URL url; -// private OWLFileConfigurator configurator ; -// @Override -// public OWLFileConfigurator getConfigurator(){ -// return configurator; -// } + private String baseDir; - public static String getName() { - return "OWL file"; - } - - public OWLFile(){ + private String sparql = null; + private List<String> defaultGraphURIs = new LinkedList<String>(); + private List<String> namedGraphURIs = new LinkedList<String>(); - } - - public OWLFile(URL url) { - this.url = url; - } + public static String getName() { + return "OWL file"; + } - public OWLFile(String filename) { - try { - url = new File(filename).toURI().toURL(); - } catch (MalformedURLException e) { - e.printStackTrace(); - } - } - - public static Collection<ConfigOption<?>> createConfigOptions() { - Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); - URLConfigOption urlOption = new URLConfigOption("url", "URL pointing to the OWL file", null, true, true); - urlOption.setRefersToFile(true); - options.add(urlOption); - return options; - } + public OWLFile() { - /* - * @see org.dllearner.core.Component#applyConfigEntry(org.dllearner.core.ConfigEntry) - */ - @Override - public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException { - - } + } - /* (non-Javadoc) - * @see org.dllearner.core.Component#init() - */ - @Override - public void init() throws ComponentInitException { - if(url == null) { + public OWLFile(URL url) { + this.url = url; + } + + public OWLFile(String filename) { + try { + url = new File(filename).toURI().toURL(); + } catch (MalformedURLException e) { + e.printStackTrace(); + } + } + + public static Collection<ConfigOption<?>> createConfigOptions() { + Collection<ConfigOption<?>> options = new LinkedList<ConfigOption<?>>(); + URLConfigOption urlOption = new URLConfigOption("url", "URL pointing to the OWL file", null, true, true); + urlOption.setRefersToFile(true); + options.add(urlOption); + return options; + } + + /* + * @see org.dllearner.core.Component#applyConfigEntry(org.dllearner.core.ConfigEntry) + */ + @Override + public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException { + + } + + /* (non-Javadoc) + * @see org.dllearner.core.Component#init() + */ + @Override + public void init() throws ComponentInitException { + if (sparql != null) { + StringBuilder sb = new StringBuilder(); + + //make URL + sb.append(url.toString()); + sb.append("?query=").append(URLencodeUTF8.encode(sparql)); + sb.append("&format=application%2Frdf%2Bxml"); + + for (String graph : defaultGraphURIs) { + sb.append("&default-graph-uri=").append(URLencodeUTF8.encode(graph)); + } + for (String graph : namedGraphURIs) { + sb.append("&named-graph-uri=").append(URLencodeUTF8.encode(graph)); + } + logger.info(sb.toString()); + try { - url = new URL("file://"+ baseDir + "/" + fileName); + url = new URL(sb.toString()); } catch (MalformedURLException e) { throw new RuntimeException(e); } + + } else if (url == null) { + try { + url = new URL("file://" + baseDir + "/" + fileName); + } catch (MalformedURLException e) { + throw new RuntimeException(e); + } } - - /* - try { - url = new URL(configurator.getUrl()); - } catch (MalformedURLException e) { - logger.error(e.getMessage()); - //throw new InvalidConfigOptionValueException(entry.getOption(), entry.getValue(),"malformed URL " + configurator.getUrl()); - } - */ - - } - - /* - * (non-Javadoc) - * - * @see org.dllearner.core.KnowledgeSource#toDIG() - */ - @Override - public String toDIG(URI kbURI) { - // TODO: need some handling for cases where the URL was not set - return OWLAPIDIGConverter.getTellsString(url, OntologyFormat.RDF_XML, kbURI); - } + } - public URL getURL() { -// return configurator.getUrl(); - return url; - } - - public void setURL(URL url) { - this.url = url; -// configurator.setUrl(url); - } - /* (non-Javadoc) - * @see org.dllearner.core.KnowledgeSource#export(java.io.File, org.dllearner.core.OntologyFormat) - */ - @Override - public void export(File file, OntologyFormat format) throws OntologyFormatUnsupportedException { - // currently no export functions implemented, so we just throw an exception - throw new OntologyFormatUnsupportedException("export", format); - } + /* + * (non-Javadoc) + * + * @see org.dllearner.core.KnowledgeSource#toDIG() + */ + @Override + public String toDIG(URI kbURI) { + // TODO: need some handling for cases where the URL was not set + return OWLAPIDIGConverter.getTellsString(url, OntologyFormat.RDF_XML, kbURI); + } - /* (non-Javadoc) - * @see org.dllearner.core.KnowledgeSource#toKB() - */ - @Override - public KB toKB() { - throw new Error("OWL -> KB conversion not implemented yet."); - } + public URL getURL() { + return url; + } + public void setURL(URL url) { + this.url = url; + } + + /* (non-Javadoc) + * @see org.dllearner.core.KnowledgeSource#export(java.io.File, org.dllearner.core.OntologyFormat) + */ + @Override + public void export(File file, OntologyFormat format) throws OntologyFormatUnsupportedException { + // currently no export functions implemented, so we just throw an exception + throw new OntologyFormatUnsupportedException("export", format); + } + + /* (non-Javadoc) + * @see org.dllearner.core.KnowledgeSource#toKB() + */ + @Override + public KB toKB() { + throw new Error("OWL -> KB conversion not implemented yet."); + } + public String getBaseDir() { return baseDir; } @@ -165,13 +179,13 @@ this.baseDir = baseDir; } - public URL getUrl() { - return url; - } + public URL getUrl() { + return url; + } - public void setUrl(URL url) { - this.url = url; - } + public void setUrl(URL url) { + this.url = url; + } public String getFileName() { return fileName; @@ -180,4 +194,28 @@ public void setFileName(String fileName) { this.fileName = fileName; } + + public String getSparql() { + return sparql; + } + + public void setSparql(String sparql) { + this.sparql = sparql; + } + + public List<String> getDefaultGraphURIs() { + return defaultGraphURIs; + } + + public void setDefaultGraphURIs(List<String> defaultGraphURIs) { + this.defaultGraphURIs = defaultGraphURIs; + } + + public List<String> getNamedGraphURIs() { + return namedGraphURIs; + } + + public void setNamedGraphURIs(List<String> namedGraphURIs) { + this.namedGraphURIs = namedGraphURIs; + } } Added: trunk/examples/sparql/new_approach.conf =================================================================== --- trunk/examples/sparql/new_approach.conf (rev 0) +++ trunk/examples/sparql/new_approach.conf 2011-11-21 14:43:55 UTC (rev 3421) @@ -0,0 +1,40 @@ + + +// knowledge source definition +ks1.type = "OWL File" +ks1.url = "http://dbpedia.org/sparql" +ks1.defaultGraphURIs= {"http://dbpedia.org"} +ks1.sparql = " Construct { ?s1 ?p1 ?o1. ?o1 ?p2 ?o2 . ?p1 a owl:ObjectProperty . ?p2 a owl:ObjectProperty . ?s1 a owl:Thing . ?o1 a owl:Thing . ?o2 a owl:Thing . } { ?s1 ?p1 ?o1. OPTIONAL{ ?o1 ?p2 ?o2.} Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink> ) )) . Filter (! (?p2 IN (rdf:type , <http://purl.org/dc/terms/subject>, owl:sameAs, <http://dbpedia.org/ontology/wikiPageExternalLink> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . Filter ( ?s1 IN (<http://dbpedia.org/resource/London> , <http://dbpedia.org/resource/Berlin>)) } " + + +ks2.type = "OWL File" +ks2.url = "http://dbpedia.org/sparql" +ks2.defaultGraphURIs= {"http://dbpedia.org"} +ks2.sparql = "Construct { ?s1 a ?cl1 . ?s1 a owl:Thing . ?cl1 a owl:Class . ?o2 a ?cl2. ?o2 a owl:Thing . ?cl2 a owl:Class . } { ?s1 ?p1 ?o1 . OPTIONAL { ?o1 ?p2 ?o2. } Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (! (?p2 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . ?s1 a ?cl1 . OPTIONAL {?o2 a ?cl2. } Filter ( ?cl1 LIKE <http://dbpedia.org/ontology/%> ) . Filter ( ?cl2 LIKE <http://dbpedia.org/ontology/%> ) . } " + +ks2.type = "OWL File" +ks2.url = "http://dbpedia.org/sparql" +ks2.defaultGraphURIs= {"http://dbpedia.org"} +ks2.sparql = "Construct { ?s1 a ?cl1 . ?s1 a owl:Thing . ?cl1 a owl:Class . ?o2 a ?cl2. ?o2 a owl:Thing . ?cl2 a owl:Class . } { ?s1 ?p1 ?o1 . OPTIONAL { ?o1 ?p2 ?o2. } Filter (! (?p1 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (! (?p2 IN (rdf:type , <http://purl.org/dc/terms/subject> ) )) . Filter (!isLiteral(?o1) && !isLiteral(?o2) ) . ?s1 a ?cl1 . OPTIONAL {?o2 a ?cl2. } Filter ( ?cl1 LIKE <http://dbpedia.org/ontology/%> ) . Filter ( ?cl2 LIKE <http://dbpedia.org/ontology/%> ) . } " + + +reasoner.type = "fast instance checker" +reasoner.sources = {ks1, ks2} + +lp.type = "posNegStandard" +lp.positiveExamples = {"http://dbpedia.org/resource/Berlin"} +lp.negativeExamples = {"http://dbpedia.org/resource/London"} +lp.reasoner = reasoner + +// create a refinement operator and configure it +op.type = "rho" +op.useNegation = false +op.useAllConstructor = false +op.useCardinalityRestrictions = false +op.reasoner = reasoner + +// we use the OCEL algorithm +alg.type = "ocel" +alg.reasoner = reasoner +alg.learningProblem = lp +alg.operator = op This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-11-21 12:46:56
|
Revision: 3420 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3420&view=rev Author: christinaunger Date: 2011-11-21 12:46:47 +0000 (Mon, 21 Nov 2011) Log Message: ----------- [tbsl.exploration] added SQLite-JDBC dependency Modified Paths: -------------- trunk/components-ext/pom.xml Modified: trunk/components-ext/pom.xml =================================================================== --- trunk/components-ext/pom.xml 2011-11-21 10:54:36 UTC (rev 3419) +++ trunk/components-ext/pom.xml 2011-11-21 12:46:47 UTC (rev 3420) @@ -7,6 +7,7 @@ <packaging>jar</packaging> <name>components-ext</name> + <version>1.0-SNAPSHOT</version> <url>http://aksw.org/Projects/DLLearner</url> <repositories> @@ -56,6 +57,7 @@ <dependency> <groupId>org.apache.solr</groupId> <artifactId>solr-core</artifactId> + <version>1.4.1</version> </dependency> <!--BEGIN Logging Dependencies--> @@ -64,12 +66,14 @@ <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> + <version>1.5.8</version> </dependency> <!--This is the bridge that ties calls to the slf4j api to the log4j framework. This is a runtime dependency for programs which wish to use log4j as their implementation.--> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> + <version>1.5.11</version> <scope>runtime</scope> </dependency> @@ -82,6 +86,7 @@ <dependency> <groupId>org.slf4j</groupId> <artifactId>jcl-over-slf4j</artifactId> + <version>1.5.11</version> <scope>runtime</scope> </dependency> <!--END Logging Dependencies--> @@ -171,9 +176,15 @@ <dependency> <groupId>org.nlp2rdf</groupId> <artifactId>nif</artifactId> + <version>1.1-SNAPSHOT</version> </dependency> + <dependency> + <groupId>org.xerial</groupId> + <artifactId>sqlite-jdbc</artifactId> + <version>3.7.2</version> + </dependency> </dependencies> <build> <plugins> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ku...@us...> - 2011-11-21 10:54:45
|
Revision: 3419 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3419&view=rev Author: kurzum Date: 2011-11-21 10:54:36 +0000 (Mon, 21 Nov 2011) Log Message: ----------- changed rest interface Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/server/Rest.java trunk/interfaces/src/main/webapp/WEB-INF/web.xml Modified: trunk/interfaces/src/main/java/org/dllearner/server/Rest.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/server/Rest.java 2011-11-18 15:35:17 UTC (rev 3418) +++ trunk/interfaces/src/main/java/org/dllearner/server/Rest.java 2011-11-21 10:54:36 UTC (rev 3419) @@ -2,6 +2,7 @@ import com.jamonapi.Monitor; import com.jamonapi.MonitorFactory; +import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -13,6 +14,8 @@ import java.io.PrintWriter; import java.net.URLEncoder; import java.security.InvalidParameterException; +import java.util.HashMap; +import java.util.Map; public class Rest extends HttpServlet { @@ -38,39 +41,33 @@ * @throws java.io.IOException */ private void handle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws ServletException, IOException { - Monitor mon = MonitorFactory.getTimeMonitor("NIFParameters.getInstance").start(); - String result = ""; try { - //check parameters - String conf = ""; - if (isSet(httpServletRequest, "conf")) { + String conf = null; + if (!isSet("conf", httpServletRequest)) { + throw new IllegalArgumentException("Missing parameter: conf is required. "); + } else { conf = httpServletRequest.getParameter("conf"); - } else { - throw new InvalidParameterException("No parameter 'conf' found. " + getDocumentation(httpServletRequest.getRequestURL().toString())); } - //output default is json - String output = "json"; - if (isSet(httpServletRequest, "output")) { - output = httpServletRequest.getParameter("output"); - //use the function one of - if (!oneOf(output, "json", "xml")) { - throw new InvalidParameterException("Wrong parameter value for \"output\", must be one of ( json, xml ) " + getDocumentation(httpServletRequest.getRequestURL().toString())); - } - } + /*todo learn + Description d = learn (conf); + String concept = d.getConceptAsString (); + String sparql = new SPARLQConverter().convert(d); - /** - * Do the magic here - */ - result = conf; + */ + String concept = "hasCar some (ClosedCar and ShortCar)"; + String sparql = "SELECT ?instances { ?instances :hasCar ?o . ?o rdf:type :ClosedCar. ?o2 rdf:type :ShortCar "; - PrintWriter pw = httpServletResponse.getWriter(); - log.debug("Request handled: " + logMonitor(mon.stop())); - pw.print(result); - pw.close(); + String result="{\"concept\": \""+concept+"\", \"SPARQL\":\""+sparql+"\"}"; + result+="\n\nconf was:\n"+conf; + httpServletResponse.setContentType("text/plain"); + PrintWriter out = httpServletResponse.getWriter(); + out.println(result); + out.close(); + } catch (IllegalArgumentException e) { - String msg = e.getMessage() + printParameterMap(httpServletRequest); + String msg = e.getMessage();// + printParameterMap(httpServletRequest); log.error(msg); httpServletResponse.setContentType("text/plain"); PrintWriter out = httpServletResponse.getWriter(); @@ -78,7 +75,7 @@ out.close(); } catch (Exception e) { - String msg = "An error occured: " + e.getMessage() + printParameterMap(httpServletRequest); + String msg = "An error occured: " + e.getMessage(); //+ printParameterMap(httpServletRequest); log.error(msg, e); httpServletResponse.setContentType("text/plain"); PrintWriter out = httpServletResponse.getWriter(); @@ -90,12 +87,23 @@ } - /** - * Examples are from NIF - * - * @param serviceUrl - * @return - */ + public static String requiredParameter(String parameterName, HttpServletRequest hsr) { + + if (!isSet(parameterName, hsr)) { + throw new IllegalArgumentException("Missing parameter: " + parameterName + " is required. "); + } + return hsr.getParameter(parameterName); + } + + public static String requiredParameter(String parameterName, HttpServletRequest hsr, String... requiredValues) { + String value = requiredParameter(parameterName, hsr); + if (!oneOf(value, requiredValues)) { + throw new InvalidParameterException("Wrong value for parameter " + parameterName + ", value was: " + value + ", but must be one of ( " + StringUtils.join(requiredValues, ", ") + " ) "); + } + return value; + } + + public static String getDocumentation(String serviceUrl) { String doc = ""; try { @@ -107,12 +115,6 @@ return doc; } - public static boolean isSet(HttpServletRequest httpServletRequest, String name) { - log.trace("isSet(" + name + ")"); - log.trace(httpServletRequest.getParameterValues(name) + ""); - return httpServletRequest.getParameterValues(name) != null && httpServletRequest.getParameterValues(name).length == 1 && httpServletRequest.getParameter(name).length() > 0; - } - public static boolean oneOf(String value, String... possibleValues) { for (String s : possibleValues) { if (s.equals(value)) { @@ -122,19 +124,21 @@ return false; } - protected static String logMonitor(Monitor m) { - return "needed: " + m.getLastValue() + " ms. (" + m.getTotal() + " total)"; + public static boolean isSet(String parameterName, HttpServletRequest hsr) { + boolean retVal = hsr.getParameterValues(parameterName) != null && hsr.getParameterValues(parameterName).length == 1 && hsr.getParameter(parameterName).length() > 0; + if (log.isTraceEnabled()) { + log.trace("Parameter " + parameterName + " isSet: " + retVal + " with value: " + hsr.getParameter(parameterName) + ")"); + } + return retVal; } - public static String printParameterMap(HttpServletRequest httpServletRequest) { - StringBuffer buf = new StringBuffer(); + public static Map<String, String> copyParameterMap(HttpServletRequest httpServletRequest) { + Map<String, String> ret = new HashMap<String, String>(); for (Object key : httpServletRequest.getParameterMap().keySet()) { - buf.append("\nParameter: " + key + " Values: "); - for (String s : httpServletRequest.getParameterValues((String) key)) { - buf.append(((s.length() > 200) ? s.substring(0, 200) + "..." : s) + " "); - } + ret.put((String) key, httpServletRequest.getParameter((String) key)); } - return buf.toString(); + return ret; } + } Modified: trunk/interfaces/src/main/webapp/WEB-INF/web.xml =================================================================== --- trunk/interfaces/src/main/webapp/WEB-INF/web.xml 2011-11-18 15:35:17 UTC (rev 3418) +++ trunk/interfaces/src/main/webapp/WEB-INF/web.xml 2011-11-21 10:54:36 UTC (rev 3419) @@ -10,7 +10,13 @@ <servlet-class>org.dllearner.server.Rest</servlet-class> </servlet> - <servlet> + <servlet-mapping> + <servlet-name>rest</servlet-name> + <url-pattern>/rest</url-pattern> + </servlet-mapping> + + + <servlet> <servlet-name>NKEGeizhals</servlet-name> <servlet-class>org.dllearner.server.NKEGeizhals</servlet-class> </servlet> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ji...@us...> - 2011-11-18 15:35:24
|
Revision: 3418 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3418&view=rev Author: jialva Date: 2011-11-18 15:35:17 +0000 (Fri, 18 Nov 2011) Log Message: ----------- Going on deleting "positive" and "negative" examples references for DL-Learner fuzzy extension. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java trunk/test/fuzzydll/fuzzytrains.conf Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java 2011-11-18 10:26:51 UTC (rev 3417) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/fuzzydll/FuzzyCELOE.java 2011-11-18 15:35:17 UTC (rev 3418) @@ -384,9 +384,11 @@ // changed by Josue } else if (learningProblem instanceof PosNegLP) { examples = Helper.union(((PosNegLP)learningProblem).getPositiveExamples(),((PosNegLP)learningProblem).getNegativeExamples()); - } else if (learningProblem instanceof FuzzyPosNegLP) { - examples = Helper.union(((FuzzyPosNegLP)learningProblem).getPositiveExamples(),((FuzzyPosNegLP)learningProblem).getNegativeExamples()); - } + } + // commented by Josue as now there's no need of + and - examples (more code need to be deleted in this sense) + // else if (learningProblem instanceof FuzzyPosNegLP) { + //examples = Helper.union(((FuzzyPosNegLP)learningProblem).getPositiveExamples(),((FuzzyPosNegLP)learningProblem).getNegativeExamples()); + // } } @Override Modified: trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java 2011-11-18 10:26:51 UTC (rev 3417) +++ trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java 2011-11-18 15:35:17 UTC (rev 3418) @@ -176,7 +176,8 @@ */ @Override public void init() { - allExamples = Helper.union(positiveExamples, negativeExamples); + // commented by Josue as now there's no need of + and - examples (more code need to be deleted in this sense) + // allExamples = Helper.union(positiveExamples, negativeExamples); } public SortedSet<Individual> getNegativeExamples() { Modified: trunk/test/fuzzydll/fuzzytrains.conf =================================================================== --- trunk/test/fuzzydll/fuzzytrains.conf 2011-11-18 10:26:51 UTC (rev 3417) +++ trunk/test/fuzzydll/fuzzytrains.conf 2011-11-18 15:35:17 UTC (rev 3418) @@ -19,7 +19,7 @@ lp.type = "fuzzyPosNeg" lp.positiveExamples = { "ex:east1", "ex:east2" } lp.negativeExamples = { "ex:west6", "ex:west7" } -lp.fuzzyEx = [("ex:west6",0.0),("ex:west7",0.0)] +lp.fuzzyEx = [("ex:east1",1.0),("ex:east2",1.0),("ex:west6",0.0),("ex:west7",0.0)] // create learning algorithm to run alg.type = "Fuzzy CELOE" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2011-11-18 10:26:58
|
Revision: 3417 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3417&view=rev Author: jenslehmann Date: 2011-11-18 10:26:51 +0000 (Fri, 18 Nov 2011) Log Message: ----------- fix which allows to use prefixes in fuzzy examples Modified Paths: -------------- trunk/interfaces/src/main/java/org/dllearner/confparser3/PostProcessor.java trunk/test/fuzzydll/fuzzytrains.conf Modified: trunk/interfaces/src/main/java/org/dllearner/confparser3/PostProcessor.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/PostProcessor.java 2011-11-18 10:02:43 UTC (rev 3416) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/PostProcessor.java 2011-11-18 10:26:51 UTC (rev 3417) @@ -89,12 +89,15 @@ if (keyObject instanceof String) { String keyString = (String) keyObject; + // replace prefixes in the key + for (String prefix : prefixes.keySet()) { + key = keyString.replaceAll(prefix + ":", prefixes.get(prefix)); + } + // if the value is a string, we also replace prefixes there if (value instanceof String) { String valueString = (String) value; for (String prefix : prefixes.keySet()) { - value = valueString.replaceAll(prefix + ":", prefixes.get(prefix)); - key = keyString.replaceAll(prefix + ":", prefixes.get(prefix)); - + value = valueString.replaceAll(prefix + ":", prefixes.get(prefix)); } } } Modified: trunk/test/fuzzydll/fuzzytrains.conf =================================================================== --- trunk/test/fuzzydll/fuzzytrains.conf 2011-11-18 10:02:43 UTC (rev 3416) +++ trunk/test/fuzzydll/fuzzytrains.conf 2011-11-18 10:26:51 UTC (rev 3417) @@ -19,7 +19,7 @@ lp.type = "fuzzyPosNeg" lp.positiveExamples = { "ex:east1", "ex:east2" } lp.negativeExamples = { "ex:west6", "ex:west7" } -lp.fuzzyEx = [("http://www.example.com/fuzzyTrains.owl#east1",1.0),("http://www.example.com/fuzzyTrains.owl#east2",1.0),("http://www.example.com/fuzzyTrains.owl#west6",0.0),("http://www.example.com/fuzzyTrains.owl#west7",0.0)] +lp.fuzzyEx = [("ex:west6",0.0),("ex:west7",0.0)] // create learning algorithm to run alg.type = "Fuzzy CELOE" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ji...@us...> - 2011-11-18 10:02:54
|
Revision: 3416 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3416&view=rev Author: jialva Date: 2011-11-18 10:02:43 +0000 (Fri, 18 Nov 2011) Log Message: ----------- DL-Learner fuzzy extension adapted to new DL-Learner configuration and working properly ;) Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java trunk/test/fuzzydll/fuzzytrains.conf Modified: trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java 2011-11-17 17:39:45 UTC (rev 3415) +++ trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java 2011-11-18 10:02:43 UTC (rev 3416) @@ -20,10 +20,12 @@ package org.dllearner.learningproblems; import java.util.Collection; +import java.util.Iterator; import java.util.LinkedList; import java.util.Map; import java.util.Set; import java.util.SortedSet; +import java.util.TreeSet; import org.dllearner.core.AbstractLearningProblem; import org.dllearner.core.AbstractReasonerComponent; @@ -61,7 +63,14 @@ } public void setFuzzyEx(Map<Individual, Double> fuzzyEx) { - this.fuzzyEx = fuzzyEx; + fuzzyExamples = new TreeSet<FuzzyIndividual>(); + + Iterator it = fuzzyEx.keySet().iterator(); + + while (it.hasNext()) { + Individual i = (Individual) it.next(); + this.fuzzyExamples.add(new FuzzyIndividual(i.getName(), fuzzyEx.get(i).doubleValue())); + } } protected boolean useRetrievalForClassification = false; Modified: trunk/test/fuzzydll/fuzzytrains.conf =================================================================== --- trunk/test/fuzzydll/fuzzytrains.conf 2011-11-17 17:39:45 UTC (rev 3415) +++ trunk/test/fuzzydll/fuzzytrains.conf 2011-11-18 10:02:43 UTC (rev 3416) @@ -19,7 +19,7 @@ lp.type = "fuzzyPosNeg" lp.positiveExamples = { "ex:east1", "ex:east2" } lp.negativeExamples = { "ex:west6", "ex:west7" } -lp.fuzzyEx = [("ex:east1",0.6)] +lp.fuzzyEx = [("http://www.example.com/fuzzyTrains.owl#east1",1.0),("http://www.example.com/fuzzyTrains.owl#east2",1.0),("http://www.example.com/fuzzyTrains.owl#west6",0.0),("http://www.example.com/fuzzyTrains.owl#west7",0.0)] // create learning algorithm to run alg.type = "Fuzzy CELOE" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2011-11-17 17:39:52
|
Revision: 3415 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3415&view=rev Author: jenslehmann Date: 2011-11-17 17:39:45 +0000 (Thu, 17 Nov 2011) Log Message: ----------- modified parser to be able to set fuzzy examples directly Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj trunk/test/fuzzydll/fuzzytrains.conf Modified: trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java 2011-11-17 17:00:28 UTC (rev 3414) +++ trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLP.java 2011-11-17 17:39:45 UTC (rev 3415) @@ -21,6 +21,7 @@ import java.util.Collection; import java.util.LinkedList; +import java.util.Map; import java.util.Set; import java.util.SortedSet; @@ -53,7 +54,16 @@ protected SortedSet<FuzzyIndividual> fuzzyExamples; + protected Map<Individual,Double> fuzzyEx; + public Map<Individual, Double> getFuzzyEx() { + return fuzzyEx; + } + + public void setFuzzyEx(Map<Individual, Double> fuzzyEx) { + this.fuzzyEx = fuzzyEx; + } + protected boolean useRetrievalForClassification = false; protected UseMultiInstanceChecks useMultiInstanceChecks = UseMultiInstanceChecks.TWOCHECKS; protected double percentPerLengthUnit = 0.05; Modified: trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java 2011-11-17 17:00:28 UTC (rev 3414) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/ConfParser.java 2011-11-17 17:39:45 UTC (rev 3415) @@ -93,6 +93,7 @@ String value="", value1="", value2="", tmp="", tmp2=""; Set<String> values = new HashSet<String>(); Map<String,String> tuples = new HashMap<String,String>(); + Map<String,Double> tuplesD = new HashMap<String,Double>(); ConfFileOption2 option = new ConfFileOption2(); boolean isBeanRef = false; @@ -102,6 +103,7 @@ String propertyValue = ""; Class<?> propertyType; Object val = null; + Double d; beanName = Id(); switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case COMMAND_END: @@ -140,11 +142,11 @@ break; default: jj_la1[2] = jj_gen; - if (jj_2_4(2147483647)) { + if (jj_2_5(2147483647)) { jj_consume_token(14); jj_consume_token(15); val = new HashSet(); propertyType = Set.class; propertyValue = "{}"; - } else if (jj_2_5(4)) { + } else if (jj_2_6(4)) { jj_consume_token(14); label_2: while (true) { @@ -187,37 +189,62 @@ break; default: jj_la1[3] = jj_gen; - if (jj_2_6(2147483647)) { + if (jj_2_7(2147483647)) { jj_consume_token(18); jj_consume_token(19); val = new LinkedList(); propertyType = List.class; propertyValue = "[]"; + } else if (jj_2_8(2147483647)) { + jj_consume_token(18); + label_4: + while (true) { + if (jj_2_3(6)) { + ; + } else { + break label_4; + } + jj_consume_token(20); + tmp = String(); + jj_consume_token(16); + tmp2 = String(); + jj_consume_token(21); + tuples.put(tmp,tmp2); propertyValue += "(\u005c""+ tmp + "\u005c",\u005c"" + tmp2 + "\u005c"), "; + jj_consume_token(16); + } + jj_consume_token(20); + tmp = String(); + jj_consume_token(16); + tmp2 = String(); + jj_consume_token(21); + tuples.put(tmp,tmp2); propertyValue += "(\u005c""+ tmp + "\u005c",\u005c"" + tmp2 + "\u005c")"; + jj_consume_token(19); + val = tuples; propertyType = List.class; propertyValue = "["+ propertyValue + "]"; } else { switch ((jj_ntk==-1)?jj_ntk():jj_ntk) { case 18: jj_consume_token(18); - label_4: + label_5: while (true) { - if (jj_2_3(6)) { + if (jj_2_4(6)) { ; } else { - break label_4; + break label_5; } jj_consume_token(20); tmp = String(); jj_consume_token(16); - tmp2 = String(); + d = Double(); jj_consume_token(21); - tuples.put(tmp,tmp2); propertyValue += "(\u005c""+ tmp + "\u005c",\u005c"" + tmp2 + "\u005c"), "; + tuplesD.put(tmp,d); propertyValue += "(\u005c""+ tmp + "\u005c",\u005c"" + d.toString() + "\u005c"), "; jj_consume_token(16); } jj_consume_token(20); tmp = String(); jj_consume_token(16); - tmp2 = String(); + d = Double(); jj_consume_token(21); - tuples.put(tmp,tmp2); propertyValue += "(\u005c""+ tmp + "\u005c",\u005c"" + tmp2 + "\u005c")"; + tuplesD.put(tmp,d); propertyValue += "(\u005c""+ tmp + "\u005c",\u005c"" + d.toString() + "\u005c")"; jj_consume_token(19); - val = tuples; propertyType = List.class; propertyValue = "["+ propertyValue + "]"; + val = tuplesD; propertyType = List.class; propertyValue = "["+ propertyValue + "]"; break; default: jj_la1[4] = jj_gen; @@ -261,7 +288,7 @@ final public String ComplexId() throws ParseException { Token t1,t2; - if (jj_2_7(2)) { + if (jj_2_9(2)) { t1 = jj_consume_token(ID); jj_consume_token(22); t2 = jj_consume_token(ID); @@ -362,68 +389,106 @@ finally { jj_save(6, xla); } } - private boolean jj_3_5() { - if (jj_scan_token(14)) return true; - Token xsp; - while (true) { - xsp = jj_scanpos; - if (jj_3_1()) { jj_scanpos = xsp; break; } - } - if (jj_3R_5()) return true; - if (jj_scan_token(15)) return true; - return false; + private boolean jj_2_8(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_8(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(7, xla); } } + private boolean jj_2_9(int xla) { + jj_la = xla; jj_lastpos = jj_scanpos = token; + try { return !jj_3_9(); } + catch(LookaheadSuccess ls) { return true; } + finally { jj_save(8, xla); } + } + private boolean jj_3_1() { - if (jj_3R_5()) return true; + if (jj_3R_6()) return true; if (jj_scan_token(16)) return true; return false; } - private boolean jj_3_6() { + private boolean jj_3_7() { if (jj_scan_token(18)) return true; if (jj_scan_token(19)) return true; return false; } - private boolean jj_3_7() { - if (jj_scan_token(ID)) return true; - if (jj_scan_token(22)) return true; - return false; - } - private boolean jj_3_3() { if (jj_scan_token(20)) return true; - if (jj_3R_5()) return true; + if (jj_3R_6()) return true; if (jj_scan_token(16)) return true; - if (jj_3R_5()) return true; + if (jj_3R_6()) return true; if (jj_scan_token(21)) return true; if (jj_scan_token(16)) return true; return false; } - private boolean jj_3R_5() { - if (jj_scan_token(STRING)) return true; + private boolean jj_3R_7() { + if (jj_scan_token(ID)) return true; return false; } private boolean jj_3_2() { - if (jj_3R_6()) return true; + if (jj_3R_7()) return true; if (jj_scan_token(16)) return true; return false; } - private boolean jj_3_4() { + private boolean jj_3_5() { if (jj_scan_token(14)) return true; if (jj_scan_token(15)) return true; return false; } - private boolean jj_3R_6() { + private boolean jj_3_9() { if (jj_scan_token(ID)) return true; + if (jj_scan_token(22)) return true; return false; } + private boolean jj_3R_8() { + if (jj_scan_token(DOUBLE)) return true; + return false; + } + + private boolean jj_3R_6() { + if (jj_scan_token(STRING)) return true; + return false; + } + + private boolean jj_3_4() { + if (jj_scan_token(20)) return true; + if (jj_3R_6()) return true; + if (jj_scan_token(16)) return true; + if (jj_3R_8()) return true; + if (jj_scan_token(21)) return true; + if (jj_scan_token(16)) return true; + return false; + } + + private boolean jj_3_8() { + if (jj_scan_token(18)) return true; + if (jj_scan_token(20)) return true; + if (jj_3R_6()) return true; + if (jj_scan_token(16)) return true; + if (jj_3R_6()) return true; + return false; + } + + private boolean jj_3_6() { + if (jj_scan_token(14)) return true; + Token xsp; + while (true) { + xsp = jj_scanpos; + if (jj_3_1()) { jj_scanpos = xsp; break; } + } + if (jj_3R_6()) return true; + if (jj_scan_token(15)) return true; + return false; + } + /** Generated Token Manager. */ public ConfParserTokenManager token_source; SimpleCharStream jj_input_stream; @@ -443,7 +508,7 @@ private static void jj_la1_init_0() { jj_la1_0 = new int[] {0x200,0x100,0x1e00,0x24000,0x40000,0x1200,0x200,}; } - final private JJCalls[] jj_2_rtns = new JJCalls[7]; + final private JJCalls[] jj_2_rtns = new JJCalls[9]; private boolean jj_rescan = false; private int jj_gc = 0; @@ -668,7 +733,7 @@ private void jj_rescan_token() { jj_rescan = true; - for (int i = 0; i < 7; i++) { + for (int i = 0; i < 9; i++) { try { JJCalls p = jj_2_rtns[i]; do { @@ -682,6 +747,8 @@ case 4: jj_3_5(); break; case 5: jj_3_6(); break; case 6: jj_3_7(); break; + case 7: jj_3_8(); break; + case 8: jj_3_9(); break; } } p = p.next; Modified: trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj =================================================================== --- trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj 2011-11-17 17:00:28 UTC (rev 3414) +++ trunk/interfaces/src/main/java/org/dllearner/confparser3/conf3.jj 2011-11-17 17:39:45 UTC (rev 3415) @@ -141,6 +141,7 @@ String value="", value1="", value2="", tmp="", tmp2=""; Set<String> values = new HashSet<String>(); Map<String,String> tuples = new HashMap<String,String>(); + Map<String,Double> tuplesD = new HashMap<String,Double>(); ConfFileOption2 option = new ConfFileOption2(); boolean isBeanRef = false; @@ -150,6 +151,7 @@ String propertyValue = ""; Class<?> propertyType; Object val = null; + Double d; } { beanName=Id() [ "." propertyName = Id() {containsSubOption=true;} ] @@ -180,15 +182,24 @@ { val = values; propertyType = Set.class; propertyValue = "{"+ propertyValue + "}"; isBeanCollection = true;} // empty list | LOOKAHEAD("[" "]") "[" "]" { val = new LinkedList(); propertyType = List.class; propertyValue = "[]";} - // a list with several elements, which tuples + // a list with several elements with tuples // e.g. [("a","b"),("c","d")] - | "[" + | LOOKAHEAD( "[" "(" String() "," String()) + "[" ( LOOKAHEAD(6) "(" tmp=String() "," tmp2=String() ")" { tuples.put(tmp,tmp2); propertyValue += "(\""+ tmp + "\",\"" + tmp2 + "\"), "; } "," )* "(" tmp=String() "," tmp2=String() ")" { tuples.put(tmp,tmp2); propertyValue += "(\""+ tmp + "\",\"" + tmp2 + "\")";} - "]" { val = tuples; propertyType = List.class; propertyValue = "["+ propertyValue + "]";} - ) + "]" { val = tuples; propertyType = List.class; propertyValue = "["+ propertyValue + "]";} + // a list with several elements with doubles + // e.g. [("a",1.0),("c",0.7)] + | "[" + ( LOOKAHEAD(6) "(" tmp=String() "," d=Double() ")" + { tuplesD.put(tmp,d); propertyValue += "(\""+ tmp + "\",\"" + d.toString() + "\"), "; } "," )* + "(" tmp=String() "," d=Double() ")" + { tuplesD.put(tmp,d); propertyValue += "(\""+ tmp + "\",\"" + d.toString() + "\")";} + "]" { val = tuplesD; propertyType = List.class; propertyValue = "["+ propertyValue + "]";} + ) // <CONF_END> { option.setBeanRef(isBeanRef); Modified: trunk/test/fuzzydll/fuzzytrains.conf =================================================================== --- trunk/test/fuzzydll/fuzzytrains.conf 2011-11-17 17:00:28 UTC (rev 3414) +++ trunk/test/fuzzydll/fuzzytrains.conf 2011-11-17 17:39:45 UTC (rev 3415) @@ -19,6 +19,7 @@ lp.type = "fuzzyPosNeg" lp.positiveExamples = { "ex:east1", "ex:east2" } lp.negativeExamples = { "ex:west6", "ex:west7" } +lp.fuzzyEx = [("ex:east1",0.6)] // create learning algorithm to run alg.type = "Fuzzy CELOE" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2011-11-17 17:00:34
|
Revision: 3414 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3414&view=rev Author: jenslehmann Date: 2011-11-17 17:00:28 +0000 (Thu, 17 Nov 2011) Log Message: ----------- bug fixes Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/qtl/QTL.java trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/qtl/QTL.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/qtl/QTL.java 2011-11-17 16:19:58 UTC (rev 3413) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/qtl/QTL.java 2011-11-17 17:00:28 UTC (rev 3414) @@ -48,6 +48,7 @@ import org.dllearner.core.AbstractLearningProblem; import org.dllearner.core.ComponentAnn; import org.dllearner.core.ComponentManager; +import org.dllearner.core.LearningProblem; import org.dllearner.core.LearningProblemUnsupportedException; import org.dllearner.core.SparqlQueryLearningAlgorithm; import org.dllearner.core.options.CommonConfigOptions; @@ -83,7 +84,7 @@ private static final Logger logger = Logger.getLogger(QTL.class); - private AbstractLearningProblem learningProblem; + private LearningProblem learningProblem; private SparqlEndpointKS endpointKS; // private QTLConfigurator configurator; @@ -361,12 +362,12 @@ System.out.println(query); } - public AbstractLearningProblem getLearningProblem() { + public LearningProblem getLearningProblem() { return learningProblem; } @Autowired - public void setLearningProblem(AbstractLearningProblem learningProblem) { + public void setLearningProblem(LearningProblem learningProblem) { this.learningProblem = learningProblem; } Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java 2011-11-17 16:19:58 UTC (rev 3413) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/learning/SPARQLTemplateBasedLearner.java 2011-11-17 17:00:28 UTC (rev 3414) @@ -46,6 +46,7 @@ import org.dllearner.algorithm.tbsl.util.Similarity; import org.dllearner.algorithm.tbsl.util.SolrQueryResultStringSimilarityComparator; import org.dllearner.core.ComponentInitException; +import org.dllearner.core.LearningProblem; import org.dllearner.core.Oracle; import org.dllearner.core.SparqlQueryLearningAlgorithm; import org.dllearner.core.owl.Description; @@ -1544,6 +1545,18 @@ } + @Override + public LearningProblem getLearningProblem() { + // TODO Auto-generated method stub + return null; + } + + @Override + public void setLearningProblem(LearningProblem learningProblem) { + // TODO Auto-generated method stub + + } + } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ji...@us...> - 2011-11-17 16:20:07
|
Revision: 3413 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3413&view=rev Author: jialva Date: 2011-11-17 16:19:58 +0000 (Thu, 17 Nov 2011) Log Message: ----------- accent deleted (it gave me problems) Modified Paths: -------------- trunk/test/fuzzydll/fuzzytrains.conf Modified: trunk/test/fuzzydll/fuzzytrains.conf =================================================================== --- trunk/test/fuzzydll/fuzzytrains.conf 2011-11-16 20:27:21 UTC (rev 3412) +++ trunk/test/fuzzydll/fuzzytrains.conf 2011-11-17 16:19:58 UTC (rev 3413) @@ -1,7 +1,7 @@ /** * Fuzzy Trains Example * - * Copyright (C) 2011, Josué Iglesias, Jens Lehmann + * Copyright (C) 2011, Josue Iglesias, Jens Lehmann */ // declare some prefixes to use as abbreviations This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-16 20:27:27
|
Revision: 3412 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3412&view=rev Author: lorenz_b Date: 2011-11-16 20:27:21 +0000 (Wed, 16 Nov 2011) Log Message: ----------- Added method to get all subclasses. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java Modified: trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java 2011-11-16 20:22:43 UTC (rev 3411) +++ trunk/components-core/src/main/java/org/dllearner/core/owl/ClassHierarchy.java 2011-11-16 20:27:21 UTC (rev 3412) @@ -19,6 +19,7 @@ package org.dllearner.core.owl; +import java.util.HashSet; import java.util.Set; import java.util.SortedSet; import java.util.TreeMap; @@ -87,6 +88,28 @@ // return (TreeSet<Description>) subsumptionHierarchyDown.get(concept).clone(); // } } + + public SortedSet<Description> getSubClasses(Description concept, boolean direct) { + SortedSet<Description> result = subsumptionHierarchyDown.get(concept); + if(result == null) { + logger.error("Query for sub class of " + concept + " in subsumption hierarchy, but the class is not contained in the (downward) hierarchy, e.g. because the class does not exist or is ignored. Returning empty result instead."); + return new TreeSet<Description>(); + } + for(Description sub : new HashSet<Description>(result)){ + result.addAll(getSubClasses(sub, false)); + } + + return new TreeSet<Description>(result); + + // commented out, because these hacks just worked around a problem +// if (subsumptionHierarchyDown == null) { +// return new TreeSet<Description>(); +// } else if (subsumptionHierarchyDown.get(concept) == null) { +// return new TreeSet<Description>(); +// } else { +// return (TreeSet<Description>) subsumptionHierarchyDown.get(concept).clone(); +// } + } /** * Computes the siblings of the specified descriptions. Siblings are all those This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2011-11-16 20:22:49
|
Revision: 3411 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3411&view=rev Author: lorenz_b Date: 2011-11-16 20:22:43 +0000 (Wed, 16 Nov 2011) Log Message: ----------- Improved algorithm to be aware of asserted subclasses. Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java Modified: trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-16 18:36:22 UTC (rev 3410) +++ trunk/components-core/src/main/java/org/dllearner/algorithms/DisjointClassesLearner.java 2011-11-16 20:22:43 UTC (rev 3411) @@ -68,6 +68,7 @@ private NamedClass classToDescribe; private List<EvaluatedDescription> currentlyBestEvaluatedDescriptions; + private SortedSet<Description> subClasses; public DisjointClassesLearner(SparqlEndpointKS ks){ this.ks = ks; @@ -94,6 +95,13 @@ Set<NamedClass> classes = new SPARQLTasks(ks.getEndpoint()).getAllClasses(); classes.remove(classToDescribe); + //get the subclasses + if(reasoner.isPrepared()){ + subClasses = reasoner.getClassHierarchy().getSubClasses(classToDescribe, false); + } else { + subClasses = reasoner.getSubClasses(classToDescribe, true); + } + //get classes and how often they occur int limit = 1000; int offset = 0; @@ -188,11 +196,10 @@ Set<NamedClass> completeDisjointclasses = new TreeSet<NamedClass>(allClasses); completeDisjointclasses.removeAll(class2Count.keySet()); - //we remove the asserted sublcasses here - if(reasoner.isPrepared()){ - completeDisjointclasses.removeAll(reasoner.getClassHierarchy().getSubClasses(classToDescribe)); - } else { - completeDisjointclasses.removeAll(reasoner.getSubClasses(classToDescribe)); + //we remove the asserted subclasses here + completeDisjointclasses.removeAll(subClasses); + for(Description subClass : subClasses){ + class2Count.remove(subClass); } @@ -220,8 +227,10 @@ public static void main(String[] args) throws Exception{ DisjointClassesLearner l = new DisjointClassesLearner(new SparqlEndpointKS(new SparqlEndpoint(new URL("http://dbpedia.aksw.org:8902/sparql"), Collections.singletonList("http://dbpedia.org"), Collections.<String>emptyList()))); - l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/ChemicalSubstance")); + l.setClassToDescribe(new NamedClass("http://dbpedia.org/ontology/Person")); l.init(); + l.getReasoner().prepareSubsumptionHierarchy(); +// System.out.println(l.getReasoner().getClassHierarchy().getSubClasses(new NamedClass("http://dbpedia.org/ontology/Athlete"), false));System.exit(0); l.start(); for(EvaluatedAxiom e : l.getCurrentlyBestEvaluatedAxioms(Integer.MAX_VALUE, 0.75)){ Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2011-11-16 18:36:22 UTC (rev 3410) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/SPARQLReasoner.java 2011-11-16 20:22:43 UTC (rev 3411) @@ -682,6 +682,10 @@ @Override public SortedSet<Description> getSubClasses(Description description) { + return getSubClasses(description, false); + } + + public SortedSet<Description> getSubClasses(Description description, boolean useVirtuoso) { if(!(description instanceof NamedClass || description instanceof Thing)){ throw new IllegalArgumentException("Only named classes are supported."); } @@ -689,11 +693,16 @@ description = new NamedClass(Thing.instance.getURI()); } SortedSet<Description> subClasses = new TreeSet<Description>(); - String query = String.format("SELECT ?sub {?sub <%s> <%s>. FILTER(isIRI(?sub))}", - RDFS.subClassOf.getURI(), - ((NamedClass)description).getURI().toString() - - ); + String query; + if(useVirtuoso){ + query = getAllSubClassesVirtuosoQuery(description); + } else { + query = String.format("SELECT ?sub {?sub <%s> <%s>. FILTER(isIRI(?sub))}", + RDFS.subClassOf.getURI(), + ((NamedClass)description).getURI().toString() + + ); + } ResultSet rs = executeSelectQuery(query); QuerySolution qs; while(rs.hasNext()){ @@ -702,6 +711,15 @@ } return subClasses; } + + private String getAllSubClassesVirtuosoQuery(Description description){ + String query = String.format( + "SELECT DISTINCT ?sub WHERE {"+ + "{SELECT ?sub ?o where {?sub rdfs:subClassOf ?o.}}"+ + "OPTION ( TRANSITIVE, t_distinct, t_in(?sub), t_out(?o), t_min (1), t_max (8), t_step ('step_no') as ?dist ) ."+ + "FILTER(?o = <%s>)}", description.toString()); + return query; + } @Override public ObjectPropertyHierarchy getObjectPropertyHierarchy() { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2011-11-16 18:36:28
|
Revision: 3410 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3410&view=rev Author: jenslehmann Date: 2011-11-16 18:36:22 +0000 (Wed, 16 Nov 2011) Log Message: ----------- some fixes for fuzzy learning Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java trunk/components-core/src/main/java/org/dllearner/core/AbstractCELA.java trunk/components-core/src/main/java/org/dllearner/core/LearningAlgorithm.java trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLPStandard.java Modified: trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2011-11-16 17:42:42 UTC (rev 3409) +++ trunk/components-core/src/main/java/org/dllearner/core/AbstractAxiomLearningAlgorithm.java 2011-11-16 18:36:22 UTC (rev 3410) @@ -42,6 +42,7 @@ import org.dllearner.utilities.owl.AxiomComparator; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; import com.hp.hpl.jena.query.QuerySolution; import com.hp.hpl.jena.query.ResultSet; @@ -53,6 +54,7 @@ */ public abstract class AbstractAxiomLearningAlgorithm extends AbstractComponent implements AxiomLearningAlgorithm{ + protected LearningProblem learningProblem; private static final Logger logger = LoggerFactory.getLogger(AbstractAxiomLearningAlgorithm.class); @ConfigOption(name="maxExecutionTimeInSeconds", defaultValue="10", description="", propertyEditorClass=IntegerEditor.class) @@ -75,6 +77,16 @@ existingAxioms = new TreeSet<Axiom>(new AxiomComparator()); } + @Override + public LearningProblem getLearningProblem() { + return learningProblem; + } + + @Autowired + @Override + public void setLearningProblem(LearningProblem learningProblem) { + this.learningProblem = learningProblem; + } ExtendedQueryEngineHTTP queryExecution; Modified: trunk/components-core/src/main/java/org/dllearner/core/AbstractCELA.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/AbstractCELA.java 2011-11-16 17:42:42 UTC (rev 3409) +++ trunk/components-core/src/main/java/org/dllearner/core/AbstractCELA.java 2011-11-16 18:36:22 UTC (rev 3410) @@ -283,13 +283,15 @@ * The learning problem variable, which must be used by * all learning algorithm implementations. */ + @Override public AbstractLearningProblem getLearningProblem() { return learningProblem; } @Autowired - public void setLearningProblem(AbstractLearningProblem learningProblem) { - this.learningProblem = learningProblem; + @Override + public void setLearningProblem(LearningProblem learningProblem) { + this.learningProblem = (AbstractLearningProblem) learningProblem; } /** Modified: trunk/components-core/src/main/java/org/dllearner/core/LearningAlgorithm.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/core/LearningAlgorithm.java 2011-11-16 17:42:42 UTC (rev 3409) +++ trunk/components-core/src/main/java/org/dllearner/core/LearningAlgorithm.java 2011-11-16 18:36:22 UTC (rev 3410) @@ -19,7 +19,9 @@ package org.dllearner.core; +import org.springframework.beans.factory.annotation.Autowired; + /** * Basic interface for all DL-Learner learning algorithms. * @@ -34,4 +36,17 @@ */ public abstract void start(); + /** + * Get underlying learning problem. + * @return Underlying learning problem. + */ + public LearningProblem getLearningProblem(); + + /** + * Set the learning problem, which the algorithm should solve. + * @param learningProblem The learning problem to solve. + */ + @Autowired + public void setLearningProblem(LearningProblem learningProblem); + } Modified: trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLPStandard.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLPStandard.java 2011-11-16 17:42:42 UTC (rev 3409) +++ trunk/components-core/src/main/java/org/dllearner/learningproblems/FuzzyPosNegLPStandard.java 2011-11-16 18:36:22 UTC (rev 3410) @@ -91,7 +91,9 @@ // approxDelta = configurator.getApproxAccuracy(); String accM = getAccuracyMethod(); - if(accM.equals("standard")) { + if(accM == null) { + heuristic = HeuristicType.FMEASURE; // use F-Measure by default + } else if(accM.equals("standard")) { heuristic = HeuristicType.AMEASURE; } else if(accM.equals("fmeasure")) { heuristic = HeuristicType.FMEASURE; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ji...@us...> - 2011-11-16 17:42:48
|
Revision: 3409 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3409&view=rev Author: jialva Date: 2011-11-16 17:42:42 +0000 (Wed, 16 Nov 2011) Log Message: ----------- Resolving absolute paths problem Modified Paths: -------------- trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java Modified: trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java =================================================================== --- trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java 2011-11-16 15:02:41 UTC (rev 3408) +++ trunk/components-core/src/main/java/org/dllearner/reasoning/fuzzydll/FuzzyDLReasonerManager.java 2011-11-16 17:42:42 UTC (rev 3409) @@ -89,9 +89,9 @@ public class FuzzyDLReasonerManager implements OWLReasoner { - // private static final String CHANGING_JUST_HIERARCHI_PROBLEM = "../examples/fuzzydll/fuzzyOWL2fuzzyDLparserOutput_manual.fuzzyDL.txt"; - private static final String FUZZYOWL2FUZZYDLPARSEROUTPUT = "../examples/fuzzydll/fuzzyOWL2fuzzyDLparserOutput.fuzzyDL.txt"; - private static String CONFIG_FILENAME = "../examples/fuzzydll/CONFIG"; + // private static final String CHANGING_JUST_HIERARCHI_PROBLEM = "../test/fuzzydll/fuzzyOWL2fuzzyDLparserOutput_manual.fuzzyDL.txt"; + private static final String FUZZYOWL2FUZZYDLPARSEROUTPUT = "../test/fuzzydll/fuzzyOWL2fuzzyDLparserOutput.fuzzyDL.txt"; + private static String CONFIG_FILENAME = "../test/fuzzydll/CONFIG"; private Solution queryResult; private KnowledgeBase fuzzyKB; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <chr...@us...> - 2011-11-16 15:02:47
|
Revision: 3408 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=3408&view=rev Author: christinaunger Date: 2011-11-16 15:02:41 +0000 (Wed, 16 Nov 2011) Log Message: ----------- changed TemplateSerializationTest to Hashtable<Template,String>-serialization Modified Paths: -------------- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/TemplateSerializationTest.java Modified: trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java =================================================================== --- trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java 2011-11-16 12:55:46 UTC (rev 3407) +++ trunk/components-ext/src/main/java/org/dllearner/algorithm/tbsl/templator/Templator.java 2011-11-16 15:02:41 UTC (rev 3408) @@ -10,6 +10,7 @@ import net.didion.jwnl.data.POS; import org.apache.log4j.Logger; + import org.dllearner.algorithm.tbsl.converter.DRS2SPARQL_Converter; import org.dllearner.algorithm.tbsl.converter.DUDE2UDRS_Converter; import org.dllearner.algorithm.tbsl.ltag.parser.LTAGLexicon; Modified: trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex =================================================================== --- trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex 2011-11-16 12:55:46 UTC (rev 3407) +++ trunk/components-ext/src/main/resources/tbsl/lexicon/english.lex 2011-11-16 15:02:41 UTC (rev 3408) @@ -121,7 +121,8 @@ when || (S WH:'when' S[s]) || <x, l1, t, [ l1:[ ?x | SLOT_p(y,x) ] ], [(l2,y,s,t)], [l2=l1], [ SLOT_p/PROPERTY/date ]> when || (DP WH:'when') || <y, l1, <<e,t>,t>, [ l1:[ ?x | SLOT_p(y,x) ] ], [], [], [ SLOT_p/PROPERTY/date ]> where || (S WH:'where' S[s]) || <x, l1, t, [ l1:[ ?x | SLOT_p(y,x) ] ], [(l2,y,s,t)], [l2=l1], [ SLOT_p/PROPERTY/place ]> - where || (DP WH:'where') || <y, l1, <<e,t>,t>, [ l1:[ ?x | SLOT_p(y,x) ] ], [], [], [ SLOT_p/PROPERTY/date ]> + where || (DP WH:'where') || <y, l1, <<e,t>,t>, [ l1:[ ?x | SLOT_p(y,x) ] ], [], [], [ SLOT_p/PROPERTY/place ]> + where in || (DP WH:'where' (PP P:'in' DP[dp])) || <y, l1, <<e,t>,t>, [ l1:[ ?x | SLOT_p(y,x), SLOT_in(x,z) ] ], [(l2,z,dp,<<e,t>,t>)], [l2=l1], [ SLOT_p/PROPERTY/place ]> // NEGATION Modified: trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/TemplateSerializationTest.java =================================================================== --- trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/TemplateSerializationTest.java 2011-11-16 12:55:46 UTC (rev 3407) +++ trunk/components-ext/src/test/java/org/dllearner/algorithm/tbsl/TemplateSerializationTest.java 2011-11-16 15:02:41 UTC (rev 3408) @@ -5,6 +5,7 @@ import java.io.FileOutputStream; import java.io.ObjectInputStream; import java.io.ObjectOutputStream; +import java.util.Hashtable; import java.util.Set; import org.dllearner.algorithm.tbsl.sparql.Template; @@ -16,24 +17,34 @@ * @param args */ public static void main(String[] args) throws Exception{ + Templator templateGenerator = new Templator(); templateGenerator.setUNTAGGED_INPUT(true); + Hashtable<Template,String> testcorpus = new Hashtable<Template,String>(); + //generate templates - Set<Template> templates = templateGenerator.buildTemplates("Give me all soccer clubs in Premier League."); + String q = "Give me all soccer clubs in Premier League."; + Set<Template> templates = templateGenerator.buildTemplates(q); for(Template t : templates){ System.out.println(t); + testcorpus.put(t,q); } //serialize ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("templates.out"))); - oos.writeObject(templates); +// oos.writeObject(templates); + oos.writeObject(testcorpus); //deserialize ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("templates.out"))); - templates = (Set<Template>) ois.readObject(); +// templates = (Set<Template>) ois.readObject(); + testcorpus = (Hashtable<Template,String>) ois.readObject(); - for(Template t : templates){ +// for(Template t : templates){ +// System.out.println(t); +// } + for (Template t : testcorpus.keySet()) { System.out.println(t); } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |