Ответ 1
Пожалуйста, обратитесь к следующему графическому редактору за учебным пособием о том, как делать временное графическое хранилище с использованием временных масштабов.
http://gist.neo4j.org/?github-kbastani%2Fgists%2F%2Fmeta%2FTimeScaleEventMetaModel.adoc
В графе временного масштаба, который был смоделирован выше, кратчайший путь, проходящий от синего цвета node до прозрачного цветного node, представляет собой уникальный идентификатор времени в битах.
Личность, прослеживаемая красным путем, равна 0 → 1 → 0 → 1 → 0 → 0. Обратный путь 0 → 0 → 1 → 0 → 1 → 0 или просто 001010, уникальный идентификатор в битах.
MATCH p=shortestPath((n1:d)-[:child_of*]->(n2:y))
WHERE n1.key = 'd10'
RETURN DISTINCT reduce(s = '' , n IN nodes(p)| n.tempo + s) AS TimeIdentity
ORDER BY TimeIdentity
В запросе Cypher выше самый короткий путь прохождения от синего цвета node до прозрачного цветного node. Это битовая строка, представляющая идентификатор времени, который может быть упорядочен по событию в зависимости от его положения на подграфе события временного масштаба.
См. ниже подстраницу событий шкалы времени:
Изображение выше представляет собой временной масштаб, связанный с серией событий (встречается). События, представленные как треугольные узлы в изображении, также связаны с иерархией функций (John, Sally, Pam, Anne), которые затем обобщаются на классы (Person).
Теперь вы можете запустить запрос Cypher, такой как тот, который я назвал ранее, который затем упорядочивает события по времени появления в виде битовой строки. Примечание. Чтобы применить временную метку к node, которая возвращает фактическое время. Каждый синий node представляет событие, разделенное по времени, но не обязательно фактическое время, просто представление событий, которые произошли в порядке.
MATCH p=(p0:person)-[:event]->(ev)-[:event]->(p1:person)
WITH p, ev
MATCH time_identity = (d0:d)<-[:event]-(ev)
WITH d0, p
MATCH p1=(d0)-[:child_of*]->(y0:y)
RETURN extract(x IN nodes(p)| coalesce(x.name, x.future)) AS Interaction, reduce(s = '' , n IN nodes(p1)| n.tempo + s) AS TimeIdentity
ORDER BY TimeIdentity
Иерархии в масштабе времени позволяют группировать события и видеть представления на более высоких уровнях. Поэтому, выбрав все зеленые узлы ниже оранжевого node, выбираем 4 возможных события (представленных синими узлами).
Сообщите мне, если у вас есть какие-либо вопросы, и обязательно посетите GraphGist, чтобы увидеть более подробные и актуальные живые примеры подграфа события масштаба времени.