相关疑难解决方法(0)

SPARQL 查询只获取最近日期的结果

我正在使用芬兰司法部最近发布的 RDF 数据库学习 SPARQL 的基础知识。它包含芬兰法律数据。

有法规,有版本,有日期和主题。我想获得具有“枪”主题的最新版本。所以,我写了这个:

PREFIX sfl: <http://data.finlex.fi/schema/sfl/>
PREFIX eli: <http://data.europa.eu/eli/ontology#>
PREFIX skos: <http://www.w3.org/2004/02/skos/core#>
PREFIX rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>

SELECT ?stat ?vers ?dv 
WHERE { 
   ?stat rdf:type sfl:Statute .
   ?stat sfl:hasVersion ?vers .
   ?vers eli:version_date ?dv .
   ?vers eli:is_about ?top .
   ?top skos:prefLabel "Ase"@fi .

 } ORDER BY DESC(?dv)
Run Code Online (Sandbox Code Playgroud)

这将返回四行,三个法规,一个法规两次。这是因为该法规有两个版本,旧版本和当前版本。另外两个法规只有一个版本。

如何摆脱旧版本,以便仅获得最新版本的法规?我尝试使用类似的东西(MAX(?dv) AS ?ndv)并按 ?stat 和 ?vers 分组,但这不起作用,因为有四个不同的版本。

编辑:让我添加一个模拟示例来说明发生的情况。

原始查询的结果如下所示:

stat | vers | dv
 a   | abc  |  x
 a   | cde  |  y(<x)
 b   | foo  |  z …
Run Code Online (Sandbox Code Playgroud)

database rdf sparql

6
推荐指数
1
解决办法
2776
查看次数

有些城市不是城市或大城市的实例?维基数据的奇怪行为

在检查官方示例查询“大陆、国家、地区和首都”的结果(在https://query.wikidata.org/ 上,为了您的方便,这里仅限于德国:链接),我注意到德国联邦的一些首都状态丢失。例如威斯巴登作为黑森州的首府。我注意到与其他一些城市相比,威斯巴登是 的一个实例big city,但不是city(参见https://www.wikidata.org/wiki/Q1721)。我能够还包括那些的子类城市来缓解这一问题city,通过改变线路17 ?city wdt:P31/wdt:P279? wd:Q515
仍然失踪的四个城市之一是萨克森-安哈尔特州的首府马格德堡。
诊断查询

SELECT ?cityLabel ?props
WHERE {
  ?city wdt:P31 ?props.
  FILTER(?city = wd:Q1733 || ?city = wd:Q1726).
  SERVICE wikibase:label { bd:serviceParam wikibase:language "[AUTO_LANGUAGE],en". }
}
Run Code Online (Sandbox Code Playgroud)

显示 Magdeburg 甚至不是 的一个实例city,尽管它显然是根据其 Wikidata 页面https://www.wikidata.org/wiki/Q1733

我是 Wikidata 和 SPARQL 的新手。然而,这对我来说似乎是错误的。我该怎么做才能获得德国联邦州的所有首都?这种行为的原因是什么?

sparql wikidata

4
推荐指数
1
解决办法
566
查看次数

标签 统计

sparql ×2

database ×1

rdf ×1

wikidata ×1