Получить место рождения людей из DBpedia в SPARQL - PullRequest
1 голос
/ 06 апреля 2019

У меня есть следующий код для извлечения всех людей, которые родились в Барселоне

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?person ?birthPlace
WHERE {

   ?person rdfs:label ?label.
   ?person rdf:type dbo:Person.
   ?person <http://dbpedia.org/property/birthPlace> 
<http://dbpedia.org/resource/Barcelona>.

}

Однако я не знаю, как получить birthPlace.Я хочу переменную, которая говорит рядом с каждым именем, что Барселона является местом рождения.Есть идеи?

1 Ответ

1 голос
/ 06 апреля 2019

Как насчет этого:

PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>

SELECT ?person ?birthPlace
WHERE {
   ?person rdfs:label ?label.
   ?person rdf:type dbo:Person.
   ?person <http://dbpedia.org/property/birthPlace> ?birthPlace.
   FILTER (?birthPlace = <http://dbpedia.org/resource/Barcelona>)
}

Обратите внимание, что в вашем запросе есть шаблон для соответствия меткам, но метки не возвращаются. Это приводит к дублированию результатов, потому что у некоторых людей есть несколько ярлыков (на разных языках). Удалите шаблон или добавьте ?label к предложению SELECT.

Вы можете сократить <http://dbpedia.org/property/birthPlace> до dbp:birthPlace.

...