2014-06-12 224 views
3

我想獲得個人的#peakHour是「19」AND #peakDay是「星期天」。 (如在SQL它將東西是:SELECT * From abc WHERE peakHour = "19" AND PeakDay = "Suday"Sparql查詢where子句

以下SPARQL查詢工作正常,但它是不完整的。我不知道如何添加(和#peakDay =「星期天」),以SPARQL查詢

SELECT ?x WHERE 
{ ?x <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#filePeakHour> "19" } 

請指導我如何添加AND關鍵字SPARQL的WHEREclause查詢

回答

3

有很多的例子在說明書中,SPARQL 1.1 Query Language,其中包括在2.2 Multiple Matches

PREFIX foaf: <http://xmlns.com/foaf/0.1/> 
SELECT ?name ?mbox 
WHERE 
    { ?x foaf:name ?name . 
    ?x foaf:mbox ?mbox } 

有沒有結合或SPARQL連接運算符。當你寫多個模式時,他們全部必須匹配。有關更多信息,請參閱my answersparql join query explanation hows its working?。 (這不是一個很好的問題,但它解釋了連接在SPARQL中是隱含的)。那麼你的查詢會是什麼樣子?

我將使用前綴,使您的查詢更容易閱讀。您提到了#PeakDay#PeekHour,但您的URI實際上是...#filePeakDay...#filePeakHour。不過,使用前綴,您可以只寫:PeakHour:PeakDay

prefix : <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#file> 

select ?x where { 
    ?x :PeakHour "19" . 
    ?x :PeakDay "Sunday" . 
} 

如果你願意,你可以使用一些語法糖,以使該短一點:

prefix : <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#file> 

select ?x where { 
    ?x :PeakHour "19" ; 
    :PeakDay "Sunday" . 
}