Как правильно использовать SPARQL OPTIONAL для получения атрибутов для ресурса, который может существовать?

Я пытаюсь использовать запрос 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 . Что я делаю не так и как я могу при желании получить эти свойства?

13
задан w5m 1 November 2013 в 14:58
поделиться