Получить только английские значения и целые числа из dbpedia
Я пытаюсь получить только английские значения и, возможно, целые числа из dbpedia. Например, следующий запрос SPARQL
PREFIX owl: <http://www.w3.org/2002/07/owl#>
PREFIX xsd: <http://www.w3.org/2001/XMLSchema#>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>
PREFIX foaf: <http://xmlns.com/foaf/0.1/>
PREFIX dc: <http://purl.org/dc/elements/1.1/>
PREFIX dbr: <http://dbpedia.org/resource/>
PREFIX dbpedia2: <http://dbpedia.org/property/>
PREFIX dbpedia: <http://dbpedia.org/>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX dbo: <http://dbpedia.org/ontology/>
select distinct ?p ?o where {
dbr:Cristiano_Ronaldo ?p ?o
filter(langMatches(lang(?o),'en'))}
}
Правильно возвращает английские значения. Однако он пропустил важные детали, такие как дата рождения, рост, количество заглавных букв и т. Д., Потому что это целое число. Как сделать набор результатов RDF, который состоит из надлежащего набора информации о Криштиану Роналду?
1 ответ
Решение
PREFIX dbr: <http://dbpedia.org/resource/>
SELECT DISTINCT ?p ?o where {
dbr:Cristiano_Ronaldo ?p ?o
BIND(datatype(?o) as ?dt)
FILTER(IF(isliteral(?o) && !bound(?dt), langMatches(lang(?o),'en'), true))
}