Какие свойства узла должны существовать для чистого имени graphml в jQassistant

Какими свойствами должен обладать узел, чтобы его имя отображалось в графе. GRÀFIC?

Я создаю некоторый узел на основе моих пакетов с

MATCH (artifact:Artifact)
WHERE
   artifact.type <> "test-jar"
MATCH
  (artifact:Artifact)-[:CONTAINS]->(root:Package{fqn:"net.sf.sze.dao.api"})-[:CONTAINS]->(slice:Package)
WITH COLLECT(slice) AS rows1
MATCH
  (artifact:Artifact)-[:CONTAINS]->(root:Package{fqn:"net.sf.sze.frontend"})-[:CONTAINS]->(slice:Package)
WITH rows1 + COLLECT(slice) AS rows2
MATCH
  (artifact:Artifact)-[:CONTAINS]->(root:Package{fqn:"net.sf.sze.service"})-[:CONTAINS *2..2]->(slice:Package)
WITH rows2 + COLLECT(slice) AS rows3
UNWIND rows3 AS slice
MERGE (sn:Slice{name:slice.name})
MERGE (sn)-[:SLICE_CONTAINS]-> (slice)
RETURN
  sn

и попробуйте создать диаграмму graphml с

MATCH
  (slice1:Slice)-[:SLICE_CONTAINS]->()-[:CONTAINS*]->(t1:Type),
  (slice2:Slice)-[:SLICE_CONTAINS]->()-[:CONTAINS*]->(t2:Type),
  (t1)-[d:DEPENDS_ON]->(t2)
WHERE
   slice1 <> slice2
WITH
  slice1, slice2, count(d) as weight
RETURN
  slice1 as Slice1, slice2 as Slice2, {
    role :     "relationship",
    type :     "DEPENDS_ON",
    startNode: slice1,
    endNode:   slice2,
    properties: {
      weight: weight
    }
  } as Dependency

График создан хорошо, ожидайте имена узлов. Я получаю только как лейбл CompositeObject, id = 123456 что делает диаграмму бесполезной.

Кто-нибудь может дать мне подсказку, что не так?

1 ответ

Решение

Для типов, определенных сканером jQAssistant, существуют правила, специфичные для типов, которые будут отображаться как метки, например, "fqn" для помеченных узлов ":Artifact".

Вы создаете виртуальные отношения, в которых тип не может быть определен, поэтому никакое свойство не может быть показано. jQAssistant 1.3.0 будет поддерживать свойство "label" для управления этим, например

  ....
RETURN
  slice1 as Slice1, slice2 as Slice2, {
    role :     "relationship",
    type :     "DEPENDS_ON",
    startNode: slice1,
    endNode:   slice2,
    label: weight, // set an explicit label
    properties: {
      weight: weight
    }
 } as Dependency
Другие вопросы по тегам