使用SPARQL检索dbpedia主题类别
有没有办法从dbpedia中的使用SPARQL检索dbpedia主题类别,sparql,dbpedia,Sparql,Dbpedia,有没有办法从dbpedia中的dcterms:subject检索所有类别 例如,在中,我可以在dcterms:subject中看到以下类别: 类别:前世界最高建筑 类别:对摄影有限制的地方 类别:米其林指南星级餐厅和厨师 类别:历史建筑、土木工程、标志性建筑 类别:1889_建筑 我希望检索dbpedia中的所有category:xxx值。 有什么办法吗?如果您使用以下SPARQL查询进行计数查询,以查看dbpedia中有多少类别: SELECT COUNT(DISTINCT ?categ
dcterms:subject
检索所有类别
例如,在中,我可以在dcterms:subject中看到以下类别:
- 类别:前世界最高建筑
- 类别:对摄影有限制的地方
- 类别:米其林指南星级餐厅和厨师
- 类别:历史建筑、土木工程、标志性建筑
- 类别:1889_建筑
category:xxx
值。
有什么办法吗?如果您使用以下SPARQL查询进行计数查询,以查看dbpedia中有多少类别:
SELECT COUNT(DISTINCT ?category) AS ?count WHERE {?subject dcterms:subject ?category}
您将看到dbpedia有503788个类别。如果查询所有类别,端点将不会提供整个503788类别,因为它对您可以返回的结果数量有上限。但您可以使用“限制”和“偏移量”发出多个查询。例如,要获取前1000个类别,可以执行以下查询:
SELECT DISTINCT ?category WHERE {?subject dcterms:subject ?category} LIMIT 1000 OFFSET 0
我不知道您将如何使用这些信息,但我的建议是运行多个查询并递增偏移量(例如,1000、2000、3000),并将结果缓存在您使用的任何存储中。您基本上可以编写一个执行查询并将结果放入缓存的程序
但是请记住,DBPedia中的类别是分层的,因此一个类别是来自其他几个类别的borader类别 或直接运行:
选择{类别a}限制为1000的类别
有关此问题的更多答案,请参阅重复问题