通过SPARQL获取维基数据实体描述

时间:2018-04-15 23:35:49

标签: sparql virtuoso wikidata wikidata-api

我在https://stackblitz.com/edit/stackoverflow-49847806-kdjhdc?file=app%2Fservices%2Ftruck.service.ts上找到了以下代码段,该代码段从维基数据中返回美国公民的名称和说明:

prefix wdt: <http://www.wikidata.org/prop/direct/>
prefix wd: <http://www.wikidata.org/entity/>
PREFIX wikibase: <http://wikiba.se/ontology#>
SELECT ?Name ?itemDescription WHERE {
  ?item wdt:P27 wd:Q30 .
  ?item rdfs:label ?Name
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "en" .
   }
}
LIMIT 3

可以在opendata.stackexchange.com

评估查询

我试图获得特定实体的描述,例如Q3(生命)。但在这种情况下,https://query.wikidata.org/不会返回任何内容。

prefix wdt: <http://www.wikidata.org/prop/direct/>
prefix wd: <http://www.wikidata.org/entity/>
PREFIX wikibase: <http://wikiba.se/ontology#>
SELECT ?Name ?itemDescription WHERE {
    wd:Q3 rdfs:label ?Name
    SERVICE wikibase:label { bd:serviceParam wikibase:language "en" }
}

LIMIT 3
编辑:我使用的是Virtuoso,因此不能依赖维基数据标签服务。

1 个答案:

答案 0 :(得分:1)

我正在使用

PREFIX wd: <http://www.wikidata.org/entity/>
PREFIX schema: <http://schema.org/>

SELECT ?o
WHERE 
{
  wd:Q3 schema:description ?o.
  FILTER ( lang(?o) = "en" )
}

现在,因为我正在查询具有全文搜索功能的Virtuoso服务器,最好一次性使用其他属性检索描述。