Я использую приведенный ниже код для запроса полов по FOAF-связанным данным. Функция работает, когда я ищу 'Лук ie', но не 'Дэвид Боу ie'.
sparql_foaf <- function(term) {
endpoint <- "http://live.dbpedia.org/sparql"
prefix <- c("db","http://dbpedia.org/resource/",
"rdfs","http://www.w3.org/2000/01/rdf-schema#",
"foaf","http://xmlns.com/foaf/0.1/")
query <- paste0("
SELECT str(?lbl) as ?names_r, str(?gender) as ?gender WHERE {
?sub a foaf:Person .
?sub rdfs:label ?lbl .
FILTER regex(?lbl, 'Bowie')
FILTER(langMatches(lang(?lbl), 'en'))
OPTIONAL {?sub foaf:gender ?gender}
}
LIMIT 1")
SPARQL(endpoint,query,ns=prefix)$results
}
Проблема заключается в том, что Лук ie работает
FILTER regex(?lbl, 'Bowie')
А Дэвид Боу ie не
FILTER regex(?lbl, 'David Bowie')
Проблема, скорее всего, проста, и я упускаю из виду библиотеку SPARQL. Тем не менее, запрос работает должным образом в среде запроса: https://api.triplydb.com/s/r8cBeIuo
Не хватает ли какой-либо техники включения символов для пробелов в библиотеке SPARQL R?