Немногие знают, но помимо википедии существует еще и ресурс, где хранятся структурированные знания в виде концептов-триплетов. К примеру:
(Казань, численность-населения, 1243500)
В таком виде хранится очень много информации, её можно найти по адресу wikidata.org. Общее название таких технологий хранения знаний: semantic web.
Интереснее то, что хранением информации всё не ограничивается. Оказывается, в семантической паутине есть целый ряд технологий для работы с информацией. К примеру, есть целый свой язык запросов, который называется SPARQL. Он отдаленно похож на SQL, но оперирует на триплетах. Давайте посмотрим на примере:
SELECT ?city
WHERE
{
?city has_population 2000.
}
Такое запрос вводит переменную city и возвращает все концепты, у которых население 2000 человек. К примеру, из этого набора:
(Чуповка, has_population, 546)
(Капивник, has_population, 2000)
(Лопопон, has_population, 3332)
(Воскма, has_population, 2000)
Будут выведены только Капивник и Воскма.
А вот мой короткий код, показывающий, как в викидате по введеному названию найти семантическую сущность для города, его GeoName Id и численность его населения:
https://colab.research.google.com/drive/13XKDzOkjG17zfPGy8Dnnqrcv4C4dO7F4?usp=sharing