无论是结构化项目还是非结构化项目,均需首先设计知识图谱Schema。知识图谱Schema一方面可以描述知识图谱中的实体类型、实体属性和关系等信息,另一方面也是知识图谱查询和分析的重要参考,相当于关系型数据库的表结构。知识图谱Schema可视化设计是gBuilder的特色功能之一,gBuilder的Schema设计采用的是以图的方式来表述知识图谱Schema。在gBuilder中我们基于G6自行研发的可编辑的可视化平台用户可以通过拖拽的方式可以在画布上设计类、类属性和关系。并且能够自定义配置节点和边内容、类型及范围等属性。
1. 重要规则
在设计Schema时,我们需注意遵循以下规则:
-
实体与属性之间不能存在边标签;
-
属性不能指向其他属性及自己;
-
属性不能指向实体;
-
同一实体的属性名称不能重复;
-
属性在画布中不能为一个孤立的点;
-
实体和实体之间必须存在标签;
-
实体不能重复指向同一个属性;
-
画布中不允许存在单独的指向线。
2. 功能介绍
2.1 进入schema设计页面
可以通过两种方式进入schema设计页面。第一种是在【项目管理】卡片中点击要进行Schema设计的项目下面的【Schema】按钮跳转到schema设计页面
第二种是在【Schema设计】页面的项目中下拉选择前面创建的项目,然后进行schema设计。
2.2 实体设计
接下来即可进行Schema具体设计,如下图所示在Schema设计界面左边有【类】和【属性】两个分别为黄色和绿色圆圈,用户可以通过拖拽的方式将其拖到右边设计界面,其中类就是实体,属性就是具体的实体属性。然后我们点击对应的实体节点,即可编辑节点的具体名称、URI和图标,填入图标URL地址后在后续图数据库构建时会将这类的实体都用该图标进行展示,但在当前页面不会有直接的展示效果。例如下图我们选择一个实体然后将这个实体编辑为人物:
2.3 属性设计
同样的我们拖拽属性到画布中进行设计。我们点击属性节点,可以编辑节点的标签、附加信息、最大值、最小值、以及规范数据类型、是否显示字段等,这样在schema设计阶段就进行了知识图谱的质量设置和保障,对于不符合设置的节点的数据的不会进行抽取,例如人的年龄设置最大值150,那么超过150的不符合我们设置的规则,则会过滤掉这部分不符合逻辑的数据进入知识图谱,提升知识图谱的质量。
例如我们编辑人物对应的属性节点为地址,然后年龄为整数类型且最大值为150。
2.4 边设计
然后我们通过选择要连接的两个实体或者实体和属性,通过直接增加有向边的方式添加边,同样单击实体和实体边后可编辑边的标签、形状、URI和信息,实体和属性的边不能添加标签。如下图所示我们在机构和人两个实体之间添加工作单位的边:
同时我们支持将边进行反向操作,右击对应的边,即可出现反向和删除操作。 用户可通过上面步骤按照自己的需求不断增加实体节点和实体的属性以及实体和实体之间的关系,下图展示我们依据奖项、娱乐人物的数据设计完成的Schema:
在设计好Schema后我们需要将其【保存】才能生效,建议在设计过程中边设计边保存,防止精力的无效浪费,如下图所示:
2.5 模板导入及重新加载
在schema设计右上角还有批量导入和重新加载按钮,对于已设计好的schema在后续通过【导入】新的zip文件后,需要点击重新加载来重新加载schema。
此外,gBuilder还支持用户在本地写好schema文件(json类型)然后直接导入到平台使用,但是需要依据相应的编写规范。具体的可以点击【下载导入模板】查看具体的模板样式,如下所示:
{
"nodes":{
"node1":[ //实体、节点的名称,必填项
{
"label":"属性1", //实体、节点的属性,必填项
"text":"1-附加信息", //属性的附加信息、描述等,选填项,可为空或删除此项
"maximum":"1-最大值", //属性值可取的最大值,选填项,可为空或删除此项
"minimum":"1-最小值", //属性值可取的最小值,,可为空或删除此项
"datatype":"datetime", //数据类型,可填写字符型:string、整数型:int、浮点型:float、日期型:datetime、布尔型:boolean,选填项,可为空或删除此项
"necessity":"n", //是否为实体或节点必需的属性,必填项
"see":"y" //是否显示字段,必填项
},
{
"label":"属性2",
"text":"2-附加信息",
"maximum":"2-最大值",
"minimum":"2-最小值",
"datatype":"datetime",
"necessity":"n",
"see":"y"
}
],
"node2":[
{
"label":"属性1",
"text":"3-附加信息",
"maximum":"3-最大值",
"minimum":"3-最大值",
"datatype":"string",
"necessity":"n",
"see":"y"
}
]
},
"edges":[
{
"label":"关系1", //边标签,必填项
"source":"node1", //源节点,必填项
"target":"node2" //目标节点,必填项
}
]
}
在编写好schema的文件后点击批量导入即可在画布中展示出设计的schema
2.6 工具栏
除了上诉功能外,我们还有工具栏的众多功能可进行撤销、删除、放大、缩小、自适应等,但该工具栏我们还在进行优化中,即将以全新样貌出现。
若大家在实际项目中需要使用gBuilder可联系运营同学或者发送邮件进行项目层面合作沟通。