2016-05-31 30 views
1

我想抓取100頁的wikipedia,所以我想每次將wikiPageID增加1。我該怎麼做?如何在sparql中自動增加一個變量?

PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

SELECT * WHERE { 
?saket dbo:wikiPageID 57570. 
?saket foaf:isPrimaryTopicOf ?wikilink. 

     OPTIONAL { 
      ?saket dbp:birthPlace ?birth.} 
     OPTIONAL { 
      ?saket dbp:dateOfBirth ?dob.} 
     OPTIONAL{ 
      ?saket dbp:nationality ?country.} 
     OPTIONAL{ 
      ?saket dbp:occupation ?occupation.} 

} 
+0

的對象,而不是價值'57570'上使用過濾器。 – AKSW

+0

@AKSW你會在答案中插圖嗎?我想我理解你的建議,但希望看到你的答案,所以我也可以測試它。 –

+1

@JayGray而不是''saket dbo:wikiPageID 57570.'做類似'?saket dbo:wikiPageID?wikiPageId。過濾器(57570 <=?wikiPageId &&?wikiPageId <= 57670)'。 –

回答

2
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#> 

    SELECT * WHERE { 
    ?saket dbo:wikiPageID ?id . 
    ?saket foaf:isPrimaryTopicOf ?wikilink. 
    FILTER(?id >= 100 && ?id < 200) 

    OPTIONAL { 
     ?saket dbp:birthPlace ?birth.} 
    OPTIONAL { 
     ?saket dbp:dateOfBirth ?dob.} 
    OPTIONAL{ 
     ?saket dbp:nationality ?country.} 
    OPTIONAL{ 
     ?saket dbp:occupation ?occupation.} 
    }