#gStore-weekly | gStore最新版1.2之新增内置高级函数详解(一)

gStore1.2版本新增了七个高级函数,我们第2期将继续介绍的高级函数为:整体/局部集聚系数(clusterCoeff)、鲁汶算法(louvain)、K跳计数(kHopCount)/K跳邻居(kHopNeighbor)三类高级函数。

1 局部/整体集聚系数(clusteringCoeff)

1.1 局部集聚系数

查询结点 u 的局部集聚系数,即所有与它相连的结点之间所连的边的数量(即实际形成的以 u 为顶点的三角形数目),除以这些结点之间可以连出的最大边数(即最大可能形成的以 u 为顶点的三角形数目)。

clusterCoeff(u, directed, pred_set)
  • 参数 u : 变量或结点 IRI

    directed :布尔值,为真表示有向,为假表示无向(图中所有边视为双向) 。将图视为有向时,仅计数 cycle 类型三角形(详见三角形计数的介绍)

    pred_set:考虑的谓词集合(若设置为空 {} ,则表示允许出现数据中的所有谓词)

  • 返回值

    返回值为结点 u 的局部集聚系数,对应的值为双精度浮点数(形式详见以下例子)。

    {"paths":[{"src":"<IRI>","result":0.123}]
    }
    
  • 示例(数据集详见【4 示例数据集】)

    下面的查询为局部集聚系数,构成它的边上关系为喜欢关注

    SELECT (clusterCoeff(<Eve>,false,{<喜欢>,<关注>}) AS ?y) WHERE{}
    

    结果如下

    {"paths":[{"src":"<Eve>","result":0.333333}]
    }
    
1.2 整体集聚系数

查询图的整体集聚系数。

clusterCoeff(directed, pred_set)
  • 参数

    directed :布尔值,为真表示有向,为假表示无向(图中所有边视为双向) 。将图视为有向时,仅计数 cycle 类型三角形(详见三角形计数的介绍)

    pred_set:考虑的谓词集合(若设置为空 {} ,则表示允许出现数据中的所有谓词)

  • 返回值

    返回值为图的整体集聚系数,对应的值为双精度浮点数。

  • 示例(数据集详见【4 示例数据集】)

    返回值为结点 u 的整体集聚系数,对应的值为双精度浮点数(形式详见以下例子)。

    SELECT (clusterCoeff(false, {<喜欢>,<关注>}) AS ?y) WHERE{}
    

    结果如下

    {"paths":[0.272727]
    }
    

2 鲁汶算法(louvain)

基于标签传播查询图中各结点的聚类情况,可用于社区发现等多种应用。

louvain(directed, pred_set, maxIter, increase)
  • 参数 directed : 布尔值,为真表示有向,为假表示无向(图中所有边视为双向)

    pred_set:考虑的谓词集合(若设置为空 {} ,则表示允许出现数据中的所有谓词)

    maxIter: 最大迭代次数,大于等于1的整数

    increase: 模块度增益阈值(0~1)

  • 返回值

    返回值为以下形式,count为划分的社区数量,details为划分的各社区信息,包括社区编号communityId、成员数量menberNum

    {"count": 3,"details": [{ "communityId": "2", "menberNum": 5},{ "communityId": "4", "menberNum": 5},{ "communityId": "5", "menberNum": 4}]
    }
    
  • 示例(数据集详见【4 示例数据集】)

    下面的查询在无向图(图中所有边视为双向)中的各结点的聚类情况,边上的关系可以是喜欢关注,最大迭代次数为1,模块度增益阈值为1查询语句为:

    SELECT (louvain(false, {<喜欢>, <关注>}, maxIter=1,increase=0.01) AS ?x) WHERE{}
    

    结果如下

    {"paths":[{"count":2, "details":[{"communityId":"5", "menberNum":3},{"communityId":"6", "menberNum":3}]}]
    }
    

3 K跳计数(kHopCount)/K跳邻居(kHopNeighbor)

3.1 K跳计数(kHopCount)

查询从结点 u 开始,统计其k层可所访问到的结点个数。

kHopCount(u, directed, k, pred_set)
  • 参数

    u : 变量或结点 IRI

    directed :布尔值,为真表示有向,为假表示无向(图中所有边视为双向)

    k :跳数(仅统计此跳数可达的节点数)

    pred_set:考虑的谓词集合(若设置为空 {} ,则表示允许出现数据中的所有谓词)

  • 返回值

    返回值为以下形式,其中 src 为 u 对应的 IRI ;depth 为所处层数/高度(等于参数k);count 为所处层数访问到的结点总数,类型为整型。

    {"paths":[{ "src": "<IRI>", "depth": 3, "count": 1}]
    }
    
  • 示例(数据集详见【4 示例数据集】)

    下面的查询返回图中的K跳计数,构成它的有向边由喜欢,关注关系3跳内的计数信息:

    SELECT (kHopCount(<Alice>,true,3,{<喜欢>,<关注>}) AS ?y) WHERE{}
    

    结果如下

    {"paths":[{"src":"<Alice>","depth":3, "count":1}]
    }
    
