图数据库JanusGraph实战[5]: JanusGraph可视化之Gephi

图数据库JanusGraph实战[5]: JanusGraph可视化之Gephi

作者:胡佳辉(家辉)  日期:2018年12月29日 CSDN博客:https://blog.csdn.net/gobitan

 

图数据库JanusGraph实战是一个系列文章,将全面介绍JanusGraph的各个方面。本文是该系列的第五篇,主要介绍JanusGraph的可视化工具Gephi。

 

JanusGraph可视化概述

在本系列的第一篇文章中已经介绍了JanusGraph支持五种可视化工具,分别如下:

  • Cytoscape

  • Gephi

  • Graphexp

  • KeyLines

  • Linkurious

今天,我们来看下JanusGraph中的图数据如何使用Gephi可视化工具来呈现。

Gephi可视化工具简介

Gephi是一款优秀的用于各种图和网络可视化与探索的免费开源软件。Gephi支持各种操作系统平台,包括 Windows, Mac OS X和Linux.

Gephi下载与安装

[1] 下载

进入https://gephi.org/,当前最新版本为gephi-0.9.2-windows,大约73M。

[2] 安装

直接双击,默认安装即可。

安装Gephi的Graph Streaming插件

进入"工具"->"插件"菜单,在"可用插件"中选中"Graph Streaming",并点击左下方的"安装"按钮。

然后,按照提示完成"Graph Streaming"插件的安装。安装完之后,需要重启Gephi。

Gephi与JanusGraph的集成

第一步:先启动好JanusGraph Server

Linux下采用非root账户在JanusGraph安装包的根目录下,直接用"bin/janusgraph.sh start"启动。默认的存储后端采用的的Cassandra,索引存储采用ElasticSearch。Cassandra和ElasticSearch都不需要单独起动,脚本启动的时候会自动依次启动这两个服务。

第二步:配置Gephi

[1] 启动Gephi并新建工程

菜单操作为:"文件"->"新建项目"

[2] 重命名工作区

注意:这一步如果没弄对会导致连接不上。

菜单操作为:"工作区"->"重命名",设为"janusgraphspace"

 

[3] 启动 Gephi Master Server

鼠标右击左侧Streaming窗口中的"Master Server",然后选择"Start",启动Master Server。启动后,就默认开启了一个服务,URL为:http://{ip地址}:8080/janusgraphspace,8080后面的路径就是工作区的名称。例如我本机(Windows)的 http://172.27.13.178:8080/janusgraphspace

第三步:tinkerpop.gephe插件的使用

环境说明:Gephi运行在我本地的Windows上,而JanusGraph Server部署在远程CentOS服务器上的。他们的IP地址分别为:

Gephi:192.168.142.1

JanusGraph Server:192.168.142.164

[1] 打开Gremlin Console

进入JanusGraph的根目录之后,输入"bin/gremlin.sh"打开Gremlin Console

[2] 激活tinkerpop.gephi插件

gremlin> :plugin use tinkerpop.gephi

==>tinkerpop.gephi activated

[3] 连接到tinkerpop.gephi插件

gremlin> :remote connect tinkerpop.gephi

==>Connection to Gephi - http://localhost:8080/workspace1 with stepDelay:1000, startRGBColor:[0.0, 1.0, 0.5], colorToFade:g, colorFadeRate:0.7, startSize:10.0,sizeDecrementRate:0.33

由于tinkerpop.gephi插件默认连接的Gephi地址为"http://localhost:8080/workspace1",但实际上我们的Gephi不在服务器上,而是在本地客户机上,所以后续还需要修改Gephi插件的配置。

[4]  配置tinkerpop.gephi插件

1) 配置gephi的host

gremlin> :remote config host 192.168.142.1

==>Connection to Gephi - http://192.168.142.1:8080/workspace1 with stepDelay:1000, startRGBColor:[0.0, 1.0, 0.5], colorToFade:g, colorFadeRate:0.7, startSize:10.0,sizeDecrementRate:0.33

2) 配置gephi的worksapce

gremlin> :remote config workspace janusgraphspace

==>Connection to Gephi - http://192.168.142.1:8080/janusgraphspace with stepDelay:1000, startRGBColor:[0.0, 1.0, 0.5], colorToFade:g, colorFadeRate:0.7, startSize:10.0,sizeDecrementRate:0.33

说明:如果想查看还有哪些可以配置,可以通过":remote config help"查看.

[5] 创建测试图数据

gremlin> graph = TinkerFactory.createModern()

==>tinkergraph[vertices:6 edges:6]

