Skip to content

Latest commit

 

History

History
41 lines (23 loc) · 6.82 KB

semantic_web.md

File metadata and controls

41 lines (23 loc) · 6.82 KB

今天@silverhawk_ny 问:一直不懂什么是语义网?

我试着来问答一下我的理解。当然这个问题问三个这个领域的人可能能得到五个不同的答案。我讲的这个是从我狭隘的世界观出发的,请懂行的轻拍。

我觉得可以从目的和手段两个角度来解释。

目的

从目的的角度,语义网是一套减少数据摩擦,加快数据流动速度的方法。

为什么要加快数据流动速度呢?信息就和货物一样,慢速的系统和快速的系统创造出来的价值是完全不一样的。快的系统在单位时间内可以让更多的人参与到决策和行动中来,就可以打败那些更慢的系统。网页10秒打开和1秒打开,问题1分钟内被回答和1天被回答,效果完全不同。火云邪神说,天下武功,唯快不破,就是这个道理。

那数据流动为什么会慢呢?有人机界面的摩擦,和机器-机器界面的摩擦。其中人机界面的摩擦是主要的。

人机界面的摩擦,就是人本身产生信息,从机器那里消费信息,它的带宽是很小的。 比如语音,只有几个比特。打字,也只有几个比特。图片看起来多,但最后落实到脑子里,还是要一个理解的过程,最后变成语言可描述的形式。大多数人又是很懒的,依赖一些信息直觉来选择最省力的信息,HCI里面很多这种研究,不多说了。

举例说,比如电子表格(比如Lotus123, Excel)的出现就是减小人机界面的摩擦的好样板。在电子表格之前,也有数据库,电子表格能干的事情数据库都能干,那为什么电子表格会更加流行呢?因为电子表格这种形式,更加符合人类认知的直觉,它不需要实现定义一个表结构,它可以把看起来相似的数据在屏幕上相近的组织在一起,它可以允许人们去实验数据的各种组织方式。当然这些也都是数据库都能干的,可是数据库软件不友好,它关注的是机器效率问题,不是人和机器一起工作的效率问题。

机器和机器的摩擦,就是机器怎么有效地把一个信息传送给另一个机器?各种网络协议都在不同层次上解决这个问题。 和语义网特别相关的有两个。一个是XML,帮助机器建立一个交换数据的语言。一个是RSS,让博客的传播变得自动化。各个不同的领域都有自己的这种语言,比如金融领域的XBRL,医疗领域有HL7,图书馆领域都DC,等等。这些语言有些人叫模式(schema),有些人叫元数据(metadata),有些人叫本体(ontology),本质上都是促进机器之间通信的手段。

手段

语义网减少数据流动摩擦,加快数据流动速度的手段,也就是着眼减少人机界面的摩擦和机器与机器的摩擦这两个方面。这两个方面都是依靠为网页添加可查询的注释。大家听到说模式、元数据、本体,或者现在更时髦的链数据(linked data),知识图谱(knowlege graph),本质上就是一个东西。

减少机器和机器的摩擦很好理解,网络界一直都在做的事情。打个比方说,我要寄一个包裹给张三。但是我没有张三家的地址,我的包裹也没有信封。我就要托一个邮递员,告诉他张三住在东边山脚下第四棵大树下面。然后我托的这个人可能要找很久才能找到这个地方。现在可以做两件事加快这个过程。第一,我要有张三的门牌号码地址。在语义网里,这就是给每个网络资源一个网址URI——如果本来没有的就创造一个。第二,我要有一个写地址的信封,这个地址最好是机器可处理且自描述的。什么意思呢?比如这个地址是二维码,邮递员可以把这个地址往GPS里一扫,一下子就知道了,哦,原来这是个居民区,某个地方,我该怎么走。

自描述的网络可寻址资源, self-describing dereferenceable URI,这个是我理解的语义网的技术核心。说白了,就是要给东西起名字,然后再解释这些名字是什么。这个解释就是所谓的元数据。最重要的元数据是名字之间的关系,这就构成了一张图。现在火爆到hype的知识图谱,就是这么个东西。在这上面可以有很多更上层的操作,如查询,如推理。

那减少人机界面的摩擦呢?这个就是强调,如何利用元数据让用户来探索,来发现。比如寄包裹那个例子,如果信封上只印二维码可以吗?不可以,大多数人不会写二维码的(对应到语义网,大多数人不会去写元数据的),也看不懂。你必须提供工具让寄信的人、邮递员、收信的人都一眼就明白,哦,这个包裹从哪里来到哪里去。比如Faceted Browser,就是让用户在交互的过程中逐渐找到最需要的信息。还有各种可视化Visualization,特别是交互式的可视化,把数据变成特别容易理解的形式。再有社交媒体上现在越来越多的元数据,如Facebook Open Graph, Twitter Card,这些都是帮助用户集成信息,更直接地看到信息,发现信息的手段。

学派

但是很不幸,语义网内部分裂成两派,减少“人机界面的摩擦”和减少“机器与机器的摩擦”这两派在斗争中合作,在合作中斗争,已经内耗了十几年了。

用Jim Hendler (disclaimer:我以前的老板)的话说:这就是强调“语义”呢(SEMANTIC web),还是强调“网”(Semantic WEB)

减少“机器和机器的摩擦”,也就是SEMANTIC web,更多找眼于机器的效率。 坦白说,大多数这个领域的人开始都是在关注这个问题,有原罪。所以从RDF, OWL, OWL2, RIF下来,发明了一系列这种语言,越来越逻辑,越来越没人懂,越来越被历史唾弃。后来就变成一些逻辑学家的游戏了。现在他们在几个会议里,如KR, AAAI,还在坚持。大多数工业界的实践已经和这些没有关系了。可惜很多教科书还由于历史原因,在这么教。

减少“人机界面的摩擦”,就是Semantic WEB,更多着眼于如何更好的服务于人。 从Web现有的技术出发,比如博客啊,比如图片啊,比如JSON啊,怎么加上一点点结构化数据,每加一点就让用户感受到价值? 现在大家发明了很多轮子,很多不冠以语义网的名字。怎么从这些实践中总结(而不是设计)出一个最优实践来?这个是前沿现在关心的问题。我们在Memect,也就是想探索这样一些方法。

还有一些实践是介乎两者中间的,比如Watson, 比如Siri,既提供了智能的人机界面,又实践了大规模的机器处理。

结语

语义网是利用结构化数据,加快数据流动速度的方法。通俗解释请看文中寄信那个例子。