sparql - 如何获取维基百科页面可用的语言数量?(SPARQL 查询)
问题描述
我正在尝试列出 1980 年以来的意大利书籍列表,以及其原始 Wikipedia 页面已被翻译成的 Wikipedia 页面数量,例如,我想拥有:
Book, number
The name of the Rose, 5
其中 5 是玫瑰的名字在维基百科中被翻译成的语言数量,例如有一个英语维基页面、一个荷兰语页面、一个西班牙语页面、一个法语页面、一个希腊语页面。
这是到目前为止的查询:
SELECT ?item ?label
WHERE
{
VALUES ?type {wd:Q571 wd:Q7725634} # book or literary work
?item wdt:P31 ?type .
?item wdt:P577 ?date FILTER (?date > "1980-01-01T00:00:00Z"^^xsd:dateTime) . #dal 1980
?item rdfs:label ?label filter (lang(?label) = "it")
?item wdt:P495 wd:Q38 .
}
我得到了书籍清单,但找不到合适的财产。
解决方案
你真的在你的例子中得到了玫瑰的名字吗?因为它的发布日期设置为1980
(这是= 1980-01-01
出于我们的目的),所以我不得不将您的查询更改为>=
比较。
然后,使用评论中提到的COUNT()
andGROUP BY
可以得到你想要的。但是,如果您真的只需要站点链接的数量,那么有一个捷径可能会很有用。添加它是因为该数字通常用作衡量项目受欢迎程度的良好指标,并且使用预先计算的数字比获取所有链接、分组和计数要有效得多。
SELECT ?book ?bookLabel ?sitelinks ?date WHERE {
VALUES ?type { wd:Q571 wd:Q47461344 wd:Q7725634 }
?book wdt:P31 ?type;
wdt:P577 ?date;
wdt:P495 wd:Q38;
wikibase:sitelinks ?sitelinks.
FILTER((?date >= "1980-01-01T00:00:00Z"^^xsd:dateTime) && (?date < "1981-01-01T00:00:00Z"^^xsd:dateTime))
SERVICE wikibase:label { bd:serviceParam wikibase:language "it,en". }
}
请注意,这些值可能与带有 group 和 count 的版本略有不同,因为此处还包括commons
或等站点。wikiquote
推荐阅读
- html - 优化 filterpredicate 以支持数据源超过 80k 条记录的角度 mat 表
- jquery - 导航栏中的下拉菜单在 Rails 6 中不起作用
- c# - Xamarin 形式 - 获取值时,MVVM 可观察集合始终为 0
- python - 如何在 C 中制作类似于 Python 的输出函数?
- java - Java 和 C# Unity3d 之间的内存映射文件
- android - 将 SSL 证书 bye[] 数组从 jni 带到 Flutter
- ios - 如何在 iOS 14 中使用 swift 实现 CoreNFC
- django - 如何在 datefield django 中过滤 spetember?
- javascript - 注入新 HTML 的 JavaScript 函数
- 进入 HTML
- c++ - 为什么 ushort 在 VSCode 中被识别为内置类型?