|
From: <jen...@us...> - 2009-12-31 11:06:43
|
Revision: 1975
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1975&view=rev
Author: jenslehmann
Date: 2009-12-31 11:06:37 +0000 (Thu, 31 Dec 2009)
Log Message:
-----------
removed superfluous cast
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/Info.java
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
Modified: trunk/src/dl-learner/org/dllearner/Info.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/Info.java 2009-12-31 10:55:24 UTC (rev 1974)
+++ trunk/src/dl-learner/org/dllearner/Info.java 2009-12-31 11:06:37 UTC (rev 1975)
@@ -1,8 +1,8 @@
- // File is updated automatically when a new version is created
- package org.dllearner;
+// File is updated automatically when a new version is created
+package org.dllearner;
- public class Info {
- public static final String build = "2009-12-14";
- }
-
\ No newline at end of file
+public class Info {
+ public static final String build = "2009-12-31";
+}
+
\ No newline at end of file
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2009-12-31 10:55:24 UTC (rev 1974)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2009-12-31 11:06:37 UTC (rev 1975)
@@ -1120,7 +1120,8 @@
Set<DatatypeProperty> mostGeneralBDPs = rs.getBooleanDatatypeProperties();
Set<DatatypeProperty> applicableBDPs = new TreeSet<DatatypeProperty>();
for(DatatypeProperty role : mostGeneralBDPs) {
- Description d = (NamedClass) rs.getDomain(role);
+// Description d = (NamedClass) rs.getDomain(role);
+ Description d = rs.getDomain(role);
if(!isDisjoint(domain,d))
applicableBDPs.add(role);
}
@@ -1130,7 +1131,8 @@
Set<DatatypeProperty> mostGeneralDDPs = rs.getDoubleDatatypeProperties();
Set<DatatypeProperty> applicableDDPs = new TreeSet<DatatypeProperty>();
for(DatatypeProperty role : mostGeneralDDPs) {
- Description d = (NamedClass) rs.getDomain(role);
+// Description d = (NamedClass) rs.getDomain(role);
+ Description d = rs.getDomain(role);
// System.out.println("domain: " + d);
if(!isDisjoint(domain,d))
applicableDDPs.add(role);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-01 15:20:26
|
Revision: 1986
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1986&view=rev
Author: kurzum
Date: 2010-02-01 15:20:19 +0000 (Mon, 01 Feb 2010)
Log Message:
-----------
- option dissolveBlanknodes works now
- couldn't fix blanknode issue, some weird result set is returned, caught the error and logged a warning
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java
trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java
trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java
trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java
trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java
trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java
trunk/src/dl-learner/org/dllearner/scripts/NewSample.java
trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java
trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java
Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/BlankNodeCollector.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -11,6 +11,7 @@
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSetRewindable;
+import com.hp.hpl.jena.rdf.model.RDFNode;
public class BlankNodeCollector {
@@ -41,6 +42,11 @@
}
+ /**
+ * @param rsw
+ * @param depth
+ * @return true if there are more blanknodes
+ */
public static boolean testResultSet(ResultSetRewindable rsw, int depth){
List<String> vars = new ArrayList<String>();
vars.add("o0");
@@ -63,9 +69,25 @@
rsw.reset();
return true;
}
+
+ //true to stop expansion
private static boolean testOneQuerySolution(List<String> vars, QuerySolution q){
+
+// System.out.println(q);
+// System.out.println(vars);
+// for (String v : vars) {
+// RDFNode n = q.get(v);
+// if(n==null){
+// System.out.println("returning true");
+// return true;
+// }
+//
+// }
+
for (String v : vars) {
- if(!q.get(v).isAnon()){
+ RDFNode n = q.get(v);
+ if(!n.isAnon()){
+// System.out.println(n);
return true;
}
}
Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/SparqlTupleAquisitor.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -30,6 +30,7 @@
import org.dllearner.kb.sparql.SparqlQueryMaker;
import org.dllearner.utilities.JamonMonitorLogger;
import org.dllearner.utilities.datastructures.RDFNodeTuple;
+import org.dllearner.utilities.owl.OWLVocabulary;
import com.hp.hpl.jena.query.QuerySolution;
import com.hp.hpl.jena.query.ResultSetRewindable;
@@ -108,6 +109,9 @@
// main function for resolving blanknodes
@Override
protected void disambiguateBlankNodes(String uri, SortedSet<RDFNodeTuple> resultSet){
+ if(!isDissolveBlankNodes()){
+ return;
+ }
Monitor bnodeMonitor = JamonMonitorLogger.getTimeMonitor(SparqlTupleAquisitor.class, "blanknode time").start();
try{
for (RDFNodeTuple tuple : resultSet) {
@@ -133,19 +137,26 @@
// extends a sparql query as long as there are undissolved blanknodes
private void dissolveBlankNodes(int currentId, String uri, RDFNodeTuple tuple){
- int currentDepth = 1;
- int lastDepth = 1;
- ResultSetRewindable rsw=null;
- do{
- String q = BlankNodeCollector.makeQuery(uri, tuple.a.toString(), currentDepth);
- //System.out.println(q);
-
- rsw = sparqlTasks.queryAsResultSet(q);
- lastDepth = currentDepth;
- }while (!BlankNodeCollector.testResultSet(rsw, currentDepth++));
-
- assignIds( currentId, rsw, lastDepth);
-
+ try{
+ int currentDepth = 1;
+ int lastDepth = 1;
+ ResultSetRewindable rsw=null;
+ do{
+ String p = tuple.a.toString();
+ if(p.equals(OWLVocabulary.RDFS_COMMENT) || p.equals(OWLVocabulary.RDFS_LABEL) ){
+ return ;
+ }
+ String q = BlankNodeCollector.makeQuery(uri, p, currentDepth);
+// System.out.println(q);
+ rsw = sparqlTasks.queryAsResultSet(q);
+ rsw.reset();
+ lastDepth = currentDepth;
+ }while (!BlankNodeCollector.testResultSet(rsw, currentDepth++));
+
+ assignIds( currentId, rsw, lastDepth);
+ }catch (Exception e) {
+ logger.info("An error occurred while dissolving blanknodes");
+ }
}
//takes the resultset and assigns internal ids
Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -45,7 +45,7 @@
protected int mode = 0;
protected boolean uriDebugCheck = true;
- protected boolean dissolveBlankNodes = true;
+ protected boolean dissolveBlankNodes = false;
public final SortedSet<RDFNodeTuple> getTupelForResource(String uri){
checkURIforValidity(uri);
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -47,13 +47,15 @@
private boolean closeAfterRecursion = true;
private boolean getPropertyInformation = false;
+
+ private boolean dissolveBlankNodes = false;
private int breakSuperClassesAfter = 200;
public Configuration(TupleAquisitor tupelAquisitor,
Manipulator manipulator, int recursiondepth,
boolean getAllSuperClasses, boolean closeAfterRecursion,
- boolean getPropertyInformation, int breakSuperClassesAfter) {
+ boolean getPropertyInformation, int breakSuperClassesAfter, boolean dissolveBlankNodes) {
this.tupelAquisitor = tupelAquisitor;
this.manipulator = manipulator;
@@ -62,6 +64,7 @@
this.closeAfterRecursion = closeAfterRecursion;
this.getPropertyInformation = getPropertyInformation;
this.breakSuperClassesAfter = breakSuperClassesAfter;
+ this.dissolveBlankNodes = dissolveBlankNodes;
this.owlAPIOntologyCollector = new OWLAPIOntologyCollector();
@@ -70,10 +73,10 @@
public Configuration(TupleAquisitor tupelAquisitor,
Manipulator manipulator, int recursiondepth,
boolean getAllSuperClasses, boolean closeAfterRecursion,
- boolean getPropertyInformation, int breakSuperClassesAfter,
+ boolean getPropertyInformation, int breakSuperClassesAfter, boolean dissolveBlankNodes,
OWLAPIOntologyCollector owlAPIOntologyCollector) {
this(tupelAquisitor, manipulator, recursiondepth, getAllSuperClasses,
- closeAfterRecursion, getAllSuperClasses, breakSuperClassesAfter);
+ closeAfterRecursion, getAllSuperClasses, breakSuperClassesAfter,dissolveBlankNodes);
this.owlAPIOntologyCollector = owlAPIOntologyCollector;
}
@@ -113,4 +116,8 @@
return owlAPIOntologyCollector;
}
+ public boolean isDissolveBlankNodes() {
+ return dissolveBlankNodes;
+ }
+
}
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -70,6 +70,7 @@
*
*/
public Node expandNode(String uri, TupleAquisitor tupleAquisitor) {
+ tupleAquisitor.setDissolveBlankNodes(configuration.isDissolveBlankNodes());
SimpleClock sc = new SimpleClock();
if(tupleAquisitor instanceof SparqlTupleAquisitorImproved){
@@ -146,7 +147,9 @@
}
Monitor m = JamonMonitorLogger.getTimeMonitor(ExtractionAlgorithm.class, "TimeBlankNode").start();
- expandBlankNodes(getBlankNodes(collectNodes),tupleAquisitor);
+ if( configuration.isDissolveBlankNodes()){
+ expandBlankNodes(getBlankNodes(collectNodes),tupleAquisitor);
+ }
m.stop();
Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -61,7 +61,6 @@
import org.dllearner.utilities.JamonMonitorLogger;
import org.dllearner.utilities.datastructures.StringTuple;
import org.dllearner.utilities.statistics.SimpleClock;
-import org.mindswap.pellet.utils.progress.SilentProgressMonitor;
import org.semanticweb.owl.model.OWLOntology;
import com.jamonapi.Monitor;
@@ -81,10 +80,7 @@
private static final boolean debug = false;
//private static final boolean threaded = debug && true ;
-
- // tupleaquisitor
- //private static final boolean debugUseImprovedTupleAquisitor = debug && false; // switches
// sysex
private static final boolean debugExitAfterExtraction = debug && false; // switches
@@ -259,7 +255,8 @@
.getGetAllSuperClasses(), configurator
.getCloseAfterRecursion(), configurator
.getGetPropertyInformation(), configurator
- .getBreakSuperClassRetrievalAfter());
+ .getBreakSuperClassRetrievalAfter(),
+ configurator.getDissolveBlankNodes());
// give everything to the manager
m.useConfiguration(configuration);
Modified: trunk/src/dl-learner/org/dllearner/scripts/NewSample.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/NewSample.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/scripts/NewSample.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -149,7 +149,7 @@
// all components need to be initialised before they can be used
ks.init();
- f.init();
+ f.init();
lp.init();
la.init();
Modified: trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/test/SparqlExtractionTest.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -78,6 +78,7 @@
boolean getAllSuperClasses = true;
boolean closeAfterRecursion = true;
boolean getPropertyInformation = false;
+ boolean dissolveBlankNodes = false;
int breakSuperClassesAfter = 1000;
String ontologyURI = "http://www.fragment.org/fragment";
@@ -93,6 +94,7 @@
closeAfterRecursion,
getPropertyInformation,
breakSuperClassesAfter,
+ dissolveBlankNodes,
collector
);
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java 2010-01-25 21:21:08 UTC (rev 1985)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java 2010-02-01 15:20:19 UTC (rev 1986)
@@ -27,8 +27,11 @@
import org.dllearner.kb.sparql.SPARQLTasks;
import org.dllearner.kb.sparql.SparqlEndpoint;
import org.dllearner.kb.sparql.SparqlKnowledgeSource;
+import org.dllearner.kb.sparql.SparqlQuery;
import org.dllearner.utilities.datastructures.SetManipulation;
+import com.hp.hpl.jena.query.ResultSetRewindable;
+
/**
* Test class for SPARQL mode.
*
@@ -61,6 +64,7 @@
.knowledgeSource(SparqlKnowledgeSource.class);
ks.getConfigurator().setUrl(endPoint.getURL());
ks.getConfigurator().setInstances(posExamples);
+ ks.getConfigurator().setDissolveBlankNodes(false);
ks.init();
// ReasonerComponent reasoner = cm.reasoner(FastInstanceChecker.class,
// ks);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-02 09:16:55
|
Revision: 1988
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1988&view=rev
Author: jenslehmann
Date: 2010-02-02 09:16:38 +0000 (Tue, 02 Feb 2010)
Log Message:
-----------
preliminary/untested support for hasValue with datatypes (currently strings only)
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/BaseReasoner.java
trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java
trunk/src/dl-learner/org/dllearner/core/owl/Datatype.java
trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
Modified: trunk/src/dl-learner/org/dllearner/core/BaseReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/BaseReasoner.java 2010-02-01 16:58:22 UTC (rev 1987)
+++ trunk/src/dl-learner/org/dllearner/core/BaseReasoner.java 2010-02-02 09:16:38 UTC (rev 1988)
@@ -102,6 +102,15 @@
public SortedSet<DatatypeProperty> getIntDatatypeProperties();
/**
+ * Gets all data properties with range xsd:string.
+ * TODO We could extend this to all types, which can be parsed into
+ * strings and even include the properties without any specified datatype.
+ * @see org.dllearner.core.owl.Datatype#String
+ * @return String data properties in KB.
+ */
+ public SortedSet<DatatypeProperty> getStringDatatypeProperties();
+
+ /**
* Gets all individuals in the knowledge base, e.g. Eric, London, Car829.
* @return All individuals in KB.
*/
Modified: trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java 2010-02-01 16:58:22 UTC (rev 1987)
+++ trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java 2010-02-02 09:16:38 UTC (rev 1988)
@@ -771,6 +771,21 @@
}
@Override
+ public final SortedSet<DatatypeProperty> getStringDatatypeProperties() {
+ try {
+ return getStringDatatypePropertiesImpl();
+ } catch (ReasoningMethodUnsupportedException e) {
+ handleExceptions(e);
+ return null;
+ }
+ }
+
+ protected SortedSet<DatatypeProperty> getStringDatatypePropertiesImpl()
+ throws ReasoningMethodUnsupportedException {
+ throw new ReasoningMethodUnsupportedException();
+ }
+
+ @Override
public final Description getDomain(ObjectProperty objectProperty) {
try {
return getDomainImpl(objectProperty);
Modified: trunk/src/dl-learner/org/dllearner/core/owl/Datatype.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/Datatype.java 2010-02-01 16:58:22 UTC (rev 1987)
+++ trunk/src/dl-learner/org/dllearner/core/owl/Datatype.java 2010-02-02 09:16:38 UTC (rev 1988)
@@ -30,7 +30,8 @@
DOUBLE ("http://www.w3.org/2001/XMLSchema#double"),
INT ("http://www.w3.org/2001/XMLSchema#int"),
- BOOLEAN ("http://www.w3.org/2001/XMLSchema#boolean");
+ BOOLEAN ("http://www.w3.org/2001/XMLSchema#boolean"),
+ STRING ("http://www.w3.org/2001/XMLSchema#string");
private URI uri;
@@ -51,6 +52,10 @@
return 1;
}
+ public void accept(KBElementVisitor visitor) {
+ visitor.visit(this);
+ }
+
public String toString(String baseURI, Map<String, String> prefixes) {
return uri.toString();
}
@@ -59,16 +64,11 @@
return uri.toString();
}
- public void accept(KBElementVisitor visitor) {
- visitor.visit(this);
- }
-
/* (non-Javadoc)
* @see org.dllearner.core.owl.KBElement#toManchesterSyntaxString(java.lang.String, java.util.Map)
*/
@Override
public String toManchesterSyntaxString(String baseURI, Map<String, String> prefixes) {
- // TODO Auto-generated method stub
- return null;
+ return uri.toString();
}
}
Added: trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-02 09:16:38 UTC (rev 1988)
@@ -0,0 +1,42 @@
+/**
+ * Copyright (C) 2007-2010, Jens Lehmann
+ *
+ * This file is part of DL-Learner.
+ *
+ * DL-Learner is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * DL-Learner is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.dllearner.core.owl;
+
+/**
+ *
+ * String value restriction, e.g. \exists description hasValue "interesting item".
+ *
+ * @author Jens Lehmann
+ *
+ */
+public class StringValueRestriction extends DatatypeValueRestriction {
+
+ public StringValueRestriction(DatatypeProperty restrictedPropertyExpression, String value) {
+ super(restrictedPropertyExpression, new TypedConstant(value.toString(), Datatype.STRING));
+ }
+
+ private static final long serialVersionUID = 5651982376457935975L;
+
+ @Override
+ public int getLength() {
+ return 3;
+ }
+
+}
Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-01 16:58:22 UTC (rev 1987)
+++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-02 09:16:38 UTC (rev 1988)
@@ -145,6 +145,7 @@
SortedSet<DatatypeProperty> booleanDatatypeProperties = new TreeSet<DatatypeProperty>();
SortedSet<DatatypeProperty> doubleDatatypeProperties = new TreeSet<DatatypeProperty>();
SortedSet<DatatypeProperty> intDatatypeProperties = new TreeSet<DatatypeProperty>();
+ SortedSet<DatatypeProperty> stringDatatypeProperties = new TreeSet<DatatypeProperty>();
SortedSet<Individual> individuals = new TreeSet<Individual>();
// namespaces
@@ -192,6 +193,7 @@
booleanDatatypeProperties = new TreeSet<DatatypeProperty>();
doubleDatatypeProperties = new TreeSet<DatatypeProperty>();
intDatatypeProperties = new TreeSet<DatatypeProperty>();
+ stringDatatypeProperties = new TreeSet<DatatypeProperty>();
individuals = new TreeSet<Individual>();
// create OWL API ontology manager
@@ -377,7 +379,9 @@
else if(uri.equals(Datatype.DOUBLE.getURI()))
doubleDatatypeProperties.add(dtp);
else if(uri.equals(Datatype.INT.getURI()))
- intDatatypeProperties.add(dtp);
+ intDatatypeProperties.add(dtp);
+ else if(uri.equals(Datatype.STRING.getURI()))
+ intDatatypeProperties.add(dtp);
}
}
datatypeProperties.add(dtp);
@@ -976,6 +980,14 @@
public SortedSet<DatatypeProperty> getIntDatatypePropertiesImpl() {
return intDatatypeProperties;
}
+
+ /**
+ * @return the intDatatypeProperties
+ */
+ @Override
+ public SortedSet<DatatypeProperty> getStringDatatypePropertiesImpl() {
+ return stringDatatypeProperties;
+ }
/* (non-Javadoc)
* @see org.dllearner.core.Reasoner#getBaseURI()
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-01 16:58:22 UTC (rev 1987)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-02 09:16:38 UTC (rev 1988)
@@ -40,6 +40,7 @@
import org.dllearner.core.options.CommonConfigOptions;
import org.dllearner.core.owl.BooleanValueRestriction;
import org.dllearner.core.owl.ClassHierarchy;
+import org.dllearner.core.owl.Constant;
import org.dllearner.core.owl.DataRange;
import org.dllearner.core.owl.DatatypeProperty;
import org.dllearner.core.owl.DatatypeSomeRestriction;
@@ -60,6 +61,7 @@
import org.dllearner.core.owl.ObjectQuantorRestriction;
import org.dllearner.core.owl.ObjectSomeRestriction;
import org.dllearner.core.owl.ObjectValueRestriction;
+import org.dllearner.core.owl.StringValueRestriction;
import org.dllearner.core.owl.Thing;
import org.dllearner.core.owl.Union;
import org.dllearner.utilities.Helper;
@@ -158,6 +160,10 @@
private Map<ObjectProperty, Map<Individual, Integer>> valueFrequency = new HashMap<ObjectProperty, Map<Individual, Integer>>();
// data structure with identified frequent values
private Map<ObjectProperty, Set<Individual>> frequentValues = new HashMap<ObjectProperty, Set<Individual>>();
+ // frequent data values
+ private Map<DatatypeProperty, Set<Constant>> frequentDataValues = new HashMap<DatatypeProperty, Set<Constant>>();
+ private Map<DatatypeProperty, Map<Constant, Integer>> dataValueFrequency = new HashMap<DatatypeProperty, Map<Constant, Integer>>();
+ private boolean useDataHasValueConstructor = false;
// staistics
public long mComputationTimeNs = 0;
@@ -263,13 +269,12 @@
}
}
- // keep only frequent patterns (TODO it would be slightly
- // more efficient if we stop adding to valueFrequency
- // after threshold is reached)
+ // keep only frequent patterns
Set<Individual> frequentInds = new TreeSet<Individual>();
for(Individual i : opMap.keySet()) {
if(opMap.get(i) >= frequencyThreshold) {
frequentInds.add(i);
+ break;
}
}
frequentValues.put(op, frequentInds);
@@ -278,14 +283,45 @@
}
+ for(DatatypeProperty dp : rs.getDatatypeProperties()) {
+ dpDomains.put(dp, rs.getDomain(dp));
+
+ if(useDataHasValueConstructor) {
+ Map<Constant, Integer> dpMap = new TreeMap<Constant, Integer>();
+ dataValueFrequency.put(dp, dpMap);
+
+ // sets ordered by corresponding individual (which we ignore)
+ Collection<SortedSet<Constant>> fillerSets = rs.getDatatypeMembers(dp).values();
+ for(SortedSet<Constant> fillerSet : fillerSets) {
+ for(Constant i : fillerSet) {
+// System.out.println("op " + op + " i " + i);
+ Integer value = dpMap.get(i);
+
+ if(value != null) {
+ dpMap.put(i, value+1);
+ } else {
+ dpMap.put(i, 1);
+ }
+ }
+ }
+
+ // keep only frequent patterns
+ Set<Constant> frequentInds = new TreeSet<Constant>();
+ for(Constant i : dpMap.keySet()) {
+ if(dpMap.get(i) >= frequencyThreshold) {
+ frequentInds.add(i);
+ break;
+ }
+ }
+ frequentDataValues.put(dp, frequentInds);
+ }
+ }
+
// we do not need the temporary set anymore and let the
// garbage collector take care of it
valueFrequency = null;
+ dataValueFrequency = null;
- for(DatatypeProperty dp : rs.getDatatypeProperties()) {
- dpDomains.put(dp, rs.getDomain(dp));
- }
-
// compute splits for double datatype properties
for(DatatypeProperty dp : rs.getDoubleDatatypeProperties()) {
computeSplits(dp);
@@ -930,6 +966,17 @@
}
}
+ if(useDataHasValueConstructor) {
+ Set<DatatypeProperty> stringDPs = rs.getStringDatatypeProperties();
+ for(DatatypeProperty dp : stringDPs) {
+ // loop over frequent values
+ Set<Constant> freqValues = frequentDataValues.get(dp);
+ for(Constant c : freqValues) {
+ m3.add(new StringValueRestriction(dp, c.getLiteral()));
+ }
+ }
+ }
+
m.put(3,m3);
SortedSet<Description> m4 = new TreeSet<Description>(conceptComparator);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-02 09:37:13
|
Revision: 1989
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1989&view=rev
Author: jenslehmann
Date: 2010-02-02 09:36:55 +0000 (Tue, 02 Feb 2010)
Log Message:
-----------
hasValue support for datatypes, which are amongst the most general data properties
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
Modified: trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-02 09:16:38 UTC (rev 1988)
+++ trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-02 09:36:55 UTC (rev 1989)
@@ -28,8 +28,12 @@
*/
public class StringValueRestriction extends DatatypeValueRestriction {
+ private String stringValue;
+
public StringValueRestriction(DatatypeProperty restrictedPropertyExpression, String value) {
+ // TODO: we pass it as typed property, although it could be untyped
super(restrictedPropertyExpression, new TypedConstant(value.toString(), Datatype.STRING));
+ stringValue = value.toString();
}
private static final long serialVersionUID = 5651982376457935975L;
@@ -39,4 +43,8 @@
return 3;
}
+ public String getStringValue() {
+ return stringValue;
+ }
+
}
Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-02 09:16:38 UTC (rev 1988)
+++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-02 09:36:55 UTC (rev 1989)
@@ -381,8 +381,10 @@
else if(uri.equals(Datatype.INT.getURI()))
intDatatypeProperties.add(dtp);
else if(uri.equals(Datatype.STRING.getURI()))
- intDatatypeProperties.add(dtp);
+ stringDatatypeProperties.add(dtp);
}
+ } else {
+ stringDatatypeProperties.add(dtp);
}
datatypeProperties.add(dtp);
}
@@ -390,8 +392,6 @@
individuals.add(new Individual(owlIndividual.getURI().toString()));
}
-
-
}
/* (non-Javadoc)
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-02 09:16:38 UTC (rev 1988)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-02 09:36:55 UTC (rev 1989)
@@ -147,6 +147,7 @@
private Map<NamedClass,Set<ObjectProperty>> mgr = new TreeMap<NamedClass,Set<ObjectProperty>>();
private Map<NamedClass,Set<DatatypeProperty>> mgbd = new TreeMap<NamedClass,Set<DatatypeProperty>>();
private Map<NamedClass,Set<DatatypeProperty>> mgdd = new TreeMap<NamedClass,Set<DatatypeProperty>>();
+ private Map<NamedClass,Set<DatatypeProperty>> mgsd = new TreeMap<NamedClass,Set<DatatypeProperty>>();
// concept comparator
private ConceptComparator conceptComparator = new ConceptComparator();
@@ -643,6 +644,13 @@
refinements.add(newDSR);
}
}
+ } else if (description instanceof StringValueRestriction) {
+ StringValueRestriction svr = (StringValueRestriction) description;
+ DatatypeProperty dp = svr.getRestrictedPropertyExpresssion();
+ Set<DatatypeProperty> subDPs = rs.getSubProperties(dp);
+ for(DatatypeProperty subDP : subDPs) {
+ refinements.add(new StringValueRestriction(subDP, svr.getStringValue()));
+ }
}
// if a refinement is not Bottom, Top, ALL r.Bottom a refinement of top can be appended
@@ -1083,6 +1091,17 @@
}
}
+ if(useDataHasValueConstructor) {
+ Set<DatatypeProperty> stringDPs = mgsd.get(nc);
+ for(DatatypeProperty dp : stringDPs) {
+ // loop over frequent values
+ Set<Constant> freqValues = frequentDataValues.get(dp);
+ for(Constant c : freqValues) {
+ m3.add(new StringValueRestriction(dp, c.getLiteral()));
+ }
+ }
+ }
+
mA.get(nc).put(3,m3);
SortedSet<Description> m4 = new TreeSet<Description>(conceptComparator);
@@ -1106,10 +1125,11 @@
if(appOP.get(domain) == null)
computeApp(domain);
- // initialise mgr, mgbd, mgdd
+ // initialise mgr, mgbd, mgdd, mgsd
mgr.put(domain, new TreeSet<ObjectProperty>());
mgbd.put(domain, new TreeSet<DatatypeProperty>());
mgdd.put(domain, new TreeSet<DatatypeProperty>());
+ mgsd.put(domain, new TreeSet<DatatypeProperty>());
SortedSet<ObjectProperty> mostGeneral = rs.getMostGeneralProperties();
computeMgrRecursive(domain, mostGeneral, mgr.get(domain));
@@ -1118,8 +1138,10 @@
// datatype properties have the same type (e.g. boolean, integer, double)
Set<DatatypeProperty> mostGeneralBDP = Helper.intersection(mostGeneralDP, rs.getBooleanDatatypeProperties());
Set<DatatypeProperty> mostGeneralDDP = Helper.intersection(mostGeneralDP, rs.getDoubleDatatypeProperties());
+ Set<DatatypeProperty> mostGeneralSDP = Helper.intersection(mostGeneralDP, rs.getStringDatatypeProperties());
computeMgbdRecursive(domain, mostGeneralBDP, mgbd.get(domain));
computeMgddRecursive(domain, mostGeneralDDP, mgdd.get(domain));
+ computeMgsdRecursive(domain, mostGeneralSDP, mgsd.get(domain));
}
private void computeMgrRecursive(NamedClass domain, Set<ObjectProperty> currProperties, Set<ObjectProperty> mgrTmp) {
@@ -1149,6 +1171,15 @@
}
}
+ private void computeMgsdRecursive(NamedClass domain, Set<DatatypeProperty> currProperties, Set<DatatypeProperty> mgsdTmp) {
+ for(DatatypeProperty prop : currProperties) {
+ if(appDD.get(domain).contains(prop))
+ mgsdTmp.add(prop);
+ else
+ computeMgsdRecursive(domain, rs.getSubProperties(prop), mgsdTmp);
+ }
+ }
+
// computes the set of applicable properties for a given class
private void computeApp(NamedClass domain) {
// object properties
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <lor...@us...> - 2010-02-05 08:35:10
|
Revision: 1991
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1991&view=rev
Author: lorenz_b
Date: 2010-02-05 08:35:01 +0000 (Fri, 05 Feb 2010)
Log Message:
-----------
Fixed some bugs.
Added some help messages.
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationComputingScript.java
trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationGUI.java
trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java
trunk/src/dl-learner/org/dllearner/scripts/evaluation/ontologies.txt
trunk/src/dl-learner/org/dllearner/tools/ore/OREApplication.java
trunk/src/dl-learner/org/dllearner/tools/ore/explanation/Explanation.java
trunk/src/dl-learner/org/dllearner/tools/ore/explanation/PelletExplanationGenerator.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExtractFromSparqlDialog.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/SparqlExtractOptionsPanel.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/Wizard.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardModel.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java
trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java
trunk/src/dl-learner/org/dllearner/utilities/statistics/FleissKappa.java
Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationComputingScript.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationComputingScript.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationComputingScript.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -625,12 +625,8 @@
System.out.println("You need to give an OWL file as argument.");
System.exit(0);
}
- URL fileURL = null;
- if(args[0].startsWith("http")){
- fileURL = new URL(args[0]);
- } else {
- fileURL = new File(new URL(args[0]).toURI()).toURI().toURL();
- }
+ URL fileURL = new URL(args[0]);
+
long startTime = System.currentTimeMillis();
new EvaluationComputingScript(fileURL);
System.out.println("Overall computing time: " + (System.currentTimeMillis() - startTime)/1000 +" s");
Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationGUI.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationGUI.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/EvaluationGUI.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -795,7 +795,7 @@
* @throws ClassNotFoundException
* @throws URISyntaxException
*/
- public static void main(String[] args) throws ComponentInitException, MalformedURLException,
+ public static void main(String[] args) throws ComponentInitException,
LearningProblemUnsupportedException, ClassNotFoundException, InstantiationException,
IllegalAccessException, UnsupportedLookAndFeelException, URISyntaxException {
Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/StatsGenerator.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -12,6 +12,7 @@
import java.net.URISyntaxException;
import java.net.URL;
import java.text.DecimalFormat;
+import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -20,10 +21,14 @@
import java.util.Set;
import java.util.Map.Entry;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
import org.dllearner.core.owl.Individual;
import org.dllearner.core.owl.NamedClass;
import org.dllearner.learningproblems.EvaluatedDescriptionClass;
+import org.dllearner.utilities.statistics.FleissKappa;
import org.dllearner.utilities.statistics.Stat;
+import org.mindswap.pellet.utils.SetUtils;
import org.semanticweb.owl.apibinding.OWLManager;
import org.semanticweb.owl.model.OWLOntology;
import org.semanticweb.owl.model.OWLOntologyCreationException;
@@ -72,6 +77,11 @@
private int suggestionListsCount;
private int logicalAxiomCount;
private OWLOntology ont;
+
+ //matrix for Fleiss Kappa input
+ private short[][] mat;
+ private List<NamedClass> equivalentLists;
+ private List<NamedClass> superLists;
public StatsGenerator(File directory) {
// begin latex table with headers
@@ -79,9 +89,9 @@
beginStatsTable();
// for each ontology
for (File suggestionFile : directory.listFiles(new ResultFileFilter())) {
- clearStats();
loadSuggestions(suggestionFile);
loadOntology(suggestionFile);
+ resetStats();
// for each user evaluation input file
for (File inputFile : directory.listFiles(new NameFilter(suggestionFile))) {
loadUserInput(inputFile);
@@ -110,7 +120,7 @@
}
}
- private void clearStats() {
+ private void resetStats() {
acceptedGlobalStat = new Stat();
rejectedGlobalStat = new Stat();
failedGlobalStat = new Stat();
@@ -126,6 +136,10 @@
accSelectedStatsSC.clear();
accAboveThresholdStatsSC.clear();
positionStatsSC.clear();
+
+ equivalentLists = new ArrayList<NamedClass>(equivalentSuggestions.keySet());
+ superLists = new ArrayList<NamedClass>(superSuggestions.keySet());
+ mat = new short[suggestionListsCount][3];
}
private void makeSingleStat() {
@@ -156,16 +170,21 @@
Stat accSelectedStatSC = new Stat();
Stat accAboveThresholdStatSC = new Stat();
Stat positionStatSC = new Stat();
-
// analysing input for equivalent class expressions
for (Entry<NamedClass, String> e : equivalentInput.entrySet()) {
NamedClass currentClass = e.getKey();
String input = e.getValue();
+ if(input.equals("-1")){
+ input = "n";
+ }
if (input.equals("m")) {
missesCount++;
+ mat[equivalentLists.indexOf(currentClass)][2]++;
} else if (input.equals("n")) {
noSensibleDescriptionCount++;
+ mat[equivalentLists.indexOf(currentClass)][1]++;
} else {
+ mat[equivalentLists.indexOf(currentClass)][0]++;
int selectedIndex = Integer.parseInt(input);
EvaluatedDescriptionClass selectedExpression = equivalentSuggestions.get(currentClass).get(
selectedIndex);
@@ -204,9 +223,12 @@
NamedClass currentClass = e.getKey();
if (e.getValue().equals("m")) {
missesCountSC++;
+ mat[superLists.indexOf(currentClass) + equivalentLists.size()][2]++;
} else if (e.getValue().equals("n")) {
noSensibleDescriptionCountSC++;
+ mat[superLists.indexOf(currentClass) + equivalentLists.size()][1]++;
} else {
+ mat[superLists.indexOf(currentClass) + equivalentLists.size()][0]++;
int selectedIndex = Integer.parseInt(e.getValue());
EvaluatedDescriptionClass selectedExpression = superSuggestions.get(currentClass).get(selectedIndex);
double bestAcc = superSuggestions.get(currentClass).get(0).getAccuracy();
@@ -351,6 +373,13 @@
+ df.format(additionalInstanceCountEq) + " & "
+ df.format(additionalInstanceCount)
+ "\\\\\n");
+ for(int i = 0; i < mat.length; i++){
+ for(int j = 0; j < mat[i].length; j++){
+ System.out.print(mat[i][j]);
+ }
+ System.out.println();
+ }
+ System.out.println(new FleissKappa().computeKappa(mat));
}
private void addOntologyMetricsTableRow(){
@@ -403,7 +432,7 @@
} catch (Exception e) {
}
}
- suggestionListsCount = equivalentSuggestions.size() + superSuggestions.size();
+ suggestionListsCount = equivalentSuggestions.keySet().size() + superSuggestions.keySet().size();
}
/**
@@ -459,6 +488,7 @@
*/
public static void main(String[] args) throws MalformedURLException, URISyntaxException {
Locale.setDefault(Locale.ENGLISH);
+ Logger.getRootLogger().setLevel(Level.DEBUG);
File directory = new File(new URL(args[0]).toURI());
new StatsGenerator(directory);
}
Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/ontologies.txt
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/evaluation/ontologies.txt 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/ontologies.txt 2010-02-05 08:35:01 UTC (rev 1991)
@@ -1 +1 @@
-http://www.mindswap.org/ontologies/SC.owl
\ No newline at end of file
+http://www.inter2geo.eu/2008/ontology/ontology.owl
\ No newline at end of file
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/OREApplication.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/OREApplication.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/OREApplication.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -64,6 +64,9 @@
try {
+ UIManager.put("OptionPane.cancelButtonText","Cancel");
+ UIManager.put("ProgressMonitor.progressText","Progress");
+
UIManager.setLookAndFeel(new PlasticLookAndFeel());
UIDefaults def = UIManager.getLookAndFeelDefaults();
Vector<?> vec = new Vector<Object>(def.keySet());
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/explanation/Explanation.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/explanation/Explanation.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/explanation/Explanation.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -42,8 +42,14 @@
}
@Override
- public boolean equals(Object obj) {
- Explanation exp = (Explanation)obj;
+ public boolean equals(Object o) {
+ if(o == this){
+ return true;
+ }
+ if(!(o instanceof Explanation)){
+ return false;
+ }
+ Explanation exp = (Explanation)o;
return exp.getEntailment().equals(entailment) && exp.getAxioms().equals(axioms);
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/explanation/PelletExplanationGenerator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/explanation/PelletExplanationGenerator.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/explanation/PelletExplanationGenerator.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -69,7 +69,7 @@
// Set the necessary fields
expGen.setReasonerFactory( new PelletReasonerFactory() );
expGen.setReasoner( reasoner );
- expGen.setOntologies( manager.getImportsClosure(ontologies.iterator().next()) );
+ expGen.setOntologies( ontologies );
// Create the converter that will translate axioms into class expressions
converter = new SatisfiabilityConverter( manager.getOWLDataFactory() );
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExtractFromSparqlDialog.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExtractFromSparqlDialog.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/ExtractFromSparqlDialog.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -15,7 +15,10 @@
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.IOException;
+import java.net.HttpURLConnection;
import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collections;
@@ -90,7 +93,7 @@
private ImageIcon toggledIcon = new ImageIcon(this.getClass().getResource("../toggled.gif"));
private ImageIcon untoggledIcon = new ImageIcon(this.getClass().getResource("../untoggled.gif"));
- private final String URLHelpText = "<html><table border=\"1\">" +
+ private static final String URL_HELP_TEXT = "<html><table border=\"1\">" +
"<tr>" +
"<th>SPARQL endpoint URL</th>" +
"<th>The URL of the SPARQL endpoint</th>" +
@@ -101,7 +104,7 @@
"</tr> " +
"</table></html>";
- private final String classHelpText = "Enter a class uri or label for which a " +
+ private static final String CLASS_HELP_TEXT = "Enter a class uri or label for which a " +
"relevant fragment should be extracted.";
private SPARQLTasks task;
@@ -110,7 +113,7 @@
private ProgressMonitor mon;
private Timer t;
- private Map<URL, List<String>> endpointToDefaultGraph;
+ private Map<URI, List<String>> endpointToDefaultGraph;
public ExtractFromSparqlDialog(JFrame owner) {
super(owner, "Extract fragment from SPARQL endpoint", true);
@@ -178,7 +181,7 @@
endPointHolderPanel.add(new JLabel("Default graph URI (optional)"));
endPointHolderPanel.add(defaultGraphField);
HelpablePanel endPointHelpPanel = new HelpablePanel(endPointHolderPanel);
- endPointHelpPanel.setHelpText(URLHelpText);
+ endPointHelpPanel.setHelpText(URL_HELP_TEXT);
endPointHelpPanel.setBorder(new TitledBorder("SPARQL endpoint"));
panel.add(endPointHelpPanel, c);
@@ -207,7 +210,7 @@
gbc.weighty = 1.0;
classHolderPanel.add(classField,gbc);
HelpablePanel classHelpPanel = new HelpablePanel(classHolderPanel);
- classHelpPanel.setHelpText(classHelpText);
+ classHelpPanel.setHelpText(CLASS_HELP_TEXT);
classHelpPanel.setBorder(new TitledBorder("Class to investigate"));
panel.add(classHelpPanel, c);
@@ -274,11 +277,16 @@
}
private void addPredefinedEndpoints(){
- endpointToDefaultGraph = new HashMap<URL, List<String>>();
+ endpointToDefaultGraph = new HashMap<URI, List<String>>();
for(SparqlEndpoint endpoint : SparqlEndpoint.listEndpoints()){
- endpointToDefaultGraph.put(endpoint.getURL(), endpoint.getDefaultGraphURIs());
+ try {
+ endpointToDefaultGraph.put(endpoint.getURL().toURI(), endpoint.getDefaultGraphURIs());
+ } catch (URISyntaxException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
}
- for(URL url : endpointToDefaultGraph.keySet()){
+ for(URI url : endpointToDefaultGraph.keySet()){
comboBox.addItem(url.toString());
}
}
@@ -355,13 +363,12 @@
private void extract() {
message.setText("Checking SPARQL endpoint availability");
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
-
- setLocale(Locale.ENGLISH);
mon = new ProgressMonitor(this, "Extracting fragment", "", 0, 100);
mon.setMillisToDecideToPopup(0);
mon.setMillisToPopup(0);
- mon.getAccessibleContext().getLocale().setDefault(Locale.ENGLISH);
+ mon.getAccessibleContext().getLocale();
+
t = new Timer(1000,new ActionListener() {
@@ -387,6 +394,21 @@
}
+ private boolean URLExists(){
+ try {
+ HttpURLConnection.setFollowRedirects(false);
+ HttpURLConnection con = (HttpURLConnection)new URL(comboBox.getSelectedItem().toString()).openConnection();
+ con.setRequestMethod("HEAD");
+ return con.getResponseCode() == HttpURLConnection.HTTP_OK;
+ } catch (MalformedURLException e) {
+ e.printStackTrace();
+ return false;
+ } catch (IOException e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
private boolean urlIsConnectable()
{
@@ -565,13 +587,7 @@
message.setText("");
JComboBox cb = (JComboBox)e.getSource();
if(cb.getSelectedIndex() >= 0){
- URL endpointURL = null;
- try {
- endpointURL = new URL((String)cb.getSelectedItem());
- } catch (MalformedURLException e1) {
- // TODO Auto-generated catch block
- e1.printStackTrace();
- }
+ URI endpointURL = URI.create((String)cb.getSelectedItem());
List<String> defaultGraphs = endpointToDefaultGraph.get(endpointURL);
if(defaultGraphs != null && !defaultGraphs.isEmpty()){
defaultGraphField.setText(defaultGraphs.iterator().next());
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/SparqlExtractOptionsPanel.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/SparqlExtractOptionsPanel.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/SparqlExtractOptionsPanel.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -124,15 +124,15 @@
c.gridy = 7;
add(getAllSuperClassesCheckBox, c);
-// c.anchor = GridBagConstraints.LINE_START;
-// c.gridx = 1;
-// c.gridy = 8;
-// add(new JLabel("Use literals"), c);
-// useLitsCheckBox = new JCheckBox();
-// c.anchor = GridBagConstraints.LINE_END;
-// c.gridx = 0;
-// c.gridy = 8;
-// add(useLitsCheckBox, c);
+ c.anchor = GridBagConstraints.LINE_START;
+ c.gridx = 1;
+ c.gridy = 8;
+ add(new JLabel("Use literals"), c);
+ useLitsCheckBox = new JCheckBox();
+ c.anchor = GridBagConstraints.LINE_END;
+ c.gridx = 0;
+ c.gridy = 8;
+ add(useLitsCheckBox, c);
}
@@ -181,7 +181,7 @@
getPropertyInformationCheckBox.setSelected(false);
closeAfterRecursionCheckBox.setSelected(true);
getAllSuperClassesCheckBox.setSelected(true);
-// useLitsCheckBox.setSelected(true);
+ useLitsCheckBox.setSelected(false);
}
public void setToolTips(){
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/Wizard.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/Wizard.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/Wizard.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -324,7 +324,7 @@
* @param newValue The new enabled status of the button.
*/
public void setBackButtonEnabled(boolean newValue) {
- wizardModel.setBackButtonEnabled(new Boolean(newValue));
+ wizardModel.setBackButtonEnabled(Boolean.valueOf(newValue));
}
/**
@@ -340,7 +340,7 @@
* @param newValue The new enabled status of the button.
*/
public void setNextFinishButtonEnabled(boolean newValue) {
- wizardModel.setNextFinishButtonEnabled(new Boolean(newValue));
+ wizardModel.setNextFinishButtonEnabled(Boolean.valueOf(newValue));
}
/**
@@ -356,7 +356,7 @@
* @param newValue The new enabled status of the button.
*/
public void setCancelButtonEnabled(boolean newValue) {
- wizardModel.setCancelButtonEnabled(new Boolean(newValue));
+ wizardModel.setCancelButtonEnabled(Boolean.valueOf(newValue));
}
/**
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardModel.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardModel.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/WizardModel.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -194,7 +194,7 @@
void setBackButtonEnabled(Boolean newValue) {
Boolean oldValue = getBackButtonEnabled();
- if (newValue != oldValue) {
+ if (!newValue.equals(oldValue)) {
buttonEnabledHashmap.put(BACK_BUTTON_ENABLED_PROPERTY, newValue);
firePropertyChange(BACK_BUTTON_ENABLED_PROPERTY, oldValue, newValue);
}
@@ -207,7 +207,7 @@
void setNextFinishButtonEnabled(Boolean newValue) {
Boolean oldValue = getNextFinishButtonEnabled();
- if (newValue != oldValue) {
+ if (!newValue.equals(oldValue)) {
buttonEnabledHashmap.put(NEXT_FINISH_BUTTON_ENABLED_PROPERTY, newValue);
firePropertyChange(NEXT_FINISH_BUTTON_ENABLED_PROPERTY, oldValue, newValue);
}
@@ -220,7 +220,7 @@
void setCancelButtonEnabled(Boolean newValue) {
Boolean oldValue = getCancelButtonEnabled();
- if (newValue != oldValue) {
+ if (!newValue.equals(oldValue)) {
buttonEnabledHashmap.put(CANCEL_BUTTON_ENABLED_PROPERTY, newValue);
firePropertyChange(CANCEL_BUTTON_ENABLED_PROPERTY, oldValue, newValue);
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/AutoLearnPanelDescriptor.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -20,7 +20,6 @@
import org.dllearner.core.LearningAlgorithm;
import org.dllearner.core.owl.NamedClass;
import org.dllearner.learningproblems.EvaluatedDescriptionClass;
-import org.dllearner.tools.ore.LearningManager;
import org.dllearner.tools.ore.OREManager;
import org.dllearner.tools.ore.TaskManager;
import org.dllearner.tools.ore.ui.wizard.WizardPanelDescriptor;
@@ -45,11 +44,6 @@
private EquivalentLearningTask equivalentLearningTask;
private SuperClassLearningTask superLearningTask;
- private Timer timer;
- private LearningAlgorithm la;
-
- private SwingWorker<Void, List<? extends EvaluatedDescription>> currentLearningTask;
-
private int currentClassIndex = 0;
@@ -97,7 +91,6 @@
TaskManager.getInstance().getStatusBar().setMessage("Learning equivalent class expressions...");
getWizard().getDialog().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
equivalentLearningTask = new EquivalentLearningTask();
- currentLearningTask = equivalentLearningTask;
equivalentLearningTask.addPropertyChangeListener(TaskManager.getInstance().getStatusBar());
equivalentLearningTask.execute();
}
@@ -107,7 +100,6 @@
TaskManager.getInstance().getStatusBar().setProgress(0);
getWizard().getDialog().setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
superLearningTask = new SuperClassLearningTask();
- currentLearningTask = superLearningTask;
superLearningTask.addPropertyChangeListener(TaskManager.getInstance().getStatusBar());
superLearningTask.execute();
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/descriptors/ClassChoosePanelDescriptor.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -191,11 +191,11 @@
while(iter.hasNext()){
NamedClass nc = iter.next();
int instanceCount = OREManager.getInstance().getReasoner().getIndividuals(nc).size();
- Set<NamedClass> temp = instanceCountToClasses.get(new Integer(instanceCount));
+ Set<NamedClass> temp = instanceCountToClasses.get(Integer.valueOf(instanceCount));
if(temp == null) {
temp = new HashSet<NamedClass>();
temp.add(nc);
- instanceCountToClasses.put(new Integer(instanceCount), temp);
+ instanceCountToClasses.put(Integer.valueOf(instanceCount), temp);
}
temp.add(nc);
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ClassChoosePanel.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -62,6 +62,11 @@
private JPanel manualLearnPanel;
private JPanel autoLearnPanel;
+ private static final String HELP_TEXT = "<html>You can choose whether you want to learn class " +
+ "descriptions for a single, manually selected class,<br>" +
+ "or you can learn class descriptions step by step for all classes with a minimum " +
+ "number of instances.</html>";
+
private LearningOptionsPanel learningOptionsPanel;
/**
@@ -92,6 +97,7 @@
HelpablePanel optionsHelpPanel = new HelpablePanel(optionsPanel);
optionsHelpPanel.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.LOWERED));
+ optionsHelpPanel.setHelpText(HELP_TEXT);
c.gridwidth = GridBagConstraints.REMAINDER;
add(optionsHelpPanel, c);
@@ -192,7 +198,7 @@
public void reset(){
classesTable.clear();
- minInstanceCountSpinner.setValue(new Integer(1));
+ minInstanceCountSpinner.setValue(Integer.valueOf(1));
autoLearnButton.setSelected(true);
setAutoLearningPanel(true);
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/ManualLearnPanel.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -74,11 +74,36 @@
private GridBagConstraints c;
- private static String INCONSISTENCYWARNING = "<html><font color=red>" +
+ private static final String INCONSISTENCY_WARNING = "<html><font color=red>" +
"Warning! Adding selected class expression leads to an inconsistent ontology." +
"</font></html>";
+
+ private static final String LEARNTYPE_HELP_TEXT = "<html>You can choose between learning class " +
+ "expressions, which are equivalent to your selected class,<br>" +
+ "or learning class expressions, which subsumes the seleminimal number ofcted class.</html>";
+
+ private static final String LEARNOPTIONS_HELP_TEXT = "<html><table border=\"1\">" +
+ "<tr>" +
+ "<th>Noise</th>" +
+ "<th></th>" +
+ "</tr>" +
+ "<tr>" +
+ "<th>Max. execution time</th>" +
+ "<th>The maximal time in seconds after which the algorithm terminates.</th>" +
+ "</tr>" +
+ "<tr>" +
+ "<th>Max. number of results</th>" +
+ "<th>The maximal number of class expressions which will be returned.</th>" +
+ "</tr>" +
+ "<tr>" +
+ "<th>Threshold</th>" +
+ "<th>Specifies the minimal accuracy value, which the results must have to be shown.</th>" +
+ "</tr>"+
+ "</table></html>";
+
+ private static final String COVERAGE_HELP_TEXT = "This panel shows an abstract coverage view " +
+ "of the instances in the ontology.";
-
public ManualLearnPanel() {
createUI();
}
@@ -158,6 +183,7 @@
learnTypePanel.add(superClassButton);
HelpablePanel learnTypeHelpPanel = new HelpablePanel(learnTypePanel);
learnTypeHelpPanel.setBorder(new TitledBorder("Learning type"));
+ learnTypeHelpPanel.setHelpText(LEARNTYPE_HELP_TEXT);
buttonSliderPanel.add(learnTypeHelpPanel, new GridBagConstraints(0, 1,
1, 1, 0.0, 0.0, GridBagConstraints.CENTER,
GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
@@ -165,6 +191,7 @@
optionsPanel = new LearningOptionsPanel();
HelpablePanel optionsHelpPanel = new HelpablePanel(optionsPanel);
optionsHelpPanel.setBorder(new TitledBorder("Options"));
+ optionsHelpPanel.setHelpText(LEARNOPTIONS_HELP_TEXT);
buttonSliderPanel.add(optionsHelpPanel, new GridBagConstraints(0, 2,
1, 1, 0.0, 0.0, GridBagConstraints.CENTER,
GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));
@@ -181,6 +208,7 @@
graphicPanel = new GraphicalCoveragePanel("");
HelpablePanel coverageHelpPanel = new HelpablePanel(graphicPanel);
+ coverageHelpPanel.setHelpText(COVERAGE_HELP_TEXT);
JPanel graphicHolderPanel = new JPanel(new BorderLayout());
graphicHolderPanel.add(coverageHelpPanel);
@@ -227,7 +255,7 @@
public void showInconsistencyWarning(boolean show){
if(show){
- inconsistencyLabel.setText(INCONSISTENCYWARNING);
+ inconsistencyLabel.setText(INCONSISTENCY_WARNING);
} else {
inconsistencyLabel.setText(" ");
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/ui/wizard/panels/UnsatisfiableExplanationPanel.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -56,8 +56,12 @@
private JPanel buttonExplanationsPanel;
- private final String EXPLANATION_TYPE_TEXT = "";
- private final String EXPLANATION_COUNT_TEXT = "";
+ private static final String EXPLANATION_TYPE_TEXT = "<html>You can select whether the shown explanations shell " +
+ "only contain axioms, which are asserted in the ontology," +
+ "<br>or whether the explanations show only relevant parts of the original axioms.</html>" +
+ "";
+ private static final String EXPLANATION_COUNT_TEXT = "<html>You can choose between showing/computing all " +
+ "explanations,<br> or only a limited number of them.</html>";
private ButtonGroup explanationType;
Modified: trunk/src/dl-learner/org/dllearner/utilities/statistics/FleissKappa.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/statistics/FleissKappa.java 2010-02-02 16:28:41 UTC (rev 1990)
+++ trunk/src/dl-learner/org/dllearner/utilities/statistics/FleissKappa.java 2010-02-05 08:35:01 UTC (rev 1991)
@@ -49,6 +49,10 @@
final int N = mat.length;
final int k = mat[0].length;
+ if(n < 2){
+ System.err.println("Only " + n + " raters per subject detected. There have to be at least 2 raters per subject");
+ return -999;
+ }
logger.debug(n + " raters.");
logger.debug(N + " subjects.");
logger.debug(k + " categories.");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-08 19:02:13
|
Revision: 1994
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1994&view=rev
Author: jenslehmann
Date: 2010-02-08 19:02:07 +0000 (Mon, 08 Feb 2010)
Log Message:
-----------
some bug fixes for data hasValue support
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java
trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java
trunk/src/dl-learner/org/dllearner/core/configurators/ROLComponent2Configurator.java
trunk/src/dl-learner/org/dllearner/core/configurators/RefinementOperatorConfigurator.java
trunk/src/dl-learner/org/dllearner/core/options/CommonConfigOptions.java
trunk/src/dl-learner/org/dllearner/core/owl/Constant.java
trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java
trunk/src/dl-learner/org/dllearner/core/owl/UntypedConstant.java
trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java
Modified: trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -152,6 +152,7 @@
options.add(CommonConfigOptions.useAllConstructor());
options.add(CommonConfigOptions.useExistsConstructor());
options.add(CommonConfigOptions.useHasValueConstructor());
+ options.add(CommonConfigOptions.useDataHasValueConstructor());
options.add(CommonConfigOptions.valueFreqencyThreshold());
options.add(CommonConfigOptions.useCardinalityRestrictions());
options.add(CommonConfigOptions.cardinalityLimit());
Modified: trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/algorithms/refinement2/ROLComponent2.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -193,6 +193,7 @@
options.add(CommonConfigOptions.useAllConstructor());
options.add(CommonConfigOptions.useExistsConstructor());
options.add(CommonConfigOptions.useHasValueConstructor());
+ options.add(CommonConfigOptions.useDataHasValueConstructor());
options.add(CommonConfigOptions.valueFreqencyThreshold());
options.add(CommonConfigOptions.useCardinalityRestrictions());
options.add(CommonConfigOptions.cardinalityLimit());
Modified: trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -85,6 +85,15 @@
return (Boolean) ComponentManager.getInstance().getConfigOptionValue(cELOE, "useHasValueConstructor") ;
}
/**
+* useDataHasValueConstructor specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties.
+* mandatory: false| reinit necessary: true
+* default value: false
+* @return boolean
+**/
+public boolean getUseDataHasValueConstructor() {
+return (Boolean) ComponentManager.getInstance().getConfigOptionValue(cELOE, "useDataHasValueConstructor") ;
+}
+/**
* valueFrequencyThreshold specifies how often an object must occur as value in order to be considered for hasValue restrictions.
* mandatory: false| reinit necessary: true
* default value: 3
@@ -221,6 +230,15 @@
reinitNecessary = true;
}
/**
+* @param useDataHasValueConstructor specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties.
+* mandatory: false| reinit necessary: true
+* default value: false
+**/
+public void setUseDataHasValueConstructor(boolean useDataHasValueConstructor) {
+ComponentManager.getInstance().applyConfigEntry(cELOE, "useDataHasValueConstructor", useDataHasValueConstructor);
+reinitNecessary = true;
+}
+/**
* @param valueFrequencyThreshold specifies how often an object must occur as value in order to be considered for hasValue restrictions.
* mandatory: false| reinit necessary: true
* default value: 3
Modified: trunk/src/dl-learner/org/dllearner/core/configurators/ROLComponent2Configurator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/configurators/ROLComponent2Configurator.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/configurators/ROLComponent2Configurator.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -225,6 +225,15 @@
return (Boolean) ComponentManager.getInstance().getConfigOptionValue(rOLComponent2, "useHasValueConstructor") ;
}
/**
+* useDataHasValueConstructor specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties.
+* mandatory: false| reinit necessary: true
+* default value: false
+* @return boolean
+**/
+public boolean getUseDataHasValueConstructor() {
+return (Boolean) ComponentManager.getInstance().getConfigOptionValue(rOLComponent2, "useDataHasValueConstructor") ;
+}
+/**
* valueFrequencyThreshold specifies how often an object must occur as value in order to be considered for hasValue restrictions.
* mandatory: false| reinit necessary: true
* default value: 3
@@ -586,6 +595,15 @@
reinitNecessary = true;
}
/**
+* @param useDataHasValueConstructor specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties.
+* mandatory: false| reinit necessary: true
+* default value: false
+**/
+public void setUseDataHasValueConstructor(boolean useDataHasValueConstructor) {
+ComponentManager.getInstance().applyConfigEntry(rOLComponent2, "useDataHasValueConstructor", useDataHasValueConstructor);
+reinitNecessary = true;
+}
+/**
* @param valueFrequencyThreshold specifies how often an object must occur as value in order to be considered for hasValue restrictions.
* mandatory: false| reinit necessary: true
* default value: 3
Modified: trunk/src/dl-learner/org/dllearner/core/configurators/RefinementOperatorConfigurator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/configurators/RefinementOperatorConfigurator.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/configurators/RefinementOperatorConfigurator.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -45,6 +45,10 @@
return false;
}
+ public boolean getUseDataHasValueConstructor() {
+ return false;
+ }
+
public int getValueFrequencyThreshold() {
return 3;
}
Modified: trunk/src/dl-learner/org/dllearner/core/options/CommonConfigOptions.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/options/CommonConfigOptions.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/options/CommonConfigOptions.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -43,6 +43,7 @@
public static boolean useAllConstructorDefault = true;
public static boolean useExistsConstructorDefault = true;
public static boolean useHasValueConstructorDefault = false;
+ public static boolean useDataHasValueConstructorDefault = false;
public static int valueFrequencyThresholdDefault = 3;
public static boolean useCardinalityRestrictionsDefault = true;
public static int cardinalityLimitDefault = 5;
@@ -133,6 +134,10 @@
return new BooleanConfigOption("useHasValueConstructor", "specifies whether the hasValue constructor is used in the learning algorithm",useHasValueConstructorDefault);
}
+ public static BooleanConfigOption useDataHasValueConstructor() {
+ return new BooleanConfigOption("useDataHasValueConstructor", "specifies whether the hasValue constructor is used in the learning algorithm in combination with data properties",useDataHasValueConstructorDefault);
+ }
+
public static IntegerConfigOption valueFreqencyThreshold() {
return new IntegerConfigOption("valueFrequencyThreshold", "specifies how often an object must occur as value in order to be considered for hasValue restrictions",valueFrequencyThresholdDefault);
}
Modified: trunk/src/dl-learner/org/dllearner/core/owl/Constant.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/Constant.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/owl/Constant.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -25,7 +25,7 @@
* @author Jens Lehmann
*
*/
-public abstract class Constant implements KBElement {
+public abstract class Constant implements KBElement, Comparable<Constant> {
/**
*
@@ -43,4 +43,5 @@
public String getLiteral() {
return literal;
}
+
}
Modified: trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -27,7 +27,7 @@
* @author Jens Lehmann
*
*/
-public class TypedConstant extends Constant implements Comparable<TypedConstant> {
+public class TypedConstant extends Constant {
/**
*
@@ -100,6 +100,14 @@
return literal + "^^" + datatype;
}
+ @Override
+ public int compareTo(Constant o) {
+ if(o instanceof UntypedConstant) {
+ return 1;
+ }
+ String str = literal + datatype;
+ String str2 = o.literal + ((TypedConstant)o).datatype;
+ return str.compareTo(str2);
+ }
-
}
Modified: trunk/src/dl-learner/org/dllearner/core/owl/UntypedConstant.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/UntypedConstant.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/core/owl/UntypedConstant.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -113,6 +113,15 @@
return literal;
}
}
+
+ @Override
+ public int compareTo(Constant o) {
+ if(o instanceof TypedConstant) {
+ return -1;
+ }
+ String str = literal + lang;
+ String str2 = ((UntypedConstant)o).literal + ((UntypedConstant)o).lang;
+ return str.compareTo(str2);
+ }
-
}
Modified: trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -998,6 +998,12 @@
}
@Override
+ public Map<Individual, SortedSet<Constant>> getDatatypeMembersImpl(
+ DatatypeProperty datatypeProperty) {
+ return rc.getDatatypeMembersImpl(datatypeProperty);
+ }
+
+ @Override
public Set<Individual> getRelatedIndividualsImpl(Individual individual, ObjectProperty objectProperty) throws ReasoningMethodUnsupportedException {
return rc.getRelatedIndividuals(individual, objectProperty);
}
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -205,6 +205,7 @@
useAllConstructor = configurator.getUseAllConstructor();
useExistsConstructor = configurator.getUseExistsConstructor();
useHasValueConstructor = configurator.getUseHasValueConstructor();
+ useDataHasValueConstructor = configurator.getUseDataHasValueConstructor();
frequencyThreshold = configurator.getValueFrequencyThreshold();
useCardinalityRestrictions = configurator.getUseCardinalityRestrictions();
cardinalityLimit = configurator.getCardinalityLimit();
@@ -231,6 +232,7 @@
this.frequencyThreshold = valueFrequencyThreshold;
this.useCardinalityRestrictions = useCardinalityRestrictions;
cardinalityLimit = configurator.getCardinalityLimit();
+ this.useDataHasValueConstructor = configurator.getUseDataHasValueConstructor();
this.useNegation = useNegation;
this.useBooleanDatatypes = useBooleanDatatypes;
this.useDoubleDatatypes = useDoubleDatatypes;
Modified: trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java 2010-02-08 10:08:43 UTC (rev 1993)
+++ trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java 2010-02-08 19:02:07 UTC (rev 1994)
@@ -23,8 +23,10 @@
import java.util.Set;
import org.dllearner.core.owl.BooleanValueRestriction;
+import org.dllearner.core.owl.Constant;
import org.dllearner.core.owl.DatatypeProperty;
import org.dllearner.core.owl.DatatypeSomeRestriction;
+import org.dllearner.core.owl.DatatypeValueRestriction;
import org.dllearner.core.owl.DoubleMaxValue;
import org.dllearner.core.owl.DoubleMinValue;
import org.dllearner.core.owl.Individual;
@@ -204,8 +206,23 @@
}
} else
return -1;
+ } else if(concept1 instanceof DatatypeValueRestriction) {
+ if(concept2 instanceof Nothing || concept2 instanceof NamedClass || concept2 instanceof BooleanValueRestriction || concept2 instanceof DatatypeSomeRestriction || concept2 instanceof ObjectValueRestriction) {
+ return 1;
+ } else if(concept2 instanceof DatatypeValueRestriction) {
+ int roleCompare = rc.compare(((DatatypeValueRestriction)concept1).getRestrictedPropertyExpression(), ((DatatypeValueRestriction)concept2).getRestrictedPropertyExpression());
+
+ if(roleCompare == 0) {
+ Constant value1 = ((DatatypeValueRestriction)concept1).getValue();
+ Constant value2 = ((DatatypeValueRestriction)concept2).getValue();
+ return value1.compareTo(value2);
+ } else {
+ return roleCompare;
+ }
+ } else
+ return -1;
} else if(concept1 instanceof Thing) {
- if(concept2 instanceof Nothing || concept2 instanceof NamedClass || concept2 instanceof BooleanValueRestriction || concept2 instanceof DatatypeSomeRestriction || concept2 instanceof ObjectValueRestriction)
+ if(concept2 instanceof Nothing || concept2 instanceof NamedClass || concept2 instanceof BooleanValueRestriction || concept2 instanceof DatatypeSomeRestriction || concept2 instanceof ObjectValueRestriction || concept2 instanceof DatatypeValueRestriction)
return 1;
else if(concept2 instanceof Thing)
return 0;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-10 09:27:36
|
Revision: 2000
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2000&view=rev
Author: jenslehmann
Date: 2010-02-10 09:27:28 +0000 (Wed, 10 Feb 2010)
Log Message:
-----------
- implemented refinement operator inverter (turns downward refinement
operator into upward refinement operator and vice versa)
- rho DR operator can be set to drop disjuncts
- jUnit test case for the above features
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/owl/Description.java
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java
trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java
Modified: trunk/src/dl-learner/org/dllearner/core/owl/Description.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/Description.java 2010-02-09 15:51:12 UTC (rev 1999)
+++ trunk/src/dl-learner/org/dllearner/core/owl/Description.java 2010-02-10 09:27:28 UTC (rev 2000)
@@ -164,6 +164,11 @@
children.remove(child);
}
+ public void removeChild(int index) {
+ children.get(index).setParent(null);
+ children.remove(index);
+ }
+
public void replaceChild(int index, Description newChild) {
children.remove(index);
children.add(index, newChild);
Added: trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java 2010-02-10 09:27:28 UTC (rev 2000)
@@ -0,0 +1,93 @@
+/**
+ * Copyright (C) 2007-2010, Jens Lehmann
+ *
+ * This file is part of DL-Learner.
+ *
+ * DL-Learner is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * DL-Learner is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.dllearner.refinementoperators;
+
+import java.util.List;
+import java.util.Set;
+import java.util.TreeSet;
+
+import org.dllearner.core.owl.Description;
+import org.dllearner.core.owl.Negation;
+import org.dllearner.utilities.owl.ConceptComparator;
+import org.dllearner.utilities.owl.ConceptTransformation;
+
+/**
+ * The class uses an existing refinement operator and inverts it, i.e. a
+ * downward refinement operator is turned into an upward refinement operator
+ * and vice versa.
+ *
+ * @author Jens Lehmann
+ *
+ */
+public class OperatorInverter implements RefinementOperator {
+
+ private RefinementOperator operator;
+ private ConceptComparator cc = new ConceptComparator();
+ private boolean useNegationNormalForm = true;
+ private boolean guaranteeLength = true;
+
+ public OperatorInverter(RefinementOperator operator) {
+ this.operator = operator;
+ }
+
+ @Override
+ public Set<Description> refine(Description description) {
+ Set<Description> refinements = operator.refine(getNegation(description));
+ TreeSet<Description> results = new TreeSet<Description>(cc);
+ for(Description d : refinements) {
+ results.add(getNegation(d));
+ }
+ return results;
+ }
+
+ @Override
+ public Set<Description> refine(Description description, int maxLength) {
+ Description negatedDescription = getNegation(description);
+ // concept length can change because of the conversion process; as a heuristic
+ // we increase maxLength by the length difference of negated and original concept
+ int lengthDiff = Math.max(0, negatedDescription.getLength() - description.getLength());
+ Set<Description> refinements = operator.refine(negatedDescription, maxLength+lengthDiff);
+ TreeSet<Description> results = new TreeSet<Description>(cc);
+ for(Description d : refinements) {
+ Description dNeg = getNegation(d);
+ // to satisfy the guarantee that the method does not return longer
+ // concepts, we perform an additional check
+ if(!guaranteeLength || dNeg.getLength() <= maxLength) {
+ results.add(dNeg);
+ }
+ }
+ return results;
+ }
+
+ @Override
+ public Set<Description> refine(Description description, int maxLength,
+ List<Description> knownRefinements) {
+ throw new Error("Method not implemented.");
+ }
+
+ private Description getNegation(Description description) {
+ Description negatedDescription = new Negation(description);
+ if(useNegationNormalForm) {
+ negatedDescription = ConceptTransformation.transformToNegationNormalForm(negatedDescription);
+ }
+ return negatedDescription;
+ }
+
+}
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-09 15:51:12 UTC (rev 1999)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-10 09:27:28 UTC (rev 2000)
@@ -184,6 +184,8 @@
private boolean disjointChecks = true;
private boolean instanceBasedDisjoints = true;
+ private boolean dropDisjuncts = false;
+
// caches for reasoner queries
private Map<Description,Map<Description,Boolean>> cachedDisjoints = new TreeMap<Description,Map<Description,Boolean>>(conceptComparator);
@@ -513,6 +515,23 @@
}
+ // if enabled, we can remove elements of the disjunction
+ if(dropDisjuncts) {
+ // A1 OR A2 => {A1,A2}
+ if(description.getChildren().size() == 2) {
+ refinements.add(description.getChild(0));
+ refinements.add(description.getChild(1));
+ } else {
+ // copy children list and remove a different element in each turn
+ for(int i=0; i<description.getChildren().size(); i++) {
+ List<Description> newChildren = new LinkedList<Description>(description.getChildren());
+ newChildren.remove(i);
+ Union md = new Union(newChildren);
+ refinements.add(md);
+ }
+ }
+ }
+
} else if (description instanceof ObjectSomeRestriction) {
ObjectPropertyExpression role = ((ObjectQuantorRestriction)description).getRole();
Description range = opRanges.get(role);
@@ -788,6 +807,17 @@
return true;
}
+ /**
+ * By default, the operator does not specialize e.g. (A or B) to A, because
+ * it only guarantees weak completeness. Under certain circumstances, e.g.
+ * refinement of a fixed given concept, it can be useful to allow such
+ * refinements, which can be done by passing the parameter true to this method.
+ * @param dropDisjuncts Whether to remove disjuncts in refinement process.
+ */
+ public void setDropDisjuncts(boolean dropDisjuncts) {
+ this.dropDisjuncts = dropDisjuncts;
+ }
+
private void computeTopRefinements(int maxLength) {
computeTopRefinements(maxLength, null);
}
Modified: trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java 2010-02-09 15:51:12 UTC (rev 1999)
+++ trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java 2010-02-10 09:27:28 UTC (rev 2000)
@@ -42,7 +42,7 @@
import org.dllearner.parser.KBParser;
import org.dllearner.parser.ParseException;
import org.dllearner.reasoning.OWLAPIReasoner;
-import org.dllearner.refinementoperators.ELDown2;
+import org.dllearner.refinementoperators.OperatorInverter;
import org.dllearner.refinementoperators.RefinementOperator;
import org.dllearner.refinementoperators.RhoDRDown;
import org.dllearner.test.junit.TestOntologies.TestOntology;
@@ -188,6 +188,21 @@
}
}
+ @Test
+ public void invertedOperatorTest() throws ParseException {
+ ReasonerComponent rs = TestOntologies.getTestOntology(TestOntology.RHO1);
+ RhoDRDown rho = new RhoDRDown(rs);
+ rho.setDropDisjuncts(true);
+ RefinementOperator operator = new OperatorInverter(rho);
+ Description concept = KBParser.parseConcept("(limo AND EXISTS hasOwner.man)");
+ Set<Description> refinements = operator.refine(concept, 6);
+ for(Description refinement : refinements) {
+ System.out.println(refinement);
+ }
+ // we should get four upward refinements
+ // (replacing limo => car, man => person, or drop one of the intersects)
+ assertTrue(refinements.size()==4);
+ }
private String uri(String name) {
return "\""+baseURI+name+"\"";
Modified: trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java 2010-02-09 15:51:12 UTC (rev 1999)
+++ trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java 2010-02-10 09:27:28 UTC (rev 2000)
@@ -31,7 +31,6 @@
import org.dllearner.kb.OWLFile;
import org.dllearner.parser.KBParser;
import org.dllearner.parser.ParseException;
-import org.dllearner.reasoning.FastInstanceChecker;
import org.dllearner.reasoning.OWLAPIReasoner;
/**
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-10 10:48:25
|
Revision: 2002
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2002&view=rev
Author: kurzum
Date: 2010-02-10 10:48:19 +0000 (Wed, 10 Feb 2010)
Log Message:
-----------
added retrieval of labels to SPARQLDescriptionConverter
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java
trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
Modified: trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2010-02-10 10:36:24 UTC (rev 2001)
+++ trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2010-02-10 10:48:19 UTC (rev 2002)
@@ -111,7 +111,7 @@
* @return A SPARQL query of the underlying description.
*/
public String getSparqlQuery(int limit) {
- return SparqlQueryDescriptionConvertVisitor.getSparqlQuery(description, limit);
+ return SparqlQueryDescriptionConvertVisitor.getSparqlQuery(description, limit, false);
}
/**
Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-10 10:36:24 UTC (rev 2001)
+++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-10 10:48:19 UTC (rev 2002)
@@ -83,15 +83,8 @@
* = RDFSReasoning; }
*/
- private String getSparqlQuery(int resultLimit) { // for old function see
- // below
- // it was using the object attribute in a strange way
- // QUALITY: what if this function is called several times?? should be
- // private maybe?
- String tmpQuery = "SELECT ?subject \nWHERE {" + query + " }\n " + limit(resultLimit);
-
- query = tmpQuery;
- return query;
+ private String getSparqlQuery(int resultLimit, boolean labels) {
+ return "SELECT ?subject \nWHERE { "+((labels)?" ?subject rdfs:label ?label .":"")+" " + query + " }\n " + limit(resultLimit);
}
public static String getSparqlQuery(String descriptionKBSyntax) throws ParseException {
@@ -100,18 +93,17 @@
public static String getSparqlQuery(String descriptionKBSyntax, int limit) throws ParseException {
Description d = KBParser.parseConcept(descriptionKBSyntax);
- return getSparqlQuery(d, limit);
+ return getSparqlQuery(d, limit, false);
}
public static String getSparqlQuery(Description description) {
- return getSparqlQuery(description, defaultLimit);
+ return getSparqlQuery(description, defaultLimit, false);
}
- public static String getSparqlQuery(Description description, int resultLimit) {
+ public static String getSparqlQuery(Description description, int resultLimit, boolean labels) {
SparqlQueryDescriptionConvertVisitor visitor = new SparqlQueryDescriptionConvertVisitor();
description.accept(visitor);
- String ret = visitor.getSparqlQuery(resultLimit);
- return ret;
+ return visitor.getSparqlQuery(resultLimit, labels);
}
/**
@@ -244,7 +236,6 @@
* .Intersection)
*/
public void visit(Intersection description) {
- // HACK see replace hacks in other functions
logger.trace("Intersection");
description.getChild(0).accept(this);
query += ".";
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-10 10:50:49
|
Revision: 2003
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2003&view=rev
Author: jenslehmann
Date: 2010-02-10 10:50:42 +0000 (Wed, 10 Feb 2010)
Log Message:
-----------
included option in CELOE to filter out all suggestions, which already logically follow from the knowledge base
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java
trunk/src/dl-learner/org/dllearner/learningproblems/ClassLearningProblem.java
trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosNeg.java
trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosOnly.java
trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLPStrict.java
trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosNeg.java
trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosOnly.java
trunk/src/dl-learner/org/dllearner/learningproblems/ScoreThreeValued.java
trunk/src/dl-learner/org/dllearner/learningproblems/ScoreTwoValued.java
trunk/src/dl-learner/org/dllearner/utilities/owl/EvaluatedDescriptionSet.java
Modified: trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -21,7 +21,6 @@
import java.text.DecimalFormat;
import java.util.Collection;
-import java.util.Date;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -119,6 +118,7 @@
// important parameters
private double noise;
private double maxDepth;
+ private boolean filterFollowsFromKB;
// utility variables
private String baseURI;
@@ -166,6 +166,8 @@
options.add(CommonConfigOptions.maxNrOfResults(10));
options.add(new BooleanConfigOption("singleSuggestionMode", "Use this if you are interested in only one suggestion and your learning problem has many (more than 1000) examples.", false));
options.add(CommonConfigOptions.getInstanceBasedDisjoints());
+ options.add(new BooleanConfigOption("filterDescriptionsFollowingFromKB", "If true, then the results will not contain suggestions, which already follow logically from the knowledge base. Be careful, since this requires a potentially expensive consistency check for candidate solutions.", false));
+ options.add(new BooleanConfigOption("reuseExistingDescription", "If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base.", false));
return options;
}
@@ -193,11 +195,18 @@
bestEvaluatedDescriptions = new EvaluatedDescriptionSet(configurator.getMaxNrOfResults());
+ isClassLearningProblem = (learningProblem instanceof ClassLearningProblem);
+
// we put important parameters in class variables
noise = configurator.getNoisePercentage()/100d;
- maxDepth = configurator.getMaxDepth();
+ maxDepth = configurator.getMaxDepth();
+ // (filterFollowsFromKB is automatically set to false if the problem
+ // is not a class learning problem
+ filterFollowsFromKB = configurator.getFilterDescriptionsFollowingFromKB()
+ && isClassLearningProblem;
- isClassLearningProblem = (learningProblem instanceof ClassLearningProblem);
+ System.out.println("filter follows from KB: " + filterFollowsFromKB);
+
// actions specific to ontology engineering
if(isClassLearningProblem) {
ClassLearningProblem problem = (ClassLearningProblem) learningProblem;
@@ -264,8 +273,8 @@
int loop = 0;
while (!terminationCriteriaSatisfied()) {
- if(!singleSuggestionMode && bestEvaluatedDescriptions.getBest().getAccuracy() > highestAccuracy) {
- highestAccuracy = bestEvaluatedDescriptions.getBest().getAccuracy();
+ if(!singleSuggestionMode && bestEvaluatedDescriptions.getBestAccuracy() > highestAccuracy) {
+ highestAccuracy = bestEvaluatedDescriptions.getBestAccuracy();
logger.info("more accurate (" + dfPercent.format(highestAccuracy) + ") class expression found: " + descriptionToString(bestEvaluatedDescriptions.getBest().getDescription()));
}
@@ -442,8 +451,9 @@
}
if(!shorterDescriptionExists) {
-// System.out.println(niceDescription + " acc " + accuracy);
- bestEvaluatedDescriptions.add(niceDescription, accuracy, learningProblem);
+ if(!filterFollowsFromKB || !((ClassLearningProblem)learningProblem).followsFromKB(niceDescription)) {
+ bestEvaluatedDescriptions.add(niceDescription, accuracy, learningProblem);
+ }
}
}
Modified: trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/core/configurators/CELOEConfigurator.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -201,6 +201,24 @@
public boolean getInstanceBasedDisjoints() {
return (Boolean) ComponentManager.getInstance().getConfigOptionValue(cELOE, "instanceBasedDisjoints") ;
}
+/**
+* filterDescriptionsFollowingFromKB If true, then the results will not contain suggestions, which already follow logically from the knowledge base..
+* mandatory: false| reinit necessary: true
+* default value: false
+* @return boolean
+**/
+public boolean getFilterDescriptionsFollowingFromKB() {
+return (Boolean) ComponentManager.getInstance().getConfigOptionValue(cELOE, "filterDescriptionsFollowingFromKB") ;
+}
+/**
+* reuseExistingDescription If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base..
+* mandatory: false| reinit necessary: true
+* default value: false
+* @return boolean
+**/
+public boolean getReuseExistingDescription() {
+return (Boolean) ComponentManager.getInstance().getConfigOptionValue(cELOE, "reuseExistingDescription") ;
+}
/**
* @param useAllConstructor specifies whether the universal concept constructor is used in the learning algorithm.
@@ -346,6 +364,24 @@
ComponentManager.getInstance().applyConfigEntry(cELOE, "instanceBasedDisjoints", instanceBasedDisjoints);
reinitNecessary = true;
}
+/**
+* @param filterDescriptionsFollowingFromKB If true, then the results will not contain suggestions, which already follow logically from the knowledge base..
+* mandatory: false| reinit necessary: true
+* default value: false
+**/
+public void setFilterDescriptionsFollowingFromKB(boolean filterDescriptionsFollowingFromKB) {
+ComponentManager.getInstance().applyConfigEntry(cELOE, "filterDescriptionsFollowingFromKB", filterDescriptionsFollowingFromKB);
+reinitNecessary = true;
+}
+/**
+* @param reuseExistingDescription If true, the algorithm tries to find a good starting point close to an existing definition/super class of the given class in the knowledge base..
+* mandatory: false| reinit necessary: true
+* default value: false
+**/
+public void setReuseExistingDescription(boolean reuseExistingDescription) {
+ComponentManager.getInstance().applyConfigEntry(cELOE, "reuseExistingDescription", reuseExistingDescription);
+reinitNecessary = true;
+}
/**
* true, if this component needs reinitializsation.
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/ClassLearningProblem.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/ClassLearningProblem.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/ClassLearningProblem.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -28,7 +28,6 @@
import java.util.TreeSet;
import org.apache.log4j.Logger;
-import org.dllearner.algorithms.celoe.CELOE;
import org.dllearner.core.ComponentInitException;
import org.dllearner.core.LearningProblem;
import org.dllearner.core.ReasonerComponent;
@@ -250,7 +249,8 @@
// we check whether the axiom already follows from the knowledge base
// boolean followsFromKB = reasoner.isSuperClassOf(description, classToDescribe);
- boolean followsFromKB = equivalence ? reasoner.isEquivalentClass(description, classToDescribe) : reasoner.isSuperClassOf(description, classToDescribe);
+// boolean followsFromKB = equivalence ? reasoner.isEquivalentClass(description, classToDescribe) : reasoner.isSuperClassOf(description, classToDescribe);
+ boolean followsFromKB = followsFromKB(description);
// workaround due to a bug (see http://sourceforge.net/tracker/?func=detail&aid=2866610&group_id=203619&atid=986319)
// boolean isConsistent = coverage >= 0.999999 || isConsistent(description);
@@ -772,4 +772,8 @@
}
return reasoner.remainsSatisfiable(axiom);
}
+
+ public boolean followsFromKB(Description description) {
+ return equivalence ? reasoner.isEquivalentClass(description, classToDescribe) : reasoner.isSuperClassOf(description, classToDescribe);
+ }
}
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosNeg.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosNeg.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosNeg.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -44,6 +44,7 @@
*/
public class EvaluatedDescriptionPosNeg extends EvaluatedDescription {
+ private static final long serialVersionUID = -6962185910615506968L;
private ScorePosNeg score2;
/**
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosOnly.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosOnly.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/EvaluatedDescriptionPosOnly.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -31,6 +31,7 @@
*/
public class EvaluatedDescriptionPosOnly extends EvaluatedDescription {
+ private static final long serialVersionUID = 4014754537024635033L;
private ScorePosOnly score2;
public EvaluatedDescriptionPosOnly(Description description, ScorePosOnly score) {
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLPStrict.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLPStrict.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/PosNegLPStrict.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -84,7 +84,6 @@
* @see org.dllearner.core.Component#applyConfigEntry(org.dllearner.core.ConfigEntry)
*/
@Override
- @SuppressWarnings( { "unchecked" })
public <T> void applyConfigEntry(ConfigEntry<T> entry) throws InvalidConfigOptionValueException {
super.applyConfigEntry(entry);
String name = entry.getOptionName();
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosNeg.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosNeg.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosNeg.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -34,6 +34,7 @@
*/
public abstract class ScorePosNeg extends Score {
+ private static final long serialVersionUID = -4646131678864109469L;
public abstract double getScoreValue();
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosOnly.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosOnly.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/ScorePosOnly.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -30,6 +30,8 @@
*/
public class ScorePosOnly extends Score {
+ private static final long serialVersionUID = 2191608162129054464L;
+
private Set<Individual> coveredInstances;
private Set<Individual> notCoveredPositives;
private Set<Individual> additionalInstances;
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/ScoreThreeValued.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/ScoreThreeValued.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/ScoreThreeValued.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -41,6 +41,8 @@
*/
public class ScoreThreeValued extends ScorePosNeg {
+ private static final long serialVersionUID = -1780084688122949685L;
+
public enum ScoreMethod {POSITIVE, FULL};
// configuration options
Modified: trunk/src/dl-learner/org/dllearner/learningproblems/ScoreTwoValued.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/learningproblems/ScoreTwoValued.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/learningproblems/ScoreTwoValued.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -38,7 +38,9 @@
*/
public class ScoreTwoValued extends ScorePosNeg {
- private Set<Individual> posAsPos;
+ private static final long serialVersionUID = 6264873890324824550L;
+
+ private Set<Individual> posAsPos;
private Set<Individual> posAsNeg;
private Set<Individual> negAsPos;
private Set<Individual> negAsNeg;
Modified: trunk/src/dl-learner/org/dllearner/utilities/owl/EvaluatedDescriptionSet.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/owl/EvaluatedDescriptionSet.java 2010-02-10 10:48:19 UTC (rev 2002)
+++ trunk/src/dl-learner/org/dllearner/utilities/owl/EvaluatedDescriptionSet.java 2010-02-10 10:50:42 UTC (rev 2003)
@@ -89,6 +89,10 @@
return set.size()==0 ? null : set.last();
}
+ public double getBestAccuracy() {
+ return set.size()==0 ? Double.NEGATIVE_INFINITY : set.last().getAccuracy();
+ }
+
public EvaluatedDescription getWorst() {
return set.size()==0 ? null : set.first();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-10 13:08:35
|
Revision: 2005
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2005&view=rev
Author: jenslehmann
Date: 2010-02-10 12:19:56 +0000 (Wed, 10 Feb 2010)
Log Message:
-----------
- implemented CELOE option to reuse an existing definition for learning a new one
(involves using upward refinement to detect an appropriate start class)
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java
trunk/src/dl-learner/org/dllearner/core/SchemaReasoner.java
trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
Modified: trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-10 11:57:19 UTC (rev 2004)
+++ trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-10 12:19:56 UTC (rev 2005)
@@ -50,6 +50,7 @@
import org.dllearner.learningproblems.PosNegLP;
import org.dllearner.learningproblems.PosNegLPStandard;
import org.dllearner.learningproblems.PosOnlyLP;
+import org.dllearner.refinementoperators.OperatorInverter;
import org.dllearner.refinementoperators.RefinementOperator;
import org.dllearner.refinementoperators.RhoDRDown;
import org.dllearner.utilities.Helper;
@@ -219,15 +220,51 @@
// capture all instances), but owl:Thing for learning subclasses (since it is
// superfluous to add super classes in this case)
if(isEquivalenceProblem) {
- Set<Description> superClasses = reasoner.getClassHierarchy().getSuperClasses(classToDescribe);
- if(superClasses.size() > 1) {
- startClass = new Intersection(new LinkedList<Description>(superClasses));
- } else if(superClasses.size() == 1){
- startClass = (Description) superClasses.toArray()[0];
+ Set<Description> existingDefinitions = reasoner.getAssertedDefinitions(classToDescribe);
+ if(configurator.getReuseExistingDescription() && (existingDefinitions.size() > 0)) {
+ // the existing definition is reused, which in the simplest case means to
+ // use it as a start class or, if it is already too specific, generalise it
+
+ // pick the longest existing definition as candidate
+ Description existingDefinition = null;
+ int highestLength = 0;
+ for(Description exDef : existingDefinitions) {
+ if(exDef.getLength() > highestLength) {
+ existingDefinition = exDef;
+ highestLength = exDef.getLength();
+ }
+ }
+
+ LinkedList<Description> startClassCandidates = new LinkedList<Description>();
+ startClassCandidates.add(existingDefinition);
+ ((RhoDRDown)operator).setDropDisjuncts(true);
+ RefinementOperator upwardOperator = new OperatorInverter(operator);
+
+ // use upward refinement until we find an appropriate start class
+ boolean startClassFound = false;
+ do {
+ Description candidate = startClassCandidates.pollFirst();
+ if(((ClassLearningProblem)learningProblem).getRecall(candidate)<1.0) {
+ // add upward refinements to list
+ startClassCandidates.addAll(upwardOperator.refine(candidate, candidate.getLength()));
+ } else {
+ startClassFound = true;
+ }
+ } while(!startClassFound);
+
+ ((RhoDRDown)operator).setDropDisjuncts(false);
+
} else {
- startClass = Thing.instance;
- logger.warn(classToDescribe + " is equivalent to owl:Thing. Usually, it is not " +
- "sensible to learn a description in this case.");
+ Set<Description> superClasses = reasoner.getClassHierarchy().getSuperClasses(classToDescribe);
+ if(superClasses.size() > 1) {
+ startClass = new Intersection(new LinkedList<Description>(superClasses));
+ } else if(superClasses.size() == 1){
+ startClass = (Description) superClasses.toArray()[0];
+ } else {
+ startClass = Thing.instance;
+ logger.warn(classToDescribe + " is equivalent to owl:Thing. Usually, it is not " +
+ "sensible to learn a description in this case.");
+ }
}
}
} else if(learningProblem instanceof PosOnlyLP) {
Modified: trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java 2010-02-10 11:57:19 UTC (rev 2004)
+++ trunk/src/dl-learner/org/dllearner/core/ReasonerComponent.java 2010-02-10 12:19:56 UTC (rev 2005)
@@ -263,6 +263,21 @@
}
@Override
+ public Set<Description> getAssertedDefinitions(NamedClass namedClass) {
+ try {
+ return getAssertedDefinitionsImpl(namedClass);
+ } catch (ReasoningMethodUnsupportedException e) {
+ handleExceptions(e);
+ return null;
+ }
+ }
+
+ protected Set<Description> getAssertedDefinitionsImpl(NamedClass namedClass)
+ throws ReasoningMethodUnsupportedException {
+ throw new ReasoningMethodUnsupportedException();
+ }
+
+ @Override
public final Set<Description> isSuperClassOf(Set<Description> superConcepts,
Description subConcept) {
reasoningStartTimeTmp = System.nanoTime();
Modified: trunk/src/dl-learner/org/dllearner/core/SchemaReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/SchemaReasoner.java 2010-02-10 11:57:19 UTC (rev 2004)
+++ trunk/src/dl-learner/org/dllearner/core/SchemaReasoner.java 2010-02-10 12:19:56 UTC (rev 2005)
@@ -94,6 +94,13 @@
public boolean isEquivalentClass(Description class1, Description class2);
/**
+ * Returns all asserted owl:equivalence class axioms for the given class.
+ * @param namedClass A named class in the background knowledge.
+ * @return A set of descriptions asserted to be equal to the named class.
+ */
+ public Set<Description> getAssertedDefinitions(NamedClass namedClass);
+
+ /**
* Checks which of <code>superClasses</code> are super classes of <code>subClass</code>
* @param superClasses A set of (supposed) super classes.
* @param subClasses The (supposed) sub class.
Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-10 11:57:19 UTC (rev 2004)
+++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-10 12:19:56 UTC (rev 2005)
@@ -1111,9 +1111,10 @@
* @param nc the class
* @return the asserted class definitions
*/
- public Set<Description> getAssertedDefinitions(NamedClass nc){
+ @Override
+ public Set<Description> getAssertedDefinitionsImpl(NamedClass nc){
OWLClass owlClass = OWLAPIDescriptionConvertVisitor.getOWLDescription(nc).asOWLClass();
- Set<OWLDescription> OWLAPIDefinitions = owlClass.getEquivalentClasses(new HashSet<OWLOntology>(owlAPIOntologies));
+ Set<OWLDescription> owlAPIDefinitions = owlClass.getEquivalentClasses(new HashSet<OWLOntology>(owlAPIOntologies));
// TODO converting to DL-Learner format
Set<Description> definitions = new HashSet<Description>();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-10 14:16:33
|
Revision: 2008
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2008&view=rev
Author: jenslehmann
Date: 2010-02-10 14:16:26 +0000 (Wed, 10 Feb 2010)
Log Message:
-----------
some bugfixes
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java
trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java
trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java
trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java
Modified: trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-10 13:04:33 UTC (rev 2007)
+++ trunk/src/dl-learner/org/dllearner/algorithms/celoe/CELOE.java 2010-02-10 14:16:26 UTC (rev 2008)
@@ -21,6 +21,7 @@
import java.text.DecimalFormat;
import java.util.Collection;
+import java.util.Collections;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
@@ -206,8 +207,6 @@
filterFollowsFromKB = configurator.getFilterDescriptionsFollowingFromKB()
&& isClassLearningProblem;
- System.out.println("filter follows from KB: " + filterFollowsFromKB);
-
// actions specific to ontology engineering
if(isClassLearningProblem) {
ClassLearningProblem problem = (ClassLearningProblem) learningProblem;
@@ -242,16 +241,34 @@
// use upward refinement until we find an appropriate start class
boolean startClassFound = false;
+ Description candidate;
do {
- Description candidate = startClassCandidates.pollFirst();
+ candidate = startClassCandidates.pollFirst();
if(((ClassLearningProblem)learningProblem).getRecall(candidate)<1.0) {
// add upward refinements to list
- startClassCandidates.addAll(upwardOperator.refine(candidate, candidate.getLength()));
+ Set<Description> refinements = upwardOperator.refine(candidate, candidate.getLength());
+// System.out.println("ref: " + refinements);
+ LinkedList<Description> refinementList = new LinkedList<Description>(refinements);
+// Collections.reverse(refinementList);
+// System.out.println("list: " + refinementList);
+ startClassCandidates.addAll(refinementList);
+// System.out.println("candidates: " + startClassCandidates);
} else {
startClassFound = true;
}
} while(!startClassFound);
+ startClass = candidate;
+ if(startClass.equals(existingDefinition)) {
+ logger.info("Reusing existing description " + startClass.toManchesterSyntaxString(baseURI, prefixes) + " as start class for learning algorithm.");
+ } else {
+ logger.info("Generalised existing description " + existingDefinition.toManchesterSyntaxString(baseURI, prefixes) + " to " + startClass.toManchesterSyntaxString(baseURI, prefixes) + ", which is used as start class for the learning algorithm.");
+ }
+
+// System.out.println("start class: " + startClass);
+// System.out.println("existing def: " + existingDefinition);
+// System.out.println(reasoner.getIndividuals(existingDefinition));
+
((RhoDRDown)operator).setDropDisjuncts(false);
} else {
Modified: trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-02-10 13:04:33 UTC (rev 2007)
+++ trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-02-10 14:16:26 UTC (rev 2008)
@@ -1059,4 +1059,9 @@
return rc.remainsSatisfiableImpl(axiom);
}
+ @Override
+ protected Set<Description> getAssertedDefinitionsImpl(NamedClass nc) {
+ return rc.getAssertedDefinitionsImpl(nc);
+ }
+
}
Modified: trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-10 13:04:33 UTC (rev 2007)
+++ trunk/src/dl-learner/org/dllearner/reasoning/OWLAPIReasoner.java 2010-02-10 14:16:26 UTC (rev 2008)
@@ -66,6 +66,7 @@
import org.dllearner.kb.OWLFile;
import org.dllearner.kb.sparql.SparqlKnowledgeSource;
import org.dllearner.utilities.owl.ConceptComparator;
+import org.dllearner.utilities.owl.DLLearnerDescriptionConvertVisitor;
import org.dllearner.utilities.owl.OWLAPIAxiomConvertVisitor;
import org.dllearner.utilities.owl.OWLAPIConverter;
import org.dllearner.utilities.owl.OWLAPIDescriptionConvertVisitor;
@@ -1112,16 +1113,14 @@
* @return the asserted class definitions
*/
@Override
- public Set<Description> getAssertedDefinitionsImpl(NamedClass nc){
+ protected Set<Description> getAssertedDefinitionsImpl(NamedClass nc){
OWLClass owlClass = OWLAPIDescriptionConvertVisitor.getOWLDescription(nc).asOWLClass();
- Set<OWLDescription> owlAPIDefinitions = owlClass.getEquivalentClasses(new HashSet<OWLOntology>(owlAPIOntologies));
-
- // TODO converting to DL-Learner format
+ Set<OWLDescription> owlAPIDescriptions = owlClass.getEquivalentClasses(new HashSet<OWLOntology>(owlAPIOntologies));
Set<Description> definitions = new HashSet<Description>();
-
+ for(OWLDescription owlAPIDescription : owlAPIDescriptions) {
+ definitions.add(DLLearnerDescriptionConvertVisitor.getDLLearnerDescription(owlAPIDescription));
+ }
return definitions;
-
}
-
}
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java 2010-02-10 13:04:33 UTC (rev 2007)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/OperatorInverter.java 2010-02-10 14:16:26 UTC (rev 2008)
@@ -60,13 +60,16 @@
@Override
public Set<Description> refine(Description description, int maxLength) {
Description negatedDescription = getNegation(description);
+// System.out.println("negated description: " + negatedDescription);
// concept length can change because of the conversion process; as a heuristic
// we increase maxLength by the length difference of negated and original concept
int lengthDiff = Math.max(0, negatedDescription.getLength() - description.getLength());
- Set<Description> refinements = operator.refine(negatedDescription, maxLength+lengthDiff);
+ Set<Description> refinements = operator.refine(negatedDescription, maxLength+lengthDiff+1);
+// System.out.println("refinv: " + refinements);
TreeSet<Description> results = new TreeSet<Description>(cc);
for(Description d : refinements) {
Description dNeg = getNegation(d);
+// System.out.println("dNeg: " + dNeg);
// to satisfy the guarantee that the method does not return longer
// concepts, we perform an additional check
if(!guaranteeLength || dNeg.getLength() <= maxLength) {
Modified: trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java 2010-02-10 13:04:33 UTC (rev 2007)
+++ trunk/src/dl-learner/org/dllearner/test/junit/RefinementOperatorTests.java 2010-02-10 14:16:26 UTC (rev 2008)
@@ -189,6 +189,19 @@
}
@Test
+ public void rhoDRDownTest5() throws ParseException, LearningProblemUnsupportedException {
+ ReasonerComponent rs = TestOntologies.getTestOntology(TestOntology.SWORE);
+ RefinementOperator operator = new RhoDRDown(rs);
+// Description concept = KBParser.parseConcept("((NOT \"http://ns.softwiki.de/req/Requirement\") OR (ALL \"http://ns.softwiki.de/req/isCreatedBy\".(NOT \"http://ns.softwiki.de/req/Creditor\")))");
+ Description concept = KBParser.parseConcept("(NOT \"http://ns.softwiki.de/req/Requirement\" OR ALL \"http://ns.softwiki.de/req/isCreatedBy\".NOT \"http://ns.softwiki.de/req/Creditor\")");
+ System.out.println(concept);
+ Set<Description> refinements = operator.refine(concept, 7);
+ for(Description refinement : refinements) {
+ System.out.println(refinement);
+ }
+ }
+
+ @Test
public void invertedOperatorTest() throws ParseException {
ReasonerComponent rs = TestOntologies.getTestOntology(TestOntology.RHO1);
RhoDRDown rho = new RhoDRDown(rs);
Modified: trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java 2010-02-10 13:04:33 UTC (rev 2007)
+++ trunk/src/dl-learner/org/dllearner/test/junit/TestOntologies.java 2010-02-10 14:16:26 UTC (rev 2008)
@@ -41,7 +41,7 @@
*/
public final class TestOntologies {
- public enum TestOntology { EMPTY, SIMPLE, SIMPLE_NO_DR, SIMPLE_NO_DISJOINT, SIMPLE_NO_DR_DISJOINT, SIMPLE2, SIMPLE3, R1SUBR2, DATA1, FIVE_ROLES, FATHER_OE, CARCINOGENESIS, EPC_OE, KRK_ZERO_ONE, DBPEDIA_OWL, TRAINS_OWL, RHO1 };
+ public enum TestOntology { EMPTY, SIMPLE, SIMPLE_NO_DR, SIMPLE_NO_DISJOINT, SIMPLE_NO_DR_DISJOINT, SIMPLE2, SIMPLE3, R1SUBR2, DATA1, FIVE_ROLES, FATHER_OE, CARCINOGENESIS, EPC_OE, KRK_ZERO_ONE, DBPEDIA_OWL, TRAINS_OWL, RHO1, SWORE };
public static ReasonerComponent getTestOntology(TestOntology ont) {
String kbString = "";
@@ -130,6 +130,8 @@
owlFile = "/home/jl/promotion/ontologien/dbpedia.owl";
} else if(ont.equals(TestOntology.TRAINS_OWL)) {
owlFile = "examples/cross-benchmark/trains/trains.owl";
+ } else if(ont.equals(TestOntology.SWORE)) {
+ owlFile = "examples/swore/swore.rdf";
}
try {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-11 13:53:54
|
Revision: 2017
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2017&view=rev
Author: kurzum
Date: 2010-02-11 13:53:47 +0000 (Thu, 11 Feb 2010)
Log Message:
-----------
saw that option dissolveBlankNodes did not work in SPARQL component, fixed it
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java
trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java
trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java
trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java
trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java
trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java
trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java
trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java
trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java
trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java
trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java
trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java
Modified: trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/aquisitors/TupleAquisitor.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -45,8 +45,19 @@
protected int mode = 0;
protected boolean uriDebugCheck = true;
- protected boolean dissolveBlankNodes = false;
+
+ public boolean dissolveBlankNodes = false;
+
+ /**
+ * this function is still used somewhere, but should be replaced
+ * @return
+ */
+ @Deprecated
+ public boolean isDissolveBlankNodes(){
+ return dissolveBlankNodes;
+ }
+
public final SortedSet<RDFNodeTuple> getTupelForResource(String uri){
checkURIforValidity(uri);
@@ -94,12 +105,6 @@
}
return true;
}
- public boolean isDissolveBlankNodes() {
- return dissolveBlankNodes;
- }
- public void setDissolveBlankNodes(boolean dissolveBlankNodes) {
- this.dissolveBlankNodes = dissolveBlankNodes;
- }
}
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/BlankNode.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -80,7 +80,7 @@
@Override
public List<BlankNode> expandProperties(TupleAquisitor TupelAquisitor,
- Manipulator manipulator) {
+ Manipulator manipulator, boolean dissolveBlankNodes) {
return new ArrayList<BlankNode>();
}
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/ClassNode.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -114,7 +114,7 @@
// gets the types for properties recursively
@Override
- public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) {
+ public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator, boolean dissolveBlankNodes) {
return new ArrayList<BlankNode>();
}
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/Configuration.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -66,6 +66,8 @@
this.breakSuperClassesAfter = breakSuperClassesAfter;
this.dissolveBlankNodes = dissolveBlankNodes;
+ this.tupelAquisitor.dissolveBlankNodes = dissolveBlankNodes;
+
this.owlAPIOntologyCollector = new OWLAPIOntologyCollector();
}
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/DatatypePropertyNode.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -64,7 +64,7 @@
// gets the types for properties recursively
@Override
- public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) {
+ public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator, boolean dissolveBlankNodes) {
List<BlankNode> ret = new ArrayList<BlankNode>();
//ret.addAll(b.expandProperties(tupelAquisitor, manipulator));
SortedSet<RDFNodeTuple> newTypes = tupelAquisitor.getTupelForResource(uri);
@@ -77,7 +77,7 @@
}
}else if(tuple.b.isAnon()){
- if(tupelAquisitor.isDissolveBlankNodes()){
+ if(dissolveBlankNodes){
RDFBlankNode n = (RDFBlankNode) tuple.b;
BlankNode tmp = new BlankNode( n, tuple.a.toString());
//add it to the graph
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/ExtractionAlgorithm.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -85,8 +85,6 @@
*
*/
public Node expandNode(String uri, TupleAquisitor tupleAquisitor) {
- tupleAquisitor.setDissolveBlankNodes(configuration.isDissolveBlankNodes());
-
SimpleClock sc = new SimpleClock();
if(tupleAquisitor instanceof SparqlTupleAquisitorImproved){
((SparqlTupleAquisitorImproved)tupleAquisitor).removeFromCache(uri);
@@ -155,7 +153,7 @@
if(stopCondition()){
break;
}
- collectNodes.addAll(node.expandProperties(tupleAquisitor, configuration.getManipulator()));
+ collectNodes.addAll(node.expandProperties(tupleAquisitor, configuration.getManipulator(), configuration.isDissolveBlankNodes()));
}
List<DatatypePropertyNode> datatypeProperties = getDatatypeProperties(collectNodes);
logger.info("Get info for "+datatypeProperties.size() + " datatypeProperties");
@@ -163,13 +161,13 @@
if(stopCondition()){
break;
}
- collectNodes.addAll(node.expandProperties(tupleAquisitor, configuration.getManipulator()));
+ collectNodes.addAll(node.expandProperties(tupleAquisitor, configuration.getManipulator(), configuration.isDissolveBlankNodes()));
}
m.stop();
}
Monitor m = JamonMonitorLogger.getTimeMonitor(ExtractionAlgorithm.class, "TimeBlankNode").start();
- if( configuration.isDissolveBlankNodes()&& !stopCondition()){
+ if( configuration.isDissolveBlankNodes() && !stopCondition()){
expandBlankNodes(getBlankNodes(collectNodes),tupleAquisitor);
}
m.stop();
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -144,14 +144,14 @@
// gets the types for properties recursively
@Override
- public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) {
+ public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator, boolean dissolveBlankNodes) {
List<BlankNode> ret = new ArrayList<BlankNode>();
for (ObjectPropertyNode one : objectProperties) {
- ret.addAll(one.expandProperties(tupelAquisitor, manipulator));
+ ret.addAll(one.expandProperties(tupelAquisitor, manipulator, dissolveBlankNodes));
}
for (DatatypePropertyNode one : datatypeProperties) {
- ret.addAll(one.expandProperties(tupelAquisitor, manipulator));
+ ret.addAll(one.expandProperties(tupelAquisitor, manipulator, dissolveBlankNodes));
}
return ret;
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/LiteralNode.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -70,7 +70,7 @@
// gets the types for properties recursively
@Override
- public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) {
+ public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator, boolean dissolveBlankNodes) {
return new ArrayList<BlankNode>();
}
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/Node.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -66,7 +66,7 @@
* @param manipulator
*/
public abstract List<BlankNode> expandProperties(
- TupleAquisitor TupelAquisitor, Manipulator manipulator);
+ TupleAquisitor TupelAquisitor, Manipulator manipulator, boolean dissolveBlankNodes);
/**
* output
Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/extraction/ObjectPropertyNode.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -68,9 +68,9 @@
// gets the types for properties recursively
@Override
- public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator) {
+ public List<BlankNode> expandProperties(TupleAquisitor tupelAquisitor, Manipulator manipulator, boolean dissolveBlankNodes) {
List<BlankNode> ret = new ArrayList<BlankNode>();
- ret.addAll(b.expandProperties(tupelAquisitor, manipulator));
+ ret.addAll(b.expandProperties(tupelAquisitor, manipulator, dissolveBlankNodes));
SortedSet<RDFNodeTuple> newTypes = tupelAquisitor.getTupelForResource(uri);
for (RDFNodeTuple tuple : newTypes) {
try {
@@ -81,7 +81,7 @@
}
}else if(tuple.b.isAnon()){
- if(tupelAquisitor.isDissolveBlankNodes()){
+ if(dissolveBlankNodes){
RDFBlankNode n = (RDFBlankNode) tuple.b;
BlankNode tmp = new BlankNode( n, tuple.a.toString());
//add it to the graph
Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -77,14 +77,9 @@
private ProgressMonitor mon;
- private static final boolean debug = false;
-
- //private static final boolean threaded = debug && true ;
+ private static final boolean debugExitAfterExtraction = false; // switches
- // sysex
- private static final boolean debugExitAfterExtraction = debug && false; // switches
-
private SparqlKnowledgeSourceConfigurator configurator;
/**
@@ -478,7 +473,6 @@
ret = new SparqlTupleAquisitor(getSparqlQueryMaker(),
getSPARQLTasks());
}
- ret.setDissolveBlankNodes(configurator.getDissolveBlankNodes());
return ret;
}
@@ -518,27 +512,6 @@
this.mon = mon;
}
- /*
- * public static void main(String[] args) throws MalformedURLException {
- * String query = "SELECT ?pred ?obj\n" + "WHERE {<http://dbpedia.org/resource/Leipzig>
- * ?pred ?obj}"; URL url = new
- * URL("http://dbpedia.openlinksw.com:8890/sparql"); SparqlEndpoint sse =
- * new SparqlEndpoint(url); SparqlQuery q = new SparqlQuery(query, sse);
- * String[][] array = q.getAsStringArray(); for (int i = 0; i <
- * array.length; i++) { for (int j = 0; j < array[0].length; j++)
- * System.out.print(array[i][j] + " "); System.out.println(); } }
- */
+
- /*
- * SparqlOntologyCollector oc= // new
- * SparqlOntologyCollector(Datastructures.setToArray(instances), //
- * numberOfRecursions, filterMode, //
- * Datastructures.setToArray(predList),Datastructures.setToArray(
- * objList),Datastructures.setToArray(classList),format,url,useLits);
- * //HashMap<String, String> parameters = new HashMap<String, String>();
- * //parameters.put("default-graph-uri", "http://dbpedia.org");
- * //parameters.put("format", "application/sparql-results.xml");
- *
- */
-
}
Modified: trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java 2010-02-11 13:53:20 UTC (rev 2016)
+++ trunk/src/dl-learner/org/dllearner/tools/ore/SPARQLTest.java 2010-02-11 13:53:47 UTC (rev 2017)
@@ -27,11 +27,8 @@
import org.dllearner.kb.sparql.SPARQLTasks;
import org.dllearner.kb.sparql.SparqlEndpoint;
import org.dllearner.kb.sparql.SparqlKnowledgeSource;
-import org.dllearner.kb.sparql.SparqlQuery;
import org.dllearner.utilities.datastructures.SetManipulation;
-import com.hp.hpl.jena.query.ResultSetRewindable;
-
/**
* Test class for SPARQL mode.
*
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-12 07:23:40
|
Revision: 2018
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2018&view=rev
Author: kurzum
Date: 2010-02-12 07:23:34 +0000 (Fri, 12 Feb 2010)
Log Message:
-----------
added ValueKBParserTest hasValue can not be parsed...
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/test/ValueKBParserTest.java
Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-11 13:53:47 UTC (rev 2017)
+++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-12 07:23:34 UTC (rev 2018)
@@ -150,6 +150,10 @@
public void setLimit(int limit) {
this.limit = limit;
}
+
+ public void noLimit() {
+ this.limit = -1;
+ }
public void setLabels(boolean labels) {
this.labels = labels;
@@ -224,7 +228,8 @@
s.add("(\"http://dbpedia.org/class/yago/HeadOfState110164747\" AND (\"http://dbpedia.org/class/yago/Negotiator110351874\" AND \"http://dbpedia.org/class/yago/Representative110522035\"))");
s.clear();
- s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (EXISTS \"http://nlp2rdf.org/ontology/syntaxTreeHasPart\".\"http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Pronoun\" AND EXISTS \"http://nlp2rdf.org/ontology/syntaxTreeHasPart\".\"http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag\"))");
+// s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (EXISTS \"http://nlp2rdf.org/ontology/syntaxTreeHasPart\".\"http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Pronoun\" AND EXISTS \"http://nlp2rdf.org/ontology/syntaxTreeHasPart\".\"http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag\"))");
+ s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (\"http://nlp2rdf.org/ontology/hasLemma\" VALUE \"test\" )");
// <http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag>
String query = "";
Added: trunk/src/dl-learner/org/dllearner/test/ValueKBParserTest.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/ValueKBParserTest.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/test/ValueKBParserTest.java 2010-02-12 07:23:34 UTC (rev 2018)
@@ -0,0 +1,22 @@
+package org.dllearner.test;
+
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.dllearner.parser.KBParser;
+import org.dllearner.parser.ParseException;
+
+public class ValueKBParserTest {
+ public static void main(String[] args) {
+ SortedSet<String> s = new TreeSet<String>();
+ s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (\"http://nlp2rdf.org/ontology/hasLemma\" value test )");
+
+ for (String kbsyntax : s) {
+ try {
+ KBParser.parseConcept(kbsyntax);
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+}
Modified: trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java 2010-02-11 13:53:47 UTC (rev 2017)
+++ trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java 2010-02-12 07:23:34 UTC (rev 2018)
@@ -22,7 +22,6 @@
import java.io.FileWriter;
import java.text.DecimalFormat;
import java.util.Collection;
-import java.util.Set;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -37,8 +36,8 @@
public class Examples {
private static final Logger logger = Logger.getLogger(Examples.class);
- private final SortedSet<String> positiveExamples = new TreeSet<String>();
- private final SortedSet<String> negativeExamples = new TreeSet<String>();
+// private final SortedSet<String> positiveExamples = new TreeSet<String>();
+// private final SortedSet<String> negativeExamples = new TreeSet<String>();
private final SortedSet<String> posTrain = new TreeSet<String>();
private final SortedSet<String> negTrain = new TreeSet<String>();
private final SortedSet<String> posTest = new TreeSet<String>();
@@ -53,56 +52,64 @@
this.addNegTest(negTest);
}
- public void remove(Set<String> remove) {
- for (String string : remove) {
- positiveExamples.remove(string);
- negativeExamples.remove(string);
- }
+// public void remove(Set<String> remove) {
+// for (String string : remove) {
+// positiveExamples.remove(string);
+// negativeExamples.remove(string);
+// }
+// }
+
+ private void _remove(String toBeRemoved ){
+ posTrain.remove(toBeRemoved);
+ negTrain.remove(toBeRemoved);
+ posTest.remove(toBeRemoved);
+ negTest.remove(toBeRemoved);
}
-
+ private void _removeAll(Collection<String> toBeRemoved){
+ posTrain.removeAll(toBeRemoved);
+ negTrain.removeAll(toBeRemoved);
+ posTest.removeAll(toBeRemoved);
+ negTest.removeAll(toBeRemoved);
+ }
+
public void addPosTrain(Collection<String> pos) {
- positiveExamples.addAll(pos);
+ _removeAll(pos);
posTrain.addAll(pos);
}
-
+ public void addPosTest(Collection<String> pos) {
+ _removeAll(pos);
+ posTest.addAll(pos);
+ }
+ public void addNegTrain(Collection<String> neg) {
+ _removeAll(neg);
+ negTrain.addAll(neg);
+ }
+ public void addNegTest(Collection<String> neg) {
+ _removeAll(neg);
+ negTest.addAll(neg);
+ }
+
+
public void addPosTrain(String pos) {
- positiveExamples.add(pos);
+ _remove(pos);
posTrain.add(pos);
}
-
- public void addPosTest(Collection<String> pos) {
- positiveExamples.addAll(pos);
- posTest.addAll(pos);
- }
-
public void addPosTest(String pos) {
- positiveExamples.add(pos);
+ _remove(pos);
posTest.add(pos);
}
-
- public void addNegTrain(Collection<String> neg) {
- negativeExamples.addAll(neg);
- negTrain.addAll(neg);
- }
-
public void addNegTrain(String neg) {
- negativeExamples.add(neg);
+ _remove(neg);
negTrain.add(neg);
}
-
- public void addNegTest(Collection<String> neg) {
- negativeExamples.addAll(neg);
- negTest.addAll(neg);
- }
-
public void addNegTest(String neg) {
- negativeExamples.add(neg);
+ _remove(neg);
negTest.add(neg);
}
public boolean checkConsistency() {
- for (String one : positiveExamples) {
- if (negativeExamples.contains(one)) {
+ for (String one : posTrain) {
+ if (negTrain.contains(one)) {
logger.error("positve and negative example overlap " + one);
return false;
}
@@ -112,8 +119,18 @@
@Override
public String toString() {
+ String ret = "Total: " + size();
+ double posPercent = posTrain.size() / (double) posSize();
+ double negPercent = negTrain.size() / (double) negSize();
+ ret += "\nPositive: " + posTrain.size() + " | " + posTest.size() + " ("
+ + DecimalFormat.getPercentInstance().format(posPercent) + ")";
+ ret += "\nNegative: " + negTrain.size() + " | " + negTest.size() + " ("
+ + DecimalFormat.getPercentInstance().format(negPercent) + ")";
- int total = (positiveExamples.size() + negativeExamples.size());
+ return ret;
+ }
+
+ public String toFullString() {
String ret = "Training:\n";
for (String one : posTrain) {
@@ -130,15 +147,8 @@
ret += "-" + one + "\n";
}
- ret += "\nTotal: " + total;
- double posPercent = posTrain.size() / (double) positiveExamples.size();
- double negPercent = negTrain.size() / (double) negativeExamples.size();
- ret += "\nPositive: " + posTrain.size() + " | " + posTest.size() + " ("
- + DecimalFormat.getPercentInstance().format(posPercent) + ")";
- ret += "\nNegative: " + negTrain.size() + " | " + negTest.size() + " ("
- + DecimalFormat.getPercentInstance().format(negPercent) + ")";
-
- return ret;
+ return ret+this.toString();
+
}
public void writeExamples(String filename) {
@@ -158,12 +168,28 @@
}
}
+ public int size(){
+ return posTrain.size()+negTrain.size()+posTest.size()+negTest.size();
+ }
+ public int posSize(){
+ return posTrain.size()+posTest.size();
+ }
+ public int negSize(){
+ return negTrain.size()+negTest.size();
+ }
+
public SortedSet<String> getPositiveExamples() {
- return positiveExamples;
+ SortedSet<String> total = new TreeSet<String>();
+ total.addAll(posTrain);
+ total.addAll(posTest);
+ return total;
}
public SortedSet<String> getNegativeExamples() {
- return negativeExamples;
+ SortedSet<String> total = new TreeSet<String>();
+ total.addAll(negTrain);
+ total.addAll(negTest);
+ return total;
}
public SortedSet<String> getPosTrain() {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-12 10:47:46
|
Revision: 2021
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2021&view=rev
Author: jenslehmann
Date: 2010-02-12 10:47:37 +0000 (Fri, 12 Feb 2010)
Log Message:
-----------
added documentation to ontology checker and allow to display relevant classes (optional)
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-12 10:12:25 UTC (rev 2020)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-12 10:47:37 UTC (rev 2021)
@@ -279,7 +279,7 @@
for(Individual i : opMap.keySet()) {
if(opMap.get(i) >= frequencyThreshold) {
frequentInds.add(i);
- break;
+// break;
}
}
frequentValues.put(op, frequentInds);
Modified: trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java 2010-02-12 10:12:25 UTC (rev 2020)
+++ trunk/src/dl-learner/org/dllearner/scripts/evaluation/OntologyChecker.java 2010-02-12 10:47:37 UTC (rev 2021)
@@ -1,3 +1,22 @@
+/**
+ * Copyright (C) 2007-2010, Jens Lehmann
+ *
+ * This file is part of DL-Learner.
+ *
+ * DL-Learner is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * DL-Learner is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
package org.dllearner.scripts.evaluation;
import java.io.BufferedReader;
@@ -6,7 +25,6 @@
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URI;
-import java.net.URL;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
@@ -14,11 +32,6 @@
import java.util.Map.Entry;
import org.dllearner.core.ComponentInitException;
-import org.dllearner.core.ComponentManager;
-import org.dllearner.core.ReasonerComponent;
-import org.dllearner.kb.OWLFile;
-import org.dllearner.reasoning.FastInstanceChecker;
-import org.dllearner.reasoning.OWLAPIReasoner;
import org.mindswap.pellet.owlapi.Reasoner;
import org.semanticweb.owl.apibinding.OWLManager;
import org.semanticweb.owl.model.OWLClass;
@@ -26,9 +39,18 @@
import org.semanticweb.owl.model.OWLOntologyCreationException;
import org.semanticweb.owl.model.OWLOntologyManager;
+/**
+ * Takes a file with a list of ontologies as input (one URL per line),
+ * loads the ontology in a reasoner and displays basic data about it.
+ *
+ * @author Lorenz Bühmann
+ * @author Jens Lehmann
+ *
+ */
public class OntologyChecker {
private static int minInstanceCount = 5;
+ private static boolean displayClasses = false;
public static void main(String[] args) throws ComponentInitException, MalformedURLException {
Map<String, Integer> ontologyRelClassCountMap = new HashMap<String, Integer>();
@@ -68,14 +90,19 @@
reasoner.classify();
sb.append("classification time in ms: " + (System.currentTimeMillis() - startTime) + "\n");
int classCount = 0;
+ StringBuffer tmp = new StringBuffer();
if (reasoner.getIndividuals().size() > 0) {
for (OWLClass cl : reasoner.getClasses()) {
if (reasoner.getIndividuals(cl, false).size() >= minInstanceCount) {
classCount++;
+ tmp.append(" " + cl.getURI() + "\n");
}
}
}
sb.append("#classes with min. " + minInstanceCount + " individuals: " + classCount + "\n");
+ if(displayClasses) {
+ sb.append(tmp);
+ }
ontologyRelClassCountMap.put(url, classCount);
} else {
sb.append("Ontology is inconsistent. \n");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-13 13:32:00
|
Revision: 2027
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2027&view=rev
Author: kurzum
Date: 2010-02-13 13:02:53 +0000 (Sat, 13 Feb 2010)
Log Message:
-----------
added a script for iterative learning over tiger data
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
trunk/src/dl-learner/org/dllearner/utilities/examples/ExMakerFixedSize.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/scripts/tiger/
trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/LogHelper.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/PrefixMap.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-13 13:00:12 UTC (rev 2026)
+++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-13 13:02:53 UTC (rev 2027)
@@ -402,6 +402,14 @@
* .DatatypeValueRestriction)
*/
public void visit(DatatypeValueRestriction description) {
+ String current = stack.peek();
+ String property = description.getRestrictedPropertyExpression().toString();
+ String value = description.getValue().toString();
+ System.out.println("here");
+ System.out.println(stack.peek());
+ System.out.println(current);
+ System.out.println(property);
+ System.out.println(value);
logger.trace("DatatypeValueRestriction");
}
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java 2010-02-13 13:02:53 UTC (rev 2027)
@@ -0,0 +1,19 @@
+package org.dllearner.scripts.tiger;
+
+import org.dllearner.utilities.examples.Examples;
+
+public class ExperimentConfig {
+
+
+ public int resultLimit = -1;
+ public int splits = 5;
+ public int initialsplits = 30;
+
+ public int iteration = 1;
+ public int maxExecutionTime = 3;
+
+ public boolean stopCondition(int iteration, Examples learn){
+ return (iteration<this.iteration);
+ }
+
+}
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/LogHelper.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/LogHelper.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/LogHelper.java 2010-02-13 13:02:53 UTC (rev 2027)
@@ -0,0 +1,56 @@
+package org.dllearner.scripts.tiger;
+
+import java.io.IOException;
+
+import org.apache.log4j.ConsoleAppender;
+import org.apache.log4j.FileAppender;
+import org.apache.log4j.Layout;
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
+import org.apache.log4j.PropertyConfigurator;
+
+public class LogHelper {
+
+ public static String log4jConfigFile = "log4j.properties";
+ private static Logger rootLogger = Logger.getRootLogger();
+
+ public static Logger initLoggers() {
+ initHere();
+ return Logger.getRootLogger();
+ // initFile(log4jConfigFile);
+ }
+
+ @SuppressWarnings("unused")
+ private static void initHere() {
+ Layout layout = new PatternLayout();
+ layout = new PatternLayout("%-5p [%C{1}]: %m%n");
+ ConsoleAppender consoleAppender = new ConsoleAppender(layout);
+// consoleAppender.setThreshold(Level.DEBUG);
+
+ Layout layout2 = null;
+ FileAppender fileAppenderNormal = null;
+ String fileName;
+ layout2 = new PatternLayout("%-5p [%C{1}]: %m%n");
+ fileName = "log/log.txt";
+ try {
+ fileAppenderNormal = new FileAppender(layout2, fileName, false);
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+
+ // add both loggers
+ rootLogger.removeAllAppenders();
+ rootLogger.addAppender(consoleAppender);
+ rootLogger.addAppender(fileAppenderNormal);
+ rootLogger.setLevel(Level.DEBUG);
+ }
+
+ @SuppressWarnings("unused")
+ private static void initFile(String log4jConfigFile) {
+
+ System.out.println("Loading log config from file: '" + log4jConfigFile + "'");
+ PropertyConfigurator.configure(log4jConfigFile);
+
+ }
+}
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/PrefixMap.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/PrefixMap.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/PrefixMap.java 2010-02-13 13:02:53 UTC (rev 2027)
@@ -0,0 +1,39 @@
+package org.dllearner.scripts.tiger;
+
+import java.util.HashMap;
+import java.util.Map;
+
+import org.dllearner.core.EvaluatedDescription;
+import org.dllearner.core.owl.Description;
+
+
+public class PrefixMap {
+
+ static String prefix = "http://nlp2rdf.org/ontology/";
+ static Map<String,String> m = getPrefixMap();
+
+ private static Map<String,String> getPrefixMap(){
+ Map<String,String> m = new HashMap<String, String>();
+ m.put("stts", "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#");
+ m.put("tiger", "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#");
+ return m;
+ }
+
+ public static String toKBSyntaxString(EvaluatedDescription d){
+ return toKBSyntaxString(d.getDescription());
+ }
+
+ public static String toKBSyntaxString(Description d){
+ return d.toKBSyntaxString(prefix, m);
+ }
+
+ public static String toManchesterSyntaxString(Description d){
+ return d.toManchesterSyntaxString(prefix, m);
+ }
+
+ public static String toManchesterSyntaxString(EvaluatedDescription d){
+ return toManchesterSyntaxString(d.getDescription());
+ }
+
+
+}
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-13 13:02:53 UTC (rev 2027)
@@ -0,0 +1,380 @@
+package org.dllearner.scripts.tiger;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.dllearner.algorithms.refinement2.ROLComponent2;
+import org.dllearner.algorithms.refinement2.ROLearner2;
+import org.dllearner.core.ComponentPool;
+import org.dllearner.core.EvaluatedDescription;
+import org.dllearner.core.KnowledgeSource;
+import org.dllearner.core.LearningAlgorithm;
+import org.dllearner.core.LearningProblem;
+import org.dllearner.core.ReasonerComponent;
+import org.dllearner.core.configurators.ComponentFactory;
+import org.dllearner.kb.OWLFile;
+import org.dllearner.kb.sparql.Cache;
+import org.dllearner.kb.sparql.SPARQLTasks;
+import org.dllearner.kb.sparql.SparqlEndpoint;
+import org.dllearner.kb.sparql.SparqlKnowledgeSource;
+import org.dllearner.kb.sparql.SparqlQuery;
+import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor;
+import org.dllearner.learningproblems.PosNegLPStandard;
+import org.dllearner.parser.ParseException;
+import org.dllearner.reasoning.FastInstanceChecker;
+import org.dllearner.utilities.Helper;
+import org.dllearner.utilities.JamonMonitorLogger;
+import org.dllearner.utilities.examples.ExMakerFixedSize;
+import org.dllearner.utilities.examples.ExampleDataCollector;
+import org.dllearner.utilities.examples.Examples;
+
+import com.jamonapi.Monitor;
+
+public class TestIterativeLearning {
+ private static final Logger logger = Logger.getLogger(TestIterativeLearning.class);
+
+ static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
+ static String propertiesXML = "files/propertiesOnly.rdf";
+ static String sentenceXMLFolder = "files/tiger/";
+ static String sentenceprefix = "http://nlp2rdf.org/ontology/s";
+ static String prefix = "http://nlp2rdf.org/ontology/";
+
+ static String active = "files/active_all_sentenceNumbers.txt";
+ static String passiveNoZU = "files/passive_noZuInf_sentenceNumbers.txt";
+ static String passiveWithZu = "files/passive_zuInf_sentenceNumbers.txt";
+ static String test_has_pos = "files/test_has_pos.txt";
+ static String test_has_neg = "files/test_has_neg.txt";
+
+ static SparqlEndpoint sparqlEndpoint;
+ static SPARQLTasks sparqlTasks;
+
+ static String sparqlEndpointURL = "http://db0.aksw.org:8893/sparql";
+ static String graph = "http://nlp2rdf.org/tiger";
+ static String rulegraph = "http://nlp2rdf.org/schema/rules1";
+
+
+
+ final static boolean debug = true;
+ //no randomization in examples
+ final static boolean randomizedebug = !debug;
+
+ public static void main(String[] args) {
+ LogHelper.initLoggers();
+ Logger.getLogger(Cache.class).setLevel(Level.INFO);
+ Logger.getLogger(ComponentPool.class).setLevel(Level.INFO);
+ Logger.getLogger(ROLearner2.class).setLevel(Level.TRACE);
+ Logger.getLogger(SparqlQuery.class).setLevel(Level.INFO);
+
+
+
+ try {
+ sparqlEndpoint = new SparqlEndpoint(new URL(sparqlEndpointURL), new ArrayList<String>(Arrays
+ .asList(new String[] { graph })), new ArrayList<String>());
+ sparqlTasks = new SPARQLTasks(Cache.getDefaultCache(), sparqlEndpoint);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Examples allExamples = new Examples();
+ SortedSet<String> positives;
+ SortedSet<String> negatives;
+
+ if(debug) {
+ positives = read(test_has_pos);;
+ negatives = read(test_has_neg);;
+ }else{
+// positives = read(passiveWithZu);
+ positives = read(passiveNoZU);
+ negatives = read(active);
+ }
+ positives = read(passiveNoZU);
+ negatives = read(active);
+ //removing overlap
+ positives.removeAll(negatives);
+ negatives.removeAll(positives);
+
+// System.out.println(Helper.intersection(passiveZuInfSentences, activeSentences));
+// System.out.println(Helper.intersection(passiveZuInfSentences, passiveNoZuSentences));
+// System.out.println(Helper.intersection(activeSentences, passiveNoZuSentences));
+ allExamples.addPosTrain(positives);
+ allExamples.addNegTrain(negatives);
+
+ logger.debug("All examples \n"+allExamples);
+
+ ExperimentConfig config = new ExperimentConfig();
+ firstContact( allExamples, config);
+ //retrieved wird neues Example, als schnittmenge mit all
+ //und den bisher gewaehlten
+ //dann splits auswählen und
+ //pos und neg wieder hinzufuegen
+
+ }
+
+ public static void firstContact(Examples allExamples, ExperimentConfig config){
+ ExMakerFixedSize fs = new ExMakerFixedSize(allExamples, randomizedebug);
+ Examples learn = fs.select(config.initialsplits, config.initialsplits);
+ logger.debug("Intial training set \n"+learn);
+// System.out.println(learn.getPosTrain());
+// System.out.println(learn.getNegTrain());
+// if (true) {
+// System.exit(0);
+// }
+// int size = 0;
+ for(int i = 0 ; config.stopCondition(i, learn) ;i++ ) {
+ /*LEARNING*/
+ EvaluatedDescription ed = learn(learn, config);
+
+ /*RETRIEVING*/
+ SortedSet<String> retrieved = getSentences(ed, config.resultLimit);
+ logger.debug("Retrieved "+retrieved.size()+" sentences");
+
+
+ /*MASHING*/
+ //Menge aller positiven geschn. mit den gefundenen
+ SortedSet<String> posAsPos = Helper.intersection(retrieved, allExamples.getPosTrain());
+ logger.debug("Number of retrieved positives: "+posAsPos.size());
+ logger.debug("Number of total positives: "+allExamples.getPosTrain().size());
+ precision( posAsPos.size(), retrieved.size());
+
+ //Menge aller positiven geschn. mit den gefundenen
+ recall( posAsPos.size(),allExamples.getPosTrain().size());
+
+ SortedSet<String> negAsPos = Helper.intersection(retrieved, allExamples.getNegTrain());
+ logger.debug("Number of retrieved negatives: "+negAsPos.size());
+ logger.debug("Total: "+posAsPos.size()+" + "+negAsPos.size() +" = "+retrieved.size());
+
+// if(retrieved.size()!=(posAsPos.size()+negAsPos.size())){
+// logger.warn("sets are wrong");
+// System.exit(0);
+// }
+
+ Examples newlyFound = new Examples();
+ newlyFound.addPosTrain(Helper.intersection(retrieved, learn.getPosTest()));
+ newlyFound.addNegTrain(Helper.intersection(retrieved, learn.getNegTest()));
+ fs = new ExMakerFixedSize(newlyFound, randomizedebug);
+ newlyFound = fs.select(config.splits, config.splits);
+
+ learn.addPosTrain(newlyFound.getPosTrain());
+ learn.addNegTrain(newlyFound.getNegTrain());
+ logger.debug("Next training set \n"+learn);
+// size = learn.getPosTrain().size() + learn.getNegTrain().size();
+
+ }
+
+
+
+
+
+ }
+
+ public static void precision( int posAsPos, int retrieved){
+ logger.info("Precision: "+DecimalFormat.getPercentInstance().format(((double)posAsPos)/(double)retrieved)+"%");
+ }
+ public static void recall( int posAsPos, int allPositives){
+ logger.info("Recall: "+DecimalFormat.getPercentInstance().format(((double)posAsPos)/(double)allPositives)+"%");
+
+ }
+
+ private static Set<KnowledgeSource> _getOWL(Examples ex) throws Exception{
+ Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
+ List<URL> urls = new ArrayList<URL>();
+ urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getPosTrain()));
+ urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getNegTrain()));
+ urls.add(new File(backgroundXML).toURI().toURL());
+
+ for (URL u : urls) {
+ OWLFile ks = ComponentFactory.getOWLFile(u);
+ tmp.add(ks);
+ }
+ return tmp;
+ }
+ @SuppressWarnings("unused")
+ private static Set<KnowledgeSource> _getSPARQL(Examples ex) throws Exception{
+ Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
+
+ Set<String> examples = new TreeSet<String>();
+ examples.addAll(ex.getPosTrain());
+ examples.addAll(ex.getNegTrain());
+ SparqlKnowledgeSource ks = ComponentFactory.getSparqlKnowledgeSource(new URL(sparqlEndpointURL), examples);
+ ks.getConfigurator().setUrl(new URL(sparqlEndpointURL));
+ ks.getConfigurator().setDefaultGraphURIs(new HashSet<String>(Arrays.asList(new String[]{graph})));
+ ks.getConfigurator().setInstances(examples);
+ ks.getConfigurator().setDissolveBlankNodes(false);
+ ks.getConfigurator().setRecursionDepth(2);
+ ks.getConfigurator().setDissolveBlankNodes(false);
+ ks.getConfigurator().setCloseAfterRecursion(true);
+ ks.getConfigurator().setGetAllSuperClasses(true);
+ ks.getConfigurator().setGetPropertyInformation(false);
+ ks.getConfigurator().setUseLits(true);
+// ks.getConfigurator().
+ OWLFile ks2 = ComponentFactory.getOWLFile(new File(propertiesXML).toURI().toURL());
+ tmp.add(ks);
+ tmp.add(ks2);
+
+ return tmp;
+ }
+
+ public static EvaluatedDescription learn(Examples ex, ExperimentConfig config) {
+ Monitor init = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "init").start();
+
+ EvaluatedDescription result = null;
+
+ try {
+ Set<KnowledgeSource> tmp = _getOWL(ex);
+// Set<KnowledgeSource> tmp = _getSPARQL(ex);
+
+
+ FastInstanceChecker rc = ComponentFactory.getFastInstanceChecker(tmp);
+ PosNegLPStandard lp = ComponentFactory
+ .getPosNegLPStandard(rc, ex.getPosTrain(), ex.getNegTrain());
+ LearningAlgorithm la = _getROLLearner(lp, rc, config );
+
+ for (KnowledgeSource ks : tmp) {
+ ks.init();
+ }
+ rc.init();
+ lp.init();
+ la.init();
+ init.stop();
+ Monitor learning = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "learning")
+ .start();
+ la.start();
+ learning.stop();
+
+ result = la.getCurrentlyBestEvaluatedDescription();
+ logger.debug(PrefixMap.toKBSyntaxString(result.getDescription()));
+ logger.debug(PrefixMap.toManchesterSyntaxString(result.getDescription()));
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(0);
+ }
+ return result;
+ }
+
+ public static SortedSet<String> getSentences(EvaluatedDescription ed, int resultLimit) {
+ SortedSet<String> result = new TreeSet<String>();
+ SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
+ visit.setDistinct(true);
+ visit.setLabels(false);
+ visit.setLimit(resultLimit);
+ String sparqlQuery = "";
+ try {
+ logger.debug(PrefixMap.toKBSyntaxString(ed.getDescription()));
+// sparqlQuery = visit.getSparqlQuery(ed.getDescription().toKBSyntaxString());
+// logger.debug(sparqlQuery);
+ sparqlQuery = visit.getSparqlQuery(ed.getDescription());
+ logger.debug(sparqlQuery);
+ if (true) {
+ System.exit(0);
+ }
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+
+ logger.debug(PrefixMap.toKBSyntaxString(ed.getDescription()));
+
+ sparqlQuery = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQuery;
+ logger.debug(sparqlQuery);
+
+ Monitor m = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "sparqlquery").start();
+ result.addAll(sparqlTasks.queryAsSet(sparqlQuery, "subject"));
+ logger.debug("query avg: " + ((double)m.getAvg() / (double)1000)+ " seconds (last: "+((double)m.getLastValue() / (double)1000)+")");
+ if(debug && result.isEmpty()){
+ logger.error("sparql query returned no results ");
+ System.exit(0);
+ }
+ return result;
+ }
+
+ private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc, ExperimentConfig config)
+ throws Exception {
+ ROLComponent2 la = ComponentFactory.getROLComponent2(lp, rc);
+ la.getConfigurator().setUseExistsConstructor(true);
+
+ // la.getConfigurator().setUseAllConstructor(true);
+ // la.getConfigurator().setUseCardinalityRestrictions(true);
+ // la.getConfigurator().setUseNegation(true);
+ // la.getConfigurator().setUseHasValueConstructor(true);
+ // la.getConfigurator().setValueFrequencyThreshold(10);
+
+ la.getConfigurator().setUseAllConstructor(false);
+ la.getConfigurator().setUseCardinalityRestrictions(false);
+ la.getConfigurator().setUseNegation(false);
+ la.getConfigurator().setUseHasValueConstructor(false);
+ la.getConfigurator().setUseDataHasValueConstructor(true);
+// la.getConfigurator().setValueFrequencyThreshold(1);
+
+ la.getConfigurator().setIgnoredConcepts(new HashSet<String>(Arrays.asList(new String[]{
+ "http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag",
+ "http://nlp2rdf.org/ontology/comma_tag",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SentenceFinalPunctuation"
+ })));
+
+
+ la.getConfigurator().setNoisePercentage(0);
+ la.getConfigurator().setTerminateOnNoiseReached(true);
+// la.getConfigurator().setStartClass(Config.getConfig().prefix + "Sentence");
+ la.getConfigurator().setMaxExecutionTimeInSeconds(config.maxExecutionTime);
+// la.getConfigurator().setMinExecutionTimeInSeconds(20);
+
+ // la.getConfigurator().setMinExecutionTimeInSeconds(100);
+ la.getConfigurator().setWriteSearchTree(false);
+ la.getConfigurator().setSearchTreeFile("log/searchTree.txt");
+ la.getConfigurator().setReplaceSearchTree(false);
+ return la;
+ }
+
+ public static SortedSet<String> read(String f) {
+ SortedSet<String> result = new TreeSet<String>();
+ BufferedReader in = null;
+ try {
+ in = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
+
+ String line;
+ while ((line = in.readLine()) != null) {
+ try {
+ line = line.trim();
+ Integer.parseInt(line);
+ if (!result.add(sentenceprefix + line)) {
+ logger.error("reading failed");
+ System.exit(0);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(0);
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("Could not read examples from: " + f);
+ System.exit(0);
+
+ } finally {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ logger.info("read " + result.size() + " lines from " + f);
+
+ return result;
+ }
+
+}
Modified: trunk/src/dl-learner/org/dllearner/utilities/examples/ExMakerFixedSize.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/examples/ExMakerFixedSize.java 2010-02-13 13:00:12 UTC (rev 2026)
+++ trunk/src/dl-learner/org/dllearner/utilities/examples/ExMakerFixedSize.java 2010-02-13 13:02:53 UTC (rev 2027)
@@ -35,9 +35,15 @@
private static Logger logger = Logger.getLogger(ExMakerFixedSize.class);
private final Examples examples;
+ private final boolean randomize;
public ExMakerFixedSize(Examples examples ){
+ this(examples, true) ;
+ }
+
+ public ExMakerFixedSize(Examples examples, boolean randomize ){
this.examples = examples;
+ this.randomize = randomize;
}
public static void main(String[] args) {
@@ -54,6 +60,24 @@
}
+ /**
+ * same as select(int,int)
+ * uses both times the same number
+ * @param both
+ * @return
+ */
+ public Examples select(int both){
+ return select( both, both);
+ }
+
+ /**
+ * returns a new example object based on all Examples in the old set
+ * picks a fixed number of examples, puts them into
+ * training sets rest to test set
+ * @param nrOfPos
+ * @param nrOfNeg
+ * @return
+ */
public Examples select(int nrOfPos, int nrOfNeg){
SortedSet<String> posTrain = new TreeSet<String>();
@@ -68,14 +92,24 @@
negOld.addAll(examples.getNegativeExamples());
while (!posOld.isEmpty() && posTrain.size()< nrOfPos) {
- String one = pickOneRandomly(posOld.toArray(new String[] {}));
+ String one;
+ if(randomize){
+ one = pickOneRandomly(posOld.toArray(new String[] {}));
+ }else{
+ one = posOld.first();
+ }
posOld.remove(one);
posTrain.add(one);
}
posTest.addAll(posOld);
while (!negOld.isEmpty() && negTrain.size()< nrOfNeg) {
- String one = pickOneRandomly(negOld.toArray(new String[] {}));
+ String one;
+ if(randomize){
+ one = pickOneRandomly(negOld.toArray(new String[] {}));
+ }else{
+ one = negOld.first();
+ }
negOld.remove(one);
negTrain.add(one);
}
@@ -84,6 +118,7 @@
return new Examples(posTrain, negTrain, posTest, negTest);
}
+
public static String pickOneRandomly(String[] from){
Random r = new Random();
int index = Math.round((float)(from.length*r.nextFloat()));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-13 14:01:04
|
Revision: 2028
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2028&view=rev
Author: kurzum
Date: 2010-02-13 13:04:13 +0000 (Sat, 13 Feb 2010)
Log Message:
-----------
In DataTypeValueRestriction the method
getRestrictedPropertyExpression
was spelled with 3 sss and did not properly overwrite the super method
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/owl/DatatypeValueRestriction.java
trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java
trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java
trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java
trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIDescriptionConvertVisitor.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/examples/tiger/
Modified: trunk/src/dl-learner/org/dllearner/core/owl/DatatypeValueRestriction.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/DatatypeValueRestriction.java 2010-02-13 13:02:53 UTC (rev 2027)
+++ trunk/src/dl-learner/org/dllearner/core/owl/DatatypeValueRestriction.java 2010-02-13 13:04:13 UTC (rev 2028)
@@ -77,7 +77,8 @@
return restrictedPropertyExpression.toKBSyntaxString(baseURI, prefixes) + " = " + value.toKBSyntaxString(baseURI, prefixes);
}
- public DatatypeProperty getRestrictedPropertyExpresssion() {
+ @Override
+ public DatatypeProperty getRestrictedPropertyExpression() {
return (DatatypeProperty) restrictedPropertyExpression;
}
Modified: trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-02-13 13:02:53 UTC (rev 2027)
+++ trunk/src/dl-learner/org/dllearner/reasoning/FastInstanceChecker.java 2010-02-13 13:04:13 UTC (rev 2028)
@@ -470,7 +470,7 @@
return inds == null ? false : inds.contains(i);
} else if (description instanceof BooleanValueRestriction) {
DatatypeProperty dp = ((BooleanValueRestriction) description)
- .getRestrictedPropertyExpresssion();
+ .getRestrictedPropertyExpression();
boolean value = ((BooleanValueRestriction) description).getBooleanValue();
if (value) {
@@ -500,7 +500,7 @@
}
} else if (description instanceof DatatypeValueRestriction) {
String i = ((DatatypeValueRestriction)description).getValue().getLiteral();
- DatatypeProperty dp = ((DatatypeValueRestriction)description).getRestrictedPropertyExpresssion();
+ DatatypeProperty dp = ((DatatypeValueRestriction)description).getRestrictedPropertyExpression();
Set<String> inds = sd.get(dp).get(individual);
return inds == null ? false : inds.contains(i);
@@ -735,7 +735,7 @@
return returnSet;
} else if (description instanceof BooleanValueRestriction) {
DatatypeProperty dp = ((BooleanValueRestriction) description)
- .getRestrictedPropertyExpresssion();
+ .getRestrictedPropertyExpression();
boolean value = ((BooleanValueRestriction) description).getBooleanValue();
if (value) {
Modified: trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2010-02-13 13:02:53 UTC (rev 2027)
+++ trunk/src/dl-learner/org/dllearner/reasoning/PelletReasoner.java 2010-02-13 13:04:13 UTC (rev 2028)
@@ -801,7 +801,7 @@
return inds == null ? false : inds.contains(i);
} else if (description instanceof BooleanValueRestriction) {
DatatypeProperty dp = ((BooleanValueRestriction) description)
- .getRestrictedPropertyExpresssion();
+ .getRestrictedPropertyExpression();
boolean value = ((BooleanValueRestriction) description).getBooleanValue();
if (value) {
@@ -1084,7 +1084,7 @@
return returnSet;
} else if (description instanceof BooleanValueRestriction) {
DatatypeProperty dp = ((BooleanValueRestriction) description)
- .getRestrictedPropertyExpresssion();
+ .getRestrictedPropertyExpression();
boolean value = ((BooleanValueRestriction) description).getBooleanValue();
if (value) {
Modified: trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-13 13:02:53 UTC (rev 2027)
+++ trunk/src/dl-learner/org/dllearner/refinementoperators/RhoDRDown.java 2010-02-13 13:04:13 UTC (rev 2028)
@@ -666,7 +666,7 @@
}
} else if (description instanceof StringValueRestriction) {
StringValueRestriction svr = (StringValueRestriction) description;
- DatatypeProperty dp = svr.getRestrictedPropertyExpresssion();
+ DatatypeProperty dp = svr.getRestrictedPropertyExpression();
Set<DatatypeProperty> subDPs = rs.getSubProperties(dp);
for(DatatypeProperty subDP : subDPs) {
refinements.add(new StringValueRestriction(subDP, svr.getStringValue()));
Modified: trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java 2010-02-13 13:02:53 UTC (rev 2027)
+++ trunk/src/dl-learner/org/dllearner/utilities/owl/ConceptComparator.java 2010-02-13 13:04:13 UTC (rev 2028)
@@ -133,7 +133,7 @@
return 1;
} else if(concept2 instanceof BooleanValueRestriction) {
// first criterion: name of the properties
- int cmp = rc.compare(((BooleanValueRestriction)concept1).getRestrictedPropertyExpresssion(), ((BooleanValueRestriction)concept2).getRestrictedPropertyExpresssion());
+ int cmp = rc.compare(((BooleanValueRestriction)concept1).getRestrictedPropertyExpression(), ((BooleanValueRestriction)concept2).getRestrictedPropertyExpression());
// second criterion: value of the properties (it should rarely happen that
// both boolean values are present since this is a contradiction or superfluous)
Modified: trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIDescriptionConvertVisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIDescriptionConvertVisitor.java 2010-02-13 13:02:53 UTC (rev 2027)
+++ trunk/src/dl-learner/org/dllearner/utilities/owl/OWLAPIDescriptionConvertVisitor.java 2010-02-13 13:04:13 UTC (rev 2028)
@@ -258,7 +258,7 @@
*/
// get datatype property
- DatatypeProperty dtp = description.getRestrictedPropertyExpresssion();
+ DatatypeProperty dtp = description.getRestrictedPropertyExpression();
OWLDataProperty prop = factory.getOWLDataProperty(URI.create(dtp.getName()));
stack.push(factory.getOWLDataValueRestriction(prop, constant));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <jen...@us...> - 2010-02-13 17:21:09
|
Revision: 2031
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2031&view=rev
Author: jenslehmann
Date: 2010-02-13 17:20:57 +0000 (Sat, 13 Feb 2010)
Log Message:
-----------
hasValue support for KBParser
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java
trunk/src/dl-learner/org/dllearner/parser/ConfParser.java
trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java
trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java
trunk/src/dl-learner/org/dllearner/parser/KBParser.java
trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java
trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java
trunk/src/dl-learner/org/dllearner/parser/PrologParser.java
trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java
trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java
trunk/src/dl-learner/org/dllearner/parser/kb.jj
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/test/junit/ParserTest.java
Modified: trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -19,6 +19,8 @@
*/
package org.dllearner.core.owl;
+import java.util.Map;
+
/**
*
* String value restriction, e.g. \exists description hasValue "interesting item".
@@ -47,4 +49,7 @@
return stringValue;
}
+ public String toKBSyntaxString(String baseURI, Map<String, String> prefixes) {
+ return "(" + restrictedPropertyExpression.toKBSyntaxString(baseURI, prefixes) + " STRINGVALUE " + value.toKBSyntaxString(baseURI, prefixes) + ")";
+ }
}
Modified: trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/core/owl/TypedConstant.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -56,7 +56,7 @@
}
public String toKBSyntaxString(String baseURI, Map<String, String> prefixes) {
- return literal;
+ return "\"" + literal + "\"";
// return literal + "^^" + datatype;
}
Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParser.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/ConfParser.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -168,7 +168,7 @@
// n.dump("");
// System.out.println("Thank you.");
} catch (Exception e) {
- System.out.println("\nParse exception occurred. Please follow the advise given below.");
+ System.out.println("\u005cnParse exception occurred. Please follow the advise given below.");
System.out.println(e.getMessage());
e.printStackTrace();
System.exit(0);
@@ -944,7 +944,7 @@
for (int i = 0; i < jj_endpos; i++) {
jj_expentry[i] = jj_lasttokens[i];
}
- jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
+ jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
int[] oldentry = (int[])(it.next());
if (oldentry.length == jj_expentry.length) {
for (int i = 0; i < jj_expentry.length; i++) {
Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/ConfParserConstants.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -2,10 +2,11 @@
package org.dllearner.parser;
-/**
+/**
* Token literal values and constants.
* Generated by org.javacc.parser.OtherFilesGen#start()
*/
+@SuppressWarnings("all")
public interface ConfParserConstants {
/** End of File. */
Modified: trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/ConfParserTokenManager.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -16,8 +16,8 @@
import org.dllearner.cli.*;
import org.dllearner.utilities.datastructures.*;
+/** Token Manager. */
@SuppressWarnings("all")
-/** Token Manager. */
public class ConfParserTokenManager implements ConfParserConstants
{
@@ -122,7 +122,7 @@
private int jjMoveStringLiteralDfa2_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(0, old0);
+ return jjStartNfa_0(0, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(1, active0);
@@ -148,7 +148,7 @@
private int jjMoveStringLiteralDfa3_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(1, old0);
+ return jjStartNfa_0(1, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(2, active0);
@@ -166,7 +166,7 @@
private int jjMoveStringLiteralDfa4_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(2, old0);
+ return jjStartNfa_0(2, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(3, active0);
@@ -184,7 +184,7 @@
private int jjMoveStringLiteralDfa5_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(3, old0);
+ return jjStartNfa_0(3, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(4, active0);
@@ -589,7 +589,7 @@
/** Lexer state names. */
public static final String[] lexStateNames = {
- "DEFAULT",
+ "DEFAULT",
};
static final long[] jjtoToken = {
0x1ffffff01L,
@@ -685,13 +685,13 @@
EOFLoop :
for (;;)
- {
- try
- {
+ {
+ try
+ {
curChar = input_stream.BeginToken();
- }
+ }
catch(java.io.IOException e)
- {
+ {
jjmatchedKind = 0;
matchedToken = jjFillToken();
return matchedToken;
Modified: trunk/src/dl-learner/org/dllearner/parser/KBParser.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/KBParser.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -494,15 +494,22 @@
jj_consume_token(48);
jj_consume_token(23);
{if (true) return new BooleanValueRestriction(dp, true);}
+ } else if (jj_2_9(4)) {
+ jj_consume_token(22);
+ dp = DatatypeProperty();
+ jj_consume_token(47);
+ jj_consume_token(49);
+ jj_consume_token(23);
+ {if (true) return new BooleanValueRestriction(dp, false);}
} else {
switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
case 22:
jj_consume_token(22);
dp = DatatypeProperty();
- jj_consume_token(47);
- jj_consume_token(49);
+ jj_consume_token(50);
+ s = String();
jj_consume_token(23);
- {if (true) return new BooleanValueRestriction(dp, false);}
+ {if (true) return new StringValueRestriction(dp, s);}
break;
default:
jj_la1[11] = jj_gen;
@@ -716,6 +723,13 @@
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_7() {
if (jj_scan_token(22)) return true;
if (jj_3R_2()) return true;
@@ -793,7 +807,7 @@
}
private boolean jj_3R_18() {
- if (jj_3R_27()) return true;
+ if (jj_3R_26()) return true;
return false;
}
@@ -837,6 +851,8 @@
jj_scanpos = xsp;
if (jj_3_8()) {
jj_scanpos = xsp;
+ if (jj_3_9()) {
+ jj_scanpos = xsp;
if (jj_3R_16()) return true;
}
}
@@ -849,21 +865,22 @@
}
}
}
+ }
return false;
}
- private boolean jj_3R_26() {
+ private boolean jj_3R_27() {
if (jj_scan_token(ID)) return true;
return false;
}
private boolean jj_3R_20() {
- if (jj_3R_27()) return true;
+ if (jj_3R_26()) return true;
return false;
}
private boolean jj_3R_17() {
- if (jj_3R_26()) return true;
+ if (jj_3R_27()) return true;
return false;
}
@@ -898,12 +915,12 @@
}
private boolean jj_3R_24() {
- if (jj_3R_27()) return true;
+ if (jj_3R_26()) return true;
return false;
}
private boolean jj_3R_19() {
- if (jj_3R_26()) return true;
+ if (jj_3R_27()) return true;
return false;
}
@@ -918,12 +935,12 @@
}
private boolean jj_3R_22() {
- if (jj_3R_27()) return true;
+ if (jj_3R_26()) return true;
return false;
}
private boolean jj_3R_23() {
- if (jj_3R_26()) return true;
+ if (jj_3R_27()) return true;
return false;
}
@@ -938,7 +955,7 @@
}
private boolean jj_3R_21() {
- if (jj_3R_26()) return true;
+ if (jj_3R_27()) return true;
return false;
}
@@ -952,7 +969,7 @@
return false;
}
- private boolean jj_3R_27() {
+ private boolean jj_3R_26() {
if (jj_scan_token(STRING)) return true;
return false;
}
@@ -960,6 +977,15 @@
private boolean jj_3R_16() {
if (jj_scan_token(22)) return true;
if (jj_3R_6()) return true;
+ if (jj_scan_token(50)) return true;
+ if (jj_3R_26()) return true;
+ if (jj_scan_token(23)) return true;
+ return false;
+ }
+
+ private boolean jj_3_9() {
+ if (jj_scan_token(22)) return true;
+ if (jj_3R_6()) return true;
if (jj_scan_token(47)) return true;
if (jj_scan_token(49)) return true;
if (jj_scan_token(23)) return true;
@@ -1017,7 +1043,7 @@
private static void jj_la1_init_1() {
jj_la1_1 = new int[] {0xffd,0xffd,0x0,0x2,0x1c,0x60,0x380,0xc00,0x7000,0x0,0x0,0x0,0x0,0x0,0x0,0x0,};
}
- final private JJCalls[] jj_2_rtns = new JJCalls[8];
+ final private JJCalls[] jj_2_rtns = new JJCalls[9];
private boolean jj_rescan = false;
private int jj_gc = 0;
@@ -1182,7 +1208,7 @@
for (int i = 0; i < jj_endpos; i++) {
jj_expentry[i] = jj_lasttokens[i];
}
- jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
+ jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
int[] oldentry = (int[])(it.next());
if (oldentry.length == jj_expentry.length) {
for (int i = 0; i < jj_expentry.length; i++) {
@@ -1201,7 +1227,7 @@
/** Generate ParseException. */
public ParseException generateParseException() {
jj_expentries.clear();
- boolean[] la1tokens = new boolean[50];
+ boolean[] la1tokens = new boolean[51];
if (jj_kind >= 0) {
la1tokens[jj_kind] = true;
jj_kind = -1;
@@ -1218,7 +1244,7 @@
}
}
}
- for (int i = 0; i < 50; i++) {
+ for (int i = 0; i < 51; i++) {
if (la1tokens[i]) {
jj_expentry = new int[1];
jj_expentry[0] = i;
@@ -1245,7 +1271,7 @@
private void jj_rescan_token() {
jj_rescan = true;
- for (int i = 0; i < 8; i++) {
+ for (int i = 0; i < 9; i++) {
try {
JJCalls p = jj_2_rtns[i];
do {
@@ -1260,6 +1286,7 @@
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/src/dl-learner/org/dllearner/parser/KBParserConstants.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/KBParserConstants.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -2,10 +2,11 @@
package org.dllearner.parser;
-/**
+/**
* Token literal values and constants.
* Generated by org.javacc.parser.OtherFilesGen#start()
*/
+@SuppressWarnings("all")
public interface KBParserConstants {
/** End of File. */
@@ -100,6 +101,7 @@
"\"IS\"",
"\"TRUE\"",
"\"FALSE\"",
+ "\"STRINGVALUE\"",
};
}
Modified: trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/KBParserTokenManager.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -4,8 +4,8 @@
import java.io.*;
import java.net.URL;
+/** Token Manager. */
@SuppressWarnings("all")
-/** Token Manager. */
public class KBParserTokenManager implements KBParserConstants
{
@@ -18,7 +18,7 @@
switch (pos)
{
case 0:
- if ((active0 & 0x34c000000L) != 0L)
+ if ((active0 & 0x400034c000000L) != 0L)
return 10;
if ((active0 & 0x2000020000000L) != 0L)
return 18;
@@ -72,7 +72,7 @@
case 82:
return jjMoveStringLiteralDfa1_0(0x8000000000L);
case 83:
- return jjMoveStringLiteralDfa1_0(0x34c000000L);
+ return jjMoveStringLiteralDfa1_0(0x400034c000000L);
case 84:
return jjMoveStringLiteralDfa1_0(0x1000010001000L);
default :
@@ -112,6 +112,8 @@
if ((active0 & 0x800000000000L) != 0L)
return jjStopAtPos(1, 47);
break;
+ case 84:
+ return jjMoveStringLiteralDfa2_0(active0, 0x4000000000000L);
case 85:
return jjMoveStringLiteralDfa2_0(active0, 0x20c000000L);
case 110:
@@ -130,7 +132,7 @@
private int jjMoveStringLiteralDfa2_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(0, old0);
+ return jjStartNfa_0(0, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(1, active0);
@@ -164,7 +166,7 @@
return jjStopAtPos(2, 12);
break;
case 82:
- return jjMoveStringLiteralDfa3_0(active0, 0x50000000000L);
+ return jjMoveStringLiteralDfa3_0(active0, 0x4050000000000L);
case 84:
return jjMoveStringLiteralDfa3_0(active0, 0x484000002000L);
case 85:
@@ -187,7 +189,7 @@
private int jjMoveStringLiteralDfa3_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(1, old0);
+ return jjStartNfa_0(1, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(2, active0);
@@ -207,6 +209,8 @@
return jjMoveStringLiteralDfa4_0(active0, 0x421000000000L);
case 71:
return jjMoveStringLiteralDfa4_0(active0, 0x8000000000L);
+ case 73:
+ return jjMoveStringLiteralDfa4_0(active0, 0x4000000000000L);
case 76:
return jjMoveStringLiteralDfa4_0(active0, 0x200000000000L);
case 79:
@@ -233,7 +237,7 @@
private int jjMoveStringLiteralDfa4_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(2, old0);
+ return jjStartNfa_0(2, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(3, active0);
@@ -258,7 +262,7 @@
case 77:
return jjMoveStringLiteralDfa5_0(active0, 0x2800000000L);
case 78:
- return jjMoveStringLiteralDfa5_0(active0, 0x50000000000L);
+ return jjMoveStringLiteralDfa5_0(active0, 0x4050000000000L);
case 79:
return jjMoveStringLiteralDfa5_0(active0, 0x200002000L);
case 84:
@@ -281,7 +285,7 @@
private int jjMoveStringLiteralDfa5_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(3, old0);
+ return jjStartNfa_0(3, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(4, active0);
@@ -296,7 +300,7 @@
return jjStopAtPos(5, 44);
return jjMoveStringLiteralDfa6_0(active0, 0x400000000000L);
case 71:
- return jjMoveStringLiteralDfa6_0(active0, 0x50000000000L);
+ return jjMoveStringLiteralDfa6_0(active0, 0x4050000000000L);
case 77:
if ((active0 & 0x2000L) != 0L)
return jjStopAtPos(5, 13);
@@ -325,7 +329,7 @@
private int jjMoveStringLiteralDfa6_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(4, old0);
+ return jjStartNfa_0(4, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(5, active0);
@@ -355,6 +359,8 @@
break;
case 83:
return jjMoveStringLiteralDfa7_0(active0, 0x4000000L);
+ case 86:
+ return jjMoveStringLiteralDfa7_0(active0, 0x4000000000000L);
case 101:
if ((active0 & 0x80000000L) != 0L)
return jjStopAtPos(6, 31);
@@ -375,7 +381,7 @@
private int jjMoveStringLiteralDfa7_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(5, old0);
+ return jjStartNfa_0(5, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(6, active0);
@@ -383,6 +389,8 @@
}
switch(curChar)
{
+ case 65:
+ return jjMoveStringLiteralDfa8_0(active0, 0x4000000000000L);
case 69:
return jjMoveStringLiteralDfa8_0(active0, 0x84200000000L);
case 78:
@@ -407,7 +415,7 @@
private int jjMoveStringLiteralDfa8_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(6, old0);
+ return jjStartNfa_0(6, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(7, active0);
@@ -415,6 +423,8 @@
}
switch(curChar)
{
+ case 76:
+ return jjMoveStringLiteralDfa9_0(active0, 0x4000000000000L);
case 79:
return jjMoveStringLiteralDfa9_0(active0, 0x21004000000L);
case 80:
@@ -435,7 +445,7 @@
private int jjMoveStringLiteralDfa9_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(7, old0);
+ return jjStartNfa_0(7, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(8, active0);
@@ -453,6 +463,8 @@
return jjMoveStringLiteralDfa10_0(active0, 0x84000000000L);
case 84:
return jjMoveStringLiteralDfa10_0(active0, 0x200000000L);
+ case 85:
+ return jjMoveStringLiteralDfa10_0(active0, 0x4000000000000L);
case 101:
if ((active0 & 0x10000000L) != 0L)
return jjStopAtPos(9, 28);
@@ -469,7 +481,7 @@
private int jjMoveStringLiteralDfa10_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(8, old0);
+ return jjStartNfa_0(8, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(9, active0);
@@ -478,6 +490,8 @@
switch(curChar)
{
case 69:
+ if ((active0 & 0x4000000000000L) != 0L)
+ return jjStopAtPos(10, 50);
return jjMoveStringLiteralDfa11_0(active0, 0x21000000000L);
case 79:
return jjMoveStringLiteralDfa11_0(active0, 0x84200000000L);
@@ -489,7 +503,7 @@
private int jjMoveStringLiteralDfa11_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(9, old0);
+ return jjStartNfa_0(9, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(10, active0);
@@ -513,7 +527,7 @@
private int jjMoveStringLiteralDfa12_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(10, old0);
+ return jjStartNfa_0(10, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(11, active0);
@@ -533,7 +547,7 @@
private int jjMoveStringLiteralDfa13_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(11, old0);
+ return jjStartNfa_0(11, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(12, active0);
@@ -553,7 +567,7 @@
private int jjMoveStringLiteralDfa14_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(12, old0);
+ return jjStartNfa_0(12, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(13, active0);
@@ -575,7 +589,7 @@
private int jjMoveStringLiteralDfa15_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(13, old0);
+ return jjStartNfa_0(13, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(14, active0);
@@ -597,7 +611,7 @@
private int jjMoveStringLiteralDfa16_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(14, old0);
+ return jjStartNfa_0(14, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(15, active0);
@@ -621,7 +635,7 @@
private int jjMoveStringLiteralDfa17_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(15, old0);
+ return jjStartNfa_0(15, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(16, active0);
@@ -643,7 +657,7 @@
private int jjMoveStringLiteralDfa18_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(16, old0);
+ return jjStartNfa_0(16, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(17, active0);
@@ -669,7 +683,7 @@
private int jjMoveStringLiteralDfa19_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(17, old0);
+ return jjStartNfa_0(17, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(18, active0);
@@ -693,7 +707,7 @@
private int jjMoveStringLiteralDfa20_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(18, old0);
+ return jjStartNfa_0(18, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(19, active0);
@@ -715,7 +729,7 @@
private int jjMoveStringLiteralDfa21_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(19, old0);
+ return jjStartNfa_0(19, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(20, active0);
@@ -1124,14 +1138,15 @@
"\104\101\124\101\124\131\120\105\120\122\117\120\105\122\124\131\104\117\115\101\111\116", "\122\101\116\107\105", "\117\120\122\101\116\107\105",
"\117\102\112\105\103\124\120\122\117\120\105\122\124\131\122\101\116\107\105", "\104\120\122\101\116\107\105",
"\104\101\124\101\124\131\120\105\120\122\117\120\105\122\124\131\122\101\116\107\105", "\104\117\125\102\114\105", "\102\117\117\114\105\101\116",
-"\111\116\124\105\107\105\122", "\111\123", "\124\122\125\105", "\106\101\114\123\105", };
+"\111\116\124\105\107\105\122", "\111\123", "\124\122\125\105", "\106\101\114\123\105",
+"\123\124\122\111\116\107\126\101\114\125\105", };
/** Lexer state names. */
public static final String[] lexStateNames = {
- "DEFAULT",
+ "DEFAULT",
};
static final long[] jjtoToken = {
- 0x3ffffffffff01L,
+ 0x7ffffffffff01L,
};
static final long[] jjtoSkip = {
0xfeL,
@@ -1224,13 +1239,13 @@
EOFLoop :
for (;;)
- {
- try
- {
+ {
+ try
+ {
curChar = input_stream.BeginToken();
- }
+ }
catch(java.io.IOException e)
- {
+ {
jjmatchedKind = 0;
matchedToken = jjFillToken();
return matchedToken;
Modified: trunk/src/dl-learner/org/dllearner/parser/PrologParser.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/PrologParser.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/PrologParser.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -736,7 +736,7 @@
for (int i = 0; i < jj_endpos; i++) {
jj_expentry[i] = jj_lasttokens[i];
}
- jj_entries_loop: for (java.util.Iterator it = jj_expentries.iterator(); it.hasNext();) {
+ jj_entries_loop: for (java.util.Iterator<?> it = jj_expentries.iterator(); it.hasNext();) {
int[] oldentry = (int[])(it.next());
if (oldentry.length == jj_expentry.length) {
for (int i = 0; i < jj_expentry.length; i++) {
Modified: trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/PrologParserConstants.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -2,10 +2,11 @@
package org.dllearner.parser;
-/**
+/**
* Token literal values and constants.
* Generated by org.javacc.parser.OtherFilesGen#start()
*/
+@SuppressWarnings("all")
public interface PrologParserConstants {
/** End of File. */
Modified: trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/PrologParserTokenManager.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -2,6 +2,7 @@
package org.dllearner.parser;
/** Token Manager. */
+@SuppressWarnings("all")
public class PrologParserTokenManager implements PrologParserConstants
{
@@ -96,7 +97,7 @@
private int jjMoveStringLiteralDfa2_0(long old0, long active0)
{
if (((active0 &= old0)) == 0L)
- return jjStartNfa_0(0, old0);
+ return jjStartNfa_0(0, old0);
try { curChar = input_stream.readChar(); }
catch(java.io.IOException e) {
jjStopStringLiteralDfa_0(1, active0);
@@ -465,7 +466,7 @@
/** Lexer state names. */
public static final String[] lexStateNames = {
- "DEFAULT",
+ "DEFAULT",
};
static final long[] jjtoToken = {
0xff87b81L,
@@ -565,13 +566,13 @@
EOFLoop :
for (;;)
- {
- try
- {
+ {
+ try
+ {
curChar = input_stream.BeginToken();
- }
+ }
catch(java.io.IOException e)
- {
+ {
jjmatchedKind = 0;
matchedToken = jjFillToken();
matchedToken.specialToken = specialToken;
Modified: trunk/src/dl-learner/org/dllearner/parser/kb.jj
===================================================================
--- trunk/src/dl-learner/org/dllearner/parser/kb.jj 2010-02-13 17:13:49 UTC (rev 2030)
+++ trunk/src/dl-learner/org/dllearner/parser/kb.jj 2010-02-13 17:20:57 UTC (rev 2031)
@@ -262,12 +262,12 @@
| LOOKAHEAD(2) ac = AtomicConcept() {return ac;}
// | s=Id() {return new AtomicConcept(s);}
// | s=String() {return new AtomicConcept(s);}
- // Parser geht bis zum n�chsten AND oder OR
+ // parse until next AND or OR
| LOOKAHEAD( "(" Concept() And()) "(" c1=Concept() And() c2=Concept() ")"
{return new Intersection(c1,c2);}
| LOOKAHEAD( "(" Concept() Or()) "(" c1=Concept() Or() c2=Concept() ")"
{return new Union(c1,c2);}
- // EXISTS oder ALL reicht aus um richtigen Zweig zu w�hlen
+ // EXISTS or ALL is sufficient to chose the correct parser branch
// | Exists() s=Id() "." c=Concept()
// {return new Exists(new AtomicRole(s),c); }
| Exists() ar=ObjectProperty() "." c=Concept()
@@ -287,7 +287,8 @@
| LE() i=Integer() ar=ObjectProperty() "." c=Concept()
{return new ObjectMaxCardinalityRestriction(i,ar,c);}
| LOOKAHEAD(4) "(" dp=DatatypeProperty() "IS" "TRUE" ")" { return new BooleanValueRestriction(dp, true); }
- | "(" dp=DatatypeProperty() "IS" "FALSE" ")" { return new BooleanValueRestriction(dp, false); }
+ | LOOKAHEAD(4) "(" dp=DatatypeProperty() "IS" "FALSE" ")" { return new BooleanValueRestriction(dp, false); }
+ | "(" dp=DatatypeProperty() "STRINGVALUE" s=String() ")" { return new StringValueRestriction(dp, s); }
}
void Or() : {} { <OR> }
Added: trunk/src/dl-learner/org/dllearner/test/junit/ParserTest.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/test/junit/ParserTest.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/test/junit/ParserTest.java 2010-02-13 17:20:57 UTC (rev 2031)
@@ -0,0 +1,45 @@
+/**
+ * Copyright (C) 2007-2009, Jens Lehmann
+ *
+ * This file is part of DL-Learner.
+ *
+ * DL-Learner is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * DL-Learner is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+package org.dllearner.test.junit;
+
+import org.dllearner.core.owl.Description;
+import org.dllearner.parser.KBParser;
+import org.dllearner.parser.ParseException;
+import org.junit.Test;
+
+/**
+ * Tests for various parsers in DL-Learner.
+ *
+ *
+ * @author Jens Lehmann.
+ *
+ */
+public class ParserTest {
+
+ @Test
+ public void KBParserTest() throws ParseException {
+ String test = "(\"Sentence\" AND (EXISTS \"syntaxTreeHasPart\".\"VVPP\" AND EXISTS \"syntaxTreeHasPart\".(\"stts:AuxilliaryVerb\" AND (\"hasLemma\" STRINGVALUE \"werden\"))))";
+ Description d = KBParser.parseConcept(test);
+ System.out.println(d.toKBSyntaxString("http://localhost/foo#", null));
+ Description d2 = KBParser.parseConcept(d.toKBSyntaxString());
+ System.out.println(d2.toKBSyntaxString("http://localhost/foo#", null));
+ }
+
+}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-13 19:33:57
|
Revision: 2034
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2034&view=rev
Author: kurzum
Date: 2010-02-13 19:33:50 +0000 (Sat, 13 Feb 2010)
Log Message:
-----------
finished script for iterative learning
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/examples/KRKOntologyTBox.java
trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/scripts/tiger/GlobalTest.java
Modified: trunk/src/dl-learner/org/dllearner/examples/KRKOntologyTBox.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/examples/KRKOntologyTBox.java 2010-02-13 17:45:31 UTC (rev 2033)
+++ trunk/src/dl-learner/org/dllearner/examples/KRKOntologyTBox.java 2010-02-13 19:33:50 UTC (rev 2034)
@@ -70,11 +70,13 @@
public void addConcept(String concept){
try{
//make Description
- Description d = KBParser.parseConcept(concept,ontologyURI.toString()+"#");
- //d.addChild(oecr);
+ KBParser.internalNamespace = ontologyURI.toString()+"#";
+ Description d = KBParser.parseConcept(concept);
kb.addTBoxAxiom(new EquivalentClassesAxiom(getAtomicConcept("test"),d));
- }catch (Exception e) {e.printStackTrace();}
+ }catch (Exception e) {
+ e.printStackTrace();
+ }
}
public void initOntologyTBox(){
Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-13 17:45:31 UTC (rev 2033)
+++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryDescriptionConvertVisitor.java 2010-02-13 19:33:50 UTC (rev 2034)
@@ -30,9 +30,12 @@
import org.apache.log4j.Logger;
import org.dllearner.algorithms.gp.ADC;
import org.dllearner.core.ComponentManager;
+import org.dllearner.core.owl.Constant;
+import org.dllearner.core.owl.Datatype;
import org.dllearner.core.owl.DatatypeExactCardinalityRestriction;
import org.dllearner.core.owl.DatatypeMaxCardinalityRestriction;
import org.dllearner.core.owl.DatatypeMinCardinalityRestriction;
+import org.dllearner.core.owl.DatatypeProperty;
import org.dllearner.core.owl.DatatypeSomeRestriction;
import org.dllearner.core.owl.DatatypeValueRestriction;
import org.dllearner.core.owl.Description;
@@ -49,7 +52,9 @@
import org.dllearner.core.owl.ObjectProperty;
import org.dllearner.core.owl.ObjectSomeRestriction;
import org.dllearner.core.owl.ObjectValueRestriction;
+import org.dllearner.core.owl.StringValueRestriction;
import org.dllearner.core.owl.Thing;
+import org.dllearner.core.owl.TypedConstant;
import org.dllearner.core.owl.Union;
import org.dllearner.parser.KBParser;
import org.dllearner.parser.ParseException;
@@ -229,15 +234,43 @@
s.clear();
// s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (EXISTS \"http://nlp2rdf.org/ontology/syntaxTreeHasPart\".\"http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Pronoun\" AND EXISTS \"http://nlp2rdf.org/ontology/syntaxTreeHasPart\".\"http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag\"))");
- s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (\"http://nlp2rdf.org/ontology/hasLemma\" VALUE \"test\" )");
+// s.add("(\"http://nlp2rdf.org/ontology/Sentence\" AND (\"http://nlp2rdf.org/ontology/hasLemma\" VALUE \"test\" )");
+ String prefix = "http://nlp2rdf.org/ontology/";
+ String test = "(\"Sentence\" AND (EXISTS \"syntaxTreeHasPart\".\"VVPP\" AND EXISTS \"syntaxTreeHasPart\".(\"stts:AuxilliaryVerb\" AND \"hasLemma\" = werden)))";
+
+ ObjectProperty stp = new ObjectProperty(prefix+"syntaxTreeHasPart");
+ DatatypeProperty dtp = new DatatypeProperty(prefix+"hasLemma");
+ StringValueRestriction svr = new StringValueRestriction(dtp,"werden" );
+ Intersection inner = new Intersection(new NamedClass(prefix+"Auxillary"), svr);
+ Intersection middle = new Intersection(
+ new ObjectSomeRestriction(stp, new NamedClass(prefix+"VVPP")),
+ new ObjectSomeRestriction(stp, inner));
+ Intersection outer = new Intersection(
+ new NamedClass(prefix+"Sentence"),
+ middle
+ );
+
+ System.out.println(outer.toKBSyntaxString(null,null));
+ System.out.println(test);
+
+// s.add(outer.toKBSyntaxString(null,null));
+ SparqlQueryDescriptionConvertVisitor testVisitor = new SparqlQueryDescriptionConvertVisitor();
+ String q = testVisitor.getSparqlQuery(outer.toKBSyntaxString());
+ System.out.println(q);
+ if (true) {
+ System.exit(0);
+ }
+
// <http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag>
String query = "";
SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
- visit.setLabels(true);
- visit.setDistinct(true);
- visit.setClassToSubclassesVirtuoso(subclassMap);
+ visit.setLabels(false);
+ visit.setDistinct(false);
+// visit.setClassToSubclassesVirtuoso(subclassMap);
+
+
for (String kbsyntax : s) {
query = visit.getSparqlQuery(kbsyntax);
result.put(kbsyntax, query);
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java 2010-02-13 17:45:31 UTC (rev 2033)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/ExperimentConfig.java 2010-02-13 19:33:50 UTC (rev 2034)
@@ -8,11 +8,12 @@
public int resultLimit = -1;
public int splits = 5;
- public int initialsplits = 10;
- public int iteration = 5;
+ public int initialsplits = 30;
+ public int iteration = 1;
public boolean useStartClass = true;
- public int noise = 5;
+ public boolean searchTree = false;
+ public int noise = 0;
//sets ValueFrequency treshold and maxExecution time
public boolean adaptive = true;
public int maxExecutionTime = 40;
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/GlobalTest.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/GlobalTest.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/GlobalTest.java 2010-02-13 19:33:50 UTC (rev 2034)
@@ -0,0 +1,407 @@
+package org.dllearner.scripts.tiger;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.net.URL;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.dllearner.algorithms.refinement2.ROLComponent2;
+import org.dllearner.algorithms.refinement2.ROLearner2;
+import org.dllearner.core.ComponentPool;
+import org.dllearner.core.EvaluatedDescription;
+import org.dllearner.core.KnowledgeSource;
+import org.dllearner.core.LearningAlgorithm;
+import org.dllearner.core.LearningProblem;
+import org.dllearner.core.ReasonerComponent;
+import org.dllearner.core.configurators.ComponentFactory;
+import org.dllearner.core.owl.Description;
+import org.dllearner.core.owl.Individual;
+import org.dllearner.kb.OWLFile;
+import org.dllearner.kb.sparql.Cache;
+import org.dllearner.kb.sparql.SPARQLTasks;
+import org.dllearner.kb.sparql.SparqlEndpoint;
+import org.dllearner.kb.sparql.SparqlKnowledgeSource;
+import org.dllearner.kb.sparql.SparqlQuery;
+import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor;
+import org.dllearner.learningproblems.PosNegLPStandard;
+import org.dllearner.reasoning.FastInstanceChecker;
+import org.dllearner.refinementoperators.RhoDRDown;
+import org.dllearner.utilities.Helper;
+import org.dllearner.utilities.JamonMonitorLogger;
+import org.dllearner.utilities.examples.ExMakerFixedSize;
+import org.dllearner.utilities.examples.ExampleDataCollector;
+import org.dllearner.utilities.examples.Examples;
+
+import com.jamonapi.Monitor;
+
+public class GlobalTest {
+ private static final Logger logger = Logger.getLogger(GlobalTest.class);
+
+ static DecimalFormat df = new DecimalFormat("00.###%");
+
+ static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
+ static String propertiesXML = "files/propertiesOnly.rdf";
+ static String sentenceXMLFolder = "files/tiger/";
+ static String sentenceprefix = "http://nlp2rdf.org/ontology/s";
+ static String prefix = "http://nlp2rdf.org/ontology/";
+
+ static String active = "files/active_all_sentenceNumbers.txt";
+ static String passiveNoZU = "files/passive_noZuInf_sentenceNumbers.txt";
+ static String passiveWithZu = "files/passive_zuInf_sentenceNumbers.txt";
+ static String test_has_pos = "files/test_has_pos.txt";
+ static String test_has_neg = "files/test_has_neg.txt";
+
+ static SparqlEndpoint sparqlEndpoint;
+ static SPARQLTasks sparqlTasks;
+
+ static String sparqlEndpointURL = "http://db0.aksw.org:8893/sparql";
+ static String graph = "http://nlp2rdf.org/tiger";
+ static String rulegraph = "http://nlp2rdf.org/schema/rules1";
+
+
+
+
+
+ final static boolean debug = false;
+ //no randomization in examples
+ final static boolean randomizedebug = !debug;
+
+ public static void main(String[] args) {
+ LogHelper.initLoggers();
+ Logger.getLogger(Cache.class).setLevel(Level.INFO);
+ Logger.getLogger(ComponentPool.class).setLevel(Level.INFO);
+ Logger.getLogger(ROLearner2.class).setLevel(Level.TRACE);
+ Logger.getLogger(RhoDRDown.class).setLevel(Level.TRACE);
+ Logger.getLogger(SparqlQuery.class).setLevel(Level.INFO);
+
+ try {
+ sparqlEndpoint = new SparqlEndpoint(new URL(sparqlEndpointURL), new ArrayList<String>(Arrays
+ .asList(new String[] { graph })), new ArrayList<String>());
+ sparqlTasks = new SPARQLTasks(Cache.getDefaultCache(), sparqlEndpoint);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+ Examples allExamples = new Examples();
+ SortedSet<String> positives;
+ SortedSet<String> negatives;
+
+// positives = read(passiveWithZu);
+ positives = read(passiveNoZU);
+ negatives = read(active);
+
+ //removing overlap
+ positives.removeAll(negatives);
+ negatives.removeAll(positives);
+
+// System.out.println(Helper.intersection(passiveZuInfSentences, activeSentences));
+// System.out.println(Helper.intersection(passiveZuInfSentences, passiveNoZuSentences));
+// System.out.println(Helper.intersection(activeSentences, passiveNoZuSentences));
+ allExamples.addPosTrain(positives);
+ allExamples.addNegTrain(negatives);
+
+ logger.debug("All examples \n"+allExamples);
+
+ ExperimentConfig config = new ExperimentConfig();
+ firstContact( allExamples, config);
+ JamonMonitorLogger.writeHTMLReport("log/tiger.html");
+ //retrieved wird neues Example, als schnittmenge mit all
+ //und den bisher gewaehlten
+ //dann splits auswählen und
+ //pos und neg wieder hinzufuegen
+
+ }
+
+ public static void firstContact(Examples allExamples, ExperimentConfig config){
+ ExMakerFixedSize fs = new ExMakerFixedSize(allExamples, randomizedebug);
+ Examples learn = fs.select(config.initialsplits, config.initialsplits);
+ logger.debug("Intial training set \n"+learn);
+// System.out.println(learn.getPosTrain());
+// System.out.println(learn.getNegTrain());
+// if (true) {
+// System.exit(0);
+// }
+// int size = 0;
+ for(int i = 0 ; config.stopCondition(i, learn) ;i++ ) {
+ /*LEARNING*/
+ EvaluatedDescription ed = learn(learn, config);
+
+ /*RETRIEVING*/
+ SortedSet<String> retrieved = getSentences(ed, config.resultLimit);
+ logger.debug("Retrieved "+retrieved.size()+" sentences");
+
+
+ /*MASHING*/
+ //Menge aller positiven geschn. mit den gefundenen
+ SortedSet<String> posAsPos = Helper.intersection(retrieved, allExamples.getPosTrain());
+ logger.debug("Number of retrieved positives: "+posAsPos.size());
+ logger.debug("Number of total positives: "+allExamples.getPosTrain().size());
+ results(posAsPos, retrieved, allExamples);
+
+ //Menge aller positiven geschn. mit den gefundenen
+ SortedSet<String> negAsPos = Helper.intersection(retrieved, allExamples.getNegTrain());
+ logger.debug("Number of retrieved negatives: "+negAsPos.size());
+ logger.debug("Total: "+posAsPos.size()+" + "+negAsPos.size() +" = "+retrieved.size());
+
+// if(retrieved.size()!=(posAsPos.size()+negAsPos.size())){
+// logger.warn("sets are wrong");
+// System.exit(0);
+// }
+
+ Examples newlyFound = new Examples();
+ newlyFound.addPosTrain(Helper.intersection(retrieved, learn.getPosTest()));
+ newlyFound.addNegTrain(Helper.intersection(retrieved, learn.getNegTest()));
+ //validate here
+
+ fs = new ExMakerFixedSize(newlyFound, randomizedebug);
+ newlyFound = fs.select(config.splits, config.splits);
+
+ learn.addPosTrain(newlyFound.getPosTrain());
+ learn.addNegTrain(newlyFound.getNegTrain());
+ logger.debug("Next training set \n"+learn);
+// size = learn.getPosTrain().size() + learn.getNegTrain().size();
+
+ }
+
+
+
+
+
+ }
+
+ private static void results(SortedSet<String> posAsPos, SortedSet<String> retrieved, Examples allExamples) {
+ double precision = precision( posAsPos.size(), retrieved.size());
+ double recall = recall( posAsPos.size(),allExamples.getPosTrain().size());
+ logger.info("F-Measure: "+df.format( (2*precision*recall)/(precision+recall)) );
+
+ }
+
+ public static double precision( int posAsPos, int retrieved){
+ double precision = ((double)posAsPos)/((double)retrieved);
+ logger.info("Precision: "+df.format(precision));
+ return precision;
+ }
+ public static double recall( int posAsPos, int allPositives){
+ double recall = ((double)posAsPos)/((double)allPositives);
+
+ logger.info("Recall: "+df.format(recall));
+ return recall;
+
+ }
+
+ private static Set<KnowledgeSource> _getOWL(Examples ex) throws Exception{
+ Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
+ List<URL> urls = new ArrayList<URL>();
+ urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getPosTrain()));
+ urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getNegTrain()));
+ urls.add(new File(backgroundXML).toURI().toURL());
+
+ for (URL u : urls) {
+ OWLFile ks = ComponentFactory.getOWLFile(u);
+ tmp.add(ks);
+ }
+ return tmp;
+ }
+ @SuppressWarnings("unused")
+ private static Set<KnowledgeSource> _getSPARQL(Examples ex) throws Exception{
+ Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
+
+ Set<String> examples = new TreeSet<String>();
+ examples.addAll(ex.getPosTrain());
+ examples.addAll(ex.getNegTrain());
+ SparqlKnowledgeSource ks = ComponentFactory.getSparqlKnowledgeSource(new URL(sparqlEndpointURL), examples);
+ ks.getConfigurator().setUrl(new URL(sparqlEndpointURL));
+ ks.getConfigurator().setDefaultGraphURIs(new HashSet<String>(Arrays.asList(new String[]{graph})));
+ ks.getConfigurator().setInstances(examples);
+ ks.getConfigurator().setDissolveBlankNodes(false);
+ ks.getConfigurator().setRecursionDepth(2);
+ ks.getConfigurator().setDissolveBlankNodes(false);
+ ks.getConfigurator().setCloseAfterRecursion(true);
+ ks.getConfigurator().setGetAllSuperClasses(true);
+ ks.getConfigurator().setGetPropertyInformation(false);
+ ks.getConfigurator().setUseLits(true);
+// ks.getConfigurator().
+ OWLFile ks2 = ComponentFactory.getOWLFile(new File(propertiesXML).toURI().toURL());
+ tmp.add(ks);
+ tmp.add(ks2);
+
+ return tmp;
+ }
+
+ //test if virtuoso is correct
+ public static void validate(Description d, Examples newlyFound){
+ try {
+ ExMakerFixedSize fs = new ExMakerFixedSize(newlyFound);
+ Examples tmp = fs.select(100, 100);
+ FastInstanceChecker fc = _getFastInstanceChecker(tmp);
+ SortedSet<Individual> inds = fc.getIndividuals(d);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static FastInstanceChecker _getFastInstanceChecker(Examples ex)throws Exception{
+ Set<KnowledgeSource> tmp = _getOWL(ex);
+// Set<KnowledgeSource> tmp = _getSPARQL(ex);
+
+
+ FastInstanceChecker rc = ComponentFactory.getFastInstanceChecker(tmp);
+ for (KnowledgeSource ks : tmp) {
+ ks.init();
+ }
+ rc.init();
+ return rc;
+ }
+
+ public static EvaluatedDescription learn(Examples ex, ExperimentConfig config) {
+ Monitor init = JamonMonitorLogger.getTimeMonitor(GlobalTest.class, "init").start();
+
+ EvaluatedDescription result = null;
+
+ try {
+ FastInstanceChecker rc = _getFastInstanceChecker(ex);
+ PosNegLPStandard lp = ComponentFactory
+ .getPosNegLPStandard(rc, ex.getPosTrain(), ex.getNegTrain());
+ LearningAlgorithm la = _getROLLearner(lp, rc, config, ex);
+ lp.init();
+ la.init();
+ init.stop();
+ Monitor learning = JamonMonitorLogger.getTimeMonitor(GlobalTest.class, "learning")
+ .start();
+ la.start();
+ learning.stop();
+
+ result = la.getCurrentlyBestEvaluatedDescription();
+ logger.debug(PrefixMap.toKBSyntaxString(result.getDescription()));
+ logger.debug(PrefixMap.toManchesterSyntaxString(result.getDescription()));
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(0);
+ }
+ return result;
+ }
+
+ public static SortedSet<String> getSentences(EvaluatedDescription ed, int resultLimit) {
+ SortedSet<String> result = new TreeSet<String>();
+ SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
+ visit.setDistinct(true);
+ visit.setLabels(false);
+ visit.setLimit(resultLimit);
+ String sparqlQuery = "";
+ try {
+ sparqlQuery = visit.getSparqlQuery(ed.getDescription());
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ }
+ logger.debug(PrefixMap.toKBSyntaxString(ed.getDescription()));
+ sparqlQuery = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQuery;
+ logger.debug(sparqlQuery);
+
+ Monitor m = JamonMonitorLogger.getTimeMonitor(GlobalTest.class, "sparqlquery").start();
+ result.addAll(sparqlTasks.queryAsSet(sparqlQuery, "subject"));
+ m.stop();
+ logger.debug("query avg: " + ((double)m.getAvg() / (double)1000)+ " seconds (last: "+((double)m.getLastValue() / (double)1000)+")");
+ if(result.isEmpty()){
+
+ logger.error("sparql query returned no results ");
+ logger.error(sparqlQuery);
+ System.exit(0);
+ }
+ return result;
+ }
+
+ private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc, ExperimentConfig config, Examples ex)
+ throws Exception {
+
+ int maxExecutionTime = config.maxExecutionTime;
+ int valueFrequencyThreshold = config.valueFrequencyThreshold;
+ if(config.adaptive){
+ maxExecutionTime = 2 * ex.sizeOfTrainingSets();
+ valueFrequencyThreshold = ex.getPosTrain().size();
+// valueFrequencyThreshold = (int) Math.floor(0.8d*((double)ex.getPosTrain().size()));
+
+ }
+
+ ROLComponent2 la = ComponentFactory.getROLComponent2(lp, rc);
+ la.getConfigurator().setUseExistsConstructor(true);
+
+ la.getConfigurator().setUseAllConstructor(false);
+ la.getConfigurator().setUseCardinalityRestrictions(false);
+ la.getConfigurator().setUseNegation(false);
+ la.getConfigurator().setUseHasValueConstructor(false);
+ la.getConfigurator().setUseDataHasValueConstructor(true);
+ la.getConfigurator().setValueFrequencyThreshold(valueFrequencyThreshold);
+
+ la.getConfigurator().setIgnoredConcepts(new HashSet<String>(Arrays.asList(new String[]{
+ "http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag",
+ "http://nlp2rdf.org/ontology/comma_tag",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SentenceFinalPunctuation"
+ })));
+
+
+ la.getConfigurator().setNoisePercentage(config.noise);
+ la.getConfigurator().setTerminateOnNoiseReached(true);
+ la.getConfigurator().setMaxExecutionTimeInSeconds(maxExecutionTime);
+
+ if(config.useStartClass){
+ la.getConfigurator().setStartClass(prefix + "Sentence");
+ }
+
+ la.getConfigurator().setWriteSearchTree(config.searchTree);
+ la.getConfigurator().setSearchTreeFile("log/searchTreeTiger.txt");
+ la.getConfigurator().setReplaceSearchTree(true);
+ return la;
+ }
+
+ public static SortedSet<String> read(String f) {
+ SortedSet<String> result = new TreeSet<String>();
+ BufferedReader in = null;
+ try {
+ in = new BufferedReader(new InputStreamReader(new FileInputStream(f)));
+
+ String line;
+ while ((line = in.readLine()) != null) {
+ try {
+ line = line.trim();
+ Integer.parseInt(line);
+ if (!result.add(sentenceprefix + line)) {
+ logger.error("reading failed");
+ System.exit(0);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ System.exit(0);
+ }
+ }
+
+ } catch (Exception e) {
+ e.printStackTrace();
+ logger.error("Could not read examples from: " + f);
+ System.exit(0);
+
+ } finally {
+ try {
+ in.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+ logger.info("read " + result.size() + " lines from " + f);
+
+ return result;
+ }
+
+}
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-13 17:45:31 UTC (rev 2033)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-13 19:33:50 UTC (rev 2034)
@@ -26,6 +26,8 @@
import org.dllearner.core.LearningProblem;
import org.dllearner.core.ReasonerComponent;
import org.dllearner.core.configurators.ComponentFactory;
+import org.dllearner.core.owl.Description;
+import org.dllearner.core.owl.Individual;
import org.dllearner.kb.OWLFile;
import org.dllearner.kb.sparql.Cache;
import org.dllearner.kb.sparql.SPARQLTasks;
@@ -36,6 +38,7 @@
import org.dllearner.learningproblems.PosNegLPStandard;
import org.dllearner.reasoning.FastInstanceChecker;
import org.dllearner.refinementoperators.RhoDRDown;
+import org.dllearner.utilities.Files;
import org.dllearner.utilities.Helper;
import org.dllearner.utilities.JamonMonitorLogger;
import org.dllearner.utilities.examples.ExMakerFixedSize;
@@ -47,7 +50,10 @@
public class TestIterativeLearning {
private static final Logger logger = Logger.getLogger(TestIterativeLearning.class);
- static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
+ static DecimalFormat df = new DecimalFormat("00.###%");
+
+// static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
+ static String backgroundXML = "files/tiger_trimmed_toPOS.rdf";
static String propertiesXML = "files/propertiesOnly.rdf";
static String sentenceXMLFolder = "files/tiger/";
static String sentenceprefix = "http://nlp2rdf.org/ontology/s";
@@ -68,6 +74,8 @@
+
+
final static boolean debug = false;
//no randomization in examples
final static boolean randomizedebug = !debug;
@@ -133,7 +141,7 @@
EvaluatedDescription ed = learn(learn, config);
/*RETRIEVING*/
- SortedSet<String> retrieved = getSentences(ed, config.resultLimit);
+ SortedSet<String> retrieved = getSentences(ed, config.resultLimit, learn);
logger.debug("Retrieved "+retrieved.size()+" sentences");
@@ -142,23 +150,34 @@
SortedSet<String> posAsPos = Helper.intersection(retrieved, allExamples.getPosTrain());
logger.debug("Number of retrieved positives: "+posAsPos.size());
logger.debug("Number of total positives: "+allExamples.getPosTrain().size());
- precision( posAsPos.size(), retrieved.size());
+ results(posAsPos, retrieved, allExamples);
//Menge aller positiven geschn. mit den gefundenen
- recall( posAsPos.size(),allExamples.getPosTrain().size());
-
SortedSet<String> negAsPos = Helper.intersection(retrieved, allExamples.getNegTrain());
logger.debug("Number of retrieved negatives: "+negAsPos.size());
logger.debug("Total: "+posAsPos.size()+" + "+negAsPos.size() +" = "+retrieved.size());
+ //not covered
+
+
// if(retrieved.size()!=(posAsPos.size()+negAsPos.size())){
// logger.warn("sets are wrong");
// System.exit(0);
// }
Examples newlyFound = new Examples();
- newlyFound.addPosTrain(Helper.intersection(retrieved, learn.getPosTest()));
- newlyFound.addNegTrain(Helper.intersection(retrieved, learn.getNegTest()));
+ SortedSet<String> discoveredPosInStore = Helper.intersection(retrieved, learn.getPosTest());
+ SortedSet<String> misclassifiedNegInStore = Helper.intersection(retrieved, learn.getNegTest());
+ newlyFound.addPosTrain(discoveredPosInStore);
+ newlyFound.addNegTrain(misclassifiedNegInStore);
+ int print = 5;
+ logger.info("Discovered "+discoveredPosInStore.size()+" positive sentences in store (printing "+print+"):");
+ _getLabels(discoveredPosInStore, print);
+ logger.info("Misclassified "+misclassifiedNegInStore.size()+" negative sentences in store (printing "+print+"):");
+ _getLabels(misclassifiedNegInStore, print);
+
+
+
fs = new ExMakerFixedSize(newlyFound, randomizedebug);
newlyFound = fs.select(config.splits, config.splits);
@@ -175,20 +194,33 @@
}
- public static void precision( int posAsPos, int retrieved){
- logger.info("Precision: "+DecimalFormat.getPercentInstance().format(((double)posAsPos)/(double)retrieved)+"%");
+ private static void results(SortedSet<String> posAsPos, SortedSet<String> retrieved, Examples allExamples) {
+ double precision = precision( posAsPos.size(), retrieved.size());
+ double recall = recall( posAsPos.size(),allExamples.getPosTrain().size());
+ logger.info("F-Measure: "+df.format( (2*precision*recall)/(precision+recall)) );
+
}
- public static void recall( int posAsPos, int allPositives){
- logger.info("Recall: "+DecimalFormat.getPercentInstance().format(((double)posAsPos)/(double)allPositives)+"%");
+
+ public static double precision( int posAsPos, int retrieved){
+ double precision = ((double)posAsPos)/((double)retrieved);
+ logger.info("Precision: "+df.format(precision));
+ return precision;
+ }
+ public static double recall( int posAsPos, int allPositives){
+ double recall = ((double)posAsPos)/((double)allPositives);
+ logger.info("Recall: "+df.format(recall));
+ return recall;
+
}
private static Set<KnowledgeSource> _getOWL(Examples ex) throws Exception{
Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
List<URL> urls = new ArrayList<URL>();
+ urls.add(new File(backgroundXML).toURI().toURL());
urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getPosTrain()));
urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getNegTrain()));
- urls.add(new File(backgroundXML).toURI().toURL());
+
for (URL u : urls) {
OWLFile ks = ComponentFactory.getOWLFile(u);
@@ -222,25 +254,42 @@
return tmp;
}
- public static EvaluatedDescription learn(Examples ex, ExperimentConfig config) {
- Monitor init = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "init").start();
-
- EvaluatedDescription result = null;
-
+ //test if virtuoso is correct
+ public static void validate(Description d, Examples newlyFound){
try {
+ ExMakerFixedSize fs = new ExMakerFixedSize(newlyFound);
+ Examples tmp = fs.select(100, 100);
+ FastInstanceChecker fc = _getFastInstanceChecker(tmp);
+ @SuppressWarnings("unused")
+ SortedSet<Individual> inds = fc.getIndividuals(d);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static FastInstanceChecker _getFastInstanceChecker(Examples ex)throws Exception{
Set<KnowledgeSource> tmp = _getOWL(ex);
// Set<KnowledgeSource> tmp = _getSPARQL(ex);
FastInstanceChecker rc = ComponentFactory.getFastInstanceChecker(tmp);
- PosNegLPStandard lp = ComponentFactory
- .getPosNegLPStandard(rc, ex.getPosTrain(), ex.getNegTrain());
- LearningAlgorithm la = _getROLLearner(lp, rc, config, ex);
-
for (KnowledgeSource ks : tmp) {
ks.init();
}
rc.init();
+ return rc;
+ }
+
+ public static EvaluatedDescription learn(Examples ex, ExperimentConfig config) {
+ Monitor init = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "init").start();
+
+ EvaluatedDescription result = null;
+
+ try {
+ FastInstanceChecker rc = _getFastInstanceChecker(ex);
+ PosNegLPStandard lp = ComponentFactory
+ .getPosNegLPStandard(rc, ex.getPosTrain(), ex.getNegTrain());
+ LearningAlgorithm la = _getROLLearner(lp, rc, config, ex);
lp.init();
la.init();
init.stop();
@@ -260,33 +309,64 @@
return result;
}
- public static SortedSet<String> getSentences(EvaluatedDescription ed, int resultLimit) {
+ public static SortedSet<String> getSentences(EvaluatedDescription ed, int resultLimit, Examples justforFindingTheBug) {
SortedSet<String> result = new TreeSet<String>();
SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
visit.setDistinct(true);
visit.setLabels(false);
visit.setLimit(resultLimit);
- String sparqlQuery = "";
+ String sparqlQueryGood = "";
+ String sparqlQueryBad = "";
try {
- sparqlQuery = visit.getSparqlQuery(ed.getDescription());
+ sparqlQueryGood = visit.getSparqlQuery(ed.getDescription().toKBSyntaxString());
+ sparqlQueryBad = visit.getSparqlQuery(ed.getDescription());
+ if(!sparqlQueryGood.equals(sparqlQueryBad)){
+ String file = "errorDescription/"+System.currentTimeMillis();
+ justforFindingTheBug.writeExamples(file);
+ Files.appendFile(new File(file), "\n\n/**\nGood:\n"+sparqlQueryGood+"\nBad:\n"+sparqlQueryBad+"**/");
+ }
+
} catch (Exception e1) {
e1.printStackTrace();
}
- logger.debug(PrefixMap.toKBSyntaxString(ed.getDescription()));
- sparqlQuery = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQuery;
- logger.debug(sparqlQuery);
+ logger.debug("USING CONCEPT: "+PrefixMap.toKBSyntaxString(ed.getDescription()));
+ sparqlQueryGood = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQueryGood;
+ logger.debug(sparqlQueryGood);
Monitor m = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "sparqlquery").start();
- result.addAll(sparqlTasks.queryAsSet(sparqlQuery, "subject"));
+ result.addAll(sparqlTasks.queryAsSet(sparqlQueryGood, "subject"));
+ m.stop();
logger.debug("query avg: " + ((double)m.getAvg() / (double)1000)+ " seconds (last: "+((double)m.getLastValue() / (double)1000)+")");
if(result.isEmpty()){
logger.error("sparql query returned no results ");
- logger.error(sparqlQuery);
+ logger.error(sparqlQueryGood);
System.exit(0);
}
return result;
}
+
+ private static void _getLabels(SortedSet<String> sentenceURIs, int limit){
+ int i = 0;
+ for (String sentenceURI : sentenceURIs) {
+ if(i>=limit){
+ break;
+ }
+ i++;
+ _getLabel(sentenceURI);
+ }
+ }
+
+ private static void _getLabel(String sentenceURI){
+ String query = "SELECT * FROM <"+graph+"> " +
+ "{ <"+sentenceURI+"> rdfs:label ?label . }";
+ SortedSet<String> s = sparqlTasks.queryAsSet(query, "label");
+ if(s.isEmpty()){
+ logger.warn("no label for "+sentenceURI);
+ }else{
+ logger.debug(sentenceURI.replace(prefix, "")+" "+s.first());
+ }
+ }
private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc, ExperimentConfig config, Examples ex)
throws Exception {
@@ -295,7 +375,8 @@
int valueFrequencyThreshold = config.valueFrequencyThreshold;
if(config.adaptive){
maxExecutionTime = 2 * ex.sizeOfTrainingSets();
- valueFrequencyThreshold = (int) Math.floor(0.8d*((double)ex.getPosTrain().size()));
+ valueFrequencyThreshold = ex.getPosTrain().size();
+// valueFrequencyThreshold = (int) Math.floor(0.8d*((double)ex.getPosTrain().size()));
}
@@ -324,9 +405,9 @@
la.getConfigurator().setStartClass(prefix + "Sentence");
}
- la.getConfigurator().setWriteSearchTree(false);
- la.getConfigurator().setSearchTreeFile("log/searchTree.txt");
- la.getConfigurator().setReplaceSearchTree(false);
+ la.getConfigurator().setWriteSearchTree(config.searchTree);
+ la.getConfigurator().setSearchTreeFile("log/searchTreeTiger.txt");
+ la.getConfigurator().setReplaceSearchTree(true);
return la;
}
Modified: trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java 2010-02-13 17:45:31 UTC (rev 2033)
+++ trunk/src/dl-learner/org/dllearner/utilities/examples/Examples.java 2010-02-13 19:33:50 UTC (rev 2034)
@@ -26,6 +26,7 @@
import java.util.TreeSet;
import org.apache.log4j.Logger;
+import org.dllearner.utilities.URLencodeUTF8;
/**
* a container for examples
@@ -154,12 +155,19 @@
public void writeExamples(String filename) {
try {
FileWriter a = new FileWriter(filename, false);
+
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("\n\n\n\n\n");
for (String s : posTrain) {
- a.write("+\"" + s + "\"\n");
+ a.write("import(\""+URLencodeUTF8.encode(s)+"\");\n");
+ buffer.append("+\"" + s + "\"\n");
}
for (String s : negTrain) {
- a.write("-\"" + s + "\"\n");
+ a.write("import(\""+URLencodeUTF8.encode(s)+"\");\n");
+ buffer.append("-\"" + s + "\"\n");
}
+
+ a.write(buffer.toString());
a.flush();
a.close();
logger.info("wrote examples to " + filename);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-16 01:08:48
|
Revision: 2042
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2042&view=rev
Author: kurzum
Date: 2010-02-16 00:17:05 +0000 (Tue, 16 Feb 2010)
Log Message:
-----------
almost finished DescriptionSubsumptionTree,
still a NullPointer somewhere...
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentCollector.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentConfig.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/utilities/datastructures/DescriptionSubsumptionTree.java
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-15 18:40:49 UTC (rev 2041)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -47,8 +47,8 @@
import org.dllearner.utilities.experiments.ExperimentCollector;
import org.dllearner.utilities.experiments.IteratedConfig;
import org.dllearner.utilities.experiments.Jamon;
+import org.dllearner.utilities.experiments.Table;
-import com.jamonapi.MonKey;
import com.jamonapi.MonKeyImp;
import com.jamonapi.Monitor;
@@ -114,7 +114,7 @@
}
folds = 2;
- iterations = 1;
+ iterations = 2;
long n = System.currentTimeMillis();
passiveNoZU();
// passiveWithZu();
@@ -144,25 +144,27 @@
// ExMakerCrossFolds.printFolds(folds);
List<IteratedConfig> configs = getConfigs();
for (IteratedConfig experimentConfig : configs) {
- logger.warn("next: passiveNoZU."+experimentConfig.label);
+ experimentConfig.init(mks);
+ logger.warn("next: passiveNoZU."+experimentConfig.experimentName);
int i = 1;
for (Examples examples : folds) {
-
- for(MonKeyImp m : mks){
- experimentConfig.init(m);
- }
-
logger.warn("beginning fold: "+(i++));
conductExperiment( examples, experimentConfig);
+
}
+ Table t = new Table();
+ t.addTableRowColumn(experimentConfig.getTableRows());
+ t.sortByLabel();
+ JamonMonitorLogger.writeHTMLReport("/tmp/tiger.html");
+ System.out.println(t.getGnuPlotAsColumn());
if (true) {
System.exit(0);
}
- eColl_passiveNoZU.addExperimentConfig(experimentConfig);
+// eColl_passiveNoZU.addExperimentConfig(experimentConfig);
logger.info(experimentConfig);
- eColl_passiveNoZU.write(iterations);
+// eColl_passiveNoZU.write(iterations);
}
@@ -192,7 +194,7 @@
List<IteratedConfig> configs = getConfigs();
for (IteratedConfig experimentConfig : configs) {
- logger.warn("next: passiveWithZu."+experimentConfig.label);
+ logger.warn("next: passiveWithZu."+experimentConfig.experimentName);
int i=1;
for (Examples examples : runs) {
logger.warn("beginning run: "+(i++));
@@ -259,6 +261,17 @@
for(int i = 0 ; config.stopCondition(i, precision, recall, fmeasure, lastConcept) ;i++ ) {
Monitor iterationTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "iterationTime").start();
Monitor literationTime = config.start(logIterationTime, i);
+// try {
+// Thread.sleep(2000);
+// } catch (InterruptedException e) {
+// // TODO Auto-generated catch block
+// e.printStackTrace();
+// }
+// literationTime.stop();
+// System.out.println(literationTime);
+// if (true) {
+// System.exit(0);
+// }
/*LEARNING*/
Monitor lLearningTime = config.start(logLearningTime, i);
Added: trunk/src/dl-learner/org/dllearner/utilities/datastructures/DescriptionSubsumptionTree.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/datastructures/DescriptionSubsumptionTree.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/utilities/datastructures/DescriptionSubsumptionTree.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -0,0 +1,127 @@
+package org.dllearner.utilities.datastructures;
+
+import java.util.Collection;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.dllearner.core.EvaluatedDescription;
+import org.dllearner.core.ReasonerComponent;
+import org.dllearner.core.owl.Description;
+import org.dllearner.learningproblems.EvaluatedDescriptionPosNeg;
+
+public class DescriptionSubsumptionTree {
+ public class Node {
+ public Node parent;
+ public double accuracy;
+
+ //by length?
+ public SortedSet<EvaluatedDescription> equivalents = new TreeSet<EvaluatedDescription>();
+
+ //by accuracy
+ public SortedSet<Node> subClasses = new TreeSet<Node>();
+
+ public Node(EvaluatedDescription ed){
+ if(ed!=null) {equivalents.add(ed);};
+ accuracy = ed.getAccuracy();
+ }
+
+ //happens only if n is sure to be a subclass
+ public void insert(Node n){
+ if(subClasses.isEmpty()){
+ subClasses.add(n);
+ }else{
+ SortedSet<Node> toBeRemoved = new TreeSet<Node>();
+ for (Node sub : subClasses) {
+ if(rc.isSuperClassOf(getDesc(), sub.getDesc())){
+ //subClass of subclass
+ sub.insert(n);
+ n.parent = sub;
+ }else if(rc.isEquivalentClass(getDesc(), sub.getDesc())){
+ //EquivalentClass of subclass
+ sub.equivalents.add(n.getEvalDesc());
+ }else{
+ //superclass of subclass
+ n.parent = this;
+ n.subClasses.add(sub);
+ toBeRemoved.add(sub);
+ }
+ }
+ //needs to be done outside, concurrent exception
+ for (Node node : toBeRemoved) {
+ subClasses.remove(node);
+ }
+ }
+ }
+
+
+ public boolean isRoot(){
+ return (parent == null);
+ }
+
+ public EvaluatedDescription getEvalDesc(){
+ return equivalents.first();
+ }
+ public Description getDesc(){
+ return equivalents.first().getDescription();
+ }
+ @Override
+ public String toString(){
+ return getEvalDesc().toString();
+ }
+
+ public String _toString(String tab){
+ String ret = (isRoot())?"Thing\n":"";
+
+ if(subClasses.isEmpty()){
+ ret+= this+"\n";
+ }
+ tab+=" ";
+ for (Node sub : subClasses) {
+ ret += sub.toString()+"\n";
+ }
+ return ret;
+ }
+
+
+ }
+ private Node root;
+
+ private final ReasonerComponent rc;
+
+ public DescriptionSubsumptionTree(ReasonerComponent rc){
+ this.rc = rc;
+ this.root = new Node(null);
+ this.root.parent = null;
+ }
+
+ public static void main(String[] args) {
+
+ }
+
+ public void insert(Collection<EvaluatedDescription> evaluatedDescriptions){
+ for (EvaluatedDescription evaluatedDescription : evaluatedDescriptions) {
+ System.out.println("Adding: "+evaluatedDescription.toString());
+ Node n = new Node(evaluatedDescription);
+ this.root.insert(n);
+ }
+ }
+ public void insertEdPosNeg(Collection<EvaluatedDescriptionPosNeg> evaluatedDescriptions, int limit){
+ int i=0;
+ for (EvaluatedDescription evaluatedDescription : evaluatedDescriptions) {
+
+ System.out.println("Adding: "+evaluatedDescription.toString());
+ Node n = new Node(evaluatedDescription);
+ this.root.insert(n);
+ if(i>limit){break;}
+ i++;
+ }
+ }
+
+ @Override
+ public String toString(){
+ return root._toString("");
+ }
+
+
+
+}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentCollector.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentCollector.java 2010-02-15 18:40:49 UTC (rev 2041)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentCollector.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -20,6 +20,8 @@
public static DecimalFormat dfhuman = new DecimalFormat("##.##%");
public static DecimalFormat dfRuntime = new DecimalFormat("####.");
List<IteratedConfig> experimentConfigs = new ArrayList<IteratedConfig>();
+
+
public ExperimentCollector(String filePrefix) {
details = dir + filePrefix + "_" + "details";
@@ -42,7 +44,7 @@
String headerGNU = "\t";
String headerLatex = "\t&\t";
for (IteratedConfig ec : experimentConfigs) {
- headerGNU += ec.label + "\t";
+ headerGNU += ec.experimentName + "\t";
Files.appendFile(new File(details), ec.toString());
}
for (int i = 0; i < iterations; i++) {
@@ -67,7 +69,7 @@
}
for (IteratedConfig ec : experimentConfigs) {
- String label = ec.label ;
+ String label = ec.experimentName ;
String learningTimeLatex = label+" learn"+ "\t&\t";
String totalTimeLatex = label+" total"+ "\t&\t";
String fmeasureLatex = label+ "\t&\t";
@@ -83,7 +85,7 @@
}
for (IteratedConfig ec : experimentConfigs) {
- String label = ec.label;
+ String label = ec.experimentName;
String learningTimeHuman = label+" learn" + "\t&\t";
String totalTimeHuman = label+" total" + "\t&\t";
String fmeasureHuman = label + "\t&\t";
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentConfig.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentConfig.java 2010-02-15 18:40:49 UTC (rev 2041)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/ExperimentConfig.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -15,8 +15,8 @@
public class ExperimentConfig {
private static final Logger logger = Logger.getLogger(ExperimentConfig.class);
- public final String label;
- public final int iterations;
+ public final String experimentName;
+ public final int sizeOfResultVector;
protected List<MonitorComposite> mcs = new ArrayList<MonitorComposite>();
protected Map<String,MonitorComposite> mcsMap = new HashMap<String, MonitorComposite>();
@@ -25,47 +25,89 @@
public ExperimentConfig(String label){
this(label,1);
}
- public ExperimentConfig(String label, int iterations){
- this.label = label;
- this.iterations = iterations;
+ public ExperimentConfig(String experimentName, int sizeOfResultVector){
+ this.experimentName = experimentName;
+ this.sizeOfResultVector = sizeOfResultVector;
}
@Override
public String toString(){
- return this.label+" with "+iterations+" iterations";
+ return this.experimentName+" with "+sizeOfResultVector+" iterations";
}
public List<TableRowColumn> getTableRows(){
List<TableRowColumn> l = new ArrayList<TableRowColumn>();
+ if(sizeOfResultVector == 1) {
+ Monitor[] monitors = new Monitor[mcs.size()];
+// TableRowColumn trc =
+ for (int i = 0; i < monitors.length; i++) {
+ monitors[i] = mcs.get(i).getMonitors()[0];
+ }
+ l.add(new TableRowColumn(monitors, experimentName, ""));
+
+ }else{
+ for(MonitorComposite mc :mcs){
+ l.add(new TableRowColumn(mc.getMonitors(), experimentName, getRev(mc)));
+ }
+ }
+
return l;
}
- public void init(MonKeyImp monkey){
- Monitor[] marr = new Monitor[iterations];
- for (int i = 0; i < iterations; i++) {
- marr[i] = MonitorFactory.getMonitor(mon(monkey, i));
+ private MonitorComposite get(MonKeyImp m){
+ return mcsMap.get(mon(m).getLabel());
+ }
+ private String getRev(MonitorComposite mc){
+ return mcsMapRev.get(mc);
+ }
+
+ private void put(MonKeyImp m ,MonitorComposite mc ){
+ mcsMap.put(mon(m).getLabel(), mc);
+ }
+ private void putRev(MonitorComposite mc , MonKeyImp m ){
+ mcsMapRev.put( mc, m.getLabel());
+ }
+
+ public void init(List<MonKeyImp> monkeys){
+ for (MonKeyImp monKeyImp : monkeys) {
+ init(monKeyImp);
}
+// JamonMonitorLogger.writeHTMLReport("/tmp/tiger.html");
+ }
+
+ public void init(MonKeyImp oldMonkey){
+ Monitor[] marr = new Monitor[sizeOfResultVector];
+ for (int i = 0; i < sizeOfResultVector; i++) {
+ MonKeyImp newMonKey = mon(oldMonkey, i);
+ if(newMonKey.getUnits().equals(Jamon.MS)){
+ marr[i] = MonitorFactory.getTimeMonitor(newMonKey);
+ }else{
+ marr[i] = MonitorFactory.getMonitor(newMonKey);
+ }
+ }
MonitorComposite m = new MonitorComposite(marr);
mcs.add(m);
- mcsMap.put( monkey.getLabel(),m);
- mcsMapRev.put(m, monkey.getLabel());
+ put( oldMonkey,m);
+ putRev(m, oldMonkey);
+
}
protected MonKeyImp mon(MonKeyImp monkey){
- return (monkey.getLabel().startsWith(label))?monkey:new MonKeyImp(label+monkey.getLabel(), monkey.getUnits());
+ MonKeyImp m = (monkey.getLabel().startsWith(experimentName))?monkey:new MonKeyImp(experimentName+"_"+monkey.getLabel(), monkey.getUnits());
+ return m;
}
- protected MonKeyImp mon(MonKeyImp monkey, int index){
+ protected MonKeyImp mon(MonKeyImp oldMonkey, int index){
//narrensicher
- MonKeyImp l = mon(monkey);
- return (iterations==1)?monkey:new MonKeyImp(l.getLabel()+"_"+index, l.getUnits()) ;
+ MonKeyImp newMonkey = mon(oldMonkey);
+ return new MonKeyImp(newMonkey.getLabel()+"_"+index, newMonkey.getUnits()) ;
}
public void add(MonKeyImp monkey, int index, double value){
try{
- mcsMap.get(monkey.getLabel()).getMonitors()[index].add(value);
+ get(monkey).getMonitors()[index].add(value);
}catch (Exception e) {
e.printStackTrace();
logger.error("index too big, max = "+index);
@@ -73,7 +115,7 @@
}
public Monitor start(MonKeyImp monkey, int index){
- return mcsMap.get(monkey.getLabel()).getMonitors()[index].start();
+ return get(monkey).getMonitors()[index].start();
}
// public static boolean higher(Monitor[] a, double current){
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java 2010-02-15 18:40:49 UTC (rev 2041)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -43,7 +43,7 @@
// if(higher(iterationRecall, recall)){highestRecall=concept;}
// if(higher(iterationFmeasure, fmeasure)){highestFMeasure=concept;}
- boolean condIter = (iteration<this.iterations);
+ boolean condIter = (iteration<this.sizeOfResultVector);
boolean condPrec = fmeasure <=1.0d;
if(!condIter){
logger.info("iterations reached, stopping");
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-15 18:40:49 UTC (rev 2041)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -3,6 +3,8 @@
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
+import java.util.SortedSet;
+import java.util.TreeSet;
import org.apache.log4j.Logger;
import org.dllearner.utilities.JamonMonitorLogger;
@@ -19,6 +21,11 @@
LATEX, GNUPLOT
};
+
+// private Map<String, TableRowColumn> m = new HashMap<String, TableRowColumn>();
+ private SortedSet<String> experimentNames = new TreeSet<String>();
+ private SortedSet<String> labels = new TreeSet<String>();
+
private List<TableRowColumn> tableRowColumns = new ArrayList<TableRowColumn>();
private int length;
@@ -43,8 +50,8 @@
}
// System.out.println("avg: " + m[a].getAvg());
}
- TableRowColumn trc = new TableRowColumn(m, "entry_" + i);
- trc.deleteAll();
+ TableRowColumn trc = new TableRowColumn(m, "Test","entry_" + i);
+// trc.deleteAll();
trc.useStdDev=false;
t.addTableRowColumn(trc);
}
@@ -58,11 +65,19 @@
JamonMonitorLogger.writeHTMLReport("log/tiger.html");
}
+ public void addTableRowColumn(List<TableRowColumn> trcs) {
+ for (TableRowColumn tableRowColumn : trcs) {
+ labels.add(tableRowColumn.getLabel());
+ experimentNames.add(tableRowColumn.getExperimentName());
+ addTableRowColumn(tableRowColumn);
+ }
+ }
+
public void addTableRowColumn(TableRowColumn trc) {
try{
trc.toLatexRow();
}catch (NullPointerException e) {
- logger.error("TableRowColumn was not initialized, ignoring it, label: "+trc.label);
+ logger.error("TableRowColumn was not initialized, ignoring it: "+trc);
e.printStackTrace();
}
@@ -73,7 +88,7 @@
if (trc.size() != length) {
logger.error("Added TableRowColumn does not match previous set length (" + length + ") but has size "
- + trc.size() + "), \nignoring it, label: "+trc.label+", value: " + trc.toLatexRow());
+ + trc.size() + "), \nignoring it: "+trc);
}
@@ -116,13 +131,13 @@
boolean first = (i==1);
switch (f) {
case LATEX:
- rows[0] += (first?trc.label+TableRowColumn.latexSep:"");
+ rows[0] += (first?trc.getHeader()+TableRowColumn.latexSep:"");
rows[i] += (firstColumn&&addNumbersInFront?i+TableRowColumn.latexSep:"");
rows[i] += trc.getLatexEntry(i-1)
+ ((last) ? TableRowColumn.latexSep : TableRowColumn.latexSep);
break;
case GNUPLOT:
- rows[0] += (first?"#"+trc.label+"\t":"");
+ rows[0] += (first?"#"+trc.getHeader()+"\t":"");
rows[i] += (firstColumn&&addNumbersInFront?i+"\t":"");
rows[i] += trc.getGnuPlotEntry(i-1) + ((last) ?"" : "\t");
break;
@@ -152,5 +167,45 @@
}
return (replaceCommaByPoints)?ret.replace(",","."):ret;
}
+
+ public void sortByExperimentName(){
+ _sortByLabel();
+ _sortByExperimentName();
+
+ }
+ public void sortByLabel(){
+ _sortByExperimentName();
+ _sortByLabel();
+ }
+
+ private void _sortByLabel(){
+ List<String> l = new ArrayList<String>(labels);
+ List<TableRowColumn> newTrc = new ArrayList<TableRowColumn>();
+
+ for (String s : l) {
+ for (TableRowColumn trc : tableRowColumns) {
+ if(trc.getLabel().equals(s)){
+ newTrc.add(trc);
+ }
+ }
+ }
+ tableRowColumns = newTrc;
+ }
+ private void _sortByExperimentName(){
+ List<String> l = new ArrayList<String>(experimentNames);
+ List<TableRowColumn> newTrc = new ArrayList<TableRowColumn>();
+
+ for (String s : l) {
+ for (TableRowColumn trc : tableRowColumns) {
+ if(trc.getExperimentName().equals(s)){
+ newTrc.add(trc);
+ }
+ }
+ }
+ tableRowColumns = newTrc;
+ }
+
+
+
}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-15 18:40:49 UTC (rev 2041)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-16 00:17:05 UTC (rev 2042)
@@ -5,7 +5,6 @@
import org.dllearner.utilities.JamonMonitorLogger;
import com.jamonapi.Monitor;
-import com.jamonapi.MonitorFactory;
public class TableRowColumn {
@@ -16,12 +15,13 @@
public static String latexSep = "\t&\t";
public static String latexEnd = "\\\\";
- String label = "";
+ private final String label ;
+ private final String experimentName;
Monitor[] monitors;
boolean useStdDev = false;
- DecimalFormat dfGnuPlotDefault = new DecimalFormat("#######.######");
+ DecimalFormat dfGnuPlotDefault = new DecimalFormat("######0.00####");
// DecimalFormat dfStdDevLatex = new DecimalFormat("##.##%");
DecimalFormat dfLatexDefault = new DecimalFormat("####.####");
@@ -30,9 +30,10 @@
// public TableRowColumn(Monitor[] monitors){
// this.monitors = monitors;
// }
- public TableRowColumn(Monitor[] monitors, String label) {
+ public TableRowColumn(Monitor[] monitors, String experimentName, String label) {
this.monitors = monitors;
this.label = label;
+ this.experimentName = experimentName;
}
@@ -44,10 +45,19 @@
public void deleteAll(){
for (int i = 0; i < monitors.length; i++) {
- MonitorFactory.remove(monitors[i].getMonKey());
+// MonitorFactory.remove(monitors[i].getMonKey());
}
}
+ @Override
+ public String toString(){
+ return experimentName+" "+label+" "+toGnuPlotRow();
+ }
+
+ public String getHeader(){
+ return experimentName+" "+label;
+ }
+
public int size() {
return monitors.length;
}
@@ -59,13 +69,17 @@
public String getLabel() {
return label;
}
+
+ public String getExperimentName() {
+ return experimentName;
+ }
public String toGnuPlotRow() {
return toRow(Formats.GNUPLOT);
}
private String toRow(Formats f) {
- String ret = label;
+ String ret = experimentName+ " "+ label;
for (int i = 0; i < monitors.length; i++) {
boolean last = (i + 1 == monitors.length);
switch (f) {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-16 14:06:01
|
Revision: 2046
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2046&view=rev
Author: kurzum
Date: 2010-02-16 14:05:54 +0000 (Tue, 16 Feb 2010)
Log Message:
-----------
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-16 13:23:18 UTC (rev 2045)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-16 14:05:54 UTC (rev 2046)
@@ -58,10 +58,12 @@
static DecimalFormat df = new DecimalFormat("00.###%");
public static DecimalFormat dftime = new DecimalFormat("#####.#");
-// static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
+ // static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
static String backgroundXML = "files/tiger_trimmed_toPOS.rdf";
static String propertiesXML = "files/propertiesOnly.rdf";
static String sentenceXMLFolder = "files/tiger/";
+ static String resultFolder = "tigerResults/";
+
static String sentenceprefix = "http://nlp2rdf.org/ontology/s";
static String prefix = "http://nlp2rdf.org/ontology/";
@@ -77,24 +79,24 @@
static String sparqlEndpointURL = "http://db0.aksw.org:8893/sparql";
static String graph = "http://nlp2rdf.org/tiger";
static String rulegraph = "http://nlp2rdf.org/schema/rules1";
-
-
- static MonKeyImp logFMeasure = new MonKeyImp("F-Measure",Jamon.PERCENTAGE);
- static MonKeyImp logPrecision = new MonKeyImp("Precision",Jamon.PERCENTAGE);
- static MonKeyImp logRecall = new MonKeyImp("Recall",Jamon.PERCENTAGE);
- static MonKeyImp logAccuracy = new MonKeyImp("Accuracy",Jamon.PERCENTAGE);
-
- static MonKeyImp logLearningTime = new MonKeyImp("Learning Time",Jamon.MS);
- static MonKeyImp logIterationTime = new MonKeyImp("Iteration Time",Jamon.MS);
-
-
- static List<MonKeyImp> mks = new ArrayList<MonKeyImp>(Arrays.asList(new MonKeyImp[]{logPrecision, logRecall, logFMeasure, logLearningTime, logIterationTime}));
-
+
+ static MonKeyImp logFMeasure = new MonKeyImp("F-Measure", Jamon.PERCENTAGE);
+ static MonKeyImp logPrecision = new MonKeyImp("Precision", Jamon.PERCENTAGE);
+ static MonKeyImp logRecall = new MonKeyImp("Recall", Jamon.PERCENTAGE);
+ static MonKeyImp logAccuracy = new MonKeyImp("Accuracy", Jamon.PERCENTAGE);
+
+ static MonKeyImp logLearningTime = new MonKeyImp("Learning Time", Jamon.MS);
+ static MonKeyImp logIterationTime = new MonKeyImp("Iteration Time", Jamon.MS);
+
+ static List<MonKeyImp> mks = new ArrayList<MonKeyImp>(Arrays.asList(new MonKeyImp[] { logPrecision,
+ logRecall, logFMeasure, logLearningTime, logIterationTime }));
+
static int iterations = 4;
- static int folds = 6;
+ static int folds = 10;
static int printSentences = 3;
- //no randomization in examples
+ // no randomization in examples
+
public static void main(String[] args) {
LogHelper.initLoggers();
Logger.getLogger(Cache.class).setLevel(Level.INFO);
@@ -102,9 +104,9 @@
Logger.getLogger(ROLearner2.class).setLevel(Level.INFO);
Logger.getLogger(RhoDRDown.class).setLevel(Level.INFO);
Logger.getLogger(SparqlQuery.class).setLevel(Level.INFO);
-
- Files.mkdir("results");
-
+
+ Files.mkdir(resultFolder);
+
try {
sparqlEndpoint = new SparqlEndpoint(new URL(sparqlEndpointURL), new ArrayList<String>(Arrays
.asList(new String[] { graph })), new ArrayList<String>());
@@ -113,289 +115,291 @@
e.printStackTrace();
}
- folds = 2;
- iterations = 2;
+ // folds = 2;
+ // iterations = 2;
long n = System.currentTimeMillis();
passiveNoZU();
-// passiveWithZu();
+ // passiveWithZu();
- logger.warn("finished, needed: "+(System.currentTimeMillis()-n));
+ logger.info("finished, needed: " + (System.currentTimeMillis() - n));
JamonMonitorLogger.writeHTMLReport("log/tiger.html");
}
-
- public static void passiveNoZU(){
- ExperimentCollector eColl_passiveNoZU = new ExperimentCollector("passiveNoZU");
-
- SortedSet<String> positives = read(passiveNoZU);
- SortedSet<String> negatives = read(active);
-
- //removing overlap
- positives.removeAll(negatives);
- negatives.removeAll(positives);
-
- Examples allExamples = new Examples();
- allExamples.addPosTrain(positives);
- allExamples.addNegTrain(negatives);
-
- logger.debug("All examples \n"+allExamples);
-
- List<Examples> folds = new ExMakerCrossFolds(allExamples).splitLeaveOneOut(TestIterativeLearning.folds);
-// ExMakerCrossFolds.printFolds(folds);
- List<IteratedConfig> configs = getConfigs();
- for (IteratedConfig experimentConfig : configs) {
- experimentConfig.init(mks);
- logger.warn("next: passiveNoZU."+experimentConfig.experimentName);
- int i = 1;
- for (Examples examples : folds) {
- logger.warn("beginning fold: "+(i++));
-
- conductExperiment( examples, experimentConfig);
-
- }
- Table t = new Table();
- t.addTableRowColumn(experimentConfig.getTableRows());
- t.sortByLabel();
- JamonMonitorLogger.writeHTMLReport("/tmp/tiger.html");
- System.out.println(t.getGnuPlotAsColumn());
- if (true) {
- System.exit(0);
- }
-
-// eColl_passiveNoZU.addExperimentConfig(experimentConfig);
- logger.info(experimentConfig);
-// eColl_passiveNoZU.write(iterations);
+
+ public static void passiveNoZU() {
+
+ SortedSet<String> positives = read(passiveNoZU);
+ SortedSet<String> negatives = read(active);
+
+ // removing overlap
+ positives.removeAll(negatives);
+ negatives.removeAll(positives);
+
+ Examples allExamples = new Examples();
+ allExamples.addPosTrain(positives);
+ allExamples.addNegTrain(negatives);
+
+ logger.debug("All examples \n" + allExamples);
+
+ List<Examples> folds = new ExMakerCrossFolds(allExamples)
+ .splitLeaveOneOut(TestIterativeLearning.folds);
+ // ExMakerCrossFolds.printFolds(folds);
+ List<IteratedConfig> configs = getConfigs();
+ Table masterTable = new Table();
+ for (IteratedConfig experimentConfig : configs) {
+ experimentConfig.init(mks);
+ logger.info("next: passiveNoZU." + experimentConfig.experimentName);
+ int i = 1;
+ for (Examples examples : folds) {
+ logger.info("beginning fold: " + (i++));
+ conductExperiment(examples, experimentConfig);
}
-
-
+ Table expTable = new Table();
+ expTable.addTableRowColumn(experimentConfig.getTableRows());
+ expTable.write(resultFolder, experimentConfig.experimentName);
+ masterTable.addTable(expTable);
+ masterTable.sortByExperimentName();
+ masterTable.write(resultFolder, "master_by_expname");
+ masterTable.sortByLabel();
+ masterTable.write(resultFolder, "master_by_label");
+
+ JamonMonitorLogger.writeHTMLReport("/tmp/tiger.html");
+ logger.info(experimentConfig);
+
+ }
+
}
-
- public static void passiveWithZu(){
+
+ public static void passiveWithZu() {
ExperimentCollector eColl_passiveWithZu = new ExperimentCollector("passiveWithZu");
- SortedSet<String> positives = read(passiveWithZu);
- SortedSet<String> negatives = read(active);
-
- //removing overlap
- positives.removeAll(negatives);
- negatives.removeAll(positives);
-
- Examples allExamples = new Examples();
- allExamples.addPosTrain(positives);
- allExamples.addNegTrain(negatives);
-
- logger.debug("All examples \n"+allExamples);
-
- List<Examples> runs = new ArrayList<Examples>();
- runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
- runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
- runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
- runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
- runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ SortedSet<String> positives = read(passiveWithZu);
+ SortedSet<String> negatives = read(active);
- List<IteratedConfig> configs = getConfigs();
- for (IteratedConfig experimentConfig : configs) {
- logger.warn("next: passiveWithZu."+experimentConfig.experimentName);
- int i=1;
- for (Examples examples : runs) {
- logger.warn("beginning run: "+(i++));
- conductExperiment( examples, experimentConfig);
-
- }
- eColl_passiveWithZu.addExperimentConfig(experimentConfig);
-
- logger.info(experimentConfig);
+ // removing overlap
+ positives.removeAll(negatives);
+ negatives.removeAll(positives);
+
+ Examples allExamples = new Examples();
+ allExamples.addPosTrain(positives);
+ allExamples.addNegTrain(negatives);
+
+ logger.debug("All examples \n" + allExamples);
+
+ List<Examples> runs = new ArrayList<Examples>();
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+
+ List<IteratedConfig> configs = getConfigs();
+ for (IteratedConfig experimentConfig : configs) {
+ logger.info("next: passiveWithZu." + experimentConfig.experimentName);
+ int i = 1;
+ for (Examples examples : runs) {
+ logger.info("beginning run: " + (i++));
+ conductExperiment(examples, experimentConfig);
+
}
- eColl_passiveWithZu.write(iterations);
-
+ eColl_passiveWithZu.addExperimentConfig(experimentConfig);
+
+ logger.info(experimentConfig);
+ }
+ eColl_passiveWithZu.write(iterations);
+
}
-
- public static List<IteratedConfig> getConfigs(){
-
+
+ public static List<IteratedConfig> getConfigs() {
+
List<IteratedConfig> l = new ArrayList<IteratedConfig>();
IteratedConfig baseline = new IteratedConfig("baseline_5_5", iterations);
-
-
+
IteratedConfig reducedExamples = new IteratedConfig("reducedExamples_2_2", iterations);
reducedExamples.initialsplits = 2;
reducedExamples.splits = 2;
-
-
+ // reducedExamples.adaptMaxRuntime=false;
+ // reducedExamples.maxExecutionTime = 20;
+ reducedExamples.factor = 3.0d;
+
IteratedConfig fixRuntime = new IteratedConfig("fixRuntime_20s", iterations);
- fixRuntime.adaptMaxRuntime=false;
+ fixRuntime.adaptMaxRuntime = false;
fixRuntime.maxExecutionTime = 20;
-
-
+
IteratedConfig useLemma = new IteratedConfig("useLemma_false", iterations);
- useLemma.useDataHasValue=false;
-
-
+ useLemma.useDataHasValue = false;
+
l.add(baseline);
-// l.add(reducedExamples);
-// l.add(fixRuntime);
-// l.add(useLemma);
-
+ l.add(reducedExamples);
+ l.add(fixRuntime);
+ l.add(useLemma);
return l;
}
-
- public static void conductExperiment(Examples allExamples, IteratedConfig config){
+
+ public static void conductExperiment(Examples allExamples, IteratedConfig config) {
Examples tmp = new Examples();
tmp.addPosTrain(allExamples.getPosTrain());
tmp.addNegTrain(allExamples.getNegTrain());
-
+
ExMakerFixedSize fs = new ExMakerFixedSize(tmp);
Examples learn = fs.select(config.initialsplits, config.initialsplits);
- logger.debug("Total set \n"+allExamples);
- logger.debug("Initial training set \n"+learn);
-
+ logger.debug("Total set \n" + allExamples);
+ logger.debug("Initial training set \n" + learn);
+
SortedSet<String> posAsPos = new TreeSet<String>();
SortedSet<String> retrieved = new TreeSet<String>();
SortedSet<String> newTestRetrieved = new TreeSet<String>();
SortedSet<String> newTrainRetrieved = new TreeSet<String>();
-
- String lastConcept="";
+
+ String lastConcept = "";
double precision = 0.0;
double recall = 0.0;
double fmeasure = 0.0;
-
- for(int i = 0 ; config.stopCondition(i, precision, recall, fmeasure, lastConcept) ;i++ ) {
- Monitor iterationTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "iterationTime").start();
+
+ for (int i = 0; config.stopCondition(i, precision, recall, fmeasure, lastConcept); i++) {
+ Monitor iterationTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class,
+ "iterationTime").start();
Monitor literationTime = config.start(logIterationTime, i);
-// try {
-// Thread.sleep(2000);
-// } catch (InterruptedException e) {
-// // TODO Auto-generated catch block
-// e.printStackTrace();
-// }
-// literationTime.stop();
-// System.out.println(literationTime);
-// if (true) {
-// System.exit(0);
-// }
+ // try {
+ // Thread.sleep(2000);
+ // } catch (InterruptedException e) {
+ // // TODO Auto-generated catch block
+ // e.printStackTrace();
+ // }
+ // literationTime.stop();
+ // System.out.println(literationTime);
+ // if (true) {
+ // System.exit(0);
+ // }
- /*LEARNING*/
+ /* LEARNING */
Monitor lLearningTime = config.start(logLearningTime, i);
EvaluatedDescription ed = learn(learn, config, i);
lLearningTime.stop();
lastConcept = PrefixMap.toKBSyntaxString(ed.getDescription());
- logger.debug("USING CONCEPT: "+lastConcept);
-
- /*RETRIEVING*/
- Monitor queryTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "queryTime").start();
+ logger.debug("USING CONCEPT: " + lastConcept);
+
+ /* RETRIEVING */
+ Monitor queryTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "queryTime")
+ .start();
retrieved = getSentences(ed, config.resultLimit);
queryTime.stop();
- //remove all that are not to be tested
- newTestRetrieved = Helper.intersection(allExamples.getTestExamples(), retrieved );
- newTrainRetrieved = Helper.intersection(allExamples.getTrainExamples(), retrieved );
-
-// logger.debug("Retrieved "+retrieved.size()+" sentences");
-
-
- /*MASHING*/
- //Menge aller positiven geschn. mit den gefundenen
+ // remove all that are not to be tested
+ newTestRetrieved = Helper.intersection(allExamples.getTestExamples(), retrieved);
+ newTrainRetrieved = Helper.intersection(allExamples.getTrainExamples(), retrieved);
+
+ // logger.debug("Retrieved "+retrieved.size()+" sentences");
+
+ /* MASHING */
+ // Menge aller positiven geschn. mit den gefundenen
posAsPos = Helper.intersection(newTestRetrieved, allExamples.getPosTest());
- logger.debug("Number of retrieved positives: "+posAsPos.size());
- logger.debug("Number of total positives: "+allExamples.getPosTest().size());
-
- precision = precision( posAsPos.size(), retrieved.size());
- config.add(logPrecision, i, precision);
- recall = recall( posAsPos.size(),allExamples.getPosTest().size());
- config.add(logRecall, i, recall);
- fmeasure = fmeasure(precision, recall);
- config.add(logFMeasure, i, fmeasure);
-
- //Menge aller positiven geschn. mit den gefundenen
+ logger.debug("Number of retrieved positives: " + posAsPos.size());
+ logger.debug("Number of total positives: " + allExamples.getPosTest().size());
+
+ precision = precision(posAsPos.size(), retrieved.size());
+ config.add(logPrecision, i, precision);
+ recall = recall(posAsPos.size(), allExamples.getPosTest().size());
+ config.add(logRecall, i, recall);
+ fmeasure = fmeasure(precision, recall);
+ config.add(logFMeasure, i, fmeasure);
+
+ // Menge aller positiven geschn. mit den gefundenen
SortedSet<String> negAsPos = Helper.intersection(newTestRetrieved, allExamples.getNegTest());
- logger.debug("Number of retrieved negatives: "+negAsPos.size());
- logger.debug("Number of total negatives: "+allExamples.getNegTest().size());
- logger.debug("Total: "+posAsPos.size()+" + "+negAsPos.size() +" = "+newTestRetrieved.size());
-
-
+ logger.debug("Number of retrieved negatives: " + negAsPos.size());
+ logger.debug("Number of total negatives: " + allExamples.getNegTest().size());
+ logger.debug("Total: " + posAsPos.size() + " + " + negAsPos.size() + " = "
+ + newTestRetrieved.size());
+
Examples newlyFound = new Examples();
- SortedSet<String> discoveredPosInStore = Helper.intersection(newTrainRetrieved, allExamples.getPosTrain());
- SortedSet<String> misclassifiedNegInStore = Helper.intersection(newTrainRetrieved, allExamples.getNegTrain());
+ SortedSet<String> discoveredPosInStore = Helper.intersection(newTrainRetrieved, allExamples
+ .getPosTrain());
+ SortedSet<String> misclassifiedNegInStore = Helper.intersection(newTrainRetrieved, allExamples
+ .getNegTrain());
newlyFound.addPosTrain(discoveredPosInStore);
newlyFound.addNegTrain(misclassifiedNegInStore);
- SortedSet<String> posAsNegInformative = Helper.difference(allExamples.getPositiveExamples(), retrieved);
-
- logger.info("Discovered: "+discoveredPosInStore.size()+" positive sentences in store (printing "+printSentences+"):");
+ SortedSet<String> posAsNegInformative = Helper.difference(allExamples.getPositiveExamples(),
+ retrieved);
+
+ logger.debug("Discovered: " + discoveredPosInStore.size()
+ + " positive sentences in store (printing " + printSentences + "):");
_getLabels(discoveredPosInStore, printSentences);
- logger.info("Misclassified: "+misclassifiedNegInStore.size()+" negative sentences in store (printing "+printSentences+"):");
+ logger.debug("Misclassified: " + misclassifiedNegInStore.size()
+ + " negative sentences in store (printing " + printSentences + "):");
_getLabels(misclassifiedNegInStore, printSentences);
- logger.info("Not found positives: "+posAsNegInformative.size()+" positive sentences in store (printing "+printSentences+"):");
+ logger.debug("Not found positives: " + posAsNegInformative.size()
+ + " positive sentences in store (printing " + printSentences + "):");
_getLabels(posAsNegInformative, printSentences);
-
-
-
+
fs = new ExMakerFixedSize(newlyFound);
newlyFound = fs.select(config.splits, config.splits);
-
+
learn.addPosTrain(newlyFound.getPosTrain());
learn.addNegTrain(newlyFound.getNegTrain());
- logger.debug("Next training set \n"+learn);
+ logger.debug("Next training set \n" + learn);
iterationTime.stop();
literationTime.stop();
- logger.warn("finished iteration "+(i+1)+" needed on avg: "+dftime.format(iterationTime.getAvg()));
- logger.warn("learning: "+dftime.format(lLearningTime.getLastValue())+" Acc: "+ed.getAccuracy());
- logger.warn("learning: "+PrefixMap.toManchesterSyntaxString(ed));
- logger.warn("query: "+dftime.format(queryTime.getLastValue()));
- logger.warn("F-Measure on Store = "+df.format(fmeasure));
- logger.warn("******************");
-
+ logger.info("finished iteration " + (i + 1) + " needed on avg: "
+ + dftime.format(iterationTime.getAvg()));
+ logger.info("learning: " + dftime.format(lLearningTime.getLastValue()) + " Acc: "
+ + ed.getAccuracy());
+ logger.info("learning: " + PrefixMap.toManchesterSyntaxString(ed));
+ logger.info("query: " + dftime.format(queryTime.getLastValue()));
+ logger.info("F-Measure on Store = " + df.format(fmeasure));
+ logger.info("******************");
+
}
-
-
-
-
-
+
}
-
- public static double accuracy (int posAsPos, int negAsNeg, int posAsNeg, int negAsPos){
+
+ public static double accuracy(int posAsPos, int negAsNeg, int posAsNeg, int negAsPos) {
return 0.0d;
}
-
- public static double fmeasure(double precision, double recall){
- double fmeasure = (precision+recall == 0)?0.0d: (2*precision*recall)/(precision+recall);
- logger.info("F-Measure: "+df.format(fmeasure));
+
+ public static double fmeasure(double precision, double recall) {
+ double fmeasure = (precision + recall == 0) ? 0.0d : (2 * precision * recall) / (precision + recall);
+ logger.debug("F-Measure: " + df.format(fmeasure));
return fmeasure;
}
-
- public static double precision( int posAsPos, int retrieved){
- double precision = (retrieved==0)?0.0d:((double)posAsPos)/((double)retrieved);
- logger.info("Precision: "+df.format(precision));
+
+ public static double precision(int posAsPos, int retrieved) {
+ double precision = (retrieved == 0) ? 0.0d : ((double) posAsPos) / ((double) retrieved);
+ logger.debug("Precision: " + df.format(precision));
return precision;
}
- public static double recall( int posAsPos, int allPositives){
- double recall = ((double)posAsPos)/((double)allPositives);
- logger.info("Recall: "+df.format(recall));
+
+ public static double recall(int posAsPos, int allPositives) {
+ double recall = ((double) posAsPos) / ((double) allPositives);
+ logger.debug("Recall: " + df.format(recall));
return recall;
-
+
}
- private static Set<KnowledgeSource> _getOWL(Examples ex) throws Exception{
+ private static Set<KnowledgeSource> _getOWL(Examples ex) throws Exception {
Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
List<URL> urls = new ArrayList<URL>();
urls.add(new File(backgroundXML).toURI().toURL());
urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getPosTrain()));
urls.addAll(ExampleDataCollector.convert(sentenceXMLFolder, ex.getNegTrain()));
-
+
for (URL u : urls) {
OWLFile ks = ComponentFactory.getOWLFile(u);
tmp.add(ks);
}
return tmp;
}
+
@SuppressWarnings("unused")
- private static Set<KnowledgeSource> _getSPARQL(Examples ex) throws Exception{
+ private static Set<KnowledgeSource> _getSPARQL(Examples ex) throws Exception {
Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
Set<String> examples = new TreeSet<String>();
examples.addAll(ex.getPosTrain());
examples.addAll(ex.getNegTrain());
- SparqlKnowledgeSource ks = ComponentFactory.getSparqlKnowledgeSource(new URL(sparqlEndpointURL), examples);
+ SparqlKnowledgeSource ks = ComponentFactory.getSparqlKnowledgeSource(new URL(sparqlEndpointURL),
+ examples);
ks.getConfigurator().setUrl(new URL(sparqlEndpointURL));
- ks.getConfigurator().setDefaultGraphURIs(new HashSet<String>(Arrays.asList(new String[]{graph})));
+ ks.getConfigurator().setDefaultGraphURIs(new HashSet<String>(Arrays.asList(new String[] { graph })));
ks.getConfigurator().setInstances(examples);
ks.getConfigurator().setDissolveBlankNodes(false);
ks.getConfigurator().setRecursionDepth(2);
@@ -404,46 +408,45 @@
ks.getConfigurator().setGetAllSuperClasses(true);
ks.getConfigurator().setGetPropertyInformation(false);
ks.getConfigurator().setUseLits(true);
-// ks.getConfigurator().
+ // ks.getConfigurator().
OWLFile ks2 = ComponentFactory.getOWLFile(new File(propertiesXML).toURI().toURL());
tmp.add(ks);
tmp.add(ks2);
-
+
return tmp;
}
-
- //test if virtuoso is correct
-// public static void validate(Description d, Examples newlyFound){
-// try {
-// ExMakerFixedSize fs = new ExMakerFixedSize(newlyFound);
-// Examples tmp = fs.select(100, 100);
-// FastInstanceChecker fc = _getFastInstanceChecker(tmp);
-// @SuppressWarnings("unused")
-// SortedSet<Individual> inds = fc.getIndividuals(d);
-// } catch (Exception e) {
-// e.printStackTrace();
-// }
-// }
-
- public static FastInstanceChecker _getFastInstanceChecker(Examples ex)throws Exception{
- Set<KnowledgeSource> tmp = _getOWL(ex);
-// Set<KnowledgeSource> tmp = _getSPARQL(ex);
-
- FastInstanceChecker rc = ComponentFactory.getFastInstanceChecker(tmp);
- for (KnowledgeSource ks : tmp) {
- ks.init();
- }
- rc.init();
- return rc;
+ // test if virtuoso is correct
+ // public static void validate(Description d, Examples newlyFound){
+ // try {
+ // ExMakerFixedSize fs = new ExMakerFixedSize(newlyFound);
+ // Examples tmp = fs.select(100, 100);
+ // FastInstanceChecker fc = _getFastInstanceChecker(tmp);
+ // @SuppressWarnings("unused")
+ // SortedSet<Individual> inds = fc.getIndividuals(d);
+ // } catch (Exception e) {
+ // e.printStackTrace();
+ // }
+ // }
+
+ public static FastInstanceChecker _getFastInstanceChecker(Examples ex) throws Exception {
+ Set<KnowledgeSource> tmp = _getOWL(ex);
+ // Set<KnowledgeSource> tmp = _getSPARQL(ex);
+
+ FastInstanceChecker rc = ComponentFactory.getFastInstanceChecker(tmp);
+ for (KnowledgeSource ks : tmp) {
+ ks.init();
+ }
+ rc.init();
+ return rc;
}
-
+
public static EvaluatedDescription learn(Examples ex, IteratedConfig config, int iteration) {
- Monitor initTimeKBandReasoner = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "initTimeKBandReasoner").start();
-
+ Monitor initTimeKBandReasoner = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class,
+ "initTimeKBandReasoner").start();
EvaluatedDescription result = null;
-
+
try {
FastInstanceChecker rc = _getFastInstanceChecker(ex);
PosNegLPStandard lp = ComponentFactory
@@ -452,14 +455,15 @@
lp.init();
la.init();
initTimeKBandReasoner.stop();
- Monitor learningTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "learningTime").start();
+ Monitor learningTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class,
+ "learningTime").start();
la.start();
learningTime.stop();
-
+
result = la.getCurrentlyBestEvaluatedDescription();
logger.trace(PrefixMap.toKBSyntaxString(result.getDescription()));
logger.trace(PrefixMap.toManchesterSyntaxString(result.getDescription()));
-
+
} catch (Exception e) {
e.printStackTrace();
System.exit(0);
@@ -467,7 +471,8 @@
return result;
}
- public static SortedSet<String> getSentences(EvaluatedDescription ed, int resultLimit) {// Examples justforFindingTheBug
+ public static SortedSet<String> getSentences(EvaluatedDescription ed, int resultLimit) {// Examples
+ // justforFindingTheBug
Monitor m = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "getSentences").start();
SortedSet<String> result = new TreeSet<String>();
SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
@@ -475,41 +480,42 @@
visit.setLabels(false);
visit.setLimit(resultLimit);
String sparqlQueryGood = "";
-// String sparqlQueryBad = "";
+ // String sparqlQueryBad = "";
try {
sparqlQueryGood = visit.getSparqlQuery(ed.getDescription().toKBSyntaxString());
-// sparqlQueryBad = visit.getSparqlQuery(ed.getDescription());
-// if(!sparqlQueryGood.equals(sparqlQueryBad)){
-// String file = "errorDescription/"+System.currentTimeMillis();
-// justforFindingTheBug.writeExamples(file);
-// Files.appendFile(new File(file), "\n\n/**\nGood:\n"+sparqlQueryGood+"\nBad:\n"+sparqlQueryBad+"**/");
-// }
-
+ // sparqlQueryBad = visit.getSparqlQuery(ed.getDescription());
+ // if(!sparqlQueryGood.equals(sparqlQueryBad)){
+ // String file = "errorDescription/"+System.currentTimeMillis();
+ // justforFindingTheBug.writeExamples(file);
+ // Files.appendFile(new File(file),
+ // "\n\n/**\nGood:\n"+sparqlQueryGood+"\nBad:\n"+sparqlQueryBad+"**/");
+ // }
+
} catch (Exception e1) {
e1.printStackTrace();
}
-
+
sparqlQueryGood = " \n define input:inference \"" + rulegraph + "\" \n" + "" + sparqlQueryGood;
logger.trace(sparqlQueryGood);
-
result.addAll(sparqlTasks.queryAsSet(sparqlQueryGood, "subject"));
m.stop();
- logger.debug("query avg: " + ((double)m.getAvg() / (double)1000)+ " seconds (last: "+((double)m.getLastValue() / (double)1000)+")");
- if(result.isEmpty()){
-
+ logger.debug("query avg: " + ((double) m.getAvg() / (double) 1000) + " seconds (last: "
+ + ((double) m.getLastValue() / (double) 1000) + ")");
+ if (result.isEmpty()) {
+
logger.error("sparql query returned no results ");
logger.error(sparqlQueryGood);
System.exit(0);
}
return result;
}
-
- private static void _getLabels(SortedSet<String> sentenceURIs, int limit){
+
+ private static void _getLabels(SortedSet<String> sentenceURIs, int limit) {
Monitor m = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "_getLabels").start();
int i = 0;
for (String sentenceURI : sentenceURIs) {
- if(i>=limit){
+ if (i >= limit) {
break;
}
i++;
@@ -517,29 +523,29 @@
}
m.stop();
}
-
- private static void _getLabel(String sentenceURI){
- String query = "SELECT * FROM <"+graph+"> " +
- "{ <"+sentenceURI+"> rdfs:label ?label . }";
- SortedSet<String> s = sparqlTasks.queryAsSet(query, "label");
- if(s.isEmpty()){
- logger.warn("no label for "+sentenceURI);
- }else{
- logger.debug(sentenceURI.replace(prefix, "")+" "+s.first());
+
+ private static void _getLabel(String sentenceURI) {
+ String query = "SELECT * FROM <" + graph + "> " + "{ <" + sentenceURI + "> rdfs:label ?label . }";
+ SortedSet<String> s = sparqlTasks.queryAsSet(query, "label");
+ if (s.isEmpty()) {
+ logger.warn("no label for " + sentenceURI);
+ } else {
+ logger.debug(sentenceURI.replace(prefix, "") + " " + s.first());
}
}
- private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc, IteratedConfig config, Examples ex, int iteration)
- throws Exception {
-
+ private static LearningAlgorithm _getROLLearner(LearningProblem lp, ReasonerComponent rc,
+ IteratedConfig config, Examples ex, int iteration) throws Exception {
+
int maxExecutionTime = config.maxExecutionTime;
int valueFrequencyThreshold = ex.getPosTrain().size();
int noise = config.noise + (iteration);
- if(config.adaptMaxRuntime){
- maxExecutionTime = (int)Math.floor(config.factor * (double)ex.sizeOfTrainingSets());
-// valueFrequencyThreshold = (int) Math.floor(0.8d*((double)ex.getPosTrain().size()));
+ if (config.adaptMaxRuntime) {
+ maxExecutionTime = (int) Math.floor(config.factor * (double) ex.sizeOfTrainingSets());
+ // valueFrequencyThreshold = (int)
+ // Math.floor(0.8d*((double)ex.getPosTrain().size()));
}
-
+
ROLComponent2 la = ComponentFactory.getROLComponent2(lp, rc);
la.getConfigurator().setUseExistsConstructor(true);
@@ -549,26 +555,25 @@
la.getConfigurator().setUseHasValueConstructor(false);
la.getConfigurator().setUseDataHasValueConstructor(config.useDataHasValue);
la.getConfigurator().setValueFrequencyThreshold(valueFrequencyThreshold);
-
- la.getConfigurator().setIgnoredConcepts(new HashSet<String>(Arrays.asList(new String[]{
- "http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag",
- "http://nlp2rdf.org/ontology/comma_tag",
- "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SentenceFinalPunctuation",
- "http://nlp2rdf.org/ontology/generalsentenceinternalpunctuation_tag"
- })));
-
+ la.getConfigurator().setIgnoredConcepts(
+ new HashSet<String>(Arrays.asList(new String[] {
+ "http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag",
+ "http://nlp2rdf.org/ontology/comma_tag",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SentenceFinalPunctuation",
+ "http://nlp2rdf.org/ontology/generalsentenceinternalpunctuation_tag" })));
+
la.getConfigurator().setNoisePercentage(noise);
la.getConfigurator().setTerminateOnNoiseReached(true);
la.getConfigurator().setMaxExecutionTimeInSeconds(maxExecutionTime);
-
- if(config.useStartClass){
+
+ if (config.useStartClass) {
la.getConfigurator().setStartClass(prefix + "Sentence");
}
-
- la.getConfigurator().setWriteSearchTree(config.searchTree);
- la.getConfigurator().setSearchTreeFile("log/searchTreeTiger.txt");
- la.getConfigurator().setReplaceSearchTree(true);
+
+ la.getConfigurator().setWriteSearchTree(config.searchTree);
+ la.getConfigurator().setSearchTreeFile("log/searchTreeTiger.txt");
+ la.getConfigurator().setReplaceSearchTree(true);
return la;
}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-16 13:23:18 UTC (rev 2045)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-16 14:05:54 UTC (rev 2046)
@@ -1,5 +1,6 @@
package org.dllearner.utilities.experiments;
+import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@@ -7,6 +8,7 @@
import java.util.TreeSet;
import org.apache.log4j.Logger;
+import org.dllearner.utilities.Files;
import org.dllearner.utilities.JamonMonitorLogger;
import com.jamonapi.Monitor;
@@ -73,6 +75,12 @@
}
}
+ public void addTable(Table t){
+ for (TableRowColumn trc : t.tableRowColumns) {
+ addTableRowColumn(trc);
+ }
+ }
+
public void addTableRowColumn(TableRowColumn trc) {
try{
trc.toLatexRow();
@@ -205,7 +213,17 @@
tableRowColumns = newTrc;
}
+ public void write(String folder, String fileprefix){
+ Files.mkdir(folder);
+ Files.createFile(new File(folder+fileprefix+"_GNU_ROWS"), getGnuPlotAsRows());
+ Files.createFile(new File(folder+fileprefix+"_GNU_COLUMNS_I"), getGnuPlotAsColumn(true));
+ Files.createFile(new File(folder+fileprefix+"_GNU_COLUMNS"), getGnuPlotAsColumn());
+
+
+ Files.createFile(new File(folder+fileprefix+"_LATEX_ROWS"), getLatexAsRows());
+ Files.createFile(new File(folder+fileprefix+"_LATEX_COLUMNS"), getLatexAsColumn());
+ Files.createFile(new File(folder+fileprefix+"_LATEX_COLUMNS_I"), getLatexAsColumn(true));
+ }
-
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-16 17:44:35
|
Revision: 2048
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2048&view=rev
Author: kurzum
Date: 2010-02-16 17:44:27 +0000 (Tue, 16 Feb 2010)
Log Message:
-----------
server commit
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-16 14:15:17 UTC (rev 2047)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-16 17:44:27 UTC (rev 2048)
@@ -19,6 +19,7 @@
import org.apache.log4j.Logger;
import org.dllearner.algorithms.refinement2.ROLComponent2;
import org.dllearner.algorithms.refinement2.ROLearner2;
+import org.dllearner.core.ComponentManager;
import org.dllearner.core.ComponentPool;
import org.dllearner.core.EvaluatedDescription;
import org.dllearner.core.KnowledgeSource;
@@ -91,7 +92,7 @@
static List<MonKeyImp> mks = new ArrayList<MonKeyImp>(Arrays.asList(new MonKeyImp[] { logPrecision,
logRecall, logFMeasure, logLearningTime, logIterationTime }));
- static int iterations = 4;
+ static int iterations = 5;
static int folds = 10;
static int printSentences = 3;
@@ -106,7 +107,7 @@
Logger.getLogger(SparqlQuery.class).setLevel(Level.INFO);
Files.mkdir(resultFolder);
-
+
try {
sparqlEndpoint = new SparqlEndpoint(new URL(sparqlEndpointURL), new ArrayList<String>(Arrays
.asList(new String[] { graph })), new ArrayList<String>());
@@ -114,7 +115,8 @@
} catch (Exception e) {
e.printStackTrace();
}
-
+
+
// folds = 2;
// iterations = 2;
long n = System.currentTimeMillis();
@@ -143,6 +145,12 @@
List<Examples> folds = new ExMakerCrossFolds(allExamples)
.splitLeaveOneOut(TestIterativeLearning.folds);
+
+ /*CLEANUP*/
+ positives = null;
+ negatives = null;
+ allExamples = null;
+
// ExMakerCrossFolds.printFolds(folds);
List<IteratedConfig> configs = getConfigs();
Table masterTable = new Table();
@@ -219,11 +227,11 @@
reducedExamples.splits = 2;
// reducedExamples.adaptMaxRuntime=false;
// reducedExamples.maxExecutionTime = 20;
- reducedExamples.factor = 3.0d;
+ reducedExamples.factor = 6.0d;
IteratedConfig fixRuntime = new IteratedConfig("fixRuntime_20s", iterations);
fixRuntime.adaptMaxRuntime = false;
- fixRuntime.maxExecutionTime = 20;
+ fixRuntime.maxExecutionTime = 40;
IteratedConfig useLemma = new IteratedConfig("useLemma_false", iterations);
useLemma.useDataHasValue = false;
@@ -241,8 +249,8 @@
tmp.addPosTrain(allExamples.getPosTrain());
tmp.addNegTrain(allExamples.getNegTrain());
- ExMakerFixedSize fs = new ExMakerFixedSize(tmp);
- Examples learn = fs.select(config.initialsplits, config.initialsplits);
+ Examples learn = new ExMakerFixedSize(tmp).select(config.initialsplits, config.initialsplits);
+ tmp = null;
logger.debug("Total set \n" + allExamples);
logger.debug("Initial training set \n" + learn);
@@ -260,17 +268,6 @@
Monitor iterationTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class,
"iterationTime").start();
Monitor literationTime = config.start(logIterationTime, i);
- // try {
- // Thread.sleep(2000);
- // } catch (InterruptedException e) {
- // // TODO Auto-generated catch block
- // e.printStackTrace();
- // }
- // literationTime.stop();
- // System.out.println(literationTime);
- // if (true) {
- // System.exit(0);
- // }
/* LEARNING */
Monitor lLearningTime = config.start(logLearningTime, i);
@@ -288,6 +285,11 @@
newTestRetrieved = Helper.intersection(allExamples.getTestExamples(), retrieved);
newTrainRetrieved = Helper.intersection(allExamples.getTrainExamples(), retrieved);
+ SortedSet<String> posAsNegInformative = Helper.difference(allExamples.getPositiveExamples(),
+ retrieved);
+
+ retrieved = null;
+
// logger.debug("Retrieved "+retrieved.size()+" sentences");
/* MASHING */
@@ -318,8 +320,7 @@
newlyFound.addPosTrain(discoveredPosInStore);
newlyFound.addNegTrain(misclassifiedNegInStore);
- SortedSet<String> posAsNegInformative = Helper.difference(allExamples.getPositiveExamples(),
- retrieved);
+
logger.debug("Discovered: " + discoveredPosInStore.size()
+ " positive sentences in store (printing " + printSentences + "):");
@@ -331,8 +332,7 @@
+ " positive sentences in store (printing " + printSentences + "):");
_getLabels(posAsNegInformative, printSentences);
- fs = new ExMakerFixedSize(newlyFound);
- newlyFound = fs.select(config.splits, config.splits);
+ newlyFound = new ExMakerFixedSize(newlyFound).select(config.splits, config.splits);
learn.addPosTrain(newlyFound.getPosTrain());
learn.addNegTrain(newlyFound.getNegTrain());
@@ -463,6 +463,8 @@
result = la.getCurrentlyBestEvaluatedDescription();
logger.trace(PrefixMap.toKBSyntaxString(result.getDescription()));
logger.trace(PrefixMap.toManchesterSyntaxString(result.getDescription()));
+
+ ComponentManager.getInstance().freeAllComponents();
} catch (Exception e) {
e.printStackTrace();
Added: trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java 2010-02-16 17:44:27 UTC (rev 2048)
@@ -0,0 +1,77 @@
+package org.dllearner.utilities.experiments;
+
+import java.io.Serializable;
+
+import com.jamonapi.MonKey;
+import com.jamonapi.Monitor;
+
+public class FinalizedMonitor implements Serializable{
+ private static final long serialVersionUID = 6617125369204663530L;
+
+ final String header;
+ final String units;
+
+ final double avg;
+ final double hits;
+ final double stdDev;
+ final double lastValue;
+ final double max;
+ final double min;
+
+
+ public FinalizedMonitor(Monitor m){
+ header = (String)m.getMonKey().getValue(MonKey.LABEL_HEADER);
+ units = (String)m.getMonKey().getValue(MonKey.UNITS_HEADER);
+ avg = m.getAvg();
+ hits = m.getHits();
+ stdDev = m.getStdDev();
+ lastValue = m.getLastValue();
+ max = m.getMax();
+ min = m.getMin();
+
+
+ }
+
+
+ public String getHeader() {
+ return header;
+ }
+
+
+ public String getUnits() {
+ return units;
+ }
+
+
+ public double getAvg() {
+ return avg;
+ }
+
+
+ public double getHits() {
+ return hits;
+ }
+
+
+ public double getStdDev() {
+ return stdDev;
+ }
+
+
+ public double getLastValue() {
+ return lastValue;
+ }
+
+
+ public double getMax() {
+ return max;
+ }
+
+
+ public double getMin() {
+ return min;
+ }
+
+
+
+}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-16 14:15:17 UTC (rev 2047)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-16 17:44:27 UTC (rev 2048)
@@ -1,6 +1,7 @@
package org.dllearner.utilities.experiments;
import java.io.File;
+import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@@ -14,7 +15,9 @@
import com.jamonapi.Monitor;
import com.jamonapi.MonitorFactory;
-public class Table {
+public class Table implements Serializable{
+ private static final long serialVersionUID = -7191672899557577952L;
+
private static final Logger logger = Logger.getLogger(Table.class);
boolean replaceCommaByPoints = true;
@@ -58,13 +61,16 @@
t.addTableRowColumn(trc);
}
-// System.out.println(t.getLatexAsColumn(true));
+ System.out.println(t.getLatexAsColumn(true));
+ t.serialize("test.ser");
+ Table n = deserialize("test.ser");
+ System.out.println(n.getLatexAsColumn(true));
// System.out.println(t.getLatexAsRows());
// System.out.println(t.getGnuPlotAsColumn(true));
// System.out.println(t.getGnuPlotAsRows());
// System.out.println(MonProxyFactory.);
- System.out.println( MonitorFactory.getReport());
- JamonMonitorLogger.writeHTMLReport("log/tiger.html");
+// System.out.println( MonitorFactory.getReport());
+// JamonMonitorLogger.writeHTMLReport("log/tiger.html");
}
public void addTableRowColumn(List<TableRowColumn> trcs) {
@@ -223,7 +229,16 @@
Files.createFile(new File(folder+fileprefix+"_LATEX_ROWS"), getLatexAsRows());
Files.createFile(new File(folder+fileprefix+"_LATEX_COLUMNS"), getLatexAsColumn());
Files.createFile(new File(folder+fileprefix+"_LATEX_COLUMNS_I"), getLatexAsColumn(true));
+
+ serialize(folder+fileprefix+".ser");
+
}
+ public void serialize(String filename){
+ Files.writeObjectToFile(this, new File(filename));
+ }
+ public static Table deserialize(String filename){
+ return (Table)Files.readObjectfromFile(new File(filename));
+ }
}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-16 14:15:17 UTC (rev 2047)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-16 17:44:27 UTC (rev 2048)
@@ -1,12 +1,14 @@
package org.dllearner.utilities.experiments;
+import java.io.Serializable;
import java.text.DecimalFormat;
import org.dllearner.utilities.JamonMonitorLogger;
import com.jamonapi.Monitor;
-public class TableRowColumn {
+public class TableRowColumn implements Serializable{
+ private static final long serialVersionUID = 1252924374566004540L;
enum Formats {
LATEX, GNUPLOT
@@ -18,7 +20,8 @@
private final String label ;
private final String experimentName;
- Monitor[] monitors;
+// final Monitor[] monitors;
+ final FinalizedMonitor[] monitors;
boolean useStdDev = false;
DecimalFormat dfGnuPlotDefault = new DecimalFormat("######0.00####");
@@ -31,7 +34,10 @@
// this.monitors = monitors;
// }
public TableRowColumn(Monitor[] monitors, String experimentName, String label) {
- this.monitors = monitors;
+ this.monitors = new FinalizedMonitor[monitors.length];
+ for (int i = 0; i < monitors.length; i++) {
+ this.monitors[i] = new FinalizedMonitor(monitors[i]);
+ }
this.label = label;
this.experimentName = experimentName;
}
@@ -110,8 +116,8 @@
return dfGnuPlotDefault.format(monitors[i].getAvg()) + "";
}
- private String latexFormat(Monitor m, double value){
- if(m.getUnits().equals(JamonMonitorLogger.PERCENTAGE)){
+ private String latexFormat(FinalizedMonitor monitors, double value){
+ if(monitors.getUnits().equals(JamonMonitorLogger.PERCENTAGE)){
return dfPercentage.format(value);
}else{
return dfLatexDefault.format(value);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-17 00:06:26
|
Revision: 2052
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2052&view=rev
Author: kurzum
Date: 2010-02-17 00:06:10 +0000 (Wed, 17 Feb 2010)
Log Message:
-----------
server commit
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-16 20:04:11 UTC (rev 2051)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-17 00:06:10 UTC (rev 2052)
@@ -88,9 +88,9 @@
static MonKeyImp logIterationTime = new MonKeyImp("Iteration Time", Jamon.MS);
static List<MonKeyImp> mks = new ArrayList<MonKeyImp>(Arrays.asList(new MonKeyImp[] { logPrecision,
- logRecall, logFMeasure, logLearningTime, logIterationTime }));
+ logRecall, logFMeasure, logAccuracy, logLearningTime, logIterationTime }));
- static int iterations = 5;
+ static int iterations = 7;
static int folds = 10;
static int printSentences = 3;
@@ -158,14 +158,11 @@
conductExperiment(examples, experimentConfig);
}
Table expTable = new Table();
- expTable.addTableRowColumn(experimentConfig.getTableRows());
- expTable.write(resultFolder, experimentConfig.experimentName);
+ expTable.addTableRowColumns(experimentConfig.getTableRows());
+ expTable.write(resultFolder, "passiveNoZu_"+experimentConfig.experimentName);
masterTable.addTable(expTable);
- masterTable.sortByExperimentName();
- masterTable.write(resultFolder, "passiveNoZu_by_expname");
- masterTable.sortByLabel();
- masterTable.write(resultFolder, "passiveNoZu_by_label");
-
+ masterTable.write(resultFolder, "passiveNoZu_master");
+
JamonMonitorLogger.writeHTMLReport("/tmp/tiger.html");
logger.info(experimentConfig);
@@ -189,19 +186,25 @@
List<Examples> runs = new ArrayList<Examples>();
runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
-// runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
-// runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
-// runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
-// runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
+ runs.add(new ExMakerRandomizer(allExamples).split(0.7d));
//
/*CLEANUP*/
positives = null;
negatives = null;
allExamples = null;
- List<IteratedConfig> configs = getConfigs();
+ List<IteratedConfig> configs = getConfigsZU();
Table masterTable = new Table();
for (IteratedConfig experimentConfig : configs) {
+ experimentConfig.init(mks);
logger.info("next: passiveWithZu." + experimentConfig.experimentName);
int i = 1;
for (Examples examples : runs) {
@@ -210,13 +213,10 @@
}
Table expTable = new Table();
- expTable.addTableRowColumn(experimentConfig.getTableRows());
- expTable.write(resultFolder, "passiveWithZu"+experimentConfig.experimentName);
+ expTable.addTableRowColumns(experimentConfig.getTableRows());
+ expTable.write(resultFolder, "passiveWithZu_"+experimentConfig.experimentName);
masterTable.addTable(expTable);
- masterTable.sortByExperimentName();
- masterTable.write(resultFolder, "passiveWithZu_by_expname");
- masterTable.sortByLabel();
- masterTable.write(resultFolder, "passiveWithZu_by_label");
+ masterTable.write(resultFolder, "passiveWithZu_master");
JamonMonitorLogger.writeHTMLReport("/tmp/tiger.html");
logger.info(experimentConfig);
@@ -229,13 +229,12 @@
List<IteratedConfig> l = new ArrayList<IteratedConfig>();
IteratedConfig baseline = new IteratedConfig("baseline_5_5", iterations);
-
+
IteratedConfig reducedExamples = new IteratedConfig("reducedExamples_2_2", iterations);
reducedExamples.initialsplits = 2;
reducedExamples.splits = 2;
- // reducedExamples.adaptMaxRuntime=false;
- // reducedExamples.maxExecutionTime = 20;
reducedExamples.factor = 6.0d;
+
IteratedConfig fixRuntime = new IteratedConfig("fixRuntime_20s", iterations);
fixRuntime.adaptMaxRuntime = false;
@@ -245,24 +244,56 @@
useLemma.useDataHasValue = false;
l.add(baseline);
-// l.add(reducedExamples);
-// l.add(fixRuntime);
-// l.add(useLemma);
+ l.add(reducedExamples);
+ l.add(fixRuntime);
+ l.add(useLemma);
return l;
}
+ public static List<IteratedConfig> getConfigsZU() {
+
+ List<IteratedConfig> l = new ArrayList<IteratedConfig>();
+ IteratedConfig baseline = new IteratedConfig("baseline", iterations);
+
+
+ IteratedConfig increasedNegativeExamples = new IteratedConfig("increasedNegativeExamples", iterations);
+ increasedNegativeExamples.negativeSplitAdd = 10;
+
+
+ IteratedConfig noNoise = new IteratedConfig("noNoise", iterations);
+ noNoise.factor = 4.0d;
+ noNoise.noise = 0;
+ noNoise.noiseIterationFactor = 0;
+
+
+
+ IteratedConfig useLemma = new IteratedConfig("useLemma_false", iterations);
+ useLemma.useDataHasValue = false;
+
+ l.add(baseline);
+ l.add(increasedNegativeExamples);
+ l.add(noNoise);
+ l.add(useLemma);
+
+ return l;
+ }
public static void conductExperiment(Examples allExamples, IteratedConfig config) {
Examples tmp = new Examples();
tmp.addPosTrain(allExamples.getPosTrain());
tmp.addNegTrain(allExamples.getNegTrain());
- Examples learn = new ExMakerFixedSize(tmp).select(config.initialsplits, config.initialsplits);
+ Examples learn = new ExMakerFixedSize(tmp).select(config.initialsplits, config.initialsplits+config.negativeSplitAdd);
tmp = null;
logger.debug("Total set \n" + allExamples);
logger.debug("Initial training set \n" + learn);
SortedSet<String> posAsPos = new TreeSet<String>();
+ SortedSet<String> posAsNeg = new TreeSet<String>();
+ SortedSet<String> negAsNeg = new TreeSet<String>();
+ SortedSet<String> negAsPos = new TreeSet<String>();
+
+
SortedSet<String> retrieved = new TreeSet<String>();
SortedSet<String> newTestRetrieved = new TreeSet<String>();
SortedSet<String> newTrainRetrieved = new TreeSet<String>();
@@ -271,6 +302,7 @@
double precision = 0.0;
double recall = 0.0;
double fmeasure = 0.0;
+ double accuracy = 0.0;
for (int i = 0; config.stopCondition(i, precision, recall, fmeasure, lastConcept); i++) {
Monitor iterationTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class,
@@ -288,21 +320,27 @@
Monitor queryTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "queryTime")
.start();
retrieved = getSentences(ed, config.resultLimit);
+ logger.debug("retrieved: "+retrieved.size());
queryTime.stop();
// remove all that are not to be tested
newTestRetrieved = Helper.intersection(allExamples.getTestExamples(), retrieved);
newTrainRetrieved = Helper.intersection(allExamples.getTrainExamples(), retrieved);
-
- SortedSet<String> posAsNegInformative = Helper.difference(allExamples.getPositiveExamples(),
- retrieved);
+ logger.debug("intersection with testset: "+newTestRetrieved.size());
- retrieved = null;
+
// logger.debug("Retrieved "+retrieved.size()+" sentences");
/* MASHING */
// Menge aller positiven geschn. mit den gefundenen
+
+
+
posAsPos = Helper.intersection(newTestRetrieved, allExamples.getPosTest());
+ negAsPos = Helper.intersection(newTestRetrieved, allExamples.getNegTest());
+ posAsNeg = Helper.difference(allExamples.getPosTest(), newTestRetrieved);
+ negAsNeg = Helper.difference(allExamples.getNegTest(), newTestRetrieved );
+// logger.debug("" + posAsPos.size()+"|"+negAsPos.size()+"|"+posAsNeg.size()+"|"+negAsPos.size());
logger.debug("Number of retrieved positives: " + posAsPos.size());
logger.debug("Number of total positives: " + allExamples.getPosTest().size());
@@ -312,11 +350,13 @@
config.add(logRecall, i, recall);
fmeasure = fmeasure(precision, recall);
config.add(logFMeasure, i, fmeasure);
+ accuracy = accuracy(posAsPos.size(), negAsNeg.size(), posAsNeg.size(), negAsPos.size());
+ config.add(logAccuracy, i, accuracy);
// Menge aller positiven geschn. mit den gefundenen
- SortedSet<String> negAsPos = Helper.intersection(newTestRetrieved, allExamples.getNegTest());
+
logger.debug("Number of retrieved negatives: " + negAsPos.size());
- logger.debug("Number of total negatives: " + allExamples.getNegTest().size());
+ logger.debug("Number of total negatives in test set: " + allExamples.getNegTest().size());
logger.debug("Total: " + posAsPos.size() + " + " + negAsPos.size() + " = "
+ newTestRetrieved.size());
@@ -336,11 +376,11 @@
logger.debug("Misclassified: " + misclassifiedNegInStore.size()
+ " negative sentences in store (printing " + printSentences + "):");
_getLabels(misclassifiedNegInStore, printSentences);
- logger.debug("Not found positives: " + posAsNegInformative.size()
+ logger.debug("Not found positives: " + posAsNeg.size()
+ " positive sentences in store (printing " + printSentences + "):");
- _getLabels(posAsNegInformative, printSentences);
+ _getLabels(posAsNeg, printSentences);
- newlyFound = new ExMakerFixedSize(newlyFound).select(config.splits, config.splits);
+ newlyFound = new ExMakerFixedSize(newlyFound).select(config.splits, config.splits+config.negativeSplitAdd);
learn.addPosTrain(newlyFound.getPosTrain());
learn.addNegTrain(newlyFound.getNegTrain());
@@ -361,7 +401,11 @@
}
public static double accuracy(int posAsPos, int negAsNeg, int posAsNeg, int negAsPos) {
- return 0.0d;
+ int upper = posAsPos+negAsNeg;
+ int lower = posAsPos+negAsNeg + posAsNeg + negAsPos;
+ double accuracy = ((double)upper)/((double)lower);
+ logger.debug("Accuracy: " + df.format(accuracy));
+ return accuracy;
}
public static double fmeasure(double precision, double recall) {
@@ -549,7 +593,7 @@
int maxExecutionTime = config.maxExecutionTime;
int valueFrequencyThreshold = ex.getPosTrain().size();
- int noise = config.noise + (iteration);
+ int noise = config.noise + (config.noiseIterationFactor * iteration);
if (config.adaptMaxRuntime) {
maxExecutionTime = (int) Math.floor(config.factor * (double) ex.sizeOfTrainingSets());
// valueFrequencyThreshold = (int)
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java 2010-02-16 20:04:11 UTC (rev 2051)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java 2010-02-17 00:06:10 UTC (rev 2052)
@@ -11,14 +11,17 @@
public int splits = 5;
public int initialsplits = 5;
+ public int negativeSplitAdd = 0;
public boolean useStartClass = true;
public boolean searchTree = false;
public int noise = 5;
+ public int noiseIterationFactor = 1;
//sets ValueFrequency treshold and maxExecution time
public boolean adaptMaxRuntime = true;
public int maxExecutionTime = 20;
public double factor = 2.0d ;//1.5d;
+
public boolean useDataHasValue = true;
// private String highestPrecision = "";
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-16 20:04:11 UTC (rev 2051)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/Table.java 2010-02-17 00:06:10 UTC (rev 2052)
@@ -13,7 +13,6 @@
import org.dllearner.utilities.JamonMonitorLogger;
import com.jamonapi.Monitor;
-import com.jamonapi.MonitorFactory;
public class Table implements Serializable{
private static final long serialVersionUID = -7191672899557577952L;
@@ -25,9 +24,7 @@
enum Formats {
LATEX, GNUPLOT
};
-
-// private Map<String, TableRowColumn> m = new HashMap<String, TableRowColumn>();
private SortedSet<String> experimentNames = new TreeSet<String>();
private SortedSet<String> labels = new TreeSet<String>();
@@ -38,10 +35,6 @@
int tablesize = 10;
int nrOfMonitors = 10;
Table t = new Table();
-// ITable st = (ITable) MonProxyFactory.monitor(new Table());
-// Table t = (Table)t;
- MonitorFactory.getMonitor(new MyMonKey("aa","aa"));
- MonitorFactory.getTimeMonitor("ss");
Random r = new Random();
for (int i = 0; i < tablesize; i++) {
@@ -53,18 +46,33 @@
m[a].add(r.nextDouble());
}
-// System.out.println("avg: " + m[a].getAvg());
}
TableRowColumn trc = new TableRowColumn(m, "Test","entry_" + i);
-// trc.deleteAll();
trc.useStdDev=false;
t.addTableRowColumn(trc);
}
+ for (int i = 0; i < tablesize; i++) {
+ Monitor[] m = new Monitor[nrOfMonitors];
+ for (int a = 0; a < nrOfMonitors; a++) {
+ m[a] = JamonMonitorLogger.getStatisticMonitor("test" + i + "" + a,
+ (a==0)?"":JamonMonitorLogger.PERCENTAGE);
+ for (int b = 0; b < 2; b++) {
+ m[a].add(r.nextDouble());
+
+ }
+ }
+ TableRowColumn trc = new TableRowColumn(m, "Whatever","bentry_" + i);
+ trc.useStdDev=false;
+ t.addTableRowColumn(trc);
+ }
+
+
System.out.println(t.getLatexAsColumn(true));
- t.serialize("test.ser");
- Table n = deserialize("test.ser");
- System.out.println(n.getLatexAsColumn(true));
+ t.sortByLabel();
+ System.out.println(t.getLatexAsColumn(true));
+ t.sortByExperimentName();
+ System.out.println(t.getGnuPlotAsColumn(true));
// System.out.println(t.getLatexAsRows());
// System.out.println(t.getGnuPlotAsColumn(true));
// System.out.println(t.getGnuPlotAsRows());
@@ -73,21 +81,31 @@
// JamonMonitorLogger.writeHTMLReport("log/tiger.html");
}
- public void addTableRowColumn(List<TableRowColumn> trcs) {
- for (TableRowColumn tableRowColumn : trcs) {
- labels.add(tableRowColumn.getLabel());
- experimentNames.add(tableRowColumn.getExperimentName());
- addTableRowColumn(tableRowColumn);
- }
- }
+
+ /**
+ * passes each it TableRowColumn one by one to addTableRowColumn
+ * @param t
+ */
public void addTable(Table t){
for (TableRowColumn trc : t.tableRowColumns) {
addTableRowColumn(trc);
}
}
+ /**
+ * passes it one by one to addTableRowColumn
+ * @param trcs
+ */
+ public void addTableRowColumns(List<TableRowColumn> trcs) {
+ for (TableRowColumn tableRowColumn : trcs) {
+ addTableRowColumn(tableRowColumn);
+ }
+ }
+
public void addTableRowColumn(TableRowColumn trc) {
+ labels.add(trc.getLabel());
+ experimentNames.add(trc.getExperimentName());
try{
trc.toLatexRow();
}catch (NullPointerException e) {
@@ -139,21 +157,23 @@
for (int a = 0; a < tableRowColumns.size(); a++) {
TableRowColumn trc = tableRowColumns.get(a);
+ String header = trc.getExperimentName()+" "+trc.getLabel();
boolean firstColumn = (a==0);
+ boolean lastColumn = (a + 1 == tableRowColumns.size());
for (int i = 1; i < length+1; i++) {
- boolean last = (a + 1 == tableRowColumns.size());
- boolean first = (i==1);
+
+ boolean firstRow = (i==1);
switch (f) {
case LATEX:
- rows[0] += (first?trc.getHeader()+TableRowColumn.latexSep:"");
- rows[i] += (firstColumn&&addNumbersInFront?i+TableRowColumn.latexSep:"");
- rows[i] += trc.getLatexEntry(i-1)
- + ((last) ? TableRowColumn.latexSep : TableRowColumn.latexSep);
+ rows[0] += ((firstColumn&&firstRow&&addNumbersInFront)?TableRowColumn.latexSep:"");
+ rows[0] += (firstRow?header+TableRowColumn.latexSep:"");
+ rows[i] += ((firstColumn&&addNumbersInFront)?i+TableRowColumn.latexSep:"");
+ rows[i] += trc.getLatexEntry(i-1)+ ((lastColumn) ? TableRowColumn.latexSep : TableRowColumn.latexSep);
break;
case GNUPLOT:
- rows[0] += (first?"#"+trc.getHeader()+"\t":"");
+ rows[0] += (firstRow?"#"+header+"\t":"");
rows[i] += (firstColumn&&addNumbersInFront?i+"\t":"");
- rows[i] += trc.getGnuPlotEntry(i-1) + ((last) ?"" : "\t");
+ rows[i] += trc.getGnuPlotEntry(i-1) + ((lastColumn) ?"" : "\t");
break;
}
}
@@ -198,7 +218,7 @@
for (String s : l) {
for (TableRowColumn trc : tableRowColumns) {
- if(trc.getLabel().equals(s)){
+ if(trc.getLabel().startsWith(s) && trc.getLabel().contains(s)){
newTrc.add(trc);
}
}
@@ -220,6 +240,7 @@
}
public void write(String folder, String fileprefix){
+ logger.info("Writing results to "+folder+fileprefix);
Files.mkdir(folder);
Files.createFile(new File(folder+fileprefix+"_GNU_ROWS"), getGnuPlotAsRows());
Files.createFile(new File(folder+fileprefix+"_GNU_COLUMNS_I"), getGnuPlotAsColumn(true));
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-16 20:04:11 UTC (rev 2051)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-17 00:06:10 UTC (rev 2052)
@@ -60,10 +60,6 @@
return experimentName+" "+label+" "+toGnuPlotRow();
}
- public String getHeader(){
- return experimentName+" "+label;
- }
-
public int size() {
return monitors.length;
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-17 16:48:23
|
Revision: 2056
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2056&view=rev
Author: kurzum
Date: 2010-02-17 16:48:16 +0000 (Wed, 17 Feb 2010)
Log Message:
-----------
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java 2010-02-17 16:48:16 UTC (rev 2056)
@@ -0,0 +1,166 @@
+package org.dllearner.scripts.tiger;
+
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URL;
+import java.text.DecimalFormat;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import org.apache.log4j.Level;
+import org.apache.log4j.Logger;
+import org.dllearner.algorithms.refinement2.ROLearner2;
+import org.dllearner.core.ComponentPool;
+import org.dllearner.core.owl.Description;
+import org.dllearner.kb.sparql.Cache;
+import org.dllearner.kb.sparql.SPARQLTasks;
+import org.dllearner.kb.sparql.SparqlEndpoint;
+import org.dllearner.kb.sparql.SparqlQuery;
+import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor;
+import org.dllearner.parser.KBParser;
+import org.dllearner.parser.ParseException;
+import org.dllearner.refinementoperators.RhoDRDown;
+import org.dllearner.utilities.Files;
+import org.dllearner.utilities.experiments.Jamon;
+import org.dllearner.utilities.experiments.Table;
+import org.dllearner.utilities.experiments.TableRowColumn;
+
+import com.jamonapi.MonKeyImp;
+import com.jamonapi.Monitor;
+import com.jamonapi.MonitorFactory;
+
+public class TestQueries {
+ private static final Logger logger = Logger.getLogger(TestQueries.class);
+
+ static DecimalFormat df = new DecimalFormat("00.###%");
+ public static DecimalFormat dftime = new DecimalFormat("#####.#");
+
+ // static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
+ static String backgroundXML = "files/tiger_trimmed_toPOS.rdf";
+ static String propertiesXML = "files/propertiesOnly.rdf";
+ static String sentenceXMLFolder = "files/tiger/";
+ static String resultFolder = "tigerResults/";
+
+ static String sentenceprefix = "http://nlp2rdf.org/ontology/s";
+ static String prefix = "http://nlp2rdf.org/ontology/";
+
+ static String active = "files/active_all_sentenceNumbers.txt";
+ static String passiveNoZU = "files/passive_noZuInf_sentenceNumbers.txt";
+ static String passiveWithZu = "files/passive_zuInf_sentenceNumbers.txt";
+ static String test_has_pos = "files/test_has_pos.txt";
+ static String test_has_neg = "files/test_has_neg.txt";
+
+ static SparqlEndpoint sparqlEndpoint;
+ static SPARQLTasks sparqlTasks;
+
+ static String sparqlEndpointURL = "http://db0.aksw.org:8893/sparql";
+ static String graph = "http://nlp2rdf.org/tiger";
+ static String rulegraph = "http://nlp2rdf.org/schema/rules1";
+
+ static MonKeyImp queryTime = new MonKeyImp("Query Time", Jamon.MS);
+ static MonKeyImp length = new MonKeyImp("length", Jamon.COUNT);
+ static MonKeyImp hits = new MonKeyImp("hits", Jamon.COUNT);
+
+ static List<MonKeyImp> mks = new ArrayList<MonKeyImp>(Arrays.asList(new MonKeyImp[] { queryTime}));
+
+
+ static SortedSet<String> concepts = new TreeSet<String>();
+
+
+ static String conceptFile = "files/WITH_ZU.log";
+
+ public static void main(String[] args) {
+ LogHelper.initLoggers();
+
+
+
+ Logger.getLogger(Cache.class).setLevel(Level.INFO);
+ Logger.getLogger(ComponentPool.class).setLevel(Level.INFO);
+ Logger.getLogger(ROLearner2.class).setLevel(Level.INFO);
+ Logger.getLogger(RhoDRDown.class).setLevel(Level.INFO);
+ Logger.getLogger(SparqlQuery.class).setLevel(Level.INFO);
+
+ try {
+ sparqlEndpoint = new SparqlEndpoint(new URL(sparqlEndpointURL), new ArrayList<String>(Arrays
+ .asList(new String[] { graph })), new ArrayList<String>());
+ sparqlTasks = new SPARQLTasks( sparqlEndpoint);
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+
+
+
+ String[] concepts;
+ try {
+ concepts = Files.readFileAsArray(new File(conceptFile));
+ Map<String,Monitor> mm1 = new HashMap<String, Monitor>();
+ Map<String,Monitor> mm2 = new HashMap<String, Monitor>();
+ Map<String,Monitor> mm3 = new HashMap<String, Monitor>();
+ for (int i = 0; i < concepts.length; i++) {
+ Description d = KBParser.parseConcept(concepts[i]);
+ SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
+ visit.setDistinct(true);
+ visit.setLabels(false);
+ visit.setLimit(-1);
+ String q = visit.getSparqlQuery(d);
+ q = " \n define input:inference \"" + rulegraph + "\" \n" + "" + q;
+ logger.warn(concepts[i]);
+ logger.warn(q);
+
+ String label1 = "Time "+d.getLength();
+ String label2 = "Length "+d.getLength();
+ String label3 = "Hits "+d.getLength();
+ Monitor m1 = MonitorFactory.getTimeMonitor(label1).start();
+ Monitor m2 = MonitorFactory.getMonitor(label2, Jamon.COUNT);
+ Monitor m3 = MonitorFactory.getMonitor(label3, Jamon.COUNT).start();
+ sparqlTasks.queryAsResultSet(q);
+ m1.stop();
+ mm1.put(label1, m1);
+ mm2.put(label2, m2);
+ mm3.put(label3, m3);
+
+ }
+
+ Monitor[] mons1 = new Monitor[mm1.size()];
+ Monitor[] mons2 = new Monitor[mm1.size()];
+ Monitor[] mons3 = new Monitor[mm1.size()];
+ SortedSet<String> keys1 = new TreeSet<String>(mm1.keySet());
+ SortedSet<String> keys2 = new TreeSet<String>(mm2.keySet());
+ SortedSet<String> keys3 = new TreeSet<String>(mm3.keySet());
+ int i = 0;
+ for(String key:keys1){
+ mons1[i] = mm1.get(key);
+ i++;
+ }
+ i = 0;
+ for(String key:keys2){
+ mons2[i] = mm2.get(key);
+ i++;
+ }
+ i = 0;
+ for(String key:keys3){
+ mons3[i] = mm3.get(key);
+ i++;
+ }
+ Table t = new Table();
+
+ t.addTableRowColumn(new TableRowColumn(mons2, "testqueries", "length"));
+ t.addTableRowColumn(new TableRowColumn(mons3, "testqueries", "hits"));
+ t.addTableRowColumn(new TableRowColumn(mons1, "testqueries", "time"));
+ t.write(resultFolder, "testqueries");
+
+ } catch (FileNotFoundException e) {
+ e.printStackTrace();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-17 10:51:18 UTC (rev 2055)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-17 16:48:16 UTC (rev 2056)
@@ -24,6 +24,8 @@
final FinalizedMonitor[] monitors;
boolean useStdDev = false;
+ boolean hits_instead_of_average = false;
+
DecimalFormat dfGnuPlotDefault = new DecimalFormat("######0.00####");
// DecimalFormat dfStdDevLatex = new DecimalFormat("##.##%");
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-17 17:22:11
|
Revision: 2059
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2059&view=rev
Author: kurzum
Date: 2010-02-17 17:22:05 +0000 (Wed, 17 Feb 2010)
Log Message:
-----------
server commit
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/scripts/tiger/TableSorter.java
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/TableSorter.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TableSorter.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TableSorter.java 2010-02-17 17:22:05 UTC (rev 2059)
@@ -0,0 +1,19 @@
+package org.dllearner.scripts.tiger;
+
+import org.dllearner.utilities.experiments.Table;
+
+public class TableSorter {
+
+
+ public static void main(String[] args) {
+ Table t = new Table();
+ t.addTable(Table.deserialize("/home/sebastian/work/papers/2010/ACL_Corpus_Navigation/results/NO_ZU/baseline_5_5.ser"));
+ t.addTable(Table.deserialize("/home/sebastian/work/papers/2010/ACL_Corpus_Navigation/results/NO_ZU/fixRuntime_20s.ser"));
+ t.addTable(Table.deserialize("/home/sebastian/work/papers/2010/ACL_Corpus_Navigation/results/NO_ZU/reducedExamples_2_2.ser"));
+ t.addTable(Table.deserialize("/home/sebastian/work/papers/2010/ACL_Corpus_Navigation/results/NO_ZU/useLemma_false.ser"));
+ t.sortByLabel();
+ t.write("/tmp/noZU/", "nozumaster");
+
+
+ }
+}
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java 2010-02-17 17:01:35 UTC (rev 2058)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestQueries.java 2010-02-17 17:22:05 UTC (rev 2059)
@@ -30,6 +30,7 @@
import org.dllearner.utilities.experiments.Jamon;
import org.dllearner.utilities.experiments.Table;
import org.dllearner.utilities.experiments.TableRowColumn;
+import org.dllearner.utilities.experiments.TableRowColumn.Display;
import com.jamonapi.MonKeyImp;
import com.jamonapi.Monitor;
@@ -101,7 +102,6 @@
concepts = Files.readFileAsArray(new File(conceptFile));
Map<String,Monitor> mm1 = new HashMap<String, Monitor>();
Map<String,Monitor> mm2 = new HashMap<String, Monitor>();
- Map<String,Monitor> mm3 = new HashMap<String, Monitor>();
for (int i = 0; i < concepts.length; i++) {
Description d = KBParser.parseConcept(concepts[i]);
SparqlQueryDescriptionConvertVisitor visit = new SparqlQueryDescriptionConvertVisitor();
@@ -115,27 +115,21 @@
String label1 = "Time "+d.getLength();
String label2 = "Length "+d.getLength();
- String label3 = "Hits "+d.getLength();
Monitor m1 = MonitorFactory.getTimeMonitor(label1).start();
Monitor m2 = MonitorFactory.getMonitor(label2, Jamon.COUNT);
-
- Monitor m3 = MonitorFactory.getMonitor(label3, Jamon.COUNT);
+
m2.add(d.getLength());
- m3.add(1.0d);
sparqlTasks.queryAsResultSet(q);
m1.stop();
mm1.put(label1, m1);
mm2.put(label2, m2);
- mm3.put(label3, m3);
}
Monitor[] mons1 = new Monitor[mm1.size()];
Monitor[] mons2 = new Monitor[mm1.size()];
- Monitor[] mons3 = new Monitor[mm1.size()];
SortedSet<String> keys1 = new TreeSet<String>(mm1.keySet());
SortedSet<String> keys2 = new TreeSet<String>(mm2.keySet());
- SortedSet<String> keys3 = new TreeSet<String>(mm3.keySet());
int i = 0;
for(String key:keys1){
mons1[i] = mm1.get(key);
@@ -146,15 +140,16 @@
mons2[i] = mm2.get(key);
i++;
}
- i = 0;
- for(String key:keys3){
- mons3[i] = mm3.get(key);
- i++;
- }
Table t = new Table();
+
+ TableRowColumn tc = new TableRowColumn(mons2, "testqueries", "length");
+ tc.setDisplay(Display.TOTAL);
+ t.addTableRowColumn(tc);
- t.addTableRowColumn(new TableRowColumn(mons2, "testqueries", "length"));
- t.addTableRowColumn(new TableRowColumn(mons3, "testqueries", "hits"));
+ tc = new TableRowColumn(mons2, "testqueries", "length");
+ tc.setDisplay(Display.HITS);
+ t.addTableRowColumn(tc);
+
t.addTableRowColumn(new TableRowColumn(mons1, "testqueries", "time"));
t.write(resultFolder, "testqueries");
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java 2010-02-17 17:01:35 UTC (rev 2058)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/FinalizedMonitor.java 2010-02-17 17:22:05 UTC (rev 2059)
@@ -17,6 +17,7 @@
final double lastValue;
final double max;
final double min;
+ final double total;
public FinalizedMonitor(Monitor m){
@@ -28,6 +29,7 @@
lastValue = m.getLastValue();
max = m.getMax();
min = m.getMin();
+ total = m.getTotal();
}
@@ -71,6 +73,9 @@
public double getMin() {
return min;
}
+ public double getTotal() {
+ return total;
+ }
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-17 17:01:35 UTC (rev 2058)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-17 17:22:05 UTC (rev 2059)
@@ -13,6 +13,10 @@
enum Formats {
LATEX, GNUPLOT
}
+
+ public enum Display {
+ AVG, HITS, TOTAL
+ }
public static String latexSep = "\t&\t";
public static String latexEnd = "\\\\";
@@ -24,7 +28,7 @@
final FinalizedMonitor[] monitors;
boolean useStdDev = false;
- boolean hits_instead_of_average = false;
+ Display display = Display.AVG;
DecimalFormat dfGnuPlotDefault = new DecimalFormat("######0.00####");
@@ -107,13 +111,26 @@
}
public String getLatexEntry(int i) {
- return latexFormat(monitors[i], monitors[i].getAvg()) + " "+ (useStdDev ? "(\\pm"+latexFormat(monitors[i], monitors[i].getStdDev()) + ") " : "");
+ return latexFormat(monitors[i], getValue(i)) + " "+ (useStdDev ? "(\\pm"+latexFormat(monitors[i], monitors[i].getStdDev()) + ") " : "");
}
public String getGnuPlotEntry(int i) {
- return dfGnuPlotDefault.format(monitors[i].getAvg()) + "";
+ return dfGnuPlotDefault.format(getValue(i)) + "";
}
+ public void setDisplay(Display d){
+ display = d;
+ }
+
+ private double getValue(int i){
+ switch(display){
+ case AVG: return monitors[i].getAvg();
+ case HITS: return monitors[i].getHits();
+ case TOTAL: return monitors[i].getTotal();
+ }
+ return monitors[i].getAvg();
+ }
+
private String latexFormat(FinalizedMonitor monitors, double value){
if(monitors.getUnits().equals(JamonMonitorLogger.PERCENTAGE)){
return dfPercentage.format(value);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|
|
From: <ku...@us...> - 2010-02-18 09:16:18
|
Revision: 2061
http://dl-learner.svn.sourceforge.net/dl-learner/?rev=2061&view=rev
Author: kurzum
Date: 2010-02-18 09:16:11 +0000 (Thu, 18 Feb 2010)
Log Message:
-----------
- correct displaying of manchester value
- added some brackets and VocabFilter
Modified Paths:
--------------
trunk/src/dl-learner/org/dllearner/core/options/CommonConfigMappings.java
trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
Added Paths:
-----------
trunk/src/dl-learner/org/dllearner/scripts/tiger/IteratedConfig.java
trunk/src/dl-learner/org/dllearner/scripts/tiger/VocabFilter.java
Removed Paths:
-------------
trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java
Modified: trunk/src/dl-learner/org/dllearner/core/options/CommonConfigMappings.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/options/CommonConfigMappings.java 2010-02-17 17:55:54 UTC (rev 2060)
+++ trunk/src/dl-learner/org/dllearner/core/options/CommonConfigMappings.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -39,22 +39,25 @@
public static SortedSet<Individual> getIndividualSet(Set<String> individuals) {
SortedSet<Individual> set = new TreeSet<Individual>();
- for(String individual : individuals)
+ for(String individual : individuals){
set.add(new Individual(individual));
+ }
return set;
}
public static SortedSet<NamedClass> getAtomicConceptSet(Set<String> atomicConcepts) {
SortedSet<NamedClass> set = new TreeSet<NamedClass>(cm);
- for(String atomicConcept : atomicConcepts)
+ for(String atomicConcept : atomicConcepts) {
set.add(new NamedClass(atomicConcept));
+ }
return set;
}
public static SortedSet<ObjectProperty> getAtomicRoleSet(Set<String> atomicRoles) {
SortedSet<ObjectProperty> set = new TreeSet<ObjectProperty>();
- for(String atomicRole : atomicRoles)
+ for(String atomicRole : atomicRoles){
set.add(new ObjectProperty(atomicRole));
+ }
return set;
}
}
Modified: trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-17 17:55:54 UTC (rev 2060)
+++ trunk/src/dl-learner/org/dllearner/core/owl/StringValueRestriction.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -39,6 +39,11 @@
}
private static final long serialVersionUID = 5651982376457935975L;
+
+ @Override
+ public String toManchesterSyntaxString(String baseURI, Map<String,String> prefixes) {
+ return restrictedPropertyExpression.toString(baseURI, prefixes) + " value " +"\"" +value.toManchesterSyntaxString(baseURI, prefixes)+"\"";
+ }
@Override
public int getLength() {
@@ -49,6 +54,7 @@
return stringValue;
}
+ @Override
public String toKBSyntaxString(String baseURI, Map<String, String> prefixes) {
return "(" + restrictedPropertyExpression.toKBSyntaxString(baseURI, prefixes) + " STRINGVALUE " + value.toKBSyntaxString(baseURI, prefixes) + ")";
}
Copied: trunk/src/dl-learner/org/dllearner/scripts/tiger/IteratedConfig.java (from rev 2052, trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java)
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/IteratedConfig.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/IteratedConfig.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -0,0 +1,111 @@
+package org.dllearner.scripts.tiger;
+
+import org.apache.log4j.Logger;
+import org.dllearner.utilities.experiments.ExperimentConfiguration;
+
+public class IteratedConfig extends ExperimentConfiguration{
+
+
+ private static final Logger logger = Logger.getLogger(IteratedConfig.class);
+
+ public int resultLimit = -1;
+
+ public int splits = 5;
+ public int initialsplits = 5;
+ public int negativeSplitAdd = 0;
+
+ public boolean useStartClass = true;
+ public boolean searchTree = false;
+ public int noise = 5;
+ public int noiseIterationFactor = 1;
+ //sets ValueFrequency treshold and maxExecution time
+ public boolean adaptMaxRuntime = true;
+ public int maxExecutionTime = 20;
+ public double factor = 2.0d ;//1.5d;
+
+ public boolean useDataHasValue = true;
+
+ public boolean ignorePOSFeatures = false;
+ public boolean ignoreSyntaxFeatures = false;
+
+// private String highestPrecision = "";
+// private String highestRecall = "";
+// private String highestFMeasure = "";
+
+ public IteratedConfig(String label, int iterations) {
+ super(label, iterations);
+ }
+
+ //reached iterations
+ //reached 100%
+
+ public boolean stopCondition(int iteration, double precision, double recall, double fmeasure, String concept){
+ if(iteration == 0){
+ //skip first;
+ return true;
+ }
+ logger.info("Testing stop condition (iter: "+iteration+" ) " );
+
+// if(higher(iterationPrecision, precision)){highestPrecision=concept;}
+// if(higher(iterationRecall, recall)){highestRecall=concept;}
+// if(higher(iterationFmeasure, fmeasure)){highestFMeasure=concept;}
+
+ boolean condIter = (iteration<this.sizeOfResultVector);
+ boolean condPrec = fmeasure <=1.0d;
+ if(!condIter){
+ logger.info("iterations reached, stopping");
+ return false;
+ }else if(!condPrec){
+ logger.info("fmeasure reached, stopping");
+ return false;
+ }else{
+ return true;
+ }
+ }
+
+
+
+
+
+// String pre = "\n*********\n"+label+"\n";
+// pre +="highestPrecision: "+highestPrecision+"\n";
+// pre +="highestRecall: "+highestRecall+"\n";
+// pre +="highestFMeasure: "+highestFMeasure+"\n";
+//
+//
+//
+// String precision = "Precision:\n";
+// String hits = "hits:\n";
+// String recall = "Recall:\n";
+// String fmeasure = "F-Measure:\n";
+// String learningtime = "learningtime:\n";
+// String totaltime = "Totaltime:\n";
+
+// for (int i = 0; i < iterationPrecision.length; i++) {
+// precision+=iterationPrecision[i].getAvg()+"\n";
+// hits+=iterationPrecision[i].getHits()+" | ";
+// recall+=iterationRecall[i].getAvg()+"\n";
+// fmeasure+=iterationFmeasure[i].getAvg()+"\n";
+// learningtime+=iterationLearningTime[i].getAvg()+"\n";
+// totaltime+=iterationTotalTime[i].getAvg()+"\n";
+// }
+
+// return pre+precision+recall+fmeasure+hits+"\n"+learningtime+totaltime;
+// }
+// public static double precision( int posAsPos, int retrieved){
+// double precision = ((double)posAsPos)/((double)retrieved);
+// logger.info("Precision: "+df.format(precision));
+// return precision;
+// }
+// public static double recall( int posAsPos, int allPositives){
+// double recall = ((double)posAsPos)/((double)allPositives);
+//
+// logger.info("Recall: "+df.format(recall));
+// return recall;
+//
+// }
+
+
+
+
+}
Modified: trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-17 17:55:54 UTC (rev 2060)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/TestIterativeLearning.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -17,6 +17,7 @@
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import org.dllearner.algorithms.celoe.CELOE;
import org.dllearner.algorithms.refinement2.ROLComponent2;
import org.dllearner.algorithms.refinement2.ROLearner2;
import org.dllearner.core.ComponentManager;
@@ -31,7 +32,6 @@
import org.dllearner.kb.sparql.Cache;
import org.dllearner.kb.sparql.SPARQLTasks;
import org.dllearner.kb.sparql.SparqlEndpoint;
-import org.dllearner.kb.sparql.SparqlKnowledgeSource;
import org.dllearner.kb.sparql.SparqlQuery;
import org.dllearner.kb.sparql.SparqlQueryDescriptionConvertVisitor;
import org.dllearner.learningproblems.PosNegLPStandard;
@@ -44,7 +44,6 @@
import org.dllearner.utilities.experiments.ExMakerFixedSize;
import org.dllearner.utilities.experiments.ExMakerRandomizer;
import org.dllearner.utilities.experiments.Examples;
-import org.dllearner.utilities.experiments.IteratedConfig;
import org.dllearner.utilities.experiments.Jamon;
import org.dllearner.utilities.experiments.Table;
@@ -57,9 +56,14 @@
static DecimalFormat df = new DecimalFormat("00.###%");
public static DecimalFormat dftime = new DecimalFormat("#####.#");
+ public static boolean newTiger = true;
+
// static String backgroundXML = "files/tiger.noSchema.noImports.rdf";
- static String backgroundXML = "files/tiger_trimmed_toPOS.rdf";
- static String propertiesXML = "files/propertiesOnly.rdf";
+ static String backgroundXML = (newTiger)?"files/VirtuosoSyntaxSchema.rdf":"files/tiger_trimmed_toPOS.rdf";
+ static String sparqlEndpointURL ="http://db0.aksw.org:8893/sparql";
+ static String graph = (newTiger)?"http://nlp2rdf.org/tigerFull":"http://nlp2rdf.org/tiger";
+ static String rulegraph = (newTiger)?"http://nlp2rdf.org/schemaFull/rules1":"http://nlp2rdf.org/schema/rules1";
+// static String propertiesXML = "files/propertiesOnly.rdf";
static String sentenceXMLFolder = "files/tiger/";
static String resultFolder = "tigerResults/";
@@ -75,9 +79,7 @@
static SparqlEndpoint sparqlEndpoint;
static SPARQLTasks sparqlTasks;
- static String sparqlEndpointURL = "http://db0.aksw.org:8893/sparql";
- static String graph = "http://nlp2rdf.org/tiger";
- static String rulegraph = "http://nlp2rdf.org/schema/rules1";
+
static MonKeyImp logFMeasure = new MonKeyImp("F-Measure", Jamon.PERCENTAGE);
static MonKeyImp logPrecision = new MonKeyImp("Precision", Jamon.PERCENTAGE);
@@ -156,7 +158,7 @@
negatives = null;
allExamples = null;
- List<IteratedConfig> configs = getConfigs();
+ List<IteratedConfig> configs = getConfigsNo();
Table masterTable = new Table();
for (IteratedConfig experimentConfig : configs) {
experimentConfig.init(mks);
@@ -234,22 +236,26 @@
}
- public static List<IteratedConfig> getConfigs() {
+ public static List<IteratedConfig> getConfigsNo() {
List<IteratedConfig> l = new ArrayList<IteratedConfig>();
- IteratedConfig baseline = new IteratedConfig("baseline_5_5", iterations);
+ IteratedConfig baseline = new IteratedConfig("baseline", iterations);
+ baseline.initialsplits = 10;
+ baseline.noise = 0;
+ baseline.searchTree = true;
+ baseline.factor = 10.0d;
- IteratedConfig reducedExamples = new IteratedConfig("reducedExamples_2_2", iterations);
+ IteratedConfig reducedExamples = new IteratedConfig("reducedExamples", iterations);
reducedExamples.initialsplits = 2;
reducedExamples.splits = 2;
reducedExamples.factor = 6.0d;
- IteratedConfig fixRuntime = new IteratedConfig("fixRuntime_20s", iterations);
+ IteratedConfig fixRuntime = new IteratedConfig("fixRuntime", iterations);
fixRuntime.adaptMaxRuntime = false;
- fixRuntime.maxExecutionTime = 40;
+ fixRuntime.maxExecutionTime = 20;
- IteratedConfig useLemma = new IteratedConfig("useLemma_false", iterations);
+ IteratedConfig useLemma = new IteratedConfig("noLemma", iterations);
useLemma.useDataHasValue = false;
l.add(baseline);
@@ -264,7 +270,8 @@
List<IteratedConfig> l = new ArrayList<IteratedConfig>();
IteratedConfig baseline = new IteratedConfig("baseline", iterations);
baseline.noiseIterationFactor = 0;
-
+ baseline.noise = 0;
+ baseline.searchTree = true;
IteratedConfig increasedNegativeExamples = new IteratedConfig("increasedNegativeExamples", iterations);
increasedNegativeExamples.negativeSplitAdd = 10;
@@ -276,7 +283,7 @@
- IteratedConfig useLemma = new IteratedConfig("useLemma_false", iterations);
+ IteratedConfig useLemma = new IteratedConfig("noLemma", iterations);
useLemma.useDataHasValue = false;
l.add(baseline);
@@ -326,6 +333,10 @@
concepts.add(ed.getDescription().toKBSyntaxString(null,null));
logger.debug("USING CONCEPT: " + lastConcept);
+ if (true) {
+ System.exit(0);
+ }
+
/* RETRIEVING */
Monitor queryTime = JamonMonitorLogger.getTimeMonitor(TestIterativeLearning.class, "queryTime")
.start();
@@ -453,33 +464,33 @@
return tmp;
}
- @SuppressWarnings("unused")
- private static Set<KnowledgeSource> _getSPARQL(Examples ex) throws Exception {
- Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
+// @SuppressWarnings("unused")
+// private static Set<KnowledgeSource> _getSPARQL(Examples ex) throws Exception {
+// Set<KnowledgeSource> tmp = new HashSet<KnowledgeSource>();
+//
+// Set<String> examples = new TreeSet<String>();
+// examples.addAll(ex.getPosTrain());
+// examples.addAll(ex.getNegTrain());
+// SparqlKnowledgeSource ks = ComponentFactory.getSparqlKnowledgeSource(new URL(sparqlEndpointURL),
+// examples);
+// ks.getConfigurator().setUrl(new URL(sparqlEndpointURL));
+// ks.getConfigurator().setDefaultGraphURIs(new HashSet<String>(Arrays.asList(new String[] { graph })));
+// ks.getConfigurator().setInstances(examples);
+// ks.getConfigurator().setDissolveBlankNodes(false);
+// ks.getConfigurator().setRecursionDepth(2);
+// ks.getConfigurator().setDissolveBlankNodes(false);
+// ks.getConfigurator().setCloseAfterRecursion(true);
+// ks.getConfigurator().setGetAllSuperClasses(true);
+// ks.getConfigurator().setGetPropertyInformation(false);
+// ks.getConfigurator().setUseLits(true);
+// // ks.getConfigurator().
+// OWLFile ks2 = ComponentFactory.getOWLFile(new File(propertiesXML).toURI().toURL());
+// tmp.add(ks);
+// tmp.add(ks2);
+//
+// return tmp;
+// }
- Set<String> examples = new TreeSet<String>();
- examples.addAll(ex.getPosTrain());
- examples.addAll(ex.getNegTrain());
- SparqlKnowledgeSource ks = ComponentFactory.getSparqlKnowledgeSource(new URL(sparqlEndpointURL),
- examples);
- ks.getConfigurator().setUrl(new URL(sparqlEndpointURL));
- ks.getConfigurator().setDefaultGraphURIs(new HashSet<String>(Arrays.asList(new String[] { graph })));
- ks.getConfigurator().setInstances(examples);
- ks.getConfigurator().setDissolveBlankNodes(false);
- ks.getConfigurator().setRecursionDepth(2);
- ks.getConfigurator().setDissolveBlankNodes(false);
- ks.getConfigurator().setCloseAfterRecursion(true);
- ks.getConfigurator().setGetAllSuperClasses(true);
- ks.getConfigurator().setGetPropertyInformation(false);
- ks.getConfigurator().setUseLits(true);
- // ks.getConfigurator().
- OWLFile ks2 = ComponentFactory.getOWLFile(new File(propertiesXML).toURI().toURL());
- tmp.add(ks);
- tmp.add(ks2);
-
- return tmp;
- }
-
// test if virtuoso is correct
// public static void validate(Description d, Examples newlyFound){
// try {
@@ -613,6 +624,7 @@
}
ROLComponent2 la = ComponentFactory.getROLComponent2(lp, rc);
+// CELOE la = ComponentFactory.getCELOE(lp, rc);
la.getConfigurator().setUseExistsConstructor(true);
la.getConfigurator().setUseAllConstructor(false);
@@ -621,7 +633,43 @@
la.getConfigurator().setUseHasValueConstructor(false);
la.getConfigurator().setUseDataHasValueConstructor(config.useDataHasValue);
la.getConfigurator().setValueFrequencyThreshold(valueFrequencyThreshold);
+
+// if(config.ignorePOSFeatures){
+// la.getConfigurator().setIgnoredConcepts(VocabFilter.posClasses);
+// la.getConfigurator().setIgnoredRoles(VocabFilter.posProperties);
+// }
+ SortedSet<String> inv = new TreeSet<String>();
+ for(String s : VocabFilter.syntaxProperies){
+ if(s.toLowerCase().endsWith("inv")){
+ inv.add(s);
+ }
+ }
+ inv.add("http://nlp2rdf.org/ontology/hasToken");
+ inv.add("http://nlp2rdf.org/ontology/firstToken");
+// System.out.println(inv);
+// if (true) {
+// System.exit(0);
+// }
+ SortedSet<String> all = new TreeSet<String>(Helper.difference(VocabFilter.syntaxProperies, inv));
+ all.addAll(VocabFilter.posProperties);
+ la.getConfigurator().setAllowedRoles(all);
+// if(config.ignoreSyntaxFeatures){
+// la.getConfigurator().setIgnoredConcepts(VocabFilter.syntaxClasses);
+// la.getConfigurator().setIgnoredRoles(VocabFilter.syntaxProperies);
+// }else{
+// la.getConfigurator().setAllowedRoles(all);
+// }
+
+
+
+
+
+// la.getConfigurator().setInstanceBasedDisjoints(false);
+
+
+
+
la.getConfigurator().setIgnoredConcepts(
new HashSet<String>(Arrays.asList(new String[] {
"http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag",
Added: trunk/src/dl-learner/org/dllearner/scripts/tiger/VocabFilter.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/scripts/tiger/VocabFilter.java (rev 0)
+++ trunk/src/dl-learner/org/dllearner/scripts/tiger/VocabFilter.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -0,0 +1,265 @@
+package org.dllearner.scripts.tiger;
+
+import java.util.Arrays;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+public class VocabFilter {
+ public static SortedSet<String> syntaxProperies = new TreeSet<String>(Arrays.asList(new String[]{
+ "http://nlp2rdf.org/ontology/AC",
+ "http://nlp2rdf.org/ontology/ACInv",
+ "http://nlp2rdf.org/ontology/ADC",
+ "http://nlp2rdf.org/ontology/ADCInv",
+ "http://nlp2rdf.org/ontology/AMS",
+ "http://nlp2rdf.org/ontology/AMSInv",
+ "http://nlp2rdf.org/ontology/APEdge",
+ "http://nlp2rdf.org/ontology/APEdgeInv",
+ "http://nlp2rdf.org/ontology/APP",
+ "http://nlp2rdf.org/ontology/APPInv",
+ "http://nlp2rdf.org/ontology/AVC",
+ "http://nlp2rdf.org/ontology/AVCInv",
+ "http://nlp2rdf.org/ontology/CD",
+ "http://nlp2rdf.org/ontology/CDInv",
+ "http://nlp2rdf.org/ontology/CM",
+ "http://nlp2rdf.org/ontology/CMInv",
+ "http://nlp2rdf.org/ontology/CVC",
+ "http://nlp2rdf.org/ontology/CVCInv",
+ "http://nlp2rdf.org/ontology/DA",
+ "http://nlp2rdf.org/ontology/DAInv",
+ "http://nlp2rdf.org/ontology/DH",
+ "http://nlp2rdf.org/ontology/DHInv",
+ "http://nlp2rdf.org/ontology/DM",
+ "http://nlp2rdf.org/ontology/DMInv",
+ "http://nlp2rdf.org/ontology/EP",
+ "http://nlp2rdf.org/ontology/EPInv",
+ "http://nlp2rdf.org/ontology/HD",
+ "http://nlp2rdf.org/ontology/HDInv",
+ "http://nlp2rdf.org/ontology/JU",
+ "http://nlp2rdf.org/ontology/JUInv",
+ "http://nlp2rdf.org/ontology/MNR",
+ "http://nlp2rdf.org/ontology/MNRInv",
+ "http://nlp2rdf.org/ontology/NG",
+ "http://nlp2rdf.org/ontology/NGInv",
+ "http://nlp2rdf.org/ontology/NK",
+ "http://nlp2rdf.org/ontology/NKInv",
+ "http://nlp2rdf.org/ontology/NPEdge",
+ "http://nlp2rdf.org/ontology/NPEdgeInv",
+ "http://nlp2rdf.org/ontology/OC",
+ "http://nlp2rdf.org/ontology/OCInv",
+ "http://nlp2rdf.org/ontology/OG",
+ "http://nlp2rdf.org/ontology/OGInv",
+ "http://nlp2rdf.org/ontology/OP",
+ "http://nlp2rdf.org/ontology/OPInv",
+ "http://nlp2rdf.org/ontology/PAR",
+ "http://nlp2rdf.org/ontology/PARInv",
+ "http://nlp2rdf.org/ontology/PD",
+ "http://nlp2rdf.org/ontology/PDInv",
+ "http://nlp2rdf.org/ontology/PG",
+ "http://nlp2rdf.org/ontology/PGInv",
+ "http://nlp2rdf.org/ontology/PM",
+ "http://nlp2rdf.org/ontology/PMInv",
+ "http://nlp2rdf.org/ontology/PPEdge",
+ "http://nlp2rdf.org/ontology/PPEdgeInv",
+ "http://nlp2rdf.org/ontology/RE",
+ "http://nlp2rdf.org/ontology/REInv",
+ "http://nlp2rdf.org/ontology/RS",
+ "http://nlp2rdf.org/ontology/RSInv",
+ "http://nlp2rdf.org/ontology/SBP",
+ "http://nlp2rdf.org/ontology/SBPInv",
+ "http://nlp2rdf.org/ontology/SP",
+ "http://nlp2rdf.org/ontology/SPInv",
+ "http://nlp2rdf.org/ontology/SyntacticEdge",
+ "http://nlp2rdf.org/ontology/SyntacticEdgeInv",
+ "http://nlp2rdf.org/ontology/VO",
+ "http://nlp2rdf.org/ontology/VOInv",
+ "http://nlp2rdf.org/ontology/VPEdge",
+ "http://nlp2rdf.org/ontology/VPEdgeInv",
+ "http://nlp2rdf.org/ontology/accusativeObject",
+ "http://nlp2rdf.org/ontology/accusativeObjectInv",
+ "http://nlp2rdf.org/ontology/apposition",
+ "http://nlp2rdf.org/ontology/appositionInv",
+ "http://nlp2rdf.org/ontology/comparativeComplement",
+ "http://nlp2rdf.org/ontology/comparativeComplementInv",
+ "http://nlp2rdf.org/ontology/complementizer",
+ "http://nlp2rdf.org/ontology/complementizerInv",
+ "http://nlp2rdf.org/ontology/conjunct",
+ "http://nlp2rdf.org/ontology/conjunctInv",
+ "http://nlp2rdf.org/ontology/modifier",
+ "http://nlp2rdf.org/ontology/modifierInv",
+ "http://nlp2rdf.org/ontology/numberComponent",
+ "http://nlp2rdf.org/ontology/numberComponentInv",
+ "http://nlp2rdf.org/ontology/placeholder",
+ "http://nlp2rdf.org/ontology/placeholderInv",
+ "http://nlp2rdf.org/ontology/properNounComponent",
+ "http://nlp2rdf.org/ontology/properNounComponentInv",
+ "http://nlp2rdf.org/ontology/relativeClause",
+ "http://nlp2rdf.org/ontology/relativeClauseInv",
+ "http://nlp2rdf.org/ontology/secondAccusativeObject",
+ "http://nlp2rdf.org/ontology/secondAccusativeObjectInv",
+ "http://nlp2rdf.org/ontology/separableVerbPrefix",
+ "http://nlp2rdf.org/ontology/separableVerbPrefixInv",
+ "http://nlp2rdf.org/ontology/subject",
+ "http://nlp2rdf.org/ontology/subjectInv",
+ "http://nlp2rdf.org/ontology/syntacticEdge",
+ "http://nlp2rdf.org/ontology/syntacticEdgeInv",
+ "http://nlp2rdf.org/ontology/unitComponent",
+ "http://nlp2rdf.org/ontology/unitComponentInv"}));
+
+
+ public static SortedSet<String> syntaxClasses = new TreeSet<String>(Arrays.asList(new String[]{
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#AdjectivePhrase",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#Coordination",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#NounPhrase",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#PrepositionalPhrase",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#SyntacticNode",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/tiger-syntax.owl#VerbalPhrase",
+ "http://nlp2rdf.org/ontology/adjectivePhrase",
+ "http://nlp2rdf.org/ontology/chunk",
+ "http://nlp2rdf.org/ontology/complexNumeral",
+ "http://nlp2rdf.org/ontology/coordinatedAdjectivePhrase",
+ "http://nlp2rdf.org/ontology/coordinatedComplementizer",
+ "http://nlp2rdf.org/ontology/coordinatedNounPhrase",
+ "http://nlp2rdf.org/ontology/coordinatedVerbPhrase",
+ "http://nlp2rdf.org/ontology/discourseLevelConstituent",
+ "http://nlp2rdf.org/ontology/nounPhrase",
+ "http://nlp2rdf.org/ontology/prepositionalPhrase",
+ "http://nlp2rdf.org/ontology/properNoun",
+ "http://nlp2rdf.org/ontology/verbPhrase"}));
+
+
+ public static SortedSet<String> posProperties = new TreeSet<String>(Arrays.asList(new String[]{}));
+
+
+ public static SortedSet<String> posClasses = new TreeSet<String>(Arrays.asList(new String[]{
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Additional",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Adjective",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Adposition",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Adverb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AdverbialInterrogativeRelativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AnsweringParticle",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Article",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AttributiveAdjective",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AttributiveDemonstrativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AttributiveIndefinitePronounWithoutDeterminer",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AttributiveInterrogativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AttributivePossessivePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AttributiveRelativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AuxiliaryImperative",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AuxiliaryInfinitive",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AuxiliaryPastParticiple",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#AuxilliaryVerb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#CardinalNumber",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#CircumpositionRightPart",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Comma",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#CommonNoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ComparisonParticle",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Conjunction",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#CoordinatingConjunction",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#DemonstrativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#FiniteAuxiliaryVerb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#FiniteModalVerb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#FiniteVerb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ForeignMaterial",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Imperative",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#IndefinitePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Infinitive",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#InfinitiveWithZu",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Interjection",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#InterrogativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#LexicalVerb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ModalInfinitive",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ModalPastParticiple",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ModalVerb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#NegationParticle",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#NonWords",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Noun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#POS",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Particle",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ParticleWithAdjective",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#PastParticiple",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#PersonalPronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#PossessivePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Postposition",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#PredicativeAdjective",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Preposition",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#PrepositionWithArticle",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#PronominalAdverb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Pronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ProperNoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Punctuation",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ReflexivePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#RelativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SentenceFinalPunctuation",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SentenceInternalPunctuation",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SeparatedVerbalParticle",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubordinatingConjunction",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubordinatingConjunctionWithSentence",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubordinatingConjunctionWithZu",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubstitutiveDemonstrativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubstitutiveIndefinitePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubstitutiveInterrogativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubstitutivePossessivePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#SubstitutiveRelativePronoun",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Tag",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Truncated",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#Verb",
+ "http://nachhalt.sfb632.uni-potsdam.de/owl/stts.owl#ZuWithInfinitive",
+ "http://nlp2rdf.org/ontology/ADJA",
+ "http://nlp2rdf.org/ontology/ADJD",
+ "http://nlp2rdf.org/ontology/ADV",
+ "http://nlp2rdf.org/ontology/APPO",
+ "http://nlp2rdf.org/ontology/APPR",
+ "http://nlp2rdf.org/ontology/APPRART",
+ "http://nlp2rdf.org/ontology/APZR",
+ "http://nlp2rdf.org/ontology/ART",
+ "http://nlp2rdf.org/ontology/CARD",
+ "http://nlp2rdf.org/ontology/FM",
+ "http://nlp2rdf.org/ontology/ITJ",
+ "http://nlp2rdf.org/ontology/KOKOM",
+ "http://nlp2rdf.org/ontology/KON",
+ "http://nlp2rdf.org/ontology/KOUI",
+ "http://nlp2rdf.org/ontology/KOUS",
+ "http://nlp2rdf.org/ontology/NE",
+ "http://nlp2rdf.org/ontology/NN",
+ "http://nlp2rdf.org/ontology/NNE",
+ "http://nlp2rdf.org/ontology/PDAT",
+ "http://nlp2rdf.org/ontology/PDS",
+ "http://nlp2rdf.org/ontology/PIAT",
+ "http://nlp2rdf.org/ontology/PIS",
+ "http://nlp2rdf.org/ontology/PPER",
+ "http://nlp2rdf.org/ontology/PPOSAT",
+ "http://nlp2rdf.org/ontology/PPOSS",
+ "http://nlp2rdf.org/ontology/PRELAT",
+ "http://nlp2rdf.org/ontology/PRELS",
+ "http://nlp2rdf.org/ontology/PRF",
+ "http://nlp2rdf.org/ontology/PROAV",
+ "http://nlp2rdf.org/ontology/PTKA",
+ "http://nlp2rdf.org/ontology/PTKANT",
+ "http://nlp2rdf.org/ontology/PTKNEG",
+ "http://nlp2rdf.org/ontology/PTKVZ",
+ "http://nlp2rdf.org/ontology/PTKZU",
+ "http://nlp2rdf.org/ontology/PWAT",
+ "http://nlp2rdf.org/ontology/PWAV",
+ "http://nlp2rdf.org/ontology/PWS",
+ "http://nlp2rdf.org/ontology/TRUNC",
+ "http://nlp2rdf.org/ontology/VAFIN",
+ "http://nlp2rdf.org/ontology/VAIMP",
+ "http://nlp2rdf.org/ontology/VAINF",
+ "http://nlp2rdf.org/ontology/VAPP",
+ "http://nlp2rdf.org/ontology/VMFIN",
+ "http://nlp2rdf.org/ontology/VMINF",
+ "http://nlp2rdf.org/ontology/VMPP",
+ "http://nlp2rdf.org/ontology/VVFIN",
+ "http://nlp2rdf.org/ontology/VVIMP",
+ "http://nlp2rdf.org/ontology/VVINF",
+ "http://nlp2rdf.org/ontology/VVIZU",
+ "http://nlp2rdf.org/ontology/VVPP",
+ "http://nlp2rdf.org/ontology/XY",
+ "http://nlp2rdf.org/ontology/comma_tag",
+ "http://nlp2rdf.org/ontology/generalsentenceinternalpunctuation_tag",
+ "http://nlp2rdf.org/ontology/sentencefinalpunctuation_tag"}));
+
+
+
+
+}
Deleted: trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java 2010-02-17 17:55:54 UTC (rev 2060)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/IteratedConfig.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -1,107 +0,0 @@
-package org.dllearner.utilities.experiments;
-
-import org.apache.log4j.Logger;
-
-public class IteratedConfig extends ExperimentConfiguration{
-
-
- private static final Logger logger = Logger.getLogger(IteratedConfig.class);
-
- public int resultLimit = -1;
-
- public int splits = 5;
- public int initialsplits = 5;
- public int negativeSplitAdd = 0;
-
- public boolean useStartClass = true;
- public boolean searchTree = false;
- public int noise = 5;
- public int noiseIterationFactor = 1;
- //sets ValueFrequency treshold and maxExecution time
- public boolean adaptMaxRuntime = true;
- public int maxExecutionTime = 20;
- public double factor = 2.0d ;//1.5d;
-
- public boolean useDataHasValue = true;
-
-// private String highestPrecision = "";
-// private String highestRecall = "";
-// private String highestFMeasure = "";
-
- public IteratedConfig(String label, int iterations) {
- super(label, iterations);
- }
-
- //reached iterations
- //reached 100%
-
- public boolean stopCondition(int iteration, double precision, double recall, double fmeasure, String concept){
- if(iteration == 0){
- //skip first;
- return true;
- }
- logger.info("Testing stop condition (iter: "+iteration+" ) " );
-
-// if(higher(iterationPrecision, precision)){highestPrecision=concept;}
-// if(higher(iterationRecall, recall)){highestRecall=concept;}
-// if(higher(iterationFmeasure, fmeasure)){highestFMeasure=concept;}
-
- boolean condIter = (iteration<this.sizeOfResultVector);
- boolean condPrec = fmeasure <=1.0d;
- if(!condIter){
- logger.info("iterations reached, stopping");
- return false;
- }else if(!condPrec){
- logger.info("fmeasure reached, stopping");
- return false;
- }else{
- return true;
- }
- }
-
-
-
-
-
-// String pre = "\n*********\n"+label+"\n";
-// pre +="highestPrecision: "+highestPrecision+"\n";
-// pre +="highestRecall: "+highestRecall+"\n";
-// pre +="highestFMeasure: "+highestFMeasure+"\n";
-//
-//
-//
-// String precision = "Precision:\n";
-// String hits = "hits:\n";
-// String recall = "Recall:\n";
-// String fmeasure = "F-Measure:\n";
-// String learningtime = "learningtime:\n";
-// String totaltime = "Totaltime:\n";
-
-// for (int i = 0; i < iterationPrecision.length; i++) {
-// precision+=iterationPrecision[i].getAvg()+"\n";
-// hits+=iterationPrecision[i].getHits()+" | ";
-// recall+=iterationRecall[i].getAvg()+"\n";
-// fmeasure+=iterationFmeasure[i].getAvg()+"\n";
-// learningtime+=iterationLearningTime[i].getAvg()+"\n";
-// totaltime+=iterationTotalTime[i].getAvg()+"\n";
-// }
-
-// return pre+precision+recall+fmeasure+hits+"\n"+learningtime+totaltime;
-// }
-// public static double precision( int posAsPos, int retrieved){
-// double precision = ((double)posAsPos)/((double)retrieved);
-// logger.info("Precision: "+df.format(precision));
-// return precision;
-// }
-// public static double recall( int posAsPos, int allPositives){
-// double recall = ((double)posAsPos)/((double)allPositives);
-//
-// logger.info("Recall: "+df.format(recall));
-// return recall;
-//
-// }
-
-
-
-
-}
Modified: trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java
===================================================================
--- trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-17 17:55:54 UTC (rev 2060)
+++ trunk/src/dl-learner/org/dllearner/utilities/experiments/TableRowColumn.java 2010-02-18 09:16:11 UTC (rev 2061)
@@ -123,6 +123,7 @@
}
private double getValue(int i){
+// return monitors[i].getAvg();
switch(display){
case AVG: return monitors[i].getAvg();
case HITS: return monitors[i].getHits();
@@ -133,7 +134,7 @@
private String latexFormat(FinalizedMonitor monitors, double value){
if(monitors.getUnits().equals(JamonMonitorLogger.PERCENTAGE)){
- return dfPercentage.format(value);
+ return dfPercentage.format(value).replace("%", "\\%").replace("_", "\\_");
}else{
return dfLatexDefault.format(value);
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|