虽然文章很短,但如果对设计实现过程不感兴趣,大家可以直接去文末看演示视频哈。
011 之前讲基于我个人需求知识图谱实现探索; 011 之后的文章和大家聊知识图谱产品的构建。
回顾
还记得之前知识图谱节点的新增么,由于我是做技术相关的知识管理,所以我把相关的常用属性都给列了出来,比如:
• 节点常用的类型:我把用到的都写了进去,现在可以直接自定义标签了
• 节点的层级:最初是为了更好可视化,结果发现并不容易维护,而且对于复杂图很难确定这个层级
• 技术或者工具的流行度:流行的不一定是好的,但是很大程度反应了社区大小以及活跃度
• 我对这个技术的打分:一般我用过的才打分,这个后续如果过滤或者进行技术选型很有用
• 开源和免费/收费:这两个是所有技术一个很明显的标签;
• 是否是SaaS产品:国内经过这三五年的发展,我也越来越喜欢 SaaS 这种服务方式了
• 是否支持本地部署:本地部署仍然是很多企业的硬性要求,也是衡量软件使用方式的重要指标
• 各种网址:主页、源码页、文档页、演示页、这些页面能收集到最好,这样我就能直接点进去了
• 描述:描述看似必不可少,但是我一直其实一个也没有维护
其实还有一些隐藏的属性没有开放,比如:
• 首页的截图:让我能一眼看到这个长什么样子
• 节点的Logo:控制面板里面还专门增加了节点名称的显示方式:3D文本、HTML、图片。这个图片就是用的节点 Logo。
自定义属性
既然节点属性不可或缺,那么怎么让用户自定义呢,简单来说:有三中方式:
完全节点自定义
完全在节点上自定义,用户可以设置标签的名称和标签的值。比如很多云原生基础设置编排工具,直接面向用户的就是这种。
预设全局属性
预设全局属性是指全局我定义一批属性,让每个节点填写(选填),这个和我们之前的方式类似。
按节点类型/标签设置属性
这个稍微复杂点,就是先把节点归类,可以对每个类型设置属性,然后应用在节点上。
思来想去,我选择了第三种方案,原因无他,这个方案对用户更友好一些。而类型正好对应到我们上一篇文章介绍的节点标签上。
多标签和属性的冲突
我们一个节点是可以设置多个标签的,这样的话如果每个标签都有一份属性集的话,同一个节点应用不同标签的时候属性是可能重复和冲突的。
重复就是指商品作为 A标签和 B 标签的属性可能重复,比如 演员和作家 两个标签,他们可能都有 作品 这个属性,这样对一个有双重身份量变就重复了。
冲突是指两个标签可能有相同的属性名,但是含义确不一样,两想维护的时候,同一个名称就会有不同含义。
比较好的方案可能是,分别维护同一个节点不同标签下的属性或者切换属性展示和维护,但是我把这个功能带入我的使用场景,有感觉太复杂了。对于个人 知识图谱来说,大部分懒人还是希望越简单越好。
所以我加上了「主标签」的概念,节点属性跟着主标签走,其他属性只做一个分类。这样有全局管理的便利性,又有不同类型节点定义的能力。
那么我们新增标签的时候就是这样:
属性类型
为了更好的编辑(至少不能比我之前的定制图谱差),我又为每个属性增加了属性类型,比如:
• 复选框、
• 打分、
• 数字\整数、
• 网址
• 单行输入、
• 多行输入。
这样虽然没有自定义布局的能力,但至少支持了我之前的数据和编辑格式。
关系维护
关系维护的操作我们依然简单处理,用两个多选框来维护当前节点的来源节点和目标节点。
新增节点预览
看下最终的预览效果,我们刚刚提到的几个元素依然简单粗暴的放在了应该在的地方:
关系维护之间是计划用二维可视化图谱来表示,做了 Demo 之后发现操作效率实在是低,截图时候没来得及去掉。
标签颜色
我们之前定制版的图谱对颜色做了不少支持,首先内置了两个单色色板,以及一个阶梯深度色板,来满足我没事就想换换颜色的需求:
同时在控制面板上还加了颜色深度和透明度的滑动条,以及一个随机颜色的开关:
我本来也想弄一个内置色板给大家用的,但是想到这个随机性太强,万一给自己的喜欢的股票整一个绿色也挺不吉利的。所以标签颜色也开放了自定义:
你可以随机切换一个颜色,或者手动选一个颜色:
列表预览
列表我们也简单点儿,直接显示一下颜色,这样方便我们调整和理解:
预览
最后,还是放上自定义属性和颜色的操作视频:
--- END ---

