Próbuję dopasować jedno słowo w SPARQL za pomocą filtru regex, ale bez powodzenia ...:/ Wysyłam zapytanie do punktu końcowego znajdującego się pod adresem "http://dbtune.org/ musicbrainz/sparql ". Cóż, poniższa kwerenda działa:Filtr regex 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"))
}
Ale jeśli usunąć wiersz 7 (artysta foaf.? Nazwa "Switchfoot"), poniższa kwerenda nie pasuje:
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"))
}
I nie wiem, czy robię coś nie tak, czy to błąd punktu końcowego ...
Czy ktoś może mi pomóc?
To smack of a bug (jak mówisz) lub jakiegoś rodzaju dławienie zapytania. Zastanawiam się, z jakiego punktu końcowego korzystają? – user205512
Punkt końcowy jest „http://dbtune.org/musicbrainz/sparql” ... Zrobiłem test i zdałem sobie sprawę, że końcowy ogranicza wyniki do 1000. Wysłałem następujące zapytanie: SELECT count ( ? artysta) WHERE {? artist a mo: MusicArtist} I wrócił 1000, który jest zbyt mały ... Myślę, że może to naprawdę błąd ... =/ –