我想获得#peakHour 为“19”且#peakDay 为“Sunday”的个人。 (就像在 SQL 中它会是: SELECT * From abc WHERE peakHour = "19" AND PeakDay = "Suday"
)
下面的 sparql 查询工作正常,但不完整。我不知道如何将(和 #peakDay = "Sunday")添加到 sparql 查询中
SELECT ?x WHERE
{ ?x <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#filePeakHour> "19" }
请指导我如何在 Sparql 查询的 WHEREclause 中添加
AND
关键字 最佳答案
规范中有很多示例 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 answer 到 sparql 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" .
}
关于rdf - Sparql 查询 where 子句,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24190477/