From: <sk...@us...> - 2008-07-05 14:20:37
|
Revision: 997 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=997&view=rev Author: sknappe Date: 2008-07-05 07:20:26 -0700 (Sat, 05 Jul 2008) Log Message: ----------- Several changes to make everything working Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-07-03 12:01:50 UTC (rev 996) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/Cache.java 2008-07-05 14:20:26 UTC (rev 997) @@ -264,7 +264,7 @@ addToCache(query.getQueryString(), json); SparqlQuery.writeToSparqlLog("result added to cache: "+json); result=json; - query.setJson(result); + //query.setJson(result); } else { json=""; Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-07-03 12:01:50 UTC (rev 996) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlKnowledgeSource.java 2008-07-05 14:20:26 UTC (rev 997) @@ -418,6 +418,15 @@ return new SparqlQuery(query, endpoint); } + public SPARQLTasks getSparqlTask() + { + if (this.useCache) + return new SPARQLTasks(new Cache(this.cacheDir),new SparqlEndpoint(url, defaultGraphURIs, + namedGraphURIs)); + else + return new SPARQLTasks(new SparqlEndpoint(url, defaultGraphURIs, + namedGraphURIs)); + } /* (non-Javadoc) * @see org.dllearner.core.KnowledgeSource#toKB() Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-07-03 12:01:50 UTC (rev 996) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQuery.java 2008-07-05 14:20:26 UTC (rev 997) @@ -100,6 +100,11 @@ HttpQuery.urlLimit = 3 * 1024; JamonMonitorLogger.getTimeMonitor(SparqlQuery.class, "httpTime") .start(); + //TODO correct Bug: when there is a & in the result like in the + //URL: http://www.discusmedia.com/catalog.php?catID=5.2.2&profile=map + //the XML Parser throws an error, because he thinks &profile is an html entitie + //but it doesn't end with an ; + //the & must be masked to an & but I am not sure at the moment how to do that rs = queryExecution.execSelect(); JamonMonitorLogger.getTimeMonitor(SparqlQuery.class, "httpTime").stop(); Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-07-03 12:01:50 UTC (rev 996) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-07-05 14:20:26 UTC (rev 997) @@ -58,6 +58,8 @@ import org.dllearner.core.owl.ObjectProperty; 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; @@ -72,6 +74,7 @@ import org.dllearner.reasoning.OWLAPIReasoner; import org.dllearner.utilities.Helper; import org.dllearner.utilities.datastructures.Datastructures; +import org.dllearner.utilities.examples.AutomaticNegativeExampleFinderSPARQL; /** * DL-Learner web service interface. @@ -664,6 +667,22 @@ } @WebMethod + public String[] getNegativeExamples(int sessionID, int componentID,String[] positives, int results, String namespace) throws ClientNotKnownException + { + SortedSet<String> set = new TreeSet<String>(Arrays.asList(positives)); + ClientState state = getState(sessionID); + Component component = state.getComponent(componentID); + SparqlKnowledgeSource ks=(SparqlKnowledgeSource)component; + SPARQLTasks task=ks.getSparqlTask(); + AutomaticNegativeExampleFinderSPARQL finder=new AutomaticNegativeExampleFinderSPARQL(set,task); + finder.makeNegativeExamplesFromRelatedInstances(set, namespace); + finder.makeNegativeExamplesFromParallelClasses(set, 2); + SortedSet<String> negExamples=finder.getNegativeExamples(results); + + return negExamples.toArray(new String[negExamples.size()]); + } + + @WebMethod public void debug(String deb) { System.out.println(deb); Modified: trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java 2008-07-03 12:01:50 UTC (rev 996) +++ trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java 2008-07-05 14:20:26 UTC (rev 997) @@ -1,11 +1,14 @@ package org.dllearner.utilities.examples; +import java.util.Iterator; import java.util.SortedSet; import java.util.TreeSet; import org.apache.log4j.Logger; import org.dllearner.core.ComponentManager; +import org.dllearner.kb.sparql.Cache; import org.dllearner.kb.sparql.SPARQLTasks; +import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.utilities.datastructures.SetManipulation; public class AutomaticNegativeExampleFinderSPARQL { @@ -175,6 +178,4 @@ this.fromRange.removeAll(this.fullPositiveSet); logger.debug("|-neg Example size from Range: "+this.fromRange.size()); } - - } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-07-06 12:34:40
|
Revision: 1000 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1000&view=rev Author: sknappe Date: 2008-07-06 05:34:38 -0700 (Sun, 06 Jul 2008) Log Message: ----------- Changed some things to work with the Maipulator and fixed some bugs (the SparqlQueryMaker didn't produce queries without failures at all filter combinations, I changed that) Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java 2008-07-06 12:28:50 UTC (rev 999) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java 2008-07-06 12:34:38 UTC (rev 1000) @@ -71,10 +71,26 @@ public Set<StringTuple> check(Set<StringTuple> tuples, Node node) { Set<StringTuple> toRemove = new HashSet<StringTuple>(); Iterator<StringTuple> it = tuples.iterator(); + float lat=0; + float lng=0; + String clas=""; + StringTuple typeTupel=null; + if (node.uri.toString().equals("http://dbpedia.org/class/custom/City_in_Saxony")) + tuples.add(new StringTuple("http://www.w3.org/2000/01/rdf-schema#subClassOf","http://dbpedia.org/class/yago/City108524735")); while (it.hasNext()) { StringTuple t = (StringTuple) it.next(); + + if (t.a.equals("http://www.w3.org/1999/02/22-rdf-syntax-ns#type")){ + clas=t.b; + typeTupel=t; + } - replacePredicate(t); + if (t.a.equals("http://www.w3.org/2003/01/geo/wgs84_pos#lat")) + lat=Float.parseFloat(t.b.substring(0,t.b.indexOf("^^"))); + if (t.a.equals("http://www.w3.org/2003/01/geo/wgs84_pos#long")) + lng=Float.parseFloat(t.b.substring(0,t.b.indexOf("^^"))); + + /*replacePredicate(t); replaceObject(t); @@ -94,10 +110,16 @@ if (t.a.equals(type) && t.b.equals(thing) && node instanceof InstanceNode) { toRemove.add(t); - } + }*/ } - tuples.removeAll(toRemove); + if (clas.equals("http://dbpedia.org/class/yago/City108524735")){ + if (lat>50&&lat<52&&lng>12&&lng<13){ + tuples.add(new StringTuple("http://www.w3.org/1999/02/22-rdf-syntax-ns#type","http://dbpedia.org/class/custom/City_in_Saxony")); + tuples.remove(typeTupel); + } + } + //tuples.removeAll(toRemove); return tuples; } Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2008-07-06 12:28:50 UTC (rev 999) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/InstanceNode.java 2008-07-06 12:34:38 UTC (rev 1000) @@ -51,7 +51,7 @@ Set<StringTuple> s = tsq.getTupelForResource(uri); // see Manipulator - m.check(s, this); + s=m.check(s, this); // System.out.println("fffffff"+m); Vector<Node> Nodes = new Vector<Node>(); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-07-06 12:28:50 UTC (rev 999) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryMaker.java 2008-07-06 12:34:38 UTC (rev 1000) @@ -40,10 +40,13 @@ public String makeSubjectQueryUsingFilters(String subject) { String Filter = internalFilterAssemblySubject(); - String ret = "SELECT * WHERE { " + lineend + "<" + subject + String ret=""; + if (Filter.length()>0) ret = "SELECT * WHERE { " + lineend + "<" + subject + "> ?predicate ?object. " + lineend + "FILTER( " + lineend - + "(" + Filter + ").}"; - // System.out.println(ret); + + Filter + ").}"; + else ret="SELECT * WHERE { " + lineend + "<" + subject + + "> ?predicate ?object}"; + // System.out.println("Query: "+ret); // System.out.println(sparqlQueryType.getPredicatefilterlist().length); return ret; } @@ -89,14 +92,51 @@ private String internalFilterAssemblySubject() { String Filter = ""; - if (!this.sparqlQueryType.isLiterals()) - Filter += "!isLiteral(?object))"; + if (!this.sparqlQueryType.isLiterals()){ + Filter += "(!isLiteral(?object))"; + if (sparqlQueryType.getPredicatefilterlist().size()>0) + Filter += "&&("; + } + else if (sparqlQueryType.getPredicatefilterlist().size()>0) + Filter += "("; + int i=1; for (String p : sparqlQueryType.getPredicatefilterlist()) { - Filter += lineend + filterPredicate(p); + if (this.sparqlQueryType.getMode()=="forbid") + if (!this.sparqlQueryType.isLiterals()||i!=1) + Filter += lineend + filterPredicate(p); + else + Filter += lineend + filterPredicate(p).substring(2); + else if (this.sparqlQueryType.getMode()=="allow") + if (!this.sparqlQueryType.isLiterals()||i!=1) + Filter += lineend + allowPredicate(p); + else + Filter += lineend + allowPredicate(p).substring(2); + i++; } + if (sparqlQueryType.getPredicatefilterlist().size()>0) + Filter += ")"; + + if ((sparqlQueryType.getPredicatefilterlist().size()>0||!this.sparqlQueryType.isLiterals())&&sparqlQueryType.getObjectfilterlist().size()>0) + Filter += "&&("; + else if (sparqlQueryType.getObjectfilterlist().size()>0) + Filter += "("; + i=1; for (String o : sparqlQueryType.getObjectfilterlist()) { - Filter += lineend + filterObject(o); + if (this.sparqlQueryType.getMode()=="forbid") + if (!this.sparqlQueryType.isLiterals()||i!=1) + Filter += lineend + filterObject(o); + else + Filter += lineend + filterObject(o).substring(2); + else if (this.sparqlQueryType.getMode()=="allow") + if (!this.sparqlQueryType.isLiterals()||i!=1) + Filter += lineend + allowObject(o); + else + Filter += lineend + allowObject(o).substring(2); + i++; } + if (sparqlQueryType.getObjectfilterlist().size()>0) + Filter += ")"; + return Filter; } @@ -125,7 +165,15 @@ private static String filterObject(String ns) { return "&&( !regex(str(?object), '" + ns + "') )"; } + + private static String allowPredicate(String ns) { + return "||( regex(str(?predicate), '" + ns + "') )"; + } + private static String allowObject(String ns) { + return "||( regex(str(?object), '" + ns + "') )"; + } + /*private void p(String str) { if (print_flag) { System.out.println(str); Modified: trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2008-07-06 12:28:50 UTC (rev 999) +++ trunk/src/dl-learner/org/dllearner/kb/sparql/SparqlQueryType.java 2008-07-06 12:34:38 UTC (rev 1000) @@ -78,6 +78,8 @@ return YagoSpecialHierarchy(); if (name.equals("TEST")) return test(); + if (name.equals("DBPEDIA-NAVIGATOR")) + return DBpediaNavigatorFilter(); return null; } @@ -111,6 +113,24 @@ return new SparqlQueryType("forbid", obj, pred, false); } + + public static SparqlQueryType DBpediaNavigatorFilter(){ + Set<String> pred = new HashSet<String>(); + pred.add("http://www.w3.org/1999/02/22-rdf-syntax-ns#type"); + pred.add("http://www.w3.org/2000/01/rdf-schema#subClassOf"); + pred.add("http://www.w3.org/2003/01/geo/wgs84_pos#lat"); + pred.add("http://www.w3.org/2003/01/geo/wgs84_pos#long"); + //pred.add("http://dbpedia.org/property/wikipage"); + //pred.add("http://dbpedia.org/property/wikiPageUsesTemplate"); + //pred.add("http://dbpedia.org/property/relatedInstance"); + //pred.add("http://dbpedia.org/property/owner"); + //pred.add("http://dbpedia.org/property/standard"); + + Set<String> obj = new HashSet<String>(); + + return new SparqlQueryType("allow", obj, pred, true); + } + public static SparqlQueryType YagoSpecialHierarchy(){ Set<String> pred = new HashSet<String>(); pred.add("http://www.w3.org/2004/02/skos/core"); Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-07-06 12:28:50 UTC (rev 999) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-07-06 12:34:38 UTC (rev 1000) @@ -675,8 +675,8 @@ SparqlKnowledgeSource ks=(SparqlKnowledgeSource)component; SPARQLTasks task=ks.getSparqlTask(); AutomaticNegativeExampleFinderSPARQL finder=new AutomaticNegativeExampleFinderSPARQL(set,task); - finder.makeNegativeExamplesFromRelatedInstances(set, namespace); - finder.makeNegativeExamplesFromParallelClasses(set, 2); + //finder.makeNegativeExamplesFromRelatedInstances(set, namespace); + finder.makeNegativeExamplesFromParallelClasses(set, 5); SortedSet<String> negExamples=finder.getNegativeExamples(results); return negExamples.toArray(new String[negExamples.size()]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <sk...@us...> - 2008-07-06 16:15:27
|
Revision: 1001 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1001&view=rev Author: sknappe Date: 2008-07-06 09:15:15 -0700 (Sun, 06 Jul 2008) Log Message: ----------- Added a way to find a class for a certain city Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorCityLocator.java Added: trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorCityLocator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorCityLocator.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorCityLocator.java 2008-07-06 16:15:15 UTC (rev 1001) @@ -0,0 +1,58 @@ +package org.dllearner.kb.extraction; + +import java.util.HashMap; +import java.util.HashSet; +import java.util.Set; + +import org.dllearner.utilities.datastructures.StringTuple; + +public class DBpediaNavigatorCityLocator { + + public static String getTypeToCoordinates(float lat, float lng){ + if (lat<71.08&&lat>33.39&&lng>-24.01&&lng<50.8){ + if (lat>50&&lat<52&&lng>12&&lng<13){ + return "http://dbpedia.org/class/custom/City_in_Saxony"; + } + else return "http://dbpedia.org/class/custom/City_in_Europe"; + } + else if (lng>-17.5&&lng<52.04&&lat>-36&&lat<36.6){ + if (lat>21.45&&lat<31.51&&lng>24.7&&lng<37.26){ + return "http://dbpedia.org/class/custom/City_in_Egypt"; + } + else return "http://dbpedia.org/class/custom/City_in_Africa"; + } + else if (((lng>27.4&&lng<180)||(lng<-168.75))&&lat>-11.2){ + return "http://dbpedia.org/class/custom/City_in_Asia"; + } + else if (lng>113.9&&lng<179.65&&lat<-10.8&&lat>-47.04){ + return "http://dbpedia.org/class/custom/City_in_Australia"; + } + else if (lng>-168.4&&lng<-19.7&&lat>6.6){ + return "http://dbpedia.org/class/custom/City_in_North_America"; + } + else if (lng>-81.56&&lng<-34.1&&lat<6.6){ + return "http://dbpedia.org/class/custom/City_in_South_America"; + } + else return "http://dbpedia.org/class/custom/City_in_World"; + } + + public static Set<StringTuple> getTuplesToAdd(String uri){ + String subClass="http://www.w3.org/2000/01/rdf-schema#subClassOf"; + + HashMap<String,String> map=new HashMap<String,String>(); + map.put("http://dbpedia.org/class/custom/City_in_Saxony", "http://dbpedia.org/class/custom/City_in_Europe"); + map.put("http://dbpedia.org/class/custom/City_in_Egypt", "http://dbpedia.org/class/custom/City_in_Africa"); + map.put("http://dbpedia.org/class/custom/City_in_Europe", "http://dbpedia.org/class/yago/City108524735"); + map.put("http://dbpedia.org/class/custom/City_in_Asia", "http://dbpedia.org/class/yago/City108524735"); + map.put("http://dbpedia.org/class/custom/City_in_Australia", "http://dbpedia.org/class/yago/City108524735"); + map.put("http://dbpedia.org/class/custom/City_in_North_America", "http://dbpedia.org/class/yago/City108524735"); + map.put("http://dbpedia.org/class/custom/City_in_South_America", "http://dbpedia.org/class/yago/City108524735"); + map.put("http://dbpedia.org/class/custom/City_in_Africa", "http://dbpedia.org/class/yago/City108524735"); + map.put("http://dbpedia.org/class/custom/City_in_World", "http://dbpedia.org/class/yago/City108524735"); + Set<StringTuple> toAdd = new HashSet<StringTuple>(); + if (map.containsKey(uri)){ + toAdd.add(new StringTuple(subClass,map.get(uri))); + } + return toAdd; + } +} Modified: trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java =================================================================== --- trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java 2008-07-06 12:34:38 UTC (rev 1000) +++ trunk/src/dl-learner/org/dllearner/kb/extraction/DBpediaNavigatorManipulator.java 2008-07-06 16:15:15 UTC (rev 1001) @@ -19,7 +19,6 @@ */ package org.dllearner.kb.extraction; -import java.util.HashSet; import java.util.Iterator; import java.util.LinkedList; import java.util.Set; @@ -69,14 +68,13 @@ * @return */ public Set<StringTuple> check(Set<StringTuple> tuples, Node node) { - Set<StringTuple> toRemove = new HashSet<StringTuple>(); + //Set<StringTuple> toRemove = new HashSet<StringTuple>(); Iterator<StringTuple> it = tuples.iterator(); float lat=0; float lng=0; String clas=""; StringTuple typeTupel=null; - if (node.uri.toString().equals("http://dbpedia.org/class/custom/City_in_Saxony")) - tuples.add(new StringTuple("http://www.w3.org/2000/01/rdf-schema#subClassOf","http://dbpedia.org/class/yago/City108524735")); + tuples.addAll(DBpediaNavigatorCityLocator.getTuplesToAdd(node.uri.toString())); while (it.hasNext()) { StringTuple t = (StringTuple) it.next(); @@ -114,17 +112,16 @@ } if (clas.equals("http://dbpedia.org/class/yago/City108524735")){ - if (lat>50&&lat<52&&lng>12&&lng<13){ - tuples.add(new StringTuple("http://www.w3.org/1999/02/22-rdf-syntax-ns#type","http://dbpedia.org/class/custom/City_in_Saxony")); - tuples.remove(typeTupel); - } + String newType=DBpediaNavigatorCityLocator.getTypeToCoordinates(lat, lng); + tuples.add(new StringTuple("http://www.w3.org/1999/02/22-rdf-syntax-ns#type",newType)); + tuples.remove(typeTupel); } //tuples.removeAll(toRemove); return tuples; } - private void replacePredicate(StringTuple t) { + /*private void replacePredicate(StringTuple t) { for (StringTuple rep : replacePredicate) { if (rep.a.equals(t.a)) { t.a = rep.b; @@ -138,5 +135,5 @@ t.a = rep.b; } } - } + }*/ } Modified: trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java =================================================================== --- trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-07-06 12:34:38 UTC (rev 1000) +++ trunk/src/dl-learner/org/dllearner/server/DLLearnerWS.java 2008-07-06 16:15:15 UTC (rev 1001) @@ -59,7 +59,6 @@ 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; @@ -676,7 +675,7 @@ SPARQLTasks task=ks.getSparqlTask(); AutomaticNegativeExampleFinderSPARQL finder=new AutomaticNegativeExampleFinderSPARQL(set,task); //finder.makeNegativeExamplesFromRelatedInstances(set, namespace); - finder.makeNegativeExamplesFromParallelClasses(set, 5); + finder.makeNegativeExamplesFromParallelClasses(set, 25); SortedSet<String> negExamples=finder.getNegativeExamples(results); return negExamples.toArray(new String[negExamples.size()]); Modified: trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java =================================================================== --- trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java 2008-07-06 12:34:38 UTC (rev 1000) +++ trunk/src/dl-learner/org/dllearner/utilities/examples/AutomaticNegativeExampleFinderSPARQL.java 2008-07-06 16:15:15 UTC (rev 1001) @@ -1,14 +1,11 @@ package org.dllearner.utilities.examples; -import java.util.Iterator; import java.util.SortedSet; import java.util.TreeSet; import org.apache.log4j.Logger; import org.dllearner.core.ComponentManager; -import org.dllearner.kb.sparql.Cache; import org.dllearner.kb.sparql.SPARQLTasks; -import org.dllearner.kb.sparql.SparqlEndpoint; import org.dllearner.utilities.datastructures.SetManipulation; public class AutomaticNegativeExampleFinderSPARQL { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jen...@us...> - 2008-07-07 08:50:19
|
Revision: 1004 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1004&view=rev Author: jenslehmann Date: 2008-07-07 01:50:10 -0700 (Mon, 07 Jul 2008) Log Message: ----------- - small test Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java trunk/src/dl-learner/org/dllearner/test/ComponentTest.java trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java Modified: trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2008-07-06 19:54:28 UTC (rev 1003) +++ trunk/src/dl-learner/org/dllearner/core/EvaluatedDescription.java 2008-07-07 08:50:10 UTC (rev 1004) @@ -168,6 +168,11 @@ } } + @Override + public String toString() { + return description.toString() + "(accuracy: " + getAccuracy() + ")"; + } + // we need to use this method instead of the standard JSON array constructor, // otherwise we'll get unexpected results (JSONArray does not take Individuals // as arguments and does not use toString) Modified: trunk/src/dl-learner/org/dllearner/test/ComponentTest.java =================================================================== --- trunk/src/dl-learner/org/dllearner/test/ComponentTest.java 2008-07-06 19:54:28 UTC (rev 1003) +++ trunk/src/dl-learner/org/dllearner/test/ComponentTest.java 2008-07-07 08:50:10 UTC (rev 1004) @@ -23,7 +23,7 @@ import java.util.Set; import java.util.TreeSet; -import org.dllearner.algorithms.DBpediaNavigationSuggestor; +import org.dllearner.algorithms.refexamples.ExampleBasedROLComponent; import org.dllearner.core.ComponentInitException; import org.dllearner.core.ComponentManager; import org.dllearner.core.KnowledgeSource; @@ -83,7 +83,7 @@ // create the learning algorithm LearningAlgorithm la = null; try { - la = cm.learningAlgorithm(DBpediaNavigationSuggestor.class, lp, rs); + la = cm.learningAlgorithm(ExampleBasedROLComponent.class, lp, rs); } catch (LearningProblemUnsupportedException e) { // TODO Auto-generated catch block e.printStackTrace(); @@ -95,7 +95,7 @@ // start the algorithm and print the best concept found la.start(); - System.out.println(la.getCurrentlyBestEvaluatedDescription()); + System.out.println(la.getCurrentlyBestEvaluatedDescriptions()); } } Modified: trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java 2008-07-06 19:54:28 UTC (rev 1003) +++ trunk/src/dl-learner/org/dllearner/tools/protege/ActionHandler.java 2008-07-07 08:50:10 UTC (rev 1004) @@ -9,8 +9,6 @@ import javax.swing.event.ListSelectionListener; import javax.swing.event.ListSelectionEvent; -import javax.swing.JDialog; - import org.dllearner.core.owl.Description; /** * @@ -39,7 +37,7 @@ * This is the view of the DL-Learner tab. */ private OWLClassDescriptionEditorWithDLLearnerTab.DLLearnerView view; - private JDialog detailDialog; +// private JDialog detailDialog; /** * This is the constructor for the action handler * @param a ActionHandler This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <lor...@us...> - 2008-07-15 16:44:30
|
Revision: 1009 http://dl-learner.svn.sourceforge.net/dl-learner/?rev=1009&view=rev Author: lorenz_b Date: 2008-07-15 09:44:26 -0700 (Tue, 15 Jul 2008) Log Message: ----------- added method toManchesterSyntaxString() to class individual fixed some bugs in wizard view Modified Paths: -------------- trunk/src/dl-learner/org/dllearner/core/owl/Individual.java trunk/src/dl-learner/org/dllearner/tools/ore/ColorListCellRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/ColumnListCellRenderer.java trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionLabel.java trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionMenuItem.java trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanel.java trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/LeftPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/Main.java trunk/src/dl-learner/org/dllearner/tools/ore/ORE.java trunk/src/dl-learner/org/dllearner/tools/ore/OntologyModifierOWLAPI.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/StatsPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/UndoLabel.java trunk/src/dl-learner/org/dllearner/tools/ore/Wizard.java trunk/src/dl-learner/org/dllearner/tools/ore/WizardController.java trunk/src/dl-learner/org/dllearner/tools/ore/WizardPanelDescriptor.java Added Paths: ----------- trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWL.java trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWLDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparql.java trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparqlDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/RepairDialog.java trunk/src/dl-learner/org/dllearner/tools/ore/StatsLabel.java trunk/src/dl-learner/org/dllearner/tools/ore/all_test.owl trunk/src/dl-learner/org/dllearner/tools/ore/father3.owl trunk/src/dl-learner/org/dllearner/tools/ore/father_disjoint.owl trunk/src/dl-learner/org/dllearner/tools/ore/father_inverse_property.owl trunk/src/dl-learner/org/dllearner/tools/ore/father_neg.owl trunk/src/dl-learner/org/dllearner/tools/ore/father_new.owl trunk/src/dl-learner/org/dllearner/tools/ore/father_property.owl trunk/src/dl-learner/org/dllearner/tools/ore/father_wrong.owl trunk/src/dl-learner/org/dllearner/tools/ore/incohaerent.owl trunk/src/dl-learner/org/dllearner/tools/ore/neg_has_all.owl trunk/src/dl-learner/org/dllearner/tools/ore/neg_has_some.owl trunk/src/dl-learner/org/dllearner/tools/ore/pos_b.owl trunk/src/dl-learner/org/dllearner/tools/ore/pos_has_all.owl Removed Paths: ------------- trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanelDescriptor.java trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionButton.java trunk/src/dl-learner/org/dllearner/tools/ore/MoveMenuItem.java trunk/src/dl-learner/org/dllearner/tools/ore/NegExampleRepairDialog.java trunk/src/dl-learner/org/dllearner/tools/ore/Neu_006.gif trunk/src/dl-learner/org/dllearner/tools/ore/inkohaerent.owl Modified: trunk/src/dl-learner/org/dllearner/core/owl/Individual.java =================================================================== --- trunk/src/dl-learner/org/dllearner/core/owl/Individual.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/core/owl/Individual.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -67,6 +67,10 @@ return "\"" + Helper.getAbbreviatedString(name, baseURI, prefixes) + "\""; } + public String toManchesterSyntaxString(String baseURI, Map<String, String> prefixes) { + return Helper.getAbbreviatedString(name, baseURI, prefixes); + } + public void accept(KBElementVisitor visitor) { visitor.visit(this); } Copied: trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWL.java (from rev 1006, trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWL.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWL.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -0,0 +1,112 @@ +package org.dllearner.tools.ore; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.geom.Ellipse2D; +import java.awt.geom.RoundRectangle2D; + +import javax.swing.DefaultListModel; +import javax.swing.JLabel; +import javax.swing.JList; +import javax.swing.JPanel; +import javax.swing.JScrollPane; +import javax.swing.event.ListSelectionListener; + +import org.jdesktop.swingx.JXBusyLabel; +import org.jdesktop.swingx.icon.EmptyIcon; +import org.jdesktop.swingx.painter.BusyPainter; + + +public class ClassPanelOWL extends JPanel{ + + private static final long serialVersionUID = 3026319637264844550L; + + private javax.swing.JList conceptList; + + private JPanel contentPanel; + + private DefaultListModel model; + private JXBusyLabel loadingLabel; + private JLabel statusLabel; + + @SuppressWarnings("unchecked") + public ClassPanelOWL() { + + super(); + + model = new DefaultListModel(); + loadingLabel = new JXBusyLabel(new Dimension(15,15)); + statusLabel = new JLabel(); + + + BusyPainter painter = new BusyPainter( + new RoundRectangle2D.Float(0, 0,6.0f,2.6f,10.0f,10.0f), + new Ellipse2D.Float(2.0f,2.0f,11.0f,11.0f)); + painter.setTrailLength(2); + painter.setPoints(7); + painter.setFrame(-1); + loadingLabel.setPreferredSize(new Dimension(15,15)); + loadingLabel.setIcon(new EmptyIcon(15,15)); + loadingLabel.setBusyPainter(painter); + + + + JPanel labelPanel = new JPanel(); + labelPanel.add(loadingLabel); + labelPanel.add(statusLabel); + + + contentPanel = getContentPanel(); + setLayout(new java.awt.BorderLayout()); + add(contentPanel,BorderLayout.CENTER); + add(labelPanel, BorderLayout.SOUTH); + } + + private JPanel getContentPanel() { + + JPanel contentPanel1 = new JPanel(); + JScrollPane scroll = new JScrollPane(); + + + conceptList = new JList(model); + scroll.setPreferredSize(new Dimension(400,400)); + scroll.setViewportView(conceptList); + contentPanel1.add(scroll); + + + + return contentPanel1; + } + + public DefaultListModel getModel(){ + return model; + } + + public void setModel(DefaultListModel dm){ + conceptList.setModel(dm); + } + + public void addSelectionListener(ListSelectionListener l){ + conceptList.addListSelectionListener(l); + } + + public JList getList(){ + return conceptList; + } + + + public JLabel getStatusLabel() { + return statusLabel; + } + + public JXBusyLabel getLoadingLabel() { + return loadingLabel; + } + + + + + + + +} \ No newline at end of file Property changes on: trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWL.java ___________________________________________________________________ Name: svn:mergeinfo + Copied: trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWLDescriptor.java (from rev 1006, trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanelDescriptor.java) =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWLDescriptor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWLDescriptor.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -0,0 +1,70 @@ +package org.dllearner.tools.ore; + +import javax.swing.event.ListSelectionEvent; +import javax.swing.event.ListSelectionListener; + +import org.dllearner.core.owl.NamedClass; + + + + +public class ClassPanelOWLDescriptor extends WizardPanelDescriptor implements ListSelectionListener{ + + public static final String IDENTIFIER = "CLASS_CHOOSE_OWL_PANEL"; + public static final String INFORMATION = "In this panel all atomic classes in the ontology are shown in the list above. " + + "Select one of them which should be (re)learned from then press \"Next-Button\""; + + ClassPanelOWL panel3; + + public ClassPanelOWLDescriptor() { + panel3 = new ClassPanelOWL(); + panel3.addSelectionListener(this); + + setPanelDescriptorIdentifier(IDENTIFIER); + setPanelComponent(panel3); + + } + + @Override + public Object getNextPanelDescriptor() { + return LearningPanelDescriptor.IDENTIFIER; + } + + @Override + public Object getBackPanelDescriptor() { + return KnowledgeSourcePanelDescriptor.IDENTIFIER; + } + + @Override + public void aboutToDisplayPanel() { + getWizard().getInformationField().setText(INFORMATION); + setNextButtonAccordingToConceptSelected(); + } + + + public void valueChanged(ListSelectionEvent e) { + setNextButtonAccordingToConceptSelected(); + if (!e.getValueIsAdjusting()) + getWizardModel().getOre().setConcept((NamedClass)panel3.getList().getSelectedValue()); + + } + + private void setNextButtonAccordingToConceptSelected() { + + if (panel3.getList().getSelectedValue()!= null){ + getWizard().setNextFinishButtonEnabled(true); + }else{ + getWizard().setNextFinishButtonEnabled(false); + } + + } + + + + + + + + + +} Property changes on: trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelOWLDescriptor.java ___________________________________________________________________ Name: svn:mergeinfo + Added: trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparql.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparql.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparql.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -0,0 +1,88 @@ +package org.dllearner.tools.ore; + +import java.awt.BorderLayout; +import java.awt.Dimension; +import java.awt.geom.Ellipse2D; +import java.awt.geom.RoundRectangle2D; + +import javax.swing.JLabel; +import javax.swing.JPanel; +import javax.swing.JTextField; + +import org.jdesktop.swingx.JXBusyLabel; +import org.jdesktop.swingx.icon.EmptyIcon; +import org.jdesktop.swingx.painter.BusyPainter; + + +public class ClassPanelSparql extends JPanel{ + + private static final long serialVersionUID = 3026319637264844550L; + + private JTextField classField; + + private JPanel contentPanel; + + private JXBusyLabel loadingLabel; + private JLabel statusLabel; + + @SuppressWarnings("unchecked") + public ClassPanelSparql() { + + super(); + + statusLabel = new JLabel(); + + loadingLabel = new JXBusyLabel(new Dimension(15,15)); + BusyPainter painter = new BusyPainter( + new RoundRectangle2D.Float(0, 0,6.0f,2.6f,10.0f,10.0f), + new Ellipse2D.Float(2.0f,2.0f,11.0f,11.0f)); + painter.setTrailLength(2); + painter.setPoints(7); + painter.setFrame(-1); + loadingLabel.setPreferredSize(new Dimension(15,15)); + loadingLabel.setIcon(new EmptyIcon(15,15)); + loadingLabel.setBusyPainter(painter); + + + JPanel labelPanel = new JPanel(); + labelPanel.add(loadingLabel); + labelPanel.add(statusLabel); + + contentPanel = getContentPanel(); + setLayout(new java.awt.BorderLayout()); + add(contentPanel,BorderLayout.CENTER); + add(labelPanel, BorderLayout.SOUTH); + } + + private JPanel getContentPanel() { + + JPanel contentPanel = new JPanel(); + + classField = new JTextField(); + + contentPanel.add(classField); + + return contentPanel; + } + + + public JTextField getClassField(){ + return classField; + } + + + public JLabel getStatusLabel() { + return statusLabel; + } + + public JXBusyLabel getLoadingLabel() { + return loadingLabel; + } + + + + + + + +} \ No newline at end of file Added: trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparqlDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparqlDescriptor.java (rev 0) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ClassPanelSparqlDescriptor.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -0,0 +1,51 @@ +package org.dllearner.tools.ore; + + + + + +public class ClassPanelSparqlDescriptor extends WizardPanelDescriptor{ + + public static final String IDENTIFIER = "CLASS_CHOOSE_SPARQL_PANEL"; + public static final String INFORMATION = "In this panel all atomic classes in the ontology are shown in the list above. " + + "Select one of them which should be (re)learned from then press \"Next-Button\""; + + ClassPanelSparql panel3; + + public ClassPanelSparqlDescriptor() { + panel3 = new ClassPanelSparql(); + + + setPanelDescriptorIdentifier(IDENTIFIER); + setPanelComponent(panel3); + + } + + @Override + public Object getNextPanelDescriptor() { + return LearningPanelDescriptor.IDENTIFIER; + } + + @Override + public Object getBackPanelDescriptor() { + return KnowledgeSourcePanelDescriptor.IDENTIFIER; + } + + @Override + public void aboutToDisplayPanel() { + getWizard().getInformationField().setText(INFORMATION); + + } + + + + + + + + + + + + +} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ColorListCellRenderer.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ColorListCellRenderer.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ColorListCellRenderer.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -7,18 +7,27 @@ import javax.swing.JList; import javax.swing.ListCellRenderer; +import org.dllearner.core.owl.Individual; +import org.dllearner.core.owl.NamedClass; + public class ColorListCellRenderer extends JLabel implements ListCellRenderer { private static final long serialVersionUID = -7592805113197759247L; - - public ColorListCellRenderer() { + private ORE ore; + + public ColorListCellRenderer(ORE ore) { setOpaque(true); + this.ore = ore; } public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { - - setText(value.toString()); + + if(value instanceof NamedClass) + setText(((NamedClass)value).toManchesterSyntaxString(ore.getBaseURI(), ore.getPrefixes())); + else if(value instanceof Individual) + setText(((Individual)value).toManchesterSyntaxString(ore.getBaseURI(), ore.getPrefixes())); + Color background; Color foreground; @@ -28,8 +37,8 @@ } else if(isSelected){ - background = Color.BLUE; - foreground = Color.WHITE; + background = Color.LIGHT_GRAY; + foreground = Color.BLACK; }else{ background = Color.WHITE; foreground = Color.BLACK; Modified: trunk/src/dl-learner/org/dllearner/tools/ore/ColumnListCellRenderer.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ColumnListCellRenderer.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ColumnListCellRenderer.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -1,8 +1,10 @@ package org.dllearner.tools.ore; -import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; import javax.swing.JLabel; import javax.swing.JList; @@ -24,18 +26,18 @@ public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) { + removeAll(); + JLabel cor = new JLabel(); JLabel desc = new JLabel(); - setLayout(new BorderLayout()); - - - desc.setText(value.toString()); - cor.setText( (ore.getCorrectness((Description)value)).toString()); - - add(cor, BorderLayout.WEST); - add(desc, BorderLayout.EAST); - + setLayout(new GridBagLayout()); + desc.setText(((Description) value).toManchesterSyntaxString( + ore.getBaseURI(), ore.getPrefixes())); + cor.setText((ore.getCorrectness((Description) value)).toString()); + add(cor,new GridBagConstraints(0, 0, 1, 1, 0.1, 0.0, GridBagConstraints.LINE_END, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));//, BorderLayout.WEST); + add(desc,new GridBagConstraints(1, 0, 1, 1, 0.8, 0.0, GridBagConstraints.LINE_START, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0));//, BorderLayout.EAST); + Color background; Color foreground; @@ -45,7 +47,7 @@ } else if(isSelected){ - background = Color.BLUE; + background = Color.LIGHT_GRAY; foreground = Color.WHITE; }else{ background = Color.WHITE; Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanel.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -1,113 +0,0 @@ -package org.dllearner.tools.ore; - -import java.awt.BorderLayout; -import java.awt.Dimension; -import java.awt.geom.Ellipse2D; -import java.awt.geom.RoundRectangle2D; - -import javax.swing.DefaultListModel; -import javax.swing.JLabel; -import javax.swing.JList; -import javax.swing.JPanel; -import javax.swing.JScrollPane; -import javax.swing.event.ListSelectionListener; - -import org.jdesktop.swingx.JXBusyLabel; -import org.jdesktop.swingx.icon.EmptyIcon; -import org.jdesktop.swingx.painter.BusyPainter; - - -public class ConceptPanel extends JPanel{ - - private static final long serialVersionUID = 3026319637264844550L; - - private javax.swing.JList conceptList; - - private JPanel contentPanel; - - private DefaultListModel model; - private JXBusyLabel loadingLabel; - private JLabel statusLabel; - - @SuppressWarnings("unchecked") - public ConceptPanel() { - - super(); - - model = new DefaultListModel(); - loadingLabel = new JXBusyLabel(new Dimension(15,15)); - statusLabel = new JLabel(); - - - BusyPainter painter = new BusyPainter( - new RoundRectangle2D.Float(0, 0,6.0f,2.6f,10.0f,10.0f), - new Ellipse2D.Float(2.0f,2.0f,11.0f,11.0f)); - painter.setTrailLength(2); - painter.setPoints(7); - painter.setFrame(-1); - loadingLabel.setPreferredSize(new Dimension(15,15)); - loadingLabel.setIcon(new EmptyIcon(15,15)); - loadingLabel.setBusyPainter(painter); - - - - JPanel labelPanel = new JPanel(); - labelPanel.add(loadingLabel); - labelPanel.add(statusLabel); - - - contentPanel = getContentPanel(); - setLayout(new java.awt.BorderLayout()); - add(contentPanel,BorderLayout.CENTER); - add(labelPanel, BorderLayout.SOUTH); - } - - private JPanel getContentPanel() { - - JPanel contentPanel1 = new JPanel(); - JScrollPane scroll = new JScrollPane(); - - - conceptList = new JList(model); - conceptList.setCellRenderer(new ColorListCellRenderer()); - scroll.setPreferredSize(new Dimension(400,400)); - scroll.setViewportView(conceptList); - contentPanel1.add(scroll); - - - - return contentPanel1; - } - - public DefaultListModel getModel(){ - return model; - } - - public void setModel(DefaultListModel dm){ - conceptList.setModel(dm); - } - - public void addSelectionListener(ListSelectionListener l){ - conceptList.addListSelectionListener(l); - } - - public JList getList(){ - return conceptList; - } - - - public JLabel getStatusLabel() { - return statusLabel; - } - - public JXBusyLabel getLoadingLabel() { - return loadingLabel; - } - - - - - - - -} \ No newline at end of file Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanelDescriptor.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/ConceptPanelDescriptor.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -1,69 +0,0 @@ -package org.dllearner.tools.ore; - -import javax.swing.event.ListSelectionEvent; -import javax.swing.event.ListSelectionListener; - -import org.dllearner.core.owl.NamedClass; - - - - -public class ConceptPanelDescriptor extends WizardPanelDescriptor implements ListSelectionListener{ - - public static final String IDENTIFIER = "CONCEPT_CHOOSE_PANEL"; - - ConceptPanel panel3; - - public ConceptPanelDescriptor() { - - panel3 = new ConceptPanel(); - panel3.addSelectionListener(this); - - setPanelDescriptorIdentifier(IDENTIFIER); - setPanelComponent(panel3); - - } - - @Override - public Object getNextPanelDescriptor() { - return LearningPanelDescriptor.IDENTIFIER; - } - - @Override - public Object getBackPanelDescriptor() { - return KnowledgeSourcePanelDescriptor.IDENTIFIER; - } - - @Override - public void aboutToDisplayPanel() { - setNextButtonAccordingToConceptSelected(); - } - - - - public void valueChanged(ListSelectionEvent e) { - setNextButtonAccordingToConceptSelected(); - if (!e.getValueIsAdjusting()) - getWizardModel().getOre().setConcept((NamedClass)panel3.getList().getSelectedValue()); - - } - - private void setNextButtonAccordingToConceptSelected() { - - if (panel3.getList().getSelectedValue()!= null){ - getWizard().setNextFinishButtonEnabled(true); - }else{ - getWizard().setNextFinishButtonEnabled(false); - } - - } - - - - - - - - - -} Deleted: trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionButton.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionButton.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionButton.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -1,25 +0,0 @@ -package org.dllearner.tools.ore; - -import javax.swing.JButton; - -import org.dllearner.core.owl.Description; - -public class DescriptionButton extends JButton { - /** - * - */ - private static final long serialVersionUID = 1L; - private Description desc; - - public DescriptionButton(String name, Description desc){ - super(name); - this.desc = desc; - - } - - public Description getDescription(){ - return desc; - } - - -} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionLabel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionLabel.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionLabel.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -2,14 +2,17 @@ import java.awt.Color; import java.awt.Component; +import java.awt.Cursor; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; +import java.util.Map; import java.util.Set; import javax.swing.JLabel; import javax.swing.JMenu; import javax.swing.JPopupMenu; +import javax.swing.ToolTipManager; import org.dllearner.core.owl.Description; import org.dllearner.core.owl.Individual; @@ -24,14 +27,33 @@ * */ private static final long serialVersionUID = 1L; + + + private static final int MOVE_TO_CLASS = 0; + private static final int MOVE_FROM_CLASS = 1; + private static final int ADD_CLASS = 2; + private static final int REMOVE_CLASS = 3; + private static final int ADD_PROPERTY = 4; + private static final int REMOVE_RANGE_PROPERTY = 5; + private static final int DELETE_PROPERTY = 6; + private static final int REMOVE_NOT_RANGE_PROPERTY = 7; + + + + private final Description desc; private Individual ind; private ORE ore; private JPopupMenu menu; + private String mode; - public DescriptionLabel(Description d){ - super(d.toString()); + private String baseURI; + private Map<String, String> prefixes; + + public DescriptionLabel(Description d, String mode){ + super(); this.desc = d; + this.mode = mode; setForeground(Color.red); addMouseListener(this); @@ -39,19 +61,75 @@ } public void init(){ + baseURI = ore.getBaseURI(); + prefixes = ore.getPrefixes(); + + setText(((Description)desc).toManchesterSyntaxString(ore.getBaseURI(),ore.getPrefixes())); menu = new JPopupMenu(); - if(!(desc instanceof Negation)){ - if(desc instanceof NamedClass){ - menu.add(new DescriptionMenuItem("remove class assertion " + desc.toString(), desc) ); - JMenu dme = new JMenu("move class assertion " + desc.toString() + " to ..."); - - for(NamedClass nc : ore.getpossibleMoveClasses(ind)){ - MoveMenuItem move = new MoveMenuItem((NamedClass)desc, nc); - dme.add(move); - Set<NamedClass> complements = ore.getComplements(nc, ind); - System.out.println("Gr\xF6\xDFe" + complements.size()); - if(!(complements.size() <=1)){ - move.setEnabled(false); + ToolTipManager.sharedInstance().setDismissDelay(7000); + if(mode.equals("neg")){ + if(!(desc instanceof Negation)){ + if(desc instanceof NamedClass){ + menu.add(new DescriptionMenuItem(REMOVE_CLASS, desc.toManchesterSyntaxString(baseURI, prefixes), desc) ); + + JMenu dme = new JMenu("move class assertion " + desc.toManchesterSyntaxString(baseURI, prefixes) + " to ..."); + for(NamedClass nc : ore.getpossibleClassesMoveTo(ind)){ + DescriptionMenuItem move = new DescriptionMenuItem(MOVE_TO_CLASS, nc.toManchesterSyntaxString(baseURI, prefixes), (NamedClass)desc); + dme.add(move); + Set<NamedClass> complements = ore.getComplements(nc, ind); + if(!(complements.size() <=1)){ + move.setEnabled(false); + StringBuffer strBuf = new StringBuffer(); + strBuf.append("<html>class assertion not possible because individual<br> " + + "is still asserted to its complements:<br><BLOCKQUOTE>"); + + for(NamedClass n: complements) + strBuf.append("<br><b>" + n + "</b>"); + strBuf.append("</BLOCKQUOTE></html>"); + + + move.setToolTipText(strBuf.toString()); + } + } + menu.add(dme); + } + else if(desc instanceof ObjectSomeRestriction){ + String propertyName = ((ObjectSomeRestriction)desc).getRole().toString(baseURI, prefixes); + String propertyRange = ((ObjectSomeRestriction)desc).getChild(0).toManchesterSyntaxString(baseURI, prefixes); + menu.add(new DescriptionMenuItem(DELETE_PROPERTY, propertyName , desc)); + if (!(desc.getChild(0) instanceof Thing)) + menu.add(new DescriptionMenuItem(REMOVE_RANGE_PROPERTY,propertyRange , desc)); + + } + else if(desc instanceof ObjectAllRestriction){ + if (!(desc.getChild(0) instanceof Thing)) { + JMenu dme = new JMenu("add property assertion " + ((ObjectAllRestriction) desc).getRole() + + " with object ..."); + for (Individual i : ore.getIndividualsNotInPropertyRange((ObjectAllRestriction) desc, ind)) + dme.add(new DescriptionMenuItem(ADD_PROPERTY,i.toManchesterSyntaxString(baseURI, prefixes), desc)); + menu.add(dme); + } + } + + } + else if(desc instanceof Negation){ + if(desc.getChild(0) instanceof NamedClass){ + DescriptionMenuItem item = new DescriptionMenuItem(ADD_CLASS, desc.getChild(0).toManchesterSyntaxString(baseURI, prefixes), desc.getChild(0)); + menu.add(item); + if(!ore.getComplements(desc, ind).isEmpty()){ + item.setEnabled(false); + item.setToolTipText("<html>class assertion not possible because individual<br> is still asserted to its complement</html>"); + } + } + } + } + else if(mode.equals("pos")){ + if(!(desc instanceof Negation)){ + if(desc instanceof NamedClass){ + DescriptionMenuItem add = new DescriptionMenuItem(ADD_CLASS, desc.toManchesterSyntaxString(baseURI, prefixes), desc); + Set<NamedClass> complements = ore.getComplements(desc, ind); + if((complements.size() >0)){ + add.setEnabled(false); StringBuffer strBuf = new StringBuffer(); strBuf.append("<html>class assertion not possible because individual<br> " + "is still asserted to its complements:<br><BLOCKQUOTE>"); @@ -61,45 +139,120 @@ strBuf.append("</BLOCKQUOTE></html>"); - move.setToolTipText(strBuf.toString()); + add.setToolTipText(strBuf.toString()); } + menu.add(add); + + Set<NamedClass> moveClasses = ore.getpossibleClassesMoveFrom(ind); + if(moveClasses.size() > 0){ + JMenu move = new JMenu("move to " + desc + " from ..."); + for (NamedClass m : moveClasses) + move.add(new DescriptionMenuItem(MOVE_FROM_CLASS,m.toManchesterSyntaxString(baseURI, prefixes), desc)); + menu.add(move); + + } + + } - menu.add(dme); - } - else if(desc instanceof ObjectSomeRestriction){ - menu.add(new DescriptionMenuItem("remove complete property " + ((ObjectSomeRestriction)desc).getRole(), desc)); - if (!(desc.getChild(0) instanceof Thing)) - menu.add(new DescriptionMenuItem("remove all property assertions to " + ((ObjectSomeRestriction)desc).getChild(0), desc)); - - } - else if(desc instanceof ObjectAllRestriction){ - if (!(desc.getChild(0) instanceof Thing)) { - JMenu dme = new JMenu("add property assertion " + ((ObjectAllRestriction) desc).getRole() + else if(desc instanceof ObjectSomeRestriction){ + JMenu dme = new JMenu("add property assertion " + ((ObjectSomeRestriction) desc).getRole() + " with object ..."); - for (Individual i : ore.getIndividualsNotOfPropertyRange((ObjectAllRestriction) desc, ind)) - dme.add(new DescriptionMenuItem(i.getName(), desc.getChild(0))); + for (Individual i : ore.getIndividualsOfPropertyRange((ObjectSomeRestriction) desc, ind)) + dme.add(new DescriptionMenuItem(ADD_PROPERTY,i.toManchesterSyntaxString(baseURI, prefixes), desc)); menu.add(dme); + } - } - - } - else if(desc instanceof Negation){ - if(desc.getChild(0) instanceof NamedClass){ - DescriptionMenuItem item = new DescriptionMenuItem("add class assertion to " + desc.getChild(0).toString(), desc.getChild(0)); - menu.add(item); - if(!ore.getComplements(desc, ind).isEmpty()){ - item.setEnabled(false); - item.setToolTipText("<html>class assertion not possible because individual<br> is still asserted to its complement</html>"); + else if(desc instanceof ObjectAllRestriction){ + if (!(desc.getChild(0) instanceof Thing)) { + menu.add(new DescriptionMenuItem(REMOVE_NOT_RANGE_PROPERTY,((ObjectAllRestriction) desc).getChild(0).toString(baseURI, prefixes), desc)); + menu.add(new DescriptionMenuItem(DELETE_PROPERTY,((ObjectAllRestriction) desc).getRole().toString(baseURI, prefixes), desc)); + } } + } - else if(desc.getChild(0) instanceof ObjectSomeRestriction){ - JMenu dme = new JMenu("add property " + desc.toString() + " with object ..."); - for(Individual i : ore.getIndividualsOfPropertyRange((ObjectSomeRestriction)desc.getChild(0), ind)) - dme.add(new DescriptionMenuItem(i.getName(), desc.getChild(0))); - menu.add(dme); - } + } + +// else if(desc instanceof Negation){ +// if(desc.getChild(0) instanceof NamedClass){ +// DescriptionMenuItem item = new DescriptionMenuItem("add class assertion to " + desc.getChild(0).toString(), desc.getChild(0)); +// menu.add(item); +// if(!ore.getComplements(desc, ind).isEmpty()){ +// item.setEnabled(false); +// item.setToolTipText("<html>class assertion not possible because individual<br> is still asserted to its complement</html>"); +// } +// } +// else if(desc.getChild(0) instanceof ObjectSomeRestriction){ +// JMenu dme = new JMenu("add property " + desc.toString() + " with object ..."); +// for(Individual i : ore.getIndividualsOfPropertyRange((ObjectSomeRestriction)desc.getChild(0), ind)) +// dme.add(new DescriptionMenuItem(i.getName(), desc.getChild(0))); +// menu.add(dme); +// } +// } + } +// menu = new JPopupMenu(); +// ToolTipManager.sharedInstance().setDismissDelay(7000); +// if(!(desc instanceof Negation)){ +// if(desc instanceof NamedClass){ +// menu.add(new DescriptionMenuItem("remove class assertion " + desc.toString(), desc) ); +// JMenu dme = new JMenu("move class assertion " + desc.toString() + " to ..."); +// +// for(NamedClass nc : ore.getpossibleMoveClasses(ind)){ +// MoveMenuItem move = new MoveMenuItem((NamedClass)desc, nc); +// dme.add(move); +// Set<NamedClass> complements = ore.getComplements(nc, ind); +// System.out.println("Gr\xF6\xDFe" + complements.size()); +// if(!(complements.size() <=1)){ +// move.setEnabled(false); +// StringBuffer strBuf = new StringBuffer(); +// strBuf.append("<html>class assertion not possible because individual<br> " + +// "is still asserted to its complements:<br><BLOCKQUOTE>"); +// +// for(NamedClass n: complements) +// strBuf.append("<br><b>" + n + "</b>"); +// strBuf.append("</BLOCKQUOTE></html>"); +// +// +// move.setToolTipText(strBuf.toString()); +// } +// } +// menu.add(dme); +// } +// else if(desc instanceof ObjectSomeRestriction){ +// menu.add(new DescriptionMenuItem("remove complete property " + ((ObjectSomeRestriction)desc).getRole(), desc)); +// if (!(desc.getChild(0) instanceof Thing)) +// menu.add(new DescriptionMenuItem("remove all property assertions to " + ((ObjectSomeRestriction)desc).getChild(0), desc)); +// +// } +// else if(desc instanceof ObjectAllRestriction){ +// if (!(desc.getChild(0) instanceof Thing)) { +// JMenu dme = new JMenu("add property assertion " + ((ObjectAllRestriction) desc).getRole() +// + " with object ..."); +// for (Individual i : ore.getIndividualsNotOfPropertyRange((ObjectAllRestriction) desc, ind)) +// dme.add(new DescriptionMenuItem(i.getName(), desc.getChild(0))); +// menu.add(dme); +// } +// } +// +// } +// else if(desc instanceof Negation){ +// if(desc.getChild(0) instanceof NamedClass){ +// DescriptionMenuItem item = new DescriptionMenuItem("add class assertion to " + desc.getChild(0).toString(), desc.getChild(0)); +// menu.add(item); +// if(!ore.getComplements(desc, ind).isEmpty()){ +// item.setEnabled(false); +// item.setToolTipText("<html>class assertion not possible because individual<br> is still asserted to its complement</html>"); +// } +// } +// else if(desc.getChild(0) instanceof ObjectSomeRestriction){ +// JMenu dme = new JMenu("add property " + desc.toString() + " with object ..."); +// for(Individual i : ore.getIndividualsOfPropertyRange((ObjectSomeRestriction)desc.getChild(0), ind)) +// dme.add(new DescriptionMenuItem(i.getName(), desc.getChild(0))); +// menu.add(dme); +// } +// } +// } public Description getDescription(){ return desc; @@ -132,14 +285,15 @@ public void mouseEntered(MouseEvent e) { - setText("<html><u>" + desc.toString() + "</u></html>"); + setText("<html><u>" + ((Description)desc).toManchesterSyntaxString(ore.getBaseURI(),ore.getPrefixes()) + "</u></html>"); + setCursor(new Cursor(Cursor.HAND_CURSOR)); } public void mouseExited(MouseEvent e) { - setText(desc.toString()); - + setText(((Description)desc).toManchesterSyntaxString(ore.getBaseURI(),ore.getPrefixes())); + setCursor(new Cursor(Cursor.DEFAULT_CURSOR)); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionMenuItem.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionMenuItem.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionMenuItem.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -11,12 +11,30 @@ */ private static final long serialVersionUID = 6784086889435854440L; - Description desc; + private Description desc; + private int action; - - public DescriptionMenuItem(String text, Description d){ - super(text); + public DescriptionMenuItem(int action, String text, Description d){ + super(); + if(action == 3) + setText("remove class assertion to " + text); + else if(action == 0) + setText(text); + else if(action == 2) + setText("add class assertion to " + text); + else if(action == 4) + setText(text); + else if(action == 6) + setText("delete complete property " + text); + else if(action == 5) + setText("remove all property assertions to " + text); + else if(action == 7) + setText("remove all property assertions with range not in " + text); + else if(action == 1) + setText(text); + this.desc = d; + this.action = action; } @@ -24,6 +42,10 @@ return desc; } + public int getActionID(){ + return action; + } + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionPanel.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/DescriptionPanel.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -21,8 +21,10 @@ ORE ore; Individual ind; ActionListener aL; + String mode; + boolean correct = false; - public DescriptionPanel(ORE ore, Individual ind, ActionListener aL){ + public DescriptionPanel(ORE ore, Individual ind, ActionListener aL, String mode){ super(); setBackground(Color.WHITE); @@ -30,35 +32,72 @@ this.ore = ore; this.ind = ind; this.aL = aL; - for(JLabel jL : ore.DescriptionToJLabel(ind, ore.conceptToAdd)){ - add(jL); - if(jL instanceof DescriptionLabel){ + this.mode = mode; + if(mode.equals("neg")){ + for(JLabel jL : ore.DescriptionToJLabelNeg(ind, ore.conceptToAdd)){ + add(jL); + if(jL instanceof DescriptionLabel){ + + ((DescriptionLabel)jL).setIndOre(ore, ind); + ((DescriptionLabel)jL).init(); + ((DescriptionLabel)jL).addActionListeners(aL); + + } - ((DescriptionLabel)jL).setIndOre(ore, ind); - ((DescriptionLabel)jL).init(); - ((DescriptionLabel)jL).addActionListeners(aL); } } + else if(mode.equals("pos")){ + for(JLabel jL : ore.DescriptionToJLabelPos(ind, ore.conceptToAdd)){ + add(jL); + if(jL instanceof DescriptionLabel){ + + ((DescriptionLabel)jL).setIndOre(ore, ind); + ((DescriptionLabel)jL).init(); + ((DescriptionLabel)jL).addActionListeners(aL); + + } + + } + } } - public void updatePanel(){//DescriptionButton descBut, Description desc){ + public void updatePanel(){ for(Component c : getComponents()) if(c instanceof JLabel) remove(c); ore.updateReasoner(); - for(JLabel jL : ore.DescriptionToJLabel(ind, ore.conceptToAdd)){ - add(jL); - if(jL instanceof DescriptionLabel){ - ((DescriptionLabel)jL).setIndOre(ore, ind); - ((DescriptionLabel)jL).init(); - ((DescriptionLabel)jL).addActionListeners(aL); - - + correct = true; + if (mode.equals("neg")) { + for (JLabel jL : ore.DescriptionToJLabelNeg(ind, ore.conceptToAdd)) { + add(jL); + if (jL instanceof DescriptionLabel) { + ((DescriptionLabel) jL).setIndOre(ore, ind); + ((DescriptionLabel) jL).init(); + ((DescriptionLabel) jL).addActionListeners(aL); + correct = false; + + } } } + else if(mode.equals("pos")){ + for (JLabel jL : ore.DescriptionToJLabelPos(ind, ore.conceptToAdd)) { + add(jL); + if (jL instanceof DescriptionLabel) { + ((DescriptionLabel) jL).setIndOre(ore, ind); + ((DescriptionLabel) jL).init(); + ((DescriptionLabel) jL).addActionListeners(aL); + correct = false; + + } + } + } SwingUtilities.updateComponentTreeUI(this); } + + public boolean isCorrect(){ + return correct; + } } \ No newline at end of file Modified: trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanel.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanel.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -16,6 +16,8 @@ public class IntroductionPanel extends JPanel { private static final long serialVersionUID = 7184544803724152044L; + + private JTextArea instructionsField; private JScrollPane jScrollPane1; Modified: trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanelDescriptor.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/IntroductionPanelDescriptor.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -5,7 +5,7 @@ public class IntroductionPanelDescriptor extends WizardPanelDescriptor { public static final String IDENTIFIER = "INTRODUCTION_PANEL"; - + public IntroductionPanelDescriptor() { super(IDENTIFIER, new IntroductionPanel()); } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanel.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanel.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -1,24 +1,44 @@ package org.dllearner.tools.ore; import java.awt.BorderLayout; +import java.awt.GridLayout; import java.awt.event.ActionListener; import java.io.File; +import java.net.URL; +import java.util.Vector; +import javax.swing.Box; +import javax.swing.ButtonGroup; +import javax.swing.GroupLayout; +import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JLabel; import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.JTextField; +import javax.swing.SwingConstants; +import javax.swing.border.TitledBorder; import javax.swing.event.DocumentListener; import javax.swing.filechooser.FileFilter; +import org.dllearner.kb.sparql.SparqlEndpoint; + public class KnowledgeSourcePanel extends JPanel{ private static final long serialVersionUID = -3997200565180270088L; private javax.swing.JTextField fileURL; + private JTextField sparqlURL; private javax.swing.JButton browseButton; + private JComboBox sparqlBox; + private JPanel contentPanel; private JLabel message; + private JRadioButton owl; + private JRadioButton sparql; + + public KnowledgeSourcePanel() { new LeftPanel(1); @@ -26,7 +46,6 @@ setLayout(new java.awt.BorderLayout()); - //add(leftPanel,BorderLayout.WEST); add(contentPanel,BorderLayout.CENTER); } @@ -35,20 +54,61 @@ JPanel contentPanel1 = new JPanel(); + JPanel buttonPanel = new JPanel(); + ButtonGroup bg = new ButtonGroup(); + Box box = Box.createVerticalBox(); + owl = new JRadioButton("OWL", true); + sparql = new JRadioButton("SPARQL"); + bg.add(owl); + bg.add(sparql); + box.add(owl); + box.add(sparql); + buttonPanel.add(box); + + JPanel owlPanel = new JPanel(); + GroupLayout layout = new GroupLayout(owlPanel); + owlPanel.setLayout(layout); + layout.setAutoCreateGaps(true); + layout.setAutoCreateContainerGaps(true); + owlPanel.setBorder(new TitledBorder("OWL")); message = new JLabel(); message.setText("enter or browse OWL file"); - fileURL = new javax.swing.JTextField(40); - + fileURL = new javax.swing.JTextField(60); browseButton = new javax.swing.JButton("browse"); - - contentPanel1.setLayout(new BorderLayout()); + layout.setHorizontalGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.LEADING) + .addComponent(fileURL) + .addComponent(message)) + .addComponent(browseButton)); + layout.linkSize(SwingConstants.HORIZONTAL, fileURL, message); + + layout.setVerticalGroup(layout.createSequentialGroup() + .addGroup(layout.createParallelGroup(GroupLayout.Alignment.BASELINE) + .addComponent(fileURL) + .addComponent(browseButton)) + + .addComponent(message)); - JPanel panel = new JPanel(); - panel.add(fileURL); - panel.add(browseButton); - contentPanel1.add(panel,BorderLayout.CENTER); - contentPanel1.add(message,BorderLayout.SOUTH); + JPanel sparqlPanel = new JPanel(); + sparqlPanel.setBorder(new TitledBorder("SPARQL")); + sparqlURL = new JTextField(60); + sparqlURL.setEnabled(false); + + Vector<URL> model = new Vector<URL>(); + for(SparqlEndpoint e : SparqlEndpoint.listEndpoints()) + model.add(e.getURL()); + sparqlBox = new JComboBox(model); + sparqlBox.setEditable(false); + sparqlBox.setSelectedIndex(-1); + sparqlBox.setEnabled(false); + sparqlPanel.add(sparqlBox); + + + contentPanel1.setLayout(new GridLayout(0,1)); + contentPanel1.add(buttonPanel); + contentPanel1.add(owlPanel); + contentPanel1.add(sparqlPanel); @@ -58,6 +118,9 @@ public void addListeners(ActionListener l, DocumentListener d) { browseButton.addActionListener(l); fileURL.addActionListener(l); + sparqlURL.addActionListener(l); + owl.addActionListener(l); + sparql.addActionListener(l); fileURL.getDocument().addDocumentListener(d); } @@ -126,5 +189,25 @@ this.fileURL.setText(fileURL); } - + public void setOWLMode(){ + fileURL.setEnabled(true); + browseButton.setEnabled(true); + message.setVisible(true); + + sparqlBox.setEditable(false); + sparqlBox.setEnabled(false); + + } + + public void setSPARQLMode(){ + fileURL.setEnabled(false); + browseButton.setEnabled(false); + message.setVisible(false); + + sparqlBox.setEnabled(true); + sparqlBox.setEditable(true); + + } + + } Modified: trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/KnowledgeSourcePanelDescriptor.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -14,23 +14,28 @@ public class KnowledgeSourcePanelDescriptor extends WizardPanelDescriptor implements ActionListener, DocumentListener{ public static final String IDENTIFIER = "KNOWLEDGESOURCE_CHOOSE_PANEL"; + public static final String INFORMATION = "Select the KnowledgeSource(OWL-FILE) on which you want to work and " + + "then press \"Next\"-button"; - private KnowledgeSourcePanel panel2; + private KnowledgeSourcePanel knowledgePanel; public KnowledgeSourcePanelDescriptor() { - panel2 = new KnowledgeSourcePanel(); + knowledgePanel = new KnowledgeSourcePanel(); - panel2.addListeners(this, this); + knowledgePanel.addListeners(this, this); setPanelDescriptorIdentifier(IDENTIFIER); - setPanelComponent(panel2); + setPanelComponent(knowledgePanel); } @Override public Object getNextPanelDescriptor() { - return ConceptPanelDescriptor.IDENTIFIER; + if(getWizard().getKnowledgeSourceType() == 0) + return ClassPanelOWLDescriptor.IDENTIFIER; + else + return ClassPanelSparqlDescriptor.IDENTIFIER; } @Override @@ -41,13 +46,20 @@ @Override public void aboutToDisplayPanel() { - setNextButtonAccordingToExistingOWLFile(); + getWizard().getInformationField().setText(INFORMATION); + setNextButtonAccordingToExistingOWLFile(); } public void actionPerformed(ActionEvent e) { String cmd = e.getActionCommand(); if(cmd.equals("browse")){ - panel2.openFileChooser(); + knowledgePanel.openFileChooser(); + }else if(cmd.equals("OWL")){ + knowledgePanel.setOWLMode(); + getWizard().setKnowledgeSourceType(0); + }else if(cmd.equals("SPARQL")){ + knowledgePanel.setSPARQLMode(); + getWizard().setKnowledgeSourceType(1); } setNextButtonAccordingToExistingOWLFile(); @@ -58,8 +70,8 @@ private void setNextButtonAccordingToExistingOWLFile() { - if (panel2.isExistingOWLFile()){ - getWizardModel().getOre().setKnowledgeSource(panel2.getOWLFile()); + if (knowledgePanel.isExistingOWLFile()){ + getWizardModel().getOre().setKnowledgeSource(knowledgePanel.getOWLFile()); getWizard().setNextFinishButtonEnabled(true); // new ConceptRetriever().execute(); // System.err.println("test"); @@ -89,6 +101,10 @@ setNextButtonAccordingToExistingOWLFile(); } + public KnowledgeSourcePanel getPanel() { + return knowledgePanel; + } + class ConceptRetriever extends SwingWorker<Set<NamedClass>, NamedClass> { @Override @@ -96,7 +112,7 @@ { getWizardModel().getOre().detectReasoner(); Set<NamedClass> ind = getWizardModel().getOre().getReasoningService().getAtomicConcepts(); - ConceptPanelDescriptor nextPanel = (ConceptPanelDescriptor)getWizardModel().getPanelHashMap().get(getNextPanelDescriptor()); + ClassPanelOWLDescriptor nextPanel = (ClassPanelOWLDescriptor)getWizardModel().getPanelHashMap().get(getNextPanelDescriptor()); nextPanel.panel3.getModel().clear(); for (NamedClass cl : ind){ @@ -111,9 +127,6 @@ } -public KnowledgeSourcePanel getPanel() { - return panel2; -} Modified: trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanel.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -2,12 +2,16 @@ import java.awt.BorderLayout; import java.awt.Dimension; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.Insets; import java.awt.event.ActionListener; import java.awt.geom.Ellipse2D; import java.awt.geom.RoundRectangle2D; import java.util.Dictionary; import java.util.Hashtable; +import javax.swing.BorderFactory; import javax.swing.BoxLayout; import javax.swing.DefaultListModel; import javax.swing.JButton; @@ -28,54 +32,34 @@ private JPanel contentPanel; - private javax.swing.JList resultList; + private DefaultListModel model; private JLabel statusLabel; private JXBusyLabel loadingLabel; - private JButton startButton; - private JButton stopButton; + + private JList resultList; + private JScrollPane listScrollPane; + private JPanel listPanel; + private JPanel noisePanel; private JSlider noiseSlider; - + private JLabel noiseLabel; + private JButton stopButton; + private JButton startButton; + private JPanel buttonPanel; + private JPanel buttonSliderPanel; + private JLabel conceptLabel; + private JLabel accuracyLabel; public LearningPanel() { super(); model = new DefaultListModel(); - - JPanel eastPanel = new JPanel(); - eastPanel.setLayout(new BoxLayout(eastPanel, BoxLayout.Y_AXIS)); - - JPanel buttonPanel = new JPanel(); - startButton = new JButton("Start"); - stopButton = new JButton("Stop"); - stopButton.setEnabled(false); - buttonPanel.add(startButton); - buttonPanel.add(stopButton); - - JPanel noisePanel = new JPanel(); - noisePanel.setLayout(new BoxLayout(noisePanel, BoxLayout.Y_AXIS)); - noiseSlider = new JSlider(0, 100, 0); - noiseSlider.setPaintTicks(true); - noiseSlider.setMajorTickSpacing(10); - noiseSlider.setMinorTickSpacing(5); - Dictionary<Integer, JLabel> map = new Hashtable<Integer, JLabel>(); - map.put( new Integer(0), new JLabel("0%") ); - map.put( new Integer(50), new JLabel("50%") ); - map.put( new Integer(100),new JLabel("100%") ); - noiseSlider.setLabelTable( map ); - noiseSlider.setPaintLabels(true); - noisePanel.add(new JLabel("noise")); - noisePanel.add(noiseSlider); - - eastPanel.add(buttonPanel); - eastPanel.add(noisePanel); - + JPanel statusPanel = new JPanel(); statusLabel = new JLabel(); - loadingLabel = new JXBusyLabel(new Dimension(15,15)); BusyPainter<Object> painter = new BusyPainter<Object>( new RoundRectangle2D.Float(0, 0,6.0f,2.6f,10.0f,10.0f), @@ -92,26 +76,115 @@ contentPanel = getContentPanel(); setLayout(new java.awt.BorderLayout()); - add(eastPanel, BorderLayout.EAST); + add(contentPanel,BorderLayout.CENTER); add(statusPanel, BorderLayout.SOUTH); } private JPanel getContentPanel() { + JPanel contentPanel = new JPanel(); + GridBagLayout contentLayout = new GridBagLayout(); + setPreferredSize(new Dimension(700, 500)); + contentLayout.rowWeights = new double[] {0.5}; + contentLayout.rowHeights = new int[] {500}; + contentLayout.columnWeights = new double[] {0.5, 0.0}; + contentLayout.columnWidths = new int[] {313, 7}; + this.setLayout(contentLayout); - JPanel contentPanel1 = new JPanel(); - JScrollPane scroll = new JScrollPane(); - - resultList = new JList(model); -// resultList.setCellRenderer(new ColumnListCellRenderer()); - scroll.setPreferredSize(new Dimension(900, 400)); - scroll.setViewportView(resultList); - - contentPanel1.add(scroll); + { + listPanel = new JPanel(); + GridBagLayout jPanel1Layout = new GridBagLayout(); + contentPanel.add(listPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); + jPanel1Layout.rowWeights = new double[] {0.0, 0.5}; + jPanel1Layout.rowHeights = new int[] {16,400}; + jPanel1Layout.columnWeights = new double[] {0.0, 0.5}; + jPanel1Layout.columnWidths = new int[] {50, 700}; + listPanel.setLayout(jPanel1Layout); + listPanel.setBorder(BorderFactory.createTitledBorder("Learned Concepts")); + { + listScrollPane = new JScrollPane(); + listPanel.add(listScrollPane, new GridBagConstraints(0, 1, 2, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); + { + + resultList = new JList(model); + listScrollPane.setViewportView(resultList); + } + } + { + accuracyLabel = new JLabel(); + listPanel.add(accuracyLabel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); + accuracyLabel.setText("Accuracy"); + } + { + conceptLabel = new JLabel(); + listPanel.add(conceptLabel, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(0, 0, 0, 0), 0, 0)); + conceptLabel.setText("Concept"); + } + } + { + buttonSliderPanel = new JPanel(); + GridBagLayout buttonSliderPanelLayout = new GridBagLayout(); + contentPanel.add(buttonSliderPanel, new GridBagConstraints(1, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); + buttonSliderPanelLayout.rowWeights = new double[] {0.8, 0.0}; + buttonSliderPanelLayout.rowHeights = new int[] {200, 7}; + buttonSliderPanelLayout.columnWeights = new double[] {0.1}; + buttonSliderPanelLayout.columnWidths = new int[] {7}; + buttonSliderPanel.setLayout(buttonSliderPanelLayout); + { + buttonPanel = new JPanel(); + BoxLayout buttonPanelLayout = new BoxLayout(buttonPanel, javax.swing.BoxLayout.X_AXIS); + buttonPanel.setLayout(buttonPanelLayout); + buttonSliderPanel.add(buttonPanel, new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); + { + startButton = new JButton(); + buttonPanel.add(startButton); + startButton.setText("Start"); + } + { + stopButton = new JButton(); + buttonPanel.add(stopButton); + stopButton.setText("Stop"); + } + } + { + noisePanel = new JPanel(); + BoxLayout noisePanelLayout = new BoxLayout(noisePanel, javax.swing.BoxLayout.Y_AXIS); + noisePanel.setLayout(noisePanelLayout); + buttonSliderPanel.add(noisePanel, new GridBagConstraints(0, 1, 1, 1, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.BOTH, new Insets(0, 0, 0, 0), 0, 0)); + { + noiseLabel = new JLabel(); + noisePanel.add(noiseLabel); + noiseLabel.setText("noise"); + } + { + noiseSlider = new JSlider(0, 100, 0); + noiseSlider.setPaintTicks(true); + noiseSlider.setMajorTickSpacing(10); + noiseSlider.setMinorTickSpacing(5); + Dictionary<Integer, JLabel> map = new Hashtable<Integer, JLabel>(); + map.put( new Integer(0), new JLabel("0%") ); + map.put( new Integer(50), new JLabel("50%") ); + map.put( new Integer(100),new JLabel("100%") ); + noiseSlider.setLabelTable( map ); + noiseSlider.setPaintLabels(true); + noisePanel.add(noiseSlider); + } + } + } +// JPanel contentPanel1 = new JPanel(); +// JScrollPane scroll = new JScrollPane(); +// +// +// resultList = new JList(model); +//// resultList.setCellRenderer(new ColumnListCellRenderer()); +// scroll.setPreferredSize(new Dimension(900, 400)); +// scroll.setViewportView(resultList); +// +// contentPanel1.add(scroll); - return contentPanel1; + return contentPanel; } public void addStartButtonListener(ActionListener a){ Modified: trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java =================================================================== --- trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java 2008-07-15 10:25:32 UTC (rev 1008) +++ trunk/src/dl-learner/org/dllearner/tools/ore/LearningPanelDescriptor.java 2008-07-15 16:44:26 UTC (rev 1009) @@ -7,6 +7,7 @@ import java.util.TimerTask; import java.util.concurrent.ExecutionException; +import javax.swing.DefaultListModel; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import javax.swing.event.ListSelectionEvent; @@ -48,13 +49,72 @@ @Override public Object getBackPanelDescriptor() { - return ConceptPanelDescriptor.IDENTIFIER; + return ClassPanelOWLDescriptor.IDENTIFIER; } - class ResultSwingWorker extends SwingWorker<List<Description>, List<Description>> { + @Override + public void aboutToDisplayPanel() { + setNextButtonAccordingToConceptSelected(); + } + + + + public void valueChanged(ListSelectionEvent e) { + setNextButtonAccordingToConceptSelected(); +// ObjectAllRestriction role = new ObjectAllRestriction(new ObjectProperty("http://example.com/father#hasChild"), +// new NamedClass("http://example.com/father#female")); +// Description de = new Intersection(new NamedClass("http://example.com/father#male"), role); + + if (!e.getValueIsAdjusting()){ + getWizardModel().getOre().setConceptToAdd((Description)(panel4.getResultList().getSelectedValue())); + + + } + + } + + public void actionPerformed(ActionEvent event) { + if(event.getActionCommand().equals("Start")){ + panel4.getModel().clear(); + panel4.getStartButton().setEnabled(false); + panel4.getStopButton().setEnabled(true); + worker = new ResultSwingWorker(); + worker.execute(); + } + else{ + canceled = true; + panel4.getStopButton().setEnabled(false); + la.stop(); + timer.cancel(); + panel4.getStartButton().setEnabled(true); + panel4.getStatusLabel().setText("Algorithm aborted"); + panel4.getLoadingLabel().setBusy(false); + + } + + + + } + + + + private void setNextButtonAccordingToConceptSelected() { + ... [truncated message content] |