новичок в SPARQL. Попытка выяснить, почему я получаю разные результаты по этим двум запросам. Он основан на этом другом вопросе , где я пытаюсь сопоставить свойства с именем человека. Например, мне любопытно знать день рождения Джоан Роулинг, не зная ее URI напрямую. Вот код по ссылке выше:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT *
WHERE
{
?item rdfs:label ?itemLabel .
FILTER ( ?itemLabel = "Car"@en ) .
?item dbo:abstract ?itemDescription .
FILTER (lang(?itemDescription) = 'en')
}
ORDER BY ?itemLabel
по сравнению с запросом, который я хотел бы с JK:
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT *
WHERE
{
?item rdfs:label ?itemLabel .
FILTER ( ?itemLabel = "J.K. Rowling"@en ) .
?item dbo:abstract ?itemDescription .
FILTER (lang(?itemDescription) = 'en')
}
ORDER BY ?itemLabel
Первый, однако, работает нормально, когда я заменяю "Автомобиль" "с" JK Rowling ", как во втором, ничего не возвращается (ее URI возвращается, если я удалю строку dbo: abstract и строку фильтра для нее). У Джоан Роулинг действительно есть dbo: abstract на английском языке sh. Я не уверен, почему это работает для одного и не другого. Единственное, что я могу видеть, что этот «Автомобиль» - это «Вещь», а Дж. К. - «человек»