有没有办法从dcterms中检索所有类别:dbpedia中的主题? 例如,在http://dbpedia.org/page/Eiffel_Tower我可以在dcterms中看到:主题如下: 类别:Former_world’s_tallest_buildings category:Places_with_restrict
例如,在http://dbpedia.org/page/Eiffel_Tower我可以在dcterms中看到:主题如下:
>类别:Former_world’s_tallest_buildings
> category:Places_with_restrictions_on_photography
>类别:Michelin_Guide_starred_restaurants_and_chefs
>类别:Historic_Civil_Engineering_Landmarks
>类别:1889_architecture
> ……
我希望检索所有类别:dbpedia中的xxx值.
有办法吗?
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类别.