Я новичок в SPARQL и немного застрял на части задания, которое у меня есть. Я запрашиваю dbpedia для всех стран в Европейском Союзе, где общая численность населения> = 3000000. Для каждой страны я хотел бы показать соответствующий тип правительства. Я хотел бы, чтобы окончательный набор результатов содержал 3 столбца:
- английская метка для каждой страны
- английская метка для каждого типа правительства
- общая численность населения
и затем сортируется по убыванию по общей численности населения.
PREFIX dct: <http://purl.org/dc/terms/>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dbp: <http://dbpedia.org/property/>
PREFIX dbrc: <http://dbpedia.org/resource/Category:>
SELECT DISTINCT ?country xsd:integer(?populationTotal) ?government_type ?engName ?gov_type
WHERE {
?country dct:subject dbrc:Member_states_of_the_European_Union ;
a dbo:Country ;
rdfs:label ?engName .
OPTIONAL { ?country dbo:governmentType ?government_type . ?government_type rdfs:label ?gov_type . }
OPTIONAL { ?country dbo:populationTotal ?populationTotal . }
FILTER (xsd:integer(?populationTotal) >= 3000000 && langMatches(lang(?engName), "en"))
FILTER (langMatches(lang(?gov_type), "en"))
} ORDER BY DESC(?populationTotal)
Мне удалось получить dbpedia для возврата всей необходимой мне информации, однако я бы хотел оставить только столбцы выше в маркированных точках, а не столбец страны. Я знаю, что должен быть способ вернуть эту страну напрямую с лейблом, но у меня проблемы с приближением к решению ...