我正在尝试使用正则表达式过滤器匹配 SPARQL 中的一个单词,但没有成功...:/我将查询发送到位于“http://dbtune.org/musicbrainz/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 行 (. ?artist foaf:name "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"))
}
我不知道是我做错了什么还是端点的错误...
有人可以帮助我吗?