我想要获取#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" }
Run Code Online (Sandbox Code Playgroud)
请指导我如何AND在 Sparql 查询的 WHERE 子句中添加关键字
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 }
Run Code Online (Sandbox Code Playgroud)
SPARQL 中没有合取或连接运算符。当您编写多个模式时,它们都必须匹配。请参阅我对sparql join 查询解释的回答它是如何工作的?有关于此的更多信息。(这不是一个很好的问题,但它解释了 SPARQL 中隐含的连接)。那么您的查询会是什么样子?
我将使用前缀来使您的查询更易于阅读。您提到了#PeakDay和#PeekHour,但您的 URI 实际上是...#filePeakDay和...#filePeakHour。不过,使用前缀,您可以只写:PeakHourand :PeakDay。
prefix : <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#file>
select ?x where {
?x :PeakHour "19" .
?x :PeakDay "Sunday" .
}
Run Code Online (Sandbox Code Playgroud)
如果需要,您可以使用一些语法糖来使其更短:
prefix : <http://www.semanticweb.org/administrator/ontologies/2014/2/untitled-ontology-5#file>
select ?x where {
?x :PeakHour "19" ;
:PeakDay "Sunday" .
}
Run Code Online (Sandbox Code Playgroud)