3.2 K跳邻居(kHopNeighbor)

查询从结点 u 开始,其k层可所访问到的结点。

kHopNeighbor(u, directed, k, pred_set, ret_num)
  • 参数

    u : 变量或结点 IRI,表示源结点

    directed :布尔值,为真表示有向,为假表示无向(图中所有边视为双向)

    k :跳数(仅统计此跳数可达的节点数)

    pred_set:考虑的谓词集合(若设置为空 {} ,则表示允许出现数据中的所有谓词)

    ret_num:整数,选填,默认为100,表示最多返回 ret_num 个结点 IRI (若总结点数不足 ret_num 个,则返回所有结点 IRI )

  • 返回值

    返回值为以下形式,其中 src 为 u 对应的 IRI ;depth 为所处层数/高度(等于参数k);dst为所处层数访问到的结点列表。

    {"paths":[{ "src": "<SRC_IRI>", "depth": 1, "dst": ["<DST_IRI>"]}]
    }
    
  • 示例(数据集详见【4 示例数据集】)

    下面的查询返回图中的K跳邻居,构成它的有向边由喜欢,关注关系3跳内的邻居信息:

    SELECT (kHopNeighbor(<Francis>,true,3,{<喜欢>,<关注>},100) AS ?y) WHERE{}
    

    结果如下

    {"paths":[{"src":"<Francis>","depth":3,"dst":["<Eve>","<Alice>"]}]
    }
    

4 示例数据集

<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> .

虚拟网络社交图

虚拟网络社交图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/694731.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Javaopp面向对象部分核心知识梳理

目录 前言&#xff1a; 一.面向对象和面向过程 面向过程 面向对象 面向过程与面向对象 二.类和对象 类 概念 成员变量&#xff08;静态成员变量 和 非静态成员变量&#xff09; 成员方法&#xff08;静态成员方法 和 非静态成员方法&#xff09; 代码块&#xff08;实…

React之拖动组件的设计(一)

春节终结束了&#xff0c;忙得我头疼。终于有时间弄自己的东西了。今天来写一个关于拖动的实例讲解。先看效果&#xff1a; 这是一个简单的组件设计&#xff0c;如果用原生的js设计就很简单&#xff0c;但在React中有些事件必须要多考虑一些。这是一个系列的文章&#xff0c;…

Linux CAfile 文件下的/ca-bundle.crt怎么生成的

在配置Linux Nginx SSL证书后&#xff0c;通过服务器访问域名时发现&#xff0c;服务器返回的CA证书是&#xff1a;/etc/pki/tls/certs/ca-bundle.crt 正式我在使用Spring Native安装了Docker自动生成的&#xff0c;而且开启了Docker的自启动&#xff0c;如果你和我一样&#x…

常见的几种HTTP状态码

HTTP状态码用于告知客户端与服务器之间发生的情况&#xff0c;以下是一些常见的HTTP状态码及其含义&#xff1a; 1xx 信息性状态码&#xff08;Informational&#xff09;&#xff1a; 100 Continue&#xff1a;收到请求的初始部分&#xff0c;客户端应继续请求。101 Switching…

10MARL深度强化学习 Value Decomposition in Common-Reward Games

文章目录 前言1、价值分解的研究现状2、Individual-Global-Max Property3、Linear and Monotonic Value Decomposition3.1线性值分解3.2 单调值分解 前言 中心化价值函数能够缓解一些多智能体强化学习当中的问题&#xff0c;如非平稳性、局部可观测、信用分配与均衡选择等问题…

从零开始学习Netty - 学习笔记 - NIO基础 - 文件编程:FileChannel,Path,Files

3.文件编程 3.1.FileChannel FileChannel只能工作在非阻塞模式下面&#xff0c;不能和selector一起使用 获取 不能直接打开FIleChannel&#xff0c;必须通过FileInputSream&#xff0c;或者FileOutputSetream &#xff0c;或者RandomAccessFile来获取FileChannel 通过FileIn…

互联网高科技公司领导AI工业化,MatrixGo加速人工智能落地

作者&#xff1a;吴宁川 AI&#xff08;人工智能&#xff09;工业化与AI工程化正在引领人工智能的大趋势。AI工程化主要从企业CIO角度&#xff0c;着眼于在企业生产环境中规模化落地AI应用的工程化举措&#xff1b;而AI工业化则从AI供应商的角度&#xff0c;着眼于以规模化方式…

Rust ?运算符 Rust读写txt文件

一、Rust &#xff1f;运算符 &#xff1f;运算符&#xff1a;传播错误的一种快捷方式。 如果Result是Ok&#xff1a;Ok中的值就是表达式的结果&#xff0c;然后继续执行程序。 如果Result是Err&#xff1a;Err就是整个函数的返回值&#xff0c;就像使用了return &#xff…

电脑wifi丢失修复