gremlin>

[6] 把测试数据推送到Gephi中

gremlin> :> graph

==>tinkergraph[vertices:6 edges:6]

==>false

gremlin>

 

[7] 在Gephi中查看导入的数据

从右上角的"上下文"窗口中可以看到导入了6个节点和6条边,但这个图很丑,需要格式化(美化)。

Gephi中图数据的格式化

经过一番折腾,图最终显示如下:

具体的过程就不详细描述了,请参考Gephi的官方帮助文档。https://gephi.org/users/tutorial-layouts/https://gephi.org/users/tutorial-visualization/

其他命令

清空Gephi工作区内的图数据

gremlin> :> clear

Gephi workspace cleared

参考资料:

[1] http://janusgraph.org/

[2] http://tinkerpop.apache.org/docs/current/reference/#gephi-plugin 

 

本文原发于 "图数据库与图计算"公众号,欢迎关注!也可以加入"图数据库与图计算"QQ群(463749267)  

 

 

 

<think>嗯,用户想了解知识图谱的构建全过程,需要实战教程或步骤指导。我之前已经给过一个回答,现在需要生成相关问题。首先,我得回顾之前的回答内容,确保问题相关且不重复。 之前的回答分六个步骤:需求分析、数据获取、数据预处理、知识建模、存储与推理、可视化与应用。每个步骤都有具体说明,比如数据获取提到网络爬虫和数据库,预处理包括清洗和实体识别,建模用了RDF和OWL,存储提到Neo4j,可视化用D3.js。 现在要生成相关问题,得覆盖用户可能感兴趣的扩展点。例如,数据获取的常见工具、实体关系的抽取技术、不同建模方法的比较、存储引擎的选择、可视化工具、以及实际应用案例。还要考虑用户可能遇到的挑战,比如数据质量或性能优化。 还要确保问题具体,比如工具推荐、技术对比、步骤中的难点。比如,知识抽取的NLP技术有哪些,或者Neo4j和JanusGraph的区别。另外,实际应用案例能帮助用户理解如何应用知识图谱。 需要避免重复之前的问题,比如之前已经问过性能分析、优化方法和应用场景,现在的问题要更深入或不同方面。例如,数据清洗的具体方法,或者动态更新知识图谱的技术。 最后,检查问题是否覆盖构建流程的各个方面,从数据到应用,确保全面且有帮助。可能的问题包括工具、技术细节、比较、挑战、案例等。</think>### 知识图谱构建实战教程(分步骤详解) #### 一、构建流程总览 知识图谱构建遵循「数据获取→知识表示→存储应用」的技术链路,完整流程包含六个核心步骤: $$构建流程 = 需求分析 + 数据获取 + 预处理 + 知识建模 + 存储 + 可视化$$ #### 二、详细操作步骤 1. **需求定义** - 明确领域范围(医疗/金融/电商等) - 设计实体关系类型(如$E_1 \xrightarrow{R} E_2$) - 输出Schema模板[^1] 2. **数据获取** ```python # 示例:使用Scrapy爬取结构化数据 import scrapy class WikiSpider(scrapy.Spider): name = 'wiki' start_urls = ['https://en.wikipedia.org/wiki/...'] def parse(self, response): yield { 'entity': response.css('h1::text').get(), 'properties': response.css('.infobox td::text').getall() } ``` 3. **数据预处理** - 实体识别:使用StanfordNLP工具包 - 关系抽取:基于规则模板或BERT模型 - 数据清洗:正则表达式过滤噪声 4. **知识建模** - 使用RDF三元组表示:$(subject, predicate, object)$ - 本体定义示例: $$owl:Class \equiv \{人物, 机构, 事件\}$$ $$owl:ObjectProperty \equiv \{创始人, 所属行业\}$$ 5. **存储实现** | 数据库类型 | 适用场景 | 工具示例 | |------------|------------------|---------------| | 图数据库 | 关系查询 | Neo4j, JanusGraph | | 三元组库 | RDF标准支持 | Apache Jena | 6. **可视化与应用** - 使用D3.js实现交互式图谱 - 搭建SPARQL查询端点 ```cypher // Neo4j查询示例 MATCH (c:Company)-[:FOUNDED_BY]->(p:Person) WHERE c.industry = 'AI' RETURN p.name, c.name ``` #### 三、实战工具推荐 1. 数据处理:OpenRefine 2. 图谱构建:Protege(本体建模) 3. 可视化Gephi 4. 全流程框架:DeepKE(浙江大学开源工具
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gobitan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值