[英]Generate an incremental SPARQL query
有什么方法可以動態生成SPARQL查詢嗎? 我想做的是這樣的:如果我有一個DBpedia資源r1和另一個DBpedia資源r2,則此查詢
SELECT * WHERE { <r1> ?pre <r2> }
將返回2個資源與該查詢之間的謂詞
SELECT * WHERE { <r1> ?pre1 ?obj1 . ?obj1 ?pre2 <r2> }
會在兩個步驟中返回這兩個資源之間的所有謂詞和對象,依此類推,我試圖以這種方式構建此查詢,該查詢將自動增加兩個資源之間的對象和謂詞的數量(例如4個步驟)?
我想出了解決這個問題的方法..這是我的解決方案:
private String completeQuery(String coreQuery){
String completeQuery = "";
completeQuery += "SELECT * WHERE {"+ "\n";
completeQuery += coreQuery + "\n";
completeQuery =completeQuery + "}" + "\n" +"limit 5" ;
return completeQuery;}
public String link(String object1, String object2, int distance){
if(distance == 1){
String Quer = "<http://dbpedia.org/resource/"+object1+">" + " ?pre1 " +"<http://dbpedia.org/resource/"+object2+">";
return completeQuery(Quer);
}
else {
String query = "<http://dbpedia.org/resource/"+object1+">" + " ?pre1 ?obj1 " + ".\n";
for(int i = 1; i < distance-1; i++){
query += "?obj" + i + " ?pre" + (i+1) + " ?obj" + (i+1) + ".\n" ;
}
query += "?obj" + (distance-1) + " ?pre" + distance + " " + "<http://dbpedia.org/resource/"+object2+">";
return completeQuery(query);
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.