У меня есть миниатюрные ориентированные графы Гремлина, в которых каждая вершина имеет два свойства: «тип» и «текст». Значения свойства «текст» только английский текст, а свойство «тип» может ли иметь значение, выбранное из этого набора:Как написать запросы Gremlin для следующих шаблонов?
NP, PP, VP, ADVP, ADJP, SBAR, PRT, INTJ, O
Все края в этих графиках имеют одинаковую метку: «Следующий».
Я хочу, чтобы иметь возможность выбрать графики, которые следующие шаблоны узлов:
1) [text=","] --> type="VP" --> type="ADVP" --> type="NP"
2) type="NP" --> [text="," Upto 3 nodes with any text and type text=","] --> type="VP" --> [text=":" OR "that"]
Узор элемент в скобках означает, что он не является обязательным.
Итак, для первого шаблона мне нужно выбрать графики, у которых есть узел с текстом «,», а затем узел с типом «VP», а затем «ADVP», а затем «NP».
Для второго шаблона мне нужно выбрать графики, которые имеют тип узла «NP», а затем необязательную последовательность узлов, начиная с узла с текстом «», затем до 3 узлов с любым текстом и типом, а затем узел с текстом ",". За этой необязательной последовательностью следует узел типа «VP» и, наконец, узел с текстом «:» или «that».
Два образца графы, которые соответствуют с первого образца:
Ниже приведены примеры графиков, которые соответствуют со вторым рисунком:
Я понимаю основные Gremlin обходов, но я не являюсь обязательно о том, как обрабатывать дополнительные элементы шаблона выше.
Есть ли способ писать запросы для таких шаблонов в Гремлине? Если нет, можете ли вы предложить подход, основанный не на Гремлине, для создания таких графиков и запросов к ним?