Википедия - отличный источник данных, и вы можете использовать ее в своем следующем проекте.

В этом посте я объясню, как создать базу данных Marvel (или базу данных DC) с помощью Википедии, Javascript и SQL. Мы сделаем гибкий инструмент, который позволит вам создавать разные таблицы для использования в ваших проектах. Изложенные здесь концепции могут быть распространены на другие предметы. Это сообщение для тех, у кого нет времени изучить сложный синтаксис модифицированного sql, используемого в системе Викиданных, и кто все еще хотел бы поиграть со своими данными.

Изначально я создал базу данных комиксов для создания этой визуализации, которую вы снова увидите в конце этой статьи:

Трубопровод

Идея состоит в том, чтобы выполнить следующие шаги, чтобы получить гибкую базу данных:

  1. Запрашивать таблицы из Викиданных и экспортировать как файлы json
  2. Создайте базу данных Alasql и вставьте данные из файлов json.
  3. Использовать созданную базу данных, выполняя запросы SQL.

1. Извлечение данных из Википедии.

В Википедии есть отличная база данных и онтология. Вы можете получить доступ к системе запросов, нажав здесь: https://w.wiki/4iP

В приведенной выше ссылке вы найдете что-то похожее на это (и дополнительную информацию об этом вы найдете там):

В этом коде я выбираю объекты, которые являются экземплярами комического персонажа и находятся в вымышленной вселенной вселенной Marvel. Сначала это может показаться странным, но каждый из этих кодов является частью Онтологии Википедии. Так они справляются с избыточностью, могут все организовать и заставить все работать! Но как вы можете создавать свои собственные запросы?

Во-первых, вам поможет. Попробуйте ввести wdt:<Ctrl+Space>. Вы замечаете, что для вас появляется всплывающая подсказка. Попробуйте ввести экземпляр. Вы видите, что код для «экземпляра» - wdt:P31. Используя тот же подход, теперь для значения вы наберете wdt:<Ctrl+Space> (на этот раз нет "т"!) И комический символ, введите и вуаля, вы получили код. wd:Q1114461.

О Кей, Генри, но я понятия не имею, что мы можем использовать, у меня нет времени выучить язык Википедии ... и я тебя понимаю! Итак, чтобы преодолеть это, мы откроем эту страницу здесь Джаггернаут. Это товар из Википедии с кодом Q841372, Джаггернаут! Теперь посмотрите и проверьте, какая информация доступна для комического персонажа. Наведите указатель мыши на элементы в разделе Заявления. Например, если вы наведете указатель мыши на экземпляр, вы получите код P31! Поскольку это не значение, используйте для этого wdt.

Просматривая эту страницу, вы получите хорошее представление о том, какие свойства вы можете использовать. Пауза: если вы хотите создать базу данных, но еще не знаете, какой она будет, попробуйте функцию Случайная статья, чтобы получить информацию. Мы можем сделать то же самое для любой страницы Википедии. Зайдите на официальный сайт Википедии и найдите что-нибудь, скажем… Алюминий. Теперь проверьте левую панель и найдите ссылку Элемент Викиданных.

Щелкните, и вуаля, отобразятся все атрибуты этого элемента. Мы видим, что получаем массу, используя wdt:P2067 и многие другие атрибуты, которые могут применяться к другим типам металла.

Теперь, когда у нас есть Викиданные, мы:

  1. Создайте запрос для интересующего атрибута
  2. Загрузите результат как .json
  3. Всегда отслеживайте идентификаторы (URL элемента Викиданных) и ярлыки

Например, я создал один запрос для пола. Один запрос по роду занятий и так далее. В результате получается папка с множеством файлов .json, которую я загружу в свою базу данных, состоящую из множества таблиц. Вы можете выполнить один запрос со всей информацией. В моем случае я хочу, чтобы он был гибким, поэтому я могу выполнять JOIN, LEFT JOIN и другие команды SELECT для получения разных таблиц.

Фактически, вместо того, чтобы получать только вселенную Marvel, я отбросил этот фильтр и получил полную базу данных экземпляров вымышленных персонажей (не только персонажей комиксов - по какой-то причине этот не запрашивал Капитана Америку). Итак, в моих файлах json вы найдете Marvel, DC и другие. Полученные json-файлы находятся на моей странице GitHub. Далее я покажу, как я использовал файлы json с простой базой данных SQL в Javascript.

Как я уже упоминал в последнем абзаце, мой запрос на самом деле касается класса «Вымышленные персонажи» и его подклассов. Я также опрашивал партнеров и супругов, поэтому для этого использовал команду | чтобы определить два wdt:

Обратите внимание, что в приведенном выше коде я больше не фильтрую Marvel. Для более сложных запросов или обработки списков, пожалуйста, обратитесь на сайт Викиданных. Еще один хороший вариант - кнопка Справка в верхней части Службы запросов Викиданных, где вы можете найти примеры и поддержку.

2. Создание базы данных SQL на Javascript

Теперь, когда у нас есть файлы json, давайте вставим их в нашу базу данных SQL. Для этого воспользуемся инструментом под названием Alasql. С помощью Alasql вы можете загружать данные и создавать таблицы разными способами (подробнее здесь).

Здесь, поскольку у нас есть jsons из Викиданных, мы применим SELECT к каждому json (файлу) и вставим в новую таблицу в нашей базе данных для облегчения доступа. Для упрощения мой код будет содержать только две таблицы; вы можете найти полную обновленную версию здесь. Выглядит это так:

Мы настроены. У нас есть база данных, и мы можем использовать ее, вызывая let mydb = MarvelDB() и применяя такие команды SQL: mydb.exec('SELECT DISTINCT abilityLabel from abilities').

3. Окончательный код и использование

Я определил несколько тестов, чтобы убедиться, что все работает. Это пример использования нашей базы данных. Если вы не привыкли к тестированию, просто учитывайте let result = this.db.exec(...) и console.table(result) в приведенном ниже коде и игнорируйте другие части.

Вышеупомянутый SELECT возвращает столбец charLabel и переименовывает его в name. Он также объединяет символы таблицы, пол и способности, следя за тем, чтобы записи имели одинаковый идентификатор символа (char). Наконец, он фильтруется по определенному полу с именем агендер. Чтобы увидеть больше примеров из этой базы данных, перейдите на страницу GitHub - не забудьте пометить ее :)

В этой статье описывается, как я создал базу данных для следующей визуализации. Вы можете взаимодействовать с ним, зайдя на этот веб-сайт на настольном компьютере / ноутбуке (он может открываться на мобильном телефоне, но взаимодействие ограничено).

Это первая часть моей серии о персонажах комиксов:

  1. Простой способ создать базу данных Marvel с SQL и Javascript [это]
  2. Визуализация полов и суперсил комических персонажей
  3. Сравнение Marvel и DC с визуализацией данных

Приглашаем вас добавить личные заметки и комментарии. Спасибо, что прочитали мою статью!