我试图通过使用正则表达式筛选器匹配SPARQL中的一个词,但没有成功......:/ 我将查询发送到位于“http://dbtune.org/”的端点MusicBrainz上/ SPARQL”。 好了,下面的查询工作:SPARQL正则表达式筛选器
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX mo: <http://purl.org/ontology/mo/>
SELECT ?artist ?name
WHERE {
?artist a mo:MusicArtist
. ?artist foaf:name "Switchfoot"
. ?artist foaf:name ?name
. FILTER(regex(str(?name), "switchfoot", "i"))
}
但是,如果我删除行7(艺术家FOAF:?名 “Switchfoot的”),下面的查询不匹配:
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX mo: <http://purl.org/ontology/mo/>
SELECT ?artist ?name
WHERE {
?artist a mo:MusicArtist
. ?artist foaf:name ?name
. FILTER(regex(str(?name), "switchfoot", "i"))
}
我不知道我是否做错了或者是端点的错误...
有人能帮助我吗?
这可能是一个bug(如你所说)或某种查询限制。我想知道他们使用了什么终端? – user205512 2012-07-06 14:57:21
端点是“http://dbtune.org/musicbrainz/sparql”... 我做了一个测试,我意识到该端点限制结果为1000.我发送了以下查询: SELECT count(?艺术家) WHERE {?艺术家莫:MusicArtist} 它返回1000,这太少了... 我想也许它确实是一个bug ... =/ – 2012-07-06 15:02:00