了解维基数据日期属性的日期精度
Understanding date precision on Wikidata date properties
维基数据 API 提供基于日期的字段作为 datavalue$type == "time"。例如考虑哈佛大学成立日期(属性 值 == P571):
$mainsnak
$mainsnak$snaktype
[1] "value"
$mainsnak$property
[1] "P571"
$mainsnak$hash
[1] "5efb5e7d891727df657771128dcb0512f7f18e10"
$mainsnak$datavalue
$mainsnak$datavalue$value
$mainsnak$datavalue$value$time
[1] "+1636-01-01T00:00:00Z"
$mainsnak$datavalue$value$timezone
[1] 0
$mainsnak$datavalue$value$before
[1] 0
$mainsnak$datavalue$value$after
[1] 0
$mainsnak$datavalue$value$precision
[1] 9
$mainsnak$datavalue$value$calendarmodel
[1] "http://www.wikidata.org/entity/Q1985727"
$mainsnak$datavalue$type
[1] "time"
$mainsnak$datatype
[1] "time"
$type
[1] "statement"
$id
[1] "q13371$cf938885-4a4d-697c-a957-b2d7effe8bbb"
$rank
[1] "normal"
mainsnak$datavalue$value$time
是 "+1636-01-01T00:00:00Z"
,解析为日期时是 1636-01-01
。但是在网页上,只显示年份:
我敢肯定这是因为时间的准确性只与年份有关 - 哈佛成立于 1636 年,日期和月份是 unknown/ambiguous/not 相关的。所以我的问题是如何使用 API 来解析此日期的时间准确性?我怀疑它与 $mainsnak$datavalue$value$precision
有关
PS 哈佛 Wikidata 的完整 json 被拉入 R 中:
library(tidyverse)
wikidata_id <- "Q13371"
res <- httr::GET(url = paste0('https://www.wikidata.org/wiki/Special:EntityData/',wikidata_id,'.json')) %>%
httr::content() %>%
.[['entities']] %>%
.[[wikidata_id]]
每https://www.wikidata.org/wiki/Help:Dates精度9为年,10为月,11为日。
维基数据 API 提供基于日期的字段作为 datavalue$type == "time"。例如考虑哈佛大学成立日期(属性 值 == P571):
$mainsnak
$mainsnak$snaktype
[1] "value"
$mainsnak$property
[1] "P571"
$mainsnak$hash
[1] "5efb5e7d891727df657771128dcb0512f7f18e10"
$mainsnak$datavalue
$mainsnak$datavalue$value
$mainsnak$datavalue$value$time
[1] "+1636-01-01T00:00:00Z"
$mainsnak$datavalue$value$timezone
[1] 0
$mainsnak$datavalue$value$before
[1] 0
$mainsnak$datavalue$value$after
[1] 0
$mainsnak$datavalue$value$precision
[1] 9
$mainsnak$datavalue$value$calendarmodel
[1] "http://www.wikidata.org/entity/Q1985727"
$mainsnak$datavalue$type
[1] "time"
$mainsnak$datatype
[1] "time"
$type
[1] "statement"
$id
[1] "q13371$cf938885-4a4d-697c-a957-b2d7effe8bbb"
$rank
[1] "normal"
mainsnak$datavalue$value$time
是 "+1636-01-01T00:00:00Z"
,解析为日期时是 1636-01-01
。但是在网页上,只显示年份:
我敢肯定这是因为时间的准确性只与年份有关 - 哈佛成立于 1636 年,日期和月份是 unknown/ambiguous/not 相关的。所以我的问题是如何使用 API 来解析此日期的时间准确性?我怀疑它与 $mainsnak$datavalue$value$precision
PS 哈佛 Wikidata 的完整 json 被拉入 R 中:
library(tidyverse)
wikidata_id <- "Q13371"
res <- httr::GET(url = paste0('https://www.wikidata.org/wiki/Special:EntityData/',wikidata_id,'.json')) %>%
httr::content() %>%
.[['entities']] %>%
.[[wikidata_id]]
每https://www.wikidata.org/wiki/Help:Dates精度9为年,10为月,11为日。