#gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
在内核版本v1.0
中,新增了三角形计数函数,即返回图中三角形数量。
-
triangleCounting(directed, pred_set)
参数
u
: 变量或节点 IRI,表示源结点
directed
: 布尔值,为真表示有向,为假表示无向(图中所有边视为双向)。若为有向则仅计数 cycle 类型三角形
pre_set
: 考虑的谓词集合(若设置为空 {}
,则表示允许出现数据中的所有谓词)
返回值
返回值为以下形式:
-
{
-
"paths": [2]
-
}
示例数据
为了更好的演示三角形计数函数功能,使用以下的数据作为示例数据:
-
<Alice> <关注> <Bob> .
-
<Alice> <喜欢> <Bob> .
-
<Alice> <不喜欢> <Eve> .
-
<Bob> <关注> <Alice> .
-
<Bob> <喜欢> <Eve> .
-
<Carol> <关注> <Bob> .
-
<Carol> <喜欢> <Bob> .
-
<Carol> <不喜欢> <Francis> .
-
<Dave> <关注> <Alice> .
-
<Dave> <关注> <Eve> .
-
<Dave> <不喜欢> <Francis> .
-
<Eve> <喜欢> <Carol> .
-
<Francis> <喜欢> <Carol> .
-
<Francis> <不喜欢> <Dave> .
-
<Francis> <不喜欢> <Eve> .
上述数据的图如下:
示例一:
下面的查询询问该图中有向三角形的数目,且构成它的边只能由喜欢和不喜欢关系标记,SPARQL查询语句为:
-
select (triangleCounting(true, {<喜欢>,<不喜欢>}) as ?y) where {}
结果如下,即该图中构成它的边只能由“喜欢”和“不喜欢”关系标记的有向三角形的数目为2,分别为 Bob -> Eve -> Carol -> Bob 、Carol -> Francis -> Eve -> Carol :
-
{
-
"paths":[2]
-
}
如果希望查询无向三角形数目,则使用下面的查询:
-
select (triangleCounting(false, {<喜欢>,<不喜欢>}) as ?y) where {}
结果如下(每个有向三角形均为无向三角形,而相比有向的情形多了 Alice -> Bob -> Eve <- Alice):
-
{
-
"paths":[3]
-
}
针对gStore有任何问题也可通过加运营同学微信,邀请加入gStore图谱社区咨询。
诚邀大家参加
·gStore-weekly技术文章征集活动·
相关技术文章,包含但不限于以下内容:系统技术解析、案例分享、实践总结、开发心得、客户案例、使用技巧、学习笔记等。文章要求原创。
入选周刊即送精美礼品~