Я пытаюсь использовать запрос SPARQL для получения информации о ресурсе DBpedia (человек). Я хотел бы использовать тот же запрос для получения данных о любом человеке путем параметризации URI ресурса. Поскольку некоторые атрибуты могут не существовать для конкретного ресурса, я использую оператор OPTIONAL. Вот мой запрос:
PREFIX rdfs:
PREFIX dbo:
PREFIX dbpprop:
PREFIX foaf:
SELECT DISTINCT ?label ?abstract ?placeOfBirth
?birthPlace ?birthDate ?deathDate ?page ?thumbnail
WHERE {
rdfs:label ?label ;
dbo:abstract ?abstract ;
foaf:page ?page .
OPTIONAL {
dbpprop:placeOfBirth ?placeOfBirth ;
dbpprop:birthPlace ?birthPlace ;
dbo:birthDate ?birthDate ;
dbo:deathdate ?deathDate ;
dbo:thumbnail ?thumbnail .
}
FILTER (LANG(?label) = 'en')
FILTER (LANG(?abstract) = 'en')
}
LIMIT 1
Я оставил все, кроме метки, аннотации и страницы в ДОПОЛНИТЕЛЬНО, поскольку, если я использую тот же запрос для другого человека, он может не иметь этих свойств. Проблема в, ни один из этих необязательных атрибутов не отображается в результатах. В случае с Нилом Саймоном вы можете видеть, что существуют значения для BirthDate, BirthPlace и thumbnail: http://dbpedia.org/resource/Neil_Simon . Однако эти значения не отображаются, когда я запускаю запрос: DBpedia SPARQL query . Что я делаю не так и как я могу при желании получить эти свойства?