私は小さなNeoグラフを持っています:
match (f) optional match (f)-[r]-() delete f, r;
merge (DMSrc:DMSys { Org: 'UNK-1', System: 'UNK' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'UNK-2', System: 'Oracle GL' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'X&X', System: 'Classic' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'UNK-3', System: 'Classic' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'UNK-4', System: 'Sun System' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'UNK-5', System: 'Oracle GL' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'UNK-6', System: 'Oracle GL' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
merge (DMSrc:DMSys { Org: 'UNK-7', System: 'Direct (No Interface)' }) merge (DMDst:DMSys { Organization: 'UNK-0', System: 'Peoplesoft' }) merge (f:DMFile { Name: 'BAL'}) merge (DMSrc)-[:Provides]->(f)-[:Receives]->(DMDst);
ノードがデータプロパティ(Neoのノード属性)「システム」を使用するグラフを作成しようとしていますが、うまくいきません。コードは次のとおりです。
var neo = {
url: 'http://localhost:7474',
user: 'neo4j',
password: '***'
};
sigma.neo4j.cypher(neo,
'MATCH (n) OPTIONAL MATCH (n)-[r]->(m) RETURN n,r,m LIMIT 100',
{ container: 'graph' },
function (s) {
sigma.plugins.killDesign(s);
var design = sigma.plugins.design(s);
design.setStyles({
nodes: {
label: { by: 'neo4j_data.System' }
}
});
design.apply();
}
);
ドキュメントのサンプル リファレンス which data.somethingとは異なり、 Neo4j から取得したグラフのデバッグでわかったように、 neo4j_data.somethingを使用していることに注意してください。そこにノード属性が存在するようです。
どうやら、このデータにアクセスする必要がある場所は、 でapplyStyle
定義されているメソッドsigma.plugins.design.js
、具体的には 534 行目です。これを以下に引用します。
if (!(visualVar in self.originalVisualVariable[item.id])) {
// non-writable property
Object.defineProperty(self.originalVisualVariable[item.id], visualVar, {
enumerable: true,
value: item[visualVar]
});
}
ラベルの値 (visualVar は現在 "label" に設定されています) がitem[visualVar]
... に設定されていることがわかりますが、以下がitem
含まれています。
{
Object
cam0:size: 8
cam0:x: 656.8832126805254
cam0:y: 191.29239469613498
color: "#000000"
id: "0"
label: "0"
neo4j_data: {
Org: "UNK-1"
System: "UNK"
}
neo4j_labels: Array[1]
read_cam0:size: 8
read_cam0:x: 61.38321268052541
read_cam0:y: 91.79239469613499
size: 1
x: 0.8536414597183466
y: 0.980357211548835
__proto__: Object
}
このことから、属性はありますがitem.label
、実際にすべきことは検索であることがわかりますitem.neo4j_data.System
。
私はこれを誤解していますか、それともどのように機能するはずですか?
TIA-e