001 package org.dllearner.test;
002
003 import java.util.HashSet;
004 import java.util.List;
005 import java.util.Set;
006 import java.util.SortedSet;
007
008 import org.apache.log4j.ConsoleAppender;
009 import org.apache.log4j.FileAppender;
010 import org.apache.log4j.Level;
011 import org.apache.log4j.Logger;
012 import org.apache.log4j.SimpleLayout;
013 import org.dllearner.kb.sparql.SPARQLTasks;
014 import org.dllearner.kb.sparql.SparqlEndpoint;
015 import org.dllearner.kb.sparql.SparqlKnowledgeSource;
016 import org.dllearner.utilities.JamonMonitorLogger;
017 import org.dllearner.utilities.statistics.SimpleClock;
018
019 public class SparqlEndpointTest {
020 private static Logger logger = Logger.getRootLogger();
021 static Set<String> working = new HashSet<String>();
022 static Set<String> notworking = new HashSet<String>();
023
024 public static void main(String[] args) {
025 SimpleLayout layout = new SimpleLayout();
026 ConsoleAppender consoleAppender = new ConsoleAppender(layout);
027 FileAppender fileAppender =null; ;
028 try{
029 fileAppender = new FileAppender(layout,"endpoints.txt",false);
030 }catch (Exception e) {e.printStackTrace();}
031 logger.removeAllAppenders();
032 logger.addAppender(fileAppender);
033 logger.addAppender(consoleAppender);
034 logger.setLevel(Level.TRACE);
035 Logger.getLogger(SparqlKnowledgeSource.class).setLevel(Level.WARN);
036 //SELECT DISTINCT ?c WHERE {[] a ?c }LIMIT 100
037
038
039 List<SparqlEndpoint> ll = SparqlEndpoint.listEndpoints();
040
041
042
043 int i=1;
044 for (int j = 0; j < ll.size(); j++) {
045
046 testEndPoint(ll.get(j));
047 if(i==3)break;
048 logger.info("finished "+i+" of "+ll.size());
049 i++;
050 }
051 logger.info("**************");
052 for (String str : working) {
053 logger.info(str);
054 }
055 for (String str : notworking) {
056 logger.info(str);
057
058 }
059 //set.add(SparqlEndpoint.);
060 JamonMonitorLogger.printAllSortedByLabel();
061 }
062
063
064 public static void testEndPoint(SparqlEndpoint se) {
065 SimpleClock sc = new SimpleClock();
066 try{
067
068 String SPARQLquery ="" +
069 "SELECT DISTINCT ?c " +
070 "WHERE {[] a ?c }" +
071 "LIMIT 100";
072
073 SPARQLquery ="SELECT DISTINCT ?c WHERE {[] a ?c }LIMIT 100";
074 SortedSet<String> tmp = new SPARQLTasks(se).queryAsSet(SPARQLquery, "c");
075 int i =tmp.size();
076
077
078 working.add(sc.getAndSet("endpoint working: "+se.getURL()+" ("+((i==100)?"more than 100 concepts":"about "+i+" concepts")+" )"));
079 }catch (Exception e) {notworking.add(sc.getAndSet("endpoint NOT working: "+se.getURL()));}
080 }
081
082 }