2016-05-31 14 views
1

Ich möchte 100 Seiten von Wikipedia crawlen, also möchte ich die wikiPageID jedes Mal um 1 erhöhen. Wie kann ich es tun?Wie automatisch eine Variable in Sparql inkrementieren?

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

einen Filter auf dem Objekt anstelle des Wertes Verwenden '57570'. – AKSW

+0

@AKSW Würden Sie eine Illustration in eine Antwort einfügen? Ich denke, ich verstehe deinen Ratschlag, würde aber gerne deine Antwort sehen, damit ich sie auch testen kann. –

+1

@JayGray Statt '' saket dbo: wikiPageID 57570.' machen Sie so etwas wie '? Saket dbo: wikiPageID? WikiPageId. filter (57570 <=? wikiPageId &&? wikiPageId <= 57670) '. –

Antwort

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.} 
    }