对于我当前的项目,我需要从dbpedia中提取信息。我拥有的唯一信息是资源的标签。
举个例子:
我有资源" car"。现在我想得到,例如摘要。 有没有办法用SPARQL来解决这个问题?
答案 0 :(得分:3)
如果您按标签查看,例如:
SELECT distinct ?item ?itemLabel ?itemDescription WHERE{
?item ?label "Car"@en.
?article schema:about ?item .
?article schema:inLanguage "en" .
?article schema:isPartOf <https://en.wikipedia.org/>.
SERVICE wikibase:label { bd:serviceParam wikibase:language "en". }
}
你得到几件物品:
您可以在Wikidata Query Page上看到它。 (我更喜欢维基数据查询服务到DBpedia)。
因此,您需要指定一些额外的参数才能获得所需的项目。
答案 1 :(得分:2)
其他答案并没有从DBpedia获得结果,这就是您所说的。您还不清楚是否需要标记包含您已知字符串的资源的结果,或 您已知的字符串。
一些与查询表单和结果直接相关的示例,假设您只关心英文摘要和标签......
car
(live results)PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
PREFIX bif: <bif:>
SELECT DISTINCT ?itemLabel
?item
?itemDescription
WHERE
{
?item rdfs:label ?itemLabel .
?itemLabel bif:contains "car" .
?item dbo:abstract ?itemDescription .
FILTER (lang(?itemDescription) = 'en')
FILTER (lang(?itemLabel) = 'en')
}
ORDER BY ?itemLabel
"Car"@en
(live results)PREFIX rdfs: <http://www.w3.org/2000/01/rdf-schema#>
PREFIX dbo: <http://dbpedia.org/ontology/>
SELECT DISTINCT *
WHERE
{
?item rdfs:label ?itemLabel .
FILTER ( ?itemLabel = "Car"@en ) .
?item dbo:abstract ?itemDescription .
FILTER (lang(?itemDescription) = 'en')
}
ORDER BY ?itemLabel