Как я могу запросить профиль страны с помощью DBPedia, например http://dbpedia.org/page/France, и получить такую собственность, как язык?
Давайте начнем с самого начала, так как вы не говорите, что попробовали.
DBpedia – это база данных о так называемых ресурсах : факты, полученные из статей Википедии, хранящихся в виде тройных RDF. Ресурсы идентифицируются с помощью URI; DBpedia использует форму http://dbpedia.org/resource/*
где *
совпадает с *
в http://en.wikipedia.org/wiki/*
.
Итак, у DBpedia есть факты о ресурсе http://dbpedia.org/resource/France . Если вы посмотрите этот ресурс в своем браузере, вы будете перенаправлены на http://dbpedia.org/page/France , потому что страна Франция не может быть отображена в вашем браузере, но описание этого может быть.
Среди фактов, которые DBpedia знает
<http://dbpedia.org/resource/France> <http://dbpedia.org/ontology/language> <http://dbpedia.org/resource/French_language>
в котором в основном говорится, что «французский язык» является французским языком ».
Чтобы получить этот факт через API, вы можете использовать стандартный язык запросов RDF и протокол SPARQL . Конечная точка DBpedia SPARQL , в которую вы отправляете запросы SPARQL в DBpedia, имеет веб-форму, позволяющую вводить и отправлять запросы. Если вы просто хотите, чтобы в таблице HTML отображался язык, на котором говорят во Франции, оставьте настройки формы по умолчанию и используйте:
select ?language ?languageName where { dbpedia:France dbpedia-owl:language ?language . ?language rdfs:label ?languageName . }
что означает: «Дайте мне ресурс (ы), который Франция использует в качестве языка, и имя (имена)».
dbpedia:France
подходит для <http://dbpedia.org/resource/France>
, а dbpedia-owl:language
подходит для <http://dbpedia.org/ontology/language>
.
Если вам нужны страны и языки, на которых говорят в этих странах, используйте:
select distinct ?country ?language where { ?country a dbpedia-owl:Country . ?country dbpedia-owl:language ?language . } LIMIT 100
что означает: «Дайте мне 100 комбинаций ресурсов, которые являются странами и ресурсами, которые эти страны используют в качестве языка».
Есть нюансы, которые я забыл, но это должно заставить вас начать.
Как отмечает @Bergi в комментариях, см. http://wiki.dbpedia.org/OnlineAccess для списка возможных методов онлайн-доступа.
Если они не предоставят какой-либо API, ваш единственный выбор – «скринировать» страницу – другими словами, загружать страницу с помощью curl (или какого-либо другого метода), а затем искать «dbpedia-owl: language» и получать строку (dbpedia: French_language) и проанализируйте его, чтобы сделать его более приятным.