Есть ли способ хранить больше информации о краях графика Amazon Neptune?

Я делаю небольшой проект POC, в котором я хочу изобразить дорожную сеть деревни с помощью Amazon Neptune Graph.

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

Intersection {
   id: 1089238983,
   name: 'Madrid & 99th'
   labels: ['has_pedestrian_signals', 'four_way_intersection']
}

Street {
   id: 9808787868,
   name: 'Madrid St'
   from_int_id: 1089238983,
   to_int_id: 1089238973, 
   labels: ['has_hospital_on_street', 'is_snow_route', 'is_one_way_street']
}

Дело в документации AWS заявляет, что края могут иметь только 1 метку.

Я хочу иметь возможность в конечном итоге выполнять обходы на основе свойств ребер. Я пытался найти способы включить больше данных в граф Tinkerpop, но не нашел ничего полезного.

Если есть какие-то предложения, я буду признателен.


person i_use_the_internet    schedule 07.04.2020    source источник


Ответы (1)


Gremlin поддерживает свойства ребер точно так же, как свойства вершин. http://tinkerpop.apache.org/docs/3.4.6/reference/#addedge-step

// define 'a' and 'b' vertices
g.addE('friendlyCollaborator').from('a').to('b').
                 property(id,23).property('project',select('c').values('name'))

Единственное замечание: выборка свойства края - это дополнительный переход по сравнению с простым чтением метки края.

Eg:

g.V(1).outE('knows') -> Gets the matching out edge in 2 hops.
g.V(1).outE().hasProperty('knows') -> An added hop to get to your edge.
person The-Big-K    schedule 07.04.2020