Программирование Викиданных/QuickStatements

QuickStatements ‒ это сервис пакетной обработки Викиданных.

На этой странице представлены примеры работы с сервисом QuickStatements.

Подготовка

править

Сервис QuickStatements доступен по адресу https://tools.wmflabs.org/quickstatements/

Пример заполнения свойства «число заражённых»

править

Let us assign the value 623 to the property "number of cases" (P1603) in the sandbox item (Q4115189).

Добавим объекту песочница Wikidata Sandbox свойство "число инфицированных" со значением 623.

qid,P1603
Q4115189,623

Добавим квалификаторы

править

К утверждению "в Краснодарском крае 623 инфицированных" добавим квалификаторы:

  • момент времени = 23 апреля 2020 года
  • метод определения = лабораторная диагностика вирусных инфекций
  • истинно для места = Краснодарский край
  • гиперссылка с источником информации = https://yandex.ru/maps/covid19

Итоговое утверждение будет таким: "В Краснодарском крае на 23 апреля 2020 года по данным Яндекса зарегистрировано 623 инфицированных".

Параметры:

  • P1603 (number of cases) = 623 (P — property)
квалификаторы (qal — qualificator):
  1. qal585 (point in time) = 23 April 2020 (Precision are 11=day, see d:Help:QuickStatements#Samples by value type)
  2. qal459 (determination method) = "laboratory diagnosis of viral infections" (Q6467278)
  3. qal3005 (valid in place) = "Krasnodar Krai" (Q3680)
источники (S):
qid,P1603,#,qal585,qal459,qal3005,S854
Q4115189,623,number of cases in Krasnodar Krai,+2020-04-23T00:00:00Z/11,Q6467278,Q3680,"""https://yandex.ru/maps/covid19"""
???

Разбор данных страницы yandex.ru/maps/covid19

править
  1. Откройте страницу Яндекса с данными по вирусу в России.
  2. Откройте для просмотра исходный код (view-source) по команде Ctrl+U.
  3. Скопируйте фрагмент кода с данными по какому-либо субъекту РФ. Например, Краснодарский край:

{"ts":1583971200,"value":1},{"ts":1584057600,"value":2},{"ts":1584144000,"value":3}

Преобразуем эту строку в табличный вид с помощью регулярных выражений в редакторе Vim.

Уберём крайние части, останется строка:

1583971200,"value":1},{"ts":1584057600,"value":2},{"ts":1584144000,"value":3

Делим на строки по фрагменту },{"ts": так: %s/},{"ts":/\r/g

Получаем:

1583971200,"value":1
1584057600,"value":2
1584144000,"value":3

Переставим числа и удалим фрагмент текста "value": так: %s/^\(\d\+\),"value":\(\d\+\)/\2,\1/g

Произведём вычисления внутри регулярного выражения и преобразуем секунды в дату (формула: x/60/60/24 + DATE(1970,1,1)):