[Перевод] Wolfram Data Drop — новый сервис Wolfram Research

Перевод поста Стивена Вольфрама (Stephen Wolfram) «The Wolfram Data Drop Is Live!». Выражаю огромную благодарность Кириллу Гузенко за помощь в переводе.Куда должны идти данные из интернета вещей? У нас есть отличная технология в Wolfram Language для интерпретации, визуализации, анализа запросов и прочих интересных вещей. Но вопрос в том, как должны все эти данные из подключённых к сети устройств и всех остальных источников попасть туда, где с ними можно делать всё вышеперечисленное? Сегодня мы запускаем то, что, на мой взгляд, является отличным решением данной проблемы: Wolfram Data Drop.

Wolfram Data Drop

Когда я впервые начал размышлять о Data Drop, я рассматривал его в основном как удобное средство перемещения различных данных. Но теперь, когда Data Drop создан, я понимаю что это гораздо больше, чем просто сервис для перемещения данных. В действительности, это важный этап в нашем непрекращающимся пути по интеграции вычислений и реального мира.

Так что же такое Wolfram Data Drop? На функциональном уровне это универсальный агрегатор данных, предназначенный для получения и организации данных, получаемых с различных сенсоров, устройств, программ, людей или чего бы ты ни было. При том данные хранятся в облаке таким образом, что могут быть использованы для вычисления и обработки так, как будто они хранятся на самом устройстве (бесшовная интеграция вычислений и данных).Data Drop data can come from anywhere

Наша цель заключается в том, чтобы к данным из Wolfram Data Drop можно было получить доступ максимально легко и откуда угодно. Вы можете использовать web API, email, Twitter, web form, Arduino, Raspberry Pi и тому подобное. Как же мы собираемся постепенно добавлять все больше и больше различных возможностей для связи с другими системами сбора данных — как программными, так и «железными». Неважно, откуда поступают данные. Идея в том, что Wolfram Data Drop собирает эти данные по одному и тому же алгоритму: в «databin» с определённым ID.

Ниже приведён пример того, как это работает. На моем столе сейчас лежит вот это вот маленькое устройство:

This device records the humidity, light, pressure, and temperature at my desk, and sends it to a Data Drop databin. The cable is power; the pen is there to show scale.

Каждые 30 секунд оно получает данное от крохотных сенсоров, которые находятся на правом конце, а затем отправляет данные через wifi и web API в Wolfram Data Drop databin с ID »3pw3N73Q». Как и все databin, этот databin имеет свою страницу в интернете: wolfr.am/3pw3N73Q.

Эта страница есть центр управления, благодаря которому можно, к примеру, скачать исходные данные. Но наиболее интересным фактом является то, что databin полностью интегрирован в Wolfram Language. Основной концепцией Wolfram Language является то, что он основан на знаниях, содержит внутри себя огромное количество знаний о мире, вычислениях; о том, как что работает.

Для примера, Wolfram Language располагает текущими данными о ценах на акции, землетрясениях и многих других вещах. Но теперь он может знать о таких вещах, как условия окружающей среды на моем столе, которые были получены через Wolfram Data Drop. В нашем случае мы получаем данные из показанного выше маленького устройства.

Вот как это работает. Ниже представлен символьный объект Wolfram Language под названием databin:

37c1aad3721c40a81abec85b0b9b109e.png

Над ним можно производить различные действия. К примеру, ниже представлены графики временных рядов данных из databin:

84ffb0cf3232c121e50f6fa9763471a3.png

А тут представлены гистограммы значений:

43224261eff99fd48da0de813f7a124d.png

А вот исходные данные, представленные в виде таблицы:

906020a37f84d9a98e9480a39481e516.png

То, что действительно здорово: databin, который может содержать данные откуда угодно, есть лишь часть языка. И мы можем производить вычисления с этими данными как с чем бы то ни было другим.

Тут для примера приведены минимум и максимум функции температуры на моем столе (MinMax — новая функция Wolfram Language):

a3d00d858c3ebf18f35c4deddcf550a4.png

Можно перевести в другие единицы измерения (% — соответствует результату, вычисленному на предыдущем шаге):

03d90c2ac7fa3f81e87af1f5727c28d3.png

Давайте теперь представим функцию давления от времени. Вот она:

60b24830e3a54cad0c09519c8a92c971.png

Конечно, Wolfram Knowledgebase имеет архив данных о погоде. Так, в Wolfram Language мы можем просто запросить давление в точке нашего местонахождения для промежутка времени, который содержится в databin, и результаты окажутся удивительно похожими:

fe93242fc538375b8df665ef6a0557ac.png

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

Следует заметить, что данные, которые мы получаем из databin, идут вместе с единицами измерения. Вот пример принципиальной особенности Wolfram Data Drop: это не просто хранение исходных данных; данные хранятся и содержат в себе реальный смысл, который им придается. Это означает, что можно сразу понять, где эти данные должны использоваться.

