DBpedia에 대한 몇 가지 개념에 대한 정보를 얻으려고합니다. 나는 1을 얻는 방법을 알아 냈지만 더 많이 실패하면 실패합니다. 필터링이 도움이된다고 들었지만 처리 시간이 너무 길어 타임 아웃이 발생합니다. ?SPARQL 더 많은 과목에 대한 결과를 얻는 반복적 인 반복.
내가 할 수없는 것은의 {: 페이스 북 dbpedia : dbpedia 구글} VALUES입니다 그래서 다른 방법을 검토 한
,하지만 여전히 외설; t의 작업을. 여기에 내가 지금이야 어디 :
잘 작동하지만 약 50 그들에게 전화하는 데 필요한 SPARQL에서 한 번에 하나 개의 개념에 대한public static String concepts[] = { "Facebook", "Google" };
public static String getQuery(String concept) {
return "prefix dbpediaowl: <http://dbpedia.org/ontology/>"
+ " prefix dbpedia: <http://dbpedia.org/resource/>"
+ " prefix owl: <http://www.w3.org/2002/07/owl#>"
+ " prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> "
+ " PREFIX dbpprop: <http://dbpedia.org/property/>"
+ " prefix dbpedia-owl: <http://dbpedia.org/ontology/>"
+ " select ?s ?p ?o where { "
+ " values ?web { dbpedia:"
+ "Facebook"
+ " } "
+ " { ?web ?p ?o bind(?web as ?s) } " + " union "
+ " { ?s ?p ?web bind(?web as ?o) } " + " filter(?p in ("
+ "dbpprop:available, " + "dbpprop:company, "
+ "dbpprop:inventor, " + "dbpedia-owl:foundedBy, "
+ "dbpedia-owl:subsidiary, " + "dbpprop:foundation, "
+ "dbpprop:founder, " + "dbpprop:industry, "
+ "dbpprop:programmingLanguage, " + "dbpedia-owl:successor)) ";
}
public static void main(String[] args) {
OutputStream os;
PrintStream printStream;
try {
os = new FileOutputStream("C:/Users/alex/Desktop/data.txt");
printStream = new PrintStream(os);
printStream.println("am scris");
for (int i = 0; i < concepts.length; i++) {
printStream.println(i+ " concept");
Query query = QueryFactory.create(getQuery(concepts[i]));
QueryExecution qExe = QueryExecutionFactory.sparqlService(
"http://lod.openlinksw.com/sparql", query);
ResultSet results = qExe.execSelect();
while (results.hasNext()) {
printStream.println(results.nextSolution().toString());
}
}
printStream.close();
os.close();
} catch (Exception e) {
e.printStackTrace();
System.out.println(e.getCause());
}
}
. 그래서 나는 그것을 프로그램으로 할 수있는 방법을 알아야합니다. 또한 약 30-40 개를 허용해야하기 때문에 필터링없이 조건자를 선택할 때 도움이된다면 좋을 것입니다.
고맙습니다. 당신이 도울 수 있기를 바랍니다.
문제가 느리게 작동하는 경향이 있으며 DBpedia 나를 제한 시간 제공 : 일부 특정 속성에 대해, 당신은 할 수 있습니다. DBpedia를 미러링하는 더 나은 엔드 포인트를 찾았지만 여전히 한계가 있으며 30-40-50 개의 자원을 검사해야합니다. –
다른 끝점은 "http://lod.openlinksw.com/sparql" –
@AlexDoro입니다. 특정 속성의 값을 쿼리하는 중이라면 'union'을 제거하고 사용할 수 있어야합니다 '가치'맞지? 그래도 여전히 시간 초과 문제가 있습니까? –