Estoy tratando de hacer coincidir una palabra en SPARQL utilizando el filtro de expresiones regulares, pero sin éxito ...:/ Estoy enviando la consulta al punto final ubicado en "http://dbtune.org/ musicbrainz/sparql ". Bueno, la siguiente consulta funciona: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"))
}
Pero, si quito la línea 7 (artista foaf:.? Nombre de "Switchfoot"), la siguiente consulta no coincide:
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 no sé si estoy haciendo algo mal o es un error del punto final ...
¿Alguien me puede ayudar?
Eso huele ya sea a un error (como dices) o a algún tipo de aceleración de consultas. Me pregunto qué punto final usan? – user205512
El punto final es "http://dbtune.org/musicbrainz/sparql" ... He realizado una prueba y me di cuenta de que ese punto final limita los resultados a 1000. Envié la siguiente consulta: SELECT count (? artista) DONDE {? artist a mo: MusicArtist} Y devolvió 1000, que es muy poco ... Creo que tal vez es realmente un error ... =/ –