首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

图谱应用开发的边界

四书中的《大学》第一篇有这么一句话——知止而后有定。

这句话简直就是万能的。

在应用开发里,我们也必须做到知止。

止,就是停止的地方,就是功能的边界。

我们之所以要在项目前期 ,做很长时间的需求分析和产品设计,就是为了搞清楚功能的边界在哪里。

知道了功能的边界在哪里,才能知道什么是功能,什么是bug。

如果没有清晰而明确的边界,那么项目就是痛苦而漫长的,开发不知道自己写的是不是功能,测试也不知道自己测出来的是不是bug,项目的结束将遥遥无期。

这正是中国项目开发的通病之一,在一开始,就不愿意定下明确的边界,甚至美其名曰——弹性或者扩展性。

其实,根本就是不知道自己到底想做什么。

在做图谱应用开发的时候,尤其要明确功能的边界,因为图谱的应用在中国还是起步阶段,大家不知道自己要做什么,甚至不知道自己该不该做图谱的时候,就一定会乱提需求。

那么,图谱功能的边界在哪里呢?

我觉得,首先要从以下几点开始着手进行分析:

1.  节点的数量和种类

2. 关系的数量和种类

3. 希望图谱表现什么

在图谱中,最关键的两个数据就是节点和关系。

节点就是我们从现实世界抽象出来的实体,而关系则表现了节点之间直接或者间接的联系。

无论是节点还是关系,数量和种类都不能太少,或者太多。

如果太少了,图谱就没有存在的必要,太多了,图谱就失去了存在的必要。

这两句话看起来似乎是一个意思,其实并不完全一样。

我们可以举几个例子。

如果图谱里只有一个节点,那还需要去专门展示这个节点吗?

如果只有两个节点,却只有一个关系,那还需要用图谱这种形式去展现吗?

如果只有两个节点,却有四五种关系,这就有点意思了。

比如甲乙两个人,他们既是同学,又是同事,还是朋友和夫妻,是不是就能说明这两个人一辈子都腻腻歪歪的在一起?

当节点和关系的数量和种类在一定范围之内的时候,图谱可以表达出很多有用的信息。

但是一旦超出了范围,无论过少或者过多,都会导致图谱变成废物。

过少的情况前面说过了,现在考虑一下过多的情况。

想象一下,一个图谱里有两千个节点,你觉得还能看到什么?

在图谱的开发阶段,我们可以去测试节点很多的情况,但是在实际应用中两千个节点有任何意义吗?

大部分情况下,没有人可以从里面看出任何有用的信息。

或者两个节点之间有两百个关系,你会不会觉得数据出了问题?

图谱是用来厘清关系的,是用来找到脉络的,不是用来制造混乱的。

我觉得一个图谱里最多不能出现20个节点,关系也应该是差不多数量,最多比节点多50%。

当然这得看具体的项目,但是我真的无法想象在一个超过100个节点的图谱里能发现什么有用的东西。

当图谱里的节点超过一定数量时,我们首先应该考虑的是在获取数据的时候到底出了什么问题。

所以,接下来就是我想说的,我们到底指望图谱展现什么?

就像我在《知识图谱的理论, 相关工具和实际应用》里说的,图谱最重要的作用,是把使用者对数据的分析、整理和抽象用可视化的方法展现出来,图谱本身并不具备分析的功能。

数据分析的工作,实际上是具体的使用者自己来完成的。

使用者确定了某种规则,然后按照这个规则去对数据进行规范,输出我们想要的节点和关系,然后筛选出我们想要的节点和关系,展现在图谱里。

图谱只负责展现使用者输入的数据,如果图谱展现出来的数据无法说明任何问题,那只能证明使用者根本就没有输出有用的数据。

举个例子,曾经有这样一个需求,需求方希望展现两个以上作者的作品数据,每个作者的作品都可能超过100个,甚至可能有上千个,同时这些作品可能和这些作者都有关系。

需求方不希望图谱中节点数量太多,所以节点需要有翻页功能。

也就是说,在图谱的初始状态,我们可以看到两个以上的作者节点,每个作者节点有各自有几个作品节点,比如说5个吧。

在初始状态下,我们是看不到同时两个作者有关系的作品节点。当我们点击翻页按钮,作者节点下的作品节点开始改变,可能到第七页的时候出现了一个节点和另一个作者有关系。

这个时候我们终于找到两个作者合作完成的作品了。

我就非常不理解,如果我们的目的是让最终使用者找到两个作者的合作作品,或者说找到那些同时和另一种节点有关系的节点,我们为什么要在图谱里让最终使用者去找呢?

我们为什么不自己在数据里直接筛选出来展示给最终的使用者呢?

最终我们还是按照需求方的要求去开发了。

在中国就是这样,功能的合理性并不重要,重要的是能不能体现出功能的高科技含量。

直接在图谱里展示出结果,不会让需求方感觉到物有所值,但是在界面里进行复杂的操作,再加几个动态效果,这种科技感立刻就拉满了。

图谱本身是绝不可能成为数据分析的工具,但是加上其他工具,比如说一个数据整理标注的工具,输出有价值的数据给图谱,所见即所得的看到自己分析的结果,这倒是说得通的。

综上所述,一个实际应用的图谱应用,在开发之前,就需要明确一件事——我们希望这些节点和关系说明什么问题。

明确了这件事情之后,我们才能确定,图谱里会有哪几种节点和关系,会有多少个节点和关系。

有了展示数据的目的,以及节点和关系的种类和数量,我们才能决定采用什么样的布局去更直观的展现节点和关系。

确定了以上种种,整个应用的功能边界就清晰明确了,我们才能开发出有实际意义的图谱应用。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/ODbIq_0nkJgpfd3fsQphDQgA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券