DBpedia 使用 sparql 获取页面类别
DBpedia getting page category using sparql
我正在使用 DBpedia 在 R 中使用 SPARQL 获取页面类别。但是,它存在一些问题。我使用的源代码:
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?categoryUri ?categoryName WHERE {
<http://dbpedia.org/resource/xxx> dcterms:subject ?categoryUri.
## xxx are random words (e.g. Agree, Film, Work, Plan...)
?categoryUri rdfs:label ?categoryName.
FILTER (lang(?categoryName) = "en")
}
问题是:
如果需要重定向的话(例如同意 -> 协议)无法检索类别
上面的源代码无法使用消歧页面,因为词的类别(例如Work)中有太多的子页面
那么,如何解决以上问题呢?如果有人能提供您的帮助,我将不胜感激!!!
SPARQL 只执行您编写的内容,因此背后没有魔法。如果某些资源 :s
可能通过 属性 :p
连接到其他资源,请添加三重模式 :s :p ?o .
- 有时您甚至可能会考虑使用 属性 路径在解决 :p
的传递闭包的情况下,即 :s :p* ?o .
.
重定向已解决:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT * WHERE
{ <http://dbpedia.org/resource/Agree> (dbo:wikiPageRedirects)* ?page
OPTIONAL
{ ?page dcterms:subject ?categoryUri}
}
注意OPTIONAL
子句,这里是必要的,因为并非DBpedia中的所有资源都属于一个类别。
包括消歧页面:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT * WHERE
{ <http://dbpedia.org/resource/Agree> (dbo:wikiPageRedirects)*/(dbo:wikiPageDisambiguates)* ?page
OPTIONAL
{ ?page dcterms:subject ?categoryUri}
}
我正在使用 DBpedia 在 R 中使用 SPARQL 获取页面类别。但是,它存在一些问题。我使用的源代码:
PREFIX dcterms: <http://purl.org/dc/terms/>
PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
SELECT ?categoryUri ?categoryName WHERE {
<http://dbpedia.org/resource/xxx> dcterms:subject ?categoryUri.
## xxx are random words (e.g. Agree, Film, Work, Plan...)
?categoryUri rdfs:label ?categoryName.
FILTER (lang(?categoryName) = "en")
}
问题是:
如果需要重定向的话(例如同意 -> 协议)无法检索类别
上面的源代码无法使用消歧页面,因为词的类别(例如Work)中有太多的子页面
那么,如何解决以上问题呢?如果有人能提供您的帮助,我将不胜感激!!!
SPARQL 只执行您编写的内容,因此背后没有魔法。如果某些资源 :s
可能通过 属性 :p
连接到其他资源,请添加三重模式 :s :p ?o .
- 有时您甚至可能会考虑使用 属性 路径在解决 :p
的传递闭包的情况下,即 :s :p* ?o .
.
重定向已解决:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT * WHERE
{ <http://dbpedia.org/resource/Agree> (dbo:wikiPageRedirects)* ?page
OPTIONAL
{ ?page dcterms:subject ?categoryUri}
}
注意OPTIONAL
子句,这里是必要的,因为并非DBpedia中的所有资源都属于一个类别。
包括消歧页面:
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX dcterms: <http://purl.org/dc/terms/>
SELECT * WHERE
{ <http://dbpedia.org/resource/Agree> (dbo:wikiPageRedirects)*/(dbo:wikiPageDisambiguates)* ?page
OPTIONAL
{ ?page dcterms:subject ?categoryUri}
}