2017-01-10 8 views
0

Я использую Apache Jena для извлечения огромного количества данных из Dbpedia и записи в CSV-файл. Тем не менее, я могу получить около 10 000 троек, а не все данные. Мне нужно это, чтобы получить все тройки в запросе. Я не могу определить, является ли это тайм-аутом конечной точки или чем-то еще. Код, который я написал, следующий:Предотвращение таймаута при запросе конечной точки Dbpedia с использованием Apache Jena

public class FetchCountriesData { 

    public void getCountriesInformation() throws FileNotFoundException { 
     ParameterizedSparqlString qs = new ParameterizedSparqlString("PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> \n " 
       + "SELECT * {  ?Subject rdf:type <http://dbpedia.org/ontology/Country> .  ?Subject ?Predicate ?Object } ORDER BY ?Subject "); 

     QueryExecution exec = QueryExecutionFactory.sparqlService("https://dbpedia.org/sparql", qs.asQuery()); 
     //exec.setTimeout(10000000); 
     exec.setTimeout(10, TimeUnit.MINUTES); 
     ResultSet results = exec.execSelect(); 
     ResultSetFormatter.outputAsCSV(new FileOutputStream(new File("C:/fakepath/CountryData.csv")), results); 
     ResultSetFormatter.out(results); 
    } 
} 
+2

Ответил здесь несколько раз. DBpedia - это государственная служба и размер набора результатов, ограниченного 10000. Это делается для обеспечения справедливости среди всех пользователей. Вы можете использовать 'ORDER BY? Subject LIMIT 10000 + OFFSET n' и делать какую-то разбивку на страницы (' n' кратно 10000). Лучше всего было бы вручную загрузить данные и обработать их собственным трёхмерным хранилищем, соответственно. Ресурсы. – AKSW

+1

Или ... запустите свое собственное [зеркало DBpedia в облаке] (http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtPayAsYouGoEBSBackedAMIDBpedia2015). – TallTed

ответ

 Смежные вопросы

  • Нет связанных вопросов^_^