SPARQL

2011-06-16 15 views
6
ile dbpedia konu kategorilerini geri alma

dbpedia içinde dcterms:subject tüm kategorileri almanın bir yolu var mı?SPARQL

  • kategori: Former_world's_tallest_buildings
  • kategori: Places_with_restrictions_on_photography
  • kategori: Michelin_Guide_starred_restaurants_and_chefs
  • kategori: Historic_Civil_Engineering_Landmarks aşağıdaki kategorileri tabi: Ben dcterms görebileceğiniz http://dbpedia.org/page/Eiffel_Tower bir örnek olarak

    ,
  • kategori: 1889_ mimarlık
  • ...

Ben dbpedia tüm category:xxx değerleri almak istiyoruz. Bir yolu var mı?

+0

Bu konuda daha fazla cevaplar için http://answers.semanticweb.com/questions/10252/retrive-dbpedia-subject-categories-with-sparql de yinelenen soruya bakın – RobV

cevap

7

Bir aşağıdaki SPARQL sorgu kullanarak dbpedia kaç kategoriler görmek için bir COUNT sorgusu yapmak giderseniz:

SELECT COUNT(DISTINCT ?category) AS ?count WHERE {?subject dcterms:subject ?category} 

o dbpedia 503.788 kategorisi vardır alırsınız. Eğer tüm kategorileri sorgularsanız, sonuç noktası kaç sonuç alabileceğinizden dolayı 503788 kategorisini size vermeyecektir. Ancak, LIMIT ve OFFSET kullanarak çok sayıda sorgu gönderebilirsiniz. örnek ilk 1000 kategori almak için için aşağıdaki sorguyu yapabilirsiniz:

SELECT DISTINCT ?category WHERE {?subject dcterms:subject ?category} LIMIT 1000 OFFSET 0 

Sana bu bilgiyi kullanacağız bilmiyorum ama benim tavsiye artan ile birden fazla sorgu çalıştırmak olacaktır ofset (örn 1000, 2000, 3000) ve kullandığınız depolama alanı için sonuçları önbelleğe alın. Temel olarak, sorguları yürüten ve sonuçları önbelleğe yerleştiren bir program yazabilirsiniz.

Ancak, DBPedia'daki kategorilerin hiyerarşik olduğunu unutmayın, bu nedenle bir kategori, diğerlerinden gelen bir kategoridür.

1

Veya sadece çalıştırın:

SELECT ?category WHERE { ?category a <http://www.w3.org/2004/02/skos/core#Concept> } LIMIT 1000

İlgili konular