如何使用dbPedia递归地提取子类别中的所有文章?
How to extract all articles in subcategories recursively using dbPedia?
我需要提取有关位于给定类别(例如,历史)的不同嵌套子类别的文章(例如,摘要、缩略图)的信息。
我如何使用 SPARQL 查询来做到这一点?或者,使用几个 SPARQL 子查询在 python 上执行此操作的最佳方法是什么?
这得到所有递归(或传递)窄于 "History" 的 ?sc
"subcategories",直到深度为 3。我用 {minDepth,maxDepth}
实现了它Virtuoso 理解的符号。其他三元组可能不理解。我还在字符串文字上添加了英语语言过滤,同时仍保留带有 IRI 的三元组 ?o
。
SELECT ?sc ?lab ?p ?o
WHERE {
?sc skos:broader{1,3} <http://dbpedia.org/resource/Category:History> .
optional {?sc rdfs:label ?lab } .
?sc ?p ?o
filter (lang(?lab) = "en")
filter ((lang(?o) = "en") || isURI(?o))
}
此外,该查询报告了所有以 ?sc
为主题的三元组。我没有看到任何摘要(使用 <http://dbpedia.org/ontology/abstract>
作为谓词?)或任何缩略图关系。您可以通过仅投影 distinct ?p
或什至计数来确认:
SELECT ?p (count(?p) as ?pcount)
WHERE {
?sc skos:broader{1,3} <http://dbpedia.org/resource/Category:History> .
optional {?sc rdfs:label ?lab } .
?sc ?p ?o
filter (lang(?lab) = "en")
filter ((lang(?o) = "en") || isURI(?o))
}
group by ?p
order by desc(?pcount)
如果你做更深层次的递归,你会发现一些抽象。但是深度递归很慢,我觉得我在概念上遗漏了一些东西。
SELECT *
WHERE {
?sc skos:broader{5,7} <http://dbpedia.org/resource/Category:History> .
?sc <http://dbpedia.org/ontology/abstract> ?a
}
我需要提取有关位于给定类别(例如,历史)的不同嵌套子类别的文章(例如,摘要、缩略图)的信息。 我如何使用 SPARQL 查询来做到这一点?或者,使用几个 SPARQL 子查询在 python 上执行此操作的最佳方法是什么?
这得到所有递归(或传递)窄于 "History" 的 ?sc
"subcategories",直到深度为 3。我用 {minDepth,maxDepth}
实现了它Virtuoso 理解的符号。其他三元组可能不理解。我还在字符串文字上添加了英语语言过滤,同时仍保留带有 IRI 的三元组 ?o
。
SELECT ?sc ?lab ?p ?o
WHERE {
?sc skos:broader{1,3} <http://dbpedia.org/resource/Category:History> .
optional {?sc rdfs:label ?lab } .
?sc ?p ?o
filter (lang(?lab) = "en")
filter ((lang(?o) = "en") || isURI(?o))
}
此外,该查询报告了所有以 ?sc
为主题的三元组。我没有看到任何摘要(使用 <http://dbpedia.org/ontology/abstract>
作为谓词?)或任何缩略图关系。您可以通过仅投影 distinct ?p
或什至计数来确认:
SELECT ?p (count(?p) as ?pcount)
WHERE {
?sc skos:broader{1,3} <http://dbpedia.org/resource/Category:History> .
optional {?sc rdfs:label ?lab } .
?sc ?p ?o
filter (lang(?lab) = "en")
filter ((lang(?o) = "en") || isURI(?o))
}
group by ?p
order by desc(?pcount)
如果你做更深层次的递归,你会发现一些抽象。但是深度递归很慢,我觉得我在概念上遗漏了一些东西。
SELECT *
WHERE {
?sc skos:broader{5,7} <http://dbpedia.org/resource/Category:History> .
?sc <http://dbpedia.org/ontology/abstract> ?a
}