sparql查询where子句

时间:2014-06-12 17:28:53

标签: rdf sparql

我希望得到#peakHour" 19"和#peakDay是"星期天"。 (就像在SQL中一样:SELECT * From abc WHERE peakHour = "19" AND PeakDay = "Suday"

下面的sparql查询工作正常,但它不完整。我不知道如何在sparql查询中添加(和#peakDay =" Sunday")

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

请指导我如何在Sparql Query的WHEREclause中添加AND关键字

1 个答案:

答案 0 :(得分:4)

规范中有很多示例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中没有连接或连接运算符。当您编写多个模式时,它们 all 必须匹配。有关详细信息,请参阅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" .
}