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    }