当你打开电脑突然发现wifi功能不见了&#xff0c;可以先查看一下网卡的状态 在控制面板中找到设备管理器&#xff0c;打开就能找到网络适配器&#xff0c; 我这里是修复过的&#xff0c;wifi丢失后这里可能会显示WALN是丢失的&#xff0c;其他项显示黄色感叹号。 如何修复呢…

Go语言中的TLS加密:深入crypto/tls库的实战指南

Go语言中的TLS加密&#xff1a;深入crypto/tls库的实战指南 引言crypto/tls库的核心组件TLS配置&#xff1a;tls.Config证书加载与管理TLS握手过程及其实现 构建安全的服务端创建TLS加密的HTTP服务器配置TLS属性常见的安全设置和最佳实践 开发TLS客户端应用编写使用TLS的客户端…

[游戏开发][虚幻5]新建项目注意事项

鼠标右键点击Client.uproject文件&#xff0c;可以看到三个比较关键的选项&#xff0c; 启动游戏&#xff0c;生成sln解决方案&#xff0c;切换引擎版本 断点调试 C代码重要步骤 如果你想断点调试C代码&#xff0c;则必须使用使用代码编译启动引擎&#xff0c;你需要做几个操作…

Backend - Docker 离线卸载

目录 一、卸载 docker 1. 停止 docker 2. 删除相关文件 3. 重新加载配置文件 4. 移除 docker 二、卸载 docker-compose 三、查看 Docker-compose 和 Docker、docker.service 是否卸载干净 1. 首先确定自己安装的目录 2. 进入这三个目录下查看文件夹 3. 删除docker-se…

Python 正斜杠 (斜杠 /) 和反斜杠 (倒斜杠 \)

Python 正斜杠 [斜杠 /] 和反斜杠 [倒斜杠 \] 1. Windows2. LinuxReferences 1. Windows 倒斜杠有两个&#xff0c;因为每个倒斜杠需要由另一个倒斜杠字符来转义。 Microsoft Windows [版本 6.1.7601] 版权所有 (c) 2009 Microsoft Corporation。保留所有权利。C:\Users\fore…

从零开始学习Netty - 学习笔记 - NIO基础 - 网络编程: Selector

4.网络编程 4.1.非阻塞 VS 阻塞 在网络编程中&#xff0c;**阻塞&#xff08;Blocking&#xff09;和非阻塞&#xff08;Non-blocking&#xff09;**是两种不同的编程模型&#xff0c;描述了程序在进行网络通信时的行为方式。 阻塞&#xff08;Blocking&#xff09;&#xff1…

C#中使用list封装多个同类型对象以及组合拓展实体的应用

文章目录 一、list使用方法二、C#组合拓展实体 一、list使用方法 在C#中&#xff0c;使用List<T>集合是封装多个同类型对象的常用方式。List<T>是泛型集合&#xff0c;T是集合中元素的类型。下面是一个简单的例子&#xff0c;演示如何创建一个List<T>&#…

鸿蒙 gnss 开关使能流程

先WiFi&#xff0c;后 定位&#xff0c;再从蓝牙到NFC&#xff0c;这个就是我大致熟悉开源鸿蒙代码的一个顺序流程&#xff0c;WiFi 的年前差不多基本流程熟悉了&#xff0c;当然还有很多细节和内容没有写到&#xff0c;后续都会慢慢的丰富起来&#xff0c;这一篇将开启GNSS的篇…

js设计模式:计算属性模式

作用: 将对象中的某些值与其他值进行关联,根据其他值来计算该值的结果 vue中的计算属性就是很经典的例子 示例: let nowDate 2023const wjtInfo {brithDate:1995,get age(){return nowDate-this.brithDate}}console.log(wjtInfo.age,wjt年龄)nowDate 1console.log(wjtInf…

mq大量消息堆积有哪些解决方案

当消息队列中出现大量消息堆积时&#xff0c;可能会导致系统性能下降、消息延迟增加以及服务不可用等问题。针对这种情况&#xff0c;可以采取以下几种解决方案&#xff1a; 增加消费者数量&#xff1a;增加消费者数量可以提高消息消费的速度&#xff0c;缩短消息队列中消息的处…

在 Windows 上安装 Redis 过程全记录(使用WSL在Windows中搭建虚拟环境)

在Windows上使用Redis进行开发 Windows 上不正式支持 Redis。但是&#xff0c;您可以按照以下说明在 Windows 上安装 Redis 进行开发&#xff0c;本教程采用WSL方式安装Linux虚拟环境&#xff08;并非唯一方式&#xff0c;也可通过其他方式安装Linux虚拟环境&#xff0c;本教程…

flink分区与算子链

flink分区与算子链 flink 分区策略flink 什么情况下才会把 Operator chain 在一起形成算子链&#xff1f; flink 分区策略 GlobalPartitioner 数据会被分发到下游算子的第一个实例中进行处理RebalancePartitioner 数 据会 被循 环发 送到 下 游的 每一 个实 例中 进 行处 理。…