Для этого мы используем нашу высокотехнологичную систему: Wolfram Data Framework (WDF). Разрабатываемая в тесной связи с Wolfram|Alpha, получилась наша система стандартов символьного представления данных из реального мира. И каждый databin в Wolfram Data Drop может использовать WDF для определения смысла данных («data semantics signature»), который определяет, как эти данные будут интерпретироваться, а также как наша система автоматического импорта и система распознавания естественного языка будет обрабатывать новые данные, которые поступают.

Красота всего этого заключается в том, что с тех пор, как данные оказались в Wolfram Data Drop, они могут быть повсеместно доступны и интерпретируемые для Wolfram Language и любой системы, использующей этот язык. Так, для примера, любой публичный databin в Wolfram Data Drop доступен в любое время через Wolfram|Alpha, ровно как и через любых интеллектуальных помощников, которые используют Wolfram|Alpha. Скажите Wolfram|Alpha имя databin, и система создаст автоматический отчет с анализом содержащихся данных:

9c02c4c0445b71f973a34d8e6e29ddd1.png

С помощью WDF, Wolfram Data Drop моментально работает с 10,000 видами различных физических размерностей. Но Data Drop не ограничен числами и числовыми величинами. В систему можно загружать всё, что угодно. А так как Wolfram Language является символьным языком, он может обрабатывать все это одними и теми же методами.

The Wolfram Data Drop автоматически вносит данные о времени и, когда это возможно, данные о местонахождении. И в том, и в другом случае имеются конкретные стандарты для представления этих данных в WDF. Так же как и химические соединения, города, классы, сети, или тысячи других вещей.Так же можно работать с изображениями, загруженными в Wolfram Data Drop.

Где-то в нашем отделе обеспечения качества имеется Raspberry Pi с подключенной камерой, которая делает снимки двух наших рыбок каждые 10 минут и записывает в databin в Wolfram Data Drop:

055f2e578fb67e6b6cb7cdfbe45aa769.png

С помощью Wolfram Language легко собрать все эти изображения в интерактивное 3D изображение-куб:

8b86c043a774632be5dc08ddbd1a6fcb.png

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

fa61b364103886ece1c10c4a08f5ddb6.png

Мы можем проводить любые виды анализа данных в Wolfram Language. Но для меня самым захватывающим фактом является то, как просто поместить данные из реального мира в систему через Wolfram Data Drop.

В нашем офисе повсеместно используются различные databin. Их очень легко создавать и интегрировать с существующими системами контроля и мониторинга. У нас теперь есть databin для серверной (HVAC), для температурных датчиков на крыше нашей штаб-квартиры, для холодильников в комнате отдыха, для контроля над интернет-сетью, и для самой Data Drop. Каждый день появляются и внедряются какие-то новые решения.

