簡體   English   中英

使用SPARQL檢索dbpedia主題類別

[英]Retrieve dbpedia subject categories with SPARQL

有沒有辦法從dcterms:subject檢索所有類別dcterms:subject dbpedia中的dcterms:subject

例如,在http://dbpedia.org/page/Eiffel_Tower中,我可以在dcterms中看到:主題如下:

  • 類別:Former_world's_tallest_buildings
  • 類別:Places_with_restrictions_on_photography
  • 類別:Michelin_Guide_starred_restaurants_and_chefs
  • 類別:Historic_Civil_Engineering_Landmarks
  • 類別:1889_architecture
  • ...

我希望檢索所有category:xxx dbpedia中的category:xxx值。 有辦法嗎?

如果您使用以下SPARQL查詢執行COUNT查詢以查看dbpedia中有多少類別:

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

你會得到dbpedia有503788類別。 如果您查詢所有類別,端點將不會為您提供整個503788類別,因為它會限制您可以獲得多少結果。 但是您可以使用LIMIT和OFFSET發出多個查詢。 例如,要獲取前1000個類別,您可以執行以下查詢:

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

我不知道你將如何使用這些信息,但我的建議是運行多個查詢並增加偏移量(例如1000,2000,3000)並將結果緩存到您正在使用的任何存儲中。 您基本上可以編寫一個執行查詢的程序,並將結果放在緩存中。

但請記住,DBPedia中的類別是分層的,因此一個類別是來自其他幾個類別的borader類別。

或者只是運行:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM