2012-07-02 4 views
1

Я пару лет назад общался с DBpedia и нашел его увлекательным, но теперь, когда я хочу выполнить запрос, не используя его целую вечность, я считаю его полностью непроницаемым.Как найти все страницы Википедии, которые являются членами двух категорий, используя DBpedia?

Какой запрос SPARQL я должен получить для извлечения набора всех страниц Википедии, которые являются членами как «Категория ABC», так и «Категория XYZ»?

Все примеры, которые я могу найти, кажутся немного более сложными, чем мой, казалось бы, основной вопрос, затрудняющий перераспределение чего-то минимального.

(В качестве примера я хотел бы найти все австралийские игрок, которые играли в профессиональный футбол для итальянских команд.)

ответ

2

Связь между ресурсами и категориями представлена ​​с использованием dcterms:subject отношения (как вы можете увидеть, если вы например, в представление DBPedia для Elvis Presley).

Так запросить все ресурсы, которые принадлежат к двум категориям (например, «американские мужчины певцов» и «идентичные близнецы»), просто сделать это:

SELECT ?res  
WHERE { 
?res dcterms:subject category:American_male_singers, category:Identical_twins . 
} 

В общем, при попытке сформулировать SPARQL запросов над DBPedia, он помогает сначала просмотреть немного (например, я посмотрел страницу Элвиса), чтобы выяснить, какие свойства и отношения доступны.

Edit Этот запрос, кстати, получает сами ресурсы DBpedia. Если вы хотите, чтобы получить фактические страницы Википедии, вы должны адаптировать свой запрос следующим образом:

SELECT ?wikiPage 
WHERE { 
?res dcterms:subject category:American_male_singers, category:Identical_twins ; 
     foaf:page ?wikiPage . 
} 
+0

я попробовать осматриваться техникой, как раньше, но я забыл так много основ, что я был поражен , Ваш ответ был даже проще, чем я себе представлял - отлично! – hippietrail

Смежные вопросы