wikidata - 在 Wikidata 上创建具有特定类型值的声明
问题描述
我正在尝试将数据摄取到本地 Wikibase,我按照https://docs.docker.com/compose/install/中描述的步骤安装了该 Wikibase 。我正在使用wikibase/wikidata 的 API进行摄取,它按预期工作。例如,我可以创建三元组,Q1
,P1
如下"200"
所述:
/api.php?action=wbcreateclaim&entity=Q1&property=P1&snaktype=value&value="200"
所以,我需要根据xsd指定值的类型,即如下
Q1 P1 "200"^^xsd:integer
我知道我们可以在创建属性时通过字段(参见文档)指定属性的范围(参见API)。但是,在这种情况下,节点将始终是并且该值的类型是我想要设置的()。datavalue.type
string
integer
我知道这应该是可能的,只需在 Wikidata 上以海龟格式查看一个标识符(例如Q27036482 )。接下来,一个真实的例子
v:67929068efe9dbc374bc4dc78d86121d a wikibase:TimeValue ;
wikibase:timeValue "2015-09-23T00:00:00Z"^^xsd:dateTime ;
wikibase:timePrecision "11"^^xsd:integer ;
wikibase:timeTimezone "0"^^xsd:integer ;
wikibase:timeCalendarModel <http://www.wikidata.org/entity/Q1985727> .
谁能给我一个线索?非常感谢您考虑我的要求。
解决方案
在编写 django-wikibase 适配器时,我遇到了同样的问题。wikibase 文档中定义的时间数据类型:https ://doc.wikimedia.org/Wikibase/master/php/md_docs_topics_json.html
因此,在您的情况下,如果没有 URL 编码,get 请求可能如下所示:
/api.php?action=wbcreateclaim&entity=Q1&property=P1&snaktype=value&value={"time":"+2022-01-19T00:00:00Z","timezone":0,"before": 0,"after":0,"precision":11,"calendarmodel":"http://www.wikidata.org/entity/Q1985727"}
请确保在这种情况下属性 P1 具有“时间”数据类型。并注意“时间”字段的格式。并非所有 wikibase 版本都完全支持 ISO 8601。
推荐阅读
- node.js - Redis 连接从 nodejs 增加
- sql-server - 将 Access 2002 应用程序迁移到 Access 2019 或 SQL Server?
- reactjs - react-gsap Tween 不适用于组件
- javascript - 将立方体放置在相机位置但有点落后时,如何避免圆周运动?
- php - 注销按钮不起作用并且无法很好地重定向
- sql - 数据透视的错误日期格式
- mysql - 如何在不使用 with..as 的情况下计算 SQL 中的百分比?
- sql - 无法解决this和that之间的排序规则冲突
- python-3.x - 在熊猫数据框中创建重复列
- r - 数据中的重复:如何在每个 id 中保留一个特定的选择行