Получение читаемых результатов из Wikidata

Ok поэтому я пытаюсь получить информацию из Wikidata о фильмах, возьмите этот фильм, например:https://www.wikidata.org/wiki/Q24871

на странице данные четко отображаются в удобочитаемом формате, однако при попытке извлечь их через API вы получаете следующее:https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q24871

вот раздел из него:

"P272": [
                {
                    "id": "q2487121C959-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": "q24871777445-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": "q24871009F7A-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 вызывает ссылку между классом и его свойствами, используя уникальные идентификаторы, но я все еще застрял.

это действительно возможно в настоящее время или я лаю не на то дерево?

3 ответов


то, что вы должны искать, это numeric-ids в каждом заявлении и добавьте ведущий Q для восстановления идентификаторов wikidata, которые должны привести к ['Q775450', 'Q3041294', 'Q646968', 'Q434841', 'Q11920']

[обновление: теперь вы можете напрямую получить доступ к Q id в mainsnak.datavalue.value.id, вместо того, чтобы строить его из numeric-id]

это можно сделать с помощью wikidata-sdk (JS lib, который я разработал) simplifyClaims функции

как только вы получили эти идентификаторы, вы просто необходимо запросить метки сущностей с помощью wbgetentities API-интерфейс: https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels

вы даже можете получить результаты только для некоторых языков, с помощью : https://www.wikidata.org/w/api.php?action=wbgetentities&ids=Q775450|Q3041294|Q646968|Q434841|Q11920&format=json&props=labels&languages=en|de|fr


Ok поэтому я не нашел решения для использования это система " wbgetentities "я обнаружил, что вы можете использовать команду" parse " для получения структуры html.

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

в то время как он по-прежнему будет нуждаться в некоторой обработке его гораздо проще, чем предыдущее решение.


Я вижу принятый ответ, но изначально интерпретировал вопрос по-другому. В основном просят иметь тот же вывод в JSON, который вы видите на странице элемента Wikidata.

запрос SPARQL с выходом JSON для вышеуказанного случая: 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&format=json

Я использую Интерфейс Запроса Wikidata чтобы получить мой запрос и проверить результаты. Тогда используйте ... объясняя, почему вы видите так много ненужных пробелов выше.

Читайте также: