正規表現フィルタを使用してSPARQLの単語を1つ一致させようとしていますが、成功しません:/ "http://dbtune.org/"にあるエンドポイントにクエリを送信していますmusicbrainz/sparql "と入力します。 さて、次のクエリが動作します。SPARQL regex filter
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。?:名称 "スウィッチフット")を削除した場合、次のクエリが一致していませんが:
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"))
}
私は私が間違って何かをしているのか、それともエンドポイントのバグなのか分かりません...
誰か助けてもらえますか?
これは、(あなたが言うように)バグか何らかの種類のクエリスロットルのいずれかを襲う。彼らはどのエンドポイントを使用しているのだろうか? – user205512
エンドポイントは "http://dbtune.org/musicbrainz/sparql"です... 私はテストを行いました。そのエンドポイントで結果が1000に制限されていることに気付きました。次のクエリを送信しました: SELECT count(?アーティスト) WHERE {?artist a mo:MusicArtist} それは1000を返したが、小さすぎると... おそらくバグだと思うかもしれない... =/ –