Статьи

Удивительно крутой график использования БД Whiteboarding

Первоначально автор Андерс Наврот

Мы рады объявить о результатах первого конкурса GraphGist .

Прежде всего, мы хотим поблагодарить всех участников за их большой вклад . Мы были поражены высоким качеством вкладов. Каждый потратил много времени и усилий, предоставив вдумчивые, интересные и хорошо объясненные модели данных и запросы Cypher . Было также большое использование графики, включая использование инструмента Стрелки .

Мы думали, что у нас большие ожидания, но вклад намного превзошел их.
В этом смысле каждый победитель, и мы с нетерпением ждем отправки классной футболки Neo4j и Graph Connect.Билет или копия книги Графика Базы данных для всех участников. И по той же причине, мы настоятельно рекомендуем вам посмотреть все материалы.

Вот все вклады:

Как вы можете себе представить, нам было трудно решить, какие вклады должны получить первую, вторую и третью цену. Во всяком случае, вот результат, в обратном порядке:

Третья премия

На третьем месте, мы находим
Шахматные игры и позиции по
Wes Freeman . Он заставляет все это звучать очень просто:


Цель состоит в том, чтобы загрузить несколько шахматных игр в Neo4j для дальнейшего анализа.
Перечисленные результаты — это позиция Stockfish после 25-минутного горизонта движения (но это число может быть углублено по мере заполнения графика или выполнения дополнительной обработки). Позиции также можно загружать как альтернативные ходы (не связанные с игрой) на основе предложений от Stockfish. Позиции записываются как FEN, удобочитаемая / сжатая запись состояния шахматной доски.

И модель данных не слишком сложна, вот несколько примеров данных:
мы думали, что GraphGists достаточно интерактивны, но Уэс показывает, как добавить еще больше интерактивности в GraphGist. Просто перечислив ходы игры, он продолжает демонстрировать некоторую классную статистику, которая выявляет грубые ошибки в игре и даже предлагает лучшие ходы.

Вторая премия

Обучение Graph по
Johannes Mockenhaupt приходит на втором месте. Вот его собственное введение в это:


Этот график используется для визуализации знаний, которые человек имеет в определенной области. … Цель состоит в том, чтобы задокументировать полученные знания и помочь в дальнейшем структурированном обучении. Это достигается путем построения графиков зависимости между технологиями, а также ресурсами, которые можно использовать для изучения технологии и определения возможных
путей обучения с помощью графа, который показывает способ изучения конкретной технологии, сначала изучая технологии в порядке, который являются необходимыми условиями для изучения технологии. График должен быть не статичным, а обновляться по мере обнаружения новых связей между технологиями и приобретения новых знаний.

Вот как модель данных работает с крошечным набором данных:

модель данных легко понять, и в то же время она демонстрирует мощь графиков на видном месте. Запросы удивительно просты — если вы когда-нибудь пытались сделать что-то подобное с использованием
СУБД , вы по достоинству оцените прямолинейность и элегантность представленных запросов! Также приятно видеть, как данные обновляются по пути. Наконец, объяснения запросов и их результаты связывают все воедино, образуя приятное чтение.

Первый приз

США Рейсы и аэропорты вклад
Николь Уайт закончил первый в этой проблеме. Поздравляю Николь!

Вот фон:


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

Простая предложенная модель данных, которая позволяет ответить на сложные вопросы. Одна из сильных сторон графовой базы данных. Интересные детали касались не только моделирования рейсов, но и отмены и задержек.

Николь задала интересные вопросы поверх модели данных и набора данных, на которые она собиралась ответить, используя запросы Cypher:

  • Какое среднее время такси в каждом аэропорту для вылета и прилета?
  • Какова основная причина задержек вылета в каждом аэропорту?
  • Сколько исходящих рейсов было отменено в каждом аэропорту?

Или более конкретные вопросы, такие как:
  • Какие рейсы из Лос-Анджелеса (LAX) в Чикаго (ORD) были задержаны более чем на 10 минут из-за опозданий?
  • Как сезонность влияет на время отправления такси в Чикагском международном аэропорту О’Хара (ORD)?
  • Каково стандартное отклонение времени прибытия такси в Даллас / Форт-Уэрт (DFW)?

Чтобы показать только один пример:

какие рейсы из Лос-Анджелеса (LAX) в Чикаго (ORD) были задержаны более чем на 10 минут из-за опоздания?

MATCH (a)<- data-blogger-escaped-f="">(b), (f)-[r:DELAYED_BY]->(d) WHERE a.name="Los Angeles International Airport" AND b.name="O'Hare International Airport"       AND r.time > 10 AND d.name="Late Aircraft" WITH f, r.time AS latedelay RETURN f.flight_number AS Flight, latedelay AS `Delay Time Due to Late Arrival`

Этот запрос приводит к:

Рейс Время задержки из-за позднего прибытия
1062 16
1894 15

Благодаря ее научному подходу, включающему в себя список переменных и использование
MathJax для визуализации используемых математических формул, это представление действительно впечатляет и является достойным победителем.

Наши поздравления каждому участнику и победителям. Мы очень рады результатам этого конкурса.

GraphGists развивается и следующий конкурс GraphGist

Во время испытания мы улучшили код позади GraphGists:

  • Мы добавили поддержку математических формул.
  • Мы добавили интеграцию Disqus, так что теперь есть комментарии, связанные с каждым GraphGist. Пожалуйста, добавьте свои комментарии к участию в конкурсе, авторы будут рады получить отзывы и предложения.
  • Мы удалили надоедливые заголовки над таблицами результатов и графиками.
  • Мы исправили некоторые проблемы и добавили обходной путь, чтобы Chrome под Windows не падал.
  • Мы немного улучшили дизайн. (Это все еще очень примитивно, хотя.)

Спасибо всем за отзыв: он помог нам сгладить некоторые недостатки.

Если вы хотите взглянуть на проект GraphGist, он находится здесь:
https://github.com/neo4j-contrib/graphgist . Это только клиентское приложение на основе браузера. Это означает, что в основном это набор файлов Javascript. Мы были бы рады увидеть запросы на тягу к проекту.
Обратите внимание, что вы можете внести свой вклад в стилизацию или документацию (в виде GraphGist), а не только код Javascript!

У нас уже есть вопросы по поводу
следующего вызова GraphGist. Наш план состоит в том, чтобы выполнить следующую задачу, когда выйдет Neo4j 2.0. В настоящее время мы думаем, что это будет означать дату закрытия до Рождества. Мы будем держать вас в курсе, когда узнаем больше.