Было создано множество databin для личных нужд. Для меня, например, сбор и анализ данных — давнее хобби. И, на самом деле, я собрал персональных данных о себе на более чем четверть века. Так же могу сказать, что в марте 2015 произойдет шаг вперед исторического масштаба. Ведь, используя Data Drop, стало значительно проще собирать данные, в результате чего количество информации, которую я буду собирать, резко увеличится. Я буду человеком с, как минимум, двадцатью пятью databin`ами… и это не предел.

Весьма важным фактом является то, что всё в Wolfram Data Drop хранится в WDF, то есть все данные представлены в определенном виде, а значит имеется возможность работать с различными databin, сравнивать, комбинировать различные значения и получать осмысленные результаты вычислений.

До тех пор, пока Вы работаете с небольшими объемами данных, Wolfram Data Drop полностью бесплатен и открыт, то есть кто угодно или что угодно может моментально загрузить туда данные. Официальные пользователи смогут работать с гораздо большими объемами данных на скорости, которая, как мы полагаем, будет постоянно увеличиваться.

Wolfram Data Drop databin может быть как публичным, так и частным. Он так же может быть открытым для внесения изменений или требовать авторизацию. Любой может получить доступ к Wolfram Data Drop с помощью нашего главного облака — Wolfram Cloud. Однако организации, у которых есть свое собственное облако Wolfram Private Cloud в скором времени так же смогут иметь свой частный Data Drop, который работает внутри их собственной инфраструктуры.

Так как же выглядит типичный рабочий процесс с Wolfram Data Drop? Это зависит от того, что Вы делаете. И даже с единственным databin, судя по моему опыту, требуется несколько различных рабочих процессов.

Очень удобно иметь возможность взять какой-то databin и тут же производить вычисления в интерактивном режиме в сессии Wolfram Language, исследовать данные, фиксировать результаты работы и создавать отчеты в отдельном файле.

Однако часто значительно удобнее, когда работа с databin происходит в автоматическом режиме. К примеру, можно создать запланированное задание, а система будет отсылать на электронную почту databin. Можно размещать данные в Wolfram Cloud, чтобы кто-нибудь, используя CloudCDF, смог работать через интернет с полученными данными. Можно сделать так, чтобы отчёт автоматически генерировался и отправлялся всякий раз, когда кто-то заходит на страницу.

Но сфера применения не ограничивается интернетом. С момента, как отчёт поступил в Wolfram Cloud, он тут же становится доступен на мобильных и носимых гаджетах. То же самое применимо и к настольным компьютерам.

Вам не обязательно самому делать отчёт. Вместо этого Вам достаточно лишь иметь программу на Wolfram Language, которая будет следить за databin, затем, например, отправлять уведомление/сигнал тревоги/выполнять любое другое действие в случае, если какая-то комбинация условий будет выполнена.

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

Определенный databin может получать данные только из одного источника, или из одного устройства, либо собирать данные из разных источников и выполнять роль агрегатора. Так как каждый кусочек данных снабжается детальными метаданными, всегда можно сказать, откуда он поступил.

В течение нескольких лет мы были довольно тесно связаны с компаниями, которые занимаются различными подключаемыми устройствами, в частности через наш Connected Devices Project. И много раз у меня случался подобный диалог: компания рассказывает о чудесном устройстве, которая она делает, которое меряет что-то очень интересное. Затем я спрашиваю —, а что же происходит с данными, которые регистрирует этот прибор? И, зачастую, они отвечали, что это вопрос, который их весьма беспокоит, однако они не планируют нанимать отдельные команды для создания облачных серверов, приложений и прочей инфраструктуры для работы с данными.

Одной из причин того, что мы создали Wolfram Data Drop, было желание поделиться с этими компаниями лучшим решением. Они получают данные, затем просто отправляют их в Data Drop, а оттуда данные уже поступают на наше облако (или на частное облако), где они могут быть легко проанализированы, визуализированы, получены и распространены через интернет страницы, API, приложения или через что бы то ни было.

Полагаю, большое количество компаний, производящих устройства, будут использовать Wolfram Data Drop. Они смогут получать данные разными способами, иногда через web API. Иногда через прямое подключение к системе Wolfram Language, к примеру, на Raspberry Pi. Иногда через Arduino, или через Electric Imp, или через любую другую аппаратную платформу, совместимую с Data Drop. Данные могут передаваться через телефоны или другие мобильные устройства. А иногда уже записанные данные из другого облака могут послужить источником.

Мы работаем не с самыми низкоуровневыми проблемами получения данных из устройства посредством проводов, wifi, Bluetooth и чего бы то ни было еще.

Есть различные способы получить доступ к данным между подключенными устройствами. Разработчики и исследователи могут получать доступ напрямую к Wolfram Cloud, или через десктопную/онлайн среду Wolfram Language. Ориентированные на покупателя компании, связанные с устройствами, могут работать, к примеру, через собственное частное облако Wolfram Private Cloud. Так же они могут получать доступ к Data Drop с помощью Wolfram mobile app или своей собственной программы. Или посредством какого-то носимого устройства.

Бывает, компании требуется собирать данные из разных устройств. Допустим, для мониторинга сети или проведения каких-то исследований. И, опять таки, их пользователи могут хотеть работать напрямую с Wolfram Language, или через портал/приложение.

Когда я только начал продумывать концепцию Wolfram Data Drop, я предполагал, что данные в основном будут поступать от каких-то автоматизированных устройств. Но теперь, когда у нас есть Data Drop, я понял, что будет очень полезно работать с данными, которые поступают от людей. Это отличный способ собирать ответы, скажем, в классе, или собирать отзывы для краудсорсингового проекта, хранить различные личные заметки и тому подобное. Как только определен смысл данных (data semantics signature) для databin, Wolfram Data Drop может автоматически генерировать форму представления данных, которая может быть выгружена в сеть или на мобильное устройство.

Формы могут работать с изображениями, текстом и с множеством других вещей. В случае для текста наша система интерпретации естественного языка может получить данные и интерпретировать их в WDF и привести к стандартной форме.

Теперь, когда у нас есть Wolfram Data Drop, я продолжаю находить различные применения этой системе и совершенно не понимаю — как я мог обходиться без этой системы раньше? Как и со всем в Wolfram Language, это история автоматизации: Wolfram Data Drop автоматизирует весь тот беспорядочный набор действий, который связан со сбором и обработкой данных из реального мира, которые поступают с различных источников.

Конечной целью для меня представляется возможность сбора и анализа данных любого вида без необходимости создания/использования каких-то других систем. К примеру, на прошлой неделе я закончил использование Wolfram Data Drop для сбора данных о производительности на нашем облаке. В обычной ситуации эта задача была бы слишком сложной и громоздкой, я бы даже не рассматривал возможность сделать это самому. Но с помощью Data Drop установка и настройка заняла у меня всего несколько минут, и теперь я могу получать интересующие меня данные.

Я с предвкушением жду осуществления тех вещей, которые я собираюсь реализовать в Wolfram Data Drop, ровно как и увидеть то, как люди используют эту систему. Вы уже можете опробовать бета версию, которую мы запустили сегодня, и отправить нам feedback (идущий вместе с Data Drop databin, разумеется). Я надеюсь, пройдет немного времени, прежде чем databin«ы будут вплетены в инфраструктуру мира: еще один шаг вперед в нашей долгосрочной миссии — сделать мир вычислимым…

© Habrahabr.ru