Я использую 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);
}
}
Ответил здесь несколько раз. DBpedia - это государственная служба и размер набора результатов, ограниченного 10000. Это делается для обеспечения справедливости среди всех пользователей. Вы можете использовать 'ORDER BY? Subject LIMIT 10000 + OFFSET n' и делать какую-то разбивку на страницы (' n' кратно 10000). Лучше всего было бы вручную загрузить данные и обработать их собственным трёхмерным хранилищем, соответственно. Ресурсы. – AKSW
Или ... запустите свое собственное [зеркало DBpedia в облаке] (http://virtuoso.openlinksw.com/dataspace/doc/dav/wiki/Main/VirtPayAsYouGoEBSBackedAMIDBpedia2015). – TallTed