有一个继承自V的Class API,它有三个属性:name,arguments和return_value,以下是一个例子:
{ " api":" _mbscmp", "参数&#34 ;: [ " 0x029605c8&#34 ;, " 0x10011a74" ] " return_value":" -1", }
我创建了3000个API顶点,接下来我要创建两个边:
1.Argument_sharing:两个API顶点具有相同的参数,例如,API one具有参数[" 1"," 2"," 3"]和API二有参数[" X"," y"," 1"],一个和两个将有一个边缘Argument_sharing,这意味着一个和两个有相同的参数" 1"
2.Data_dependence:一个API的return_value与另一个API的参数之一相同。例如,a = APIone(); APItwo(一);然后APIone和APItwo将具有Data_dependence边缘。
所以我想要一个sql命令来找到两个相关的顶点
答案 0 :(得分:0)
我试过这些记录
我使用了这个javascript函数
var g=orient.getGraph();
var api_list=g.command("sql","select from API");
for(i=0;i<api_list.length;i++){
var api=api_list[i];
var arguments=api.getProperty("arguments");
for (j=i+1;j<api_list.length;j++){
var api2=api_list[j];
var arguments2=api2.getProperty("arguments");
for(h=0;h<arguments.length;h++){
var arguments_h=arguments[h];
for(y=0;y<arguments2.length;y++){
var arguments_y=arguments2[y];
if(arguments_h==arguments_y){
g.command("sql","create edge Argument_sharing from " + api.getId()+ " to " + api2.getId());
break;
}
}
}
}
}
我收到了这些记录
希望它有所帮助。