问题 从维基数据中获取可读结果


好的,我正试图从维基数据中获取有关电影的信息,以此电影为例: https://www.wikidata.org/wiki/Q24871

在页面上,数据以可读格式清晰显示,但是当您尝试通过API提取数据时,您会得到: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q24871

这是它的一个部分:

"P272": [
                {
                    "id": "q24871$4721C959-0FCF-49D4-9265-E4FAC217CB6E",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 775450
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$31777445-1068-4C38-9B4B-96362577C442",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 3041294
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$08009F7A-8E54-48C3-92D9-75DEF4CF3E8D",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 646968
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal"
                },
                {
                    "id": "q24871$CA53B5EB-1041-4701-A36E-7C348FAC984E",
                    "mainsnak": {
                        "snaktype": "value",
                        "property": "P272",
                        "datatype": "wikibase-item",
                        "datavalue": {
                            "value": {
                                "entity-type": "item",
                                "numeric-id": 434841
                            },
                            "type": "wikibase-entityid"
                        }
                    },
                    "type": "statement",
                    "rank": "normal",
                    "references": [
                        {
                            "hash": "50f57a3dbac4708ce4ae4a827c0afac7fcdb4a5c",
                            "snaks": {
                                "P143": [
                                    {
                                        "snaktype": "value",
                                        "property": "P143",
                                        "datatype": "wikibase-item",
                                        "datavalue": {
                                            "value": {
                                                "entity-type": "item",
                                                "numeric-id": 11920
                                            },
                                            "type": "wikibase-entityid"
                                        }
                                    }
                                ]
                            },
                            "snaks-order": [
                                "P143"
                            ]
                        }
                    ]
                }
            ],

问题是我不知道如何将这样的部分转换成可读的文本。我得到API使用唯一ID调用类及其属性之间的链接,但我仍然卡住了。

目前这实际上是可能的还是我在错误的树上吠叫?


6409
2017-07-07 10:44


起源



答案:


你应该寻找的是什么 numeric-ids在每个陈述中添加一个领先的 Q 恢复你的wikidata id,这应该导致 ['Q775450', 'Q3041294', 'Q646968', 'Q434841', 'Q11920']

[更新:您现在可以直接访问Q id mainsnak.datavalue.value.id而不是必须从它构建它 numeric-id]

这可以使用 维基数据-SDK (我开发的JS lib) simplifyClaims 功能

获得这些ID后,您只需要使用 wbgetentities API: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels

你甚至可以使用。只获得一些语言的结果 languages 参数: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels&languages=en|de|fr


16
2017-07-08 11:05





好的,所以我还没有找到使用这个“wbgetentities”系统的解决方案。我发现你可以使用“parse”命令来获取html结构。

https://www.wikidata.org/w/api.php?action=parse&page=Q24871

虽然它仍然需要一些处理它比以前的解决方案容易得多。


0
2017-07-08 11:12





我看到了一个公认的答案,但最初对这个问题的解释不同。基本上要求在JSON中具有相同的输出,可以在Wikidata项目页面上看到。

针对上述情况的带有JSON输出的SPARQL查询: https://query.wikidata.org/sparql?query=SELECT%20%3FwdLabel%20%3Fps_Label%20%3FwdpqLabel%20%3Fpq_Label%20%7B%0A%20%20VALUES%20(%3Fcompany)%20%图7B(WD%3AQ24871)%7D%0A 0A%%20%20%3Fcompany%20%3Fp%20%3Fstatement%20%0A%20%20%3Fstatement%20%3FPS%20%3Fps_%20%0A %0A%20%20%3Fwd%20wikibase%3Aclaim%20%3Fp。%0A%20%20%3Fwd%20wikibase%3AstatementProperty%20%3FPS。%0A%0A%20%20OPTIONAL%20%7B%0A%20 %20%3Fstatement%20%3Fpq%20%3Fpq_%20%0A%20%20%3Fwdpq%20wikibase%3Aqualifier%20%3Fpq%20%0A%20%20%7D%0A 0A%%20%20SERVICE %20wikibase%3Alabel%20%7B%20bd%3AserviceParam%20wikibase%3Alanguage%20%22en%22%20%7D%0A%7D&格式= JSON 

我用 维基数据查询前端 直接查询我的查询并检查结果。然后使用 </> Code 按钮...解释为什么你看到上面那么多不必要的空白。

也可以看看:


0
2017-09-07 18:51