戏说语义网——简介

这是曾经发在bbs上的文章,现在粘贴过来,作为一个副本。

     万维网毫无疑问是20世纪伟大的发明,但它也有缺陷,不知你是否注意到咱学院很多好网站不容易找到,例如:http://ccst.jlu.edu.cn/JCSB/webRoot/index.html。我们人类搜索信息的主要方式是提问的形式,例如,我把爸爸的妈妈的表弟的儿子的媳妇叫什么?(额~,我承认我有点恶搞),很可惜,你如果这样搜素是得不到答案的,为什么这种方式不行,而必须接受传统搜索引擎的关键字方式。其实,这是因为当前Web的基础结构决定的了它上面的应用是什么样的,所谓“经济”基础决定上层建筑。是的,大牛早就注意到了,他们已经开始轰轰烈烈的语义网运动,在此,我打算用5篇左右的文字来简单的介绍一下语义Web,让本科的学弟学妹们懂得有这么一个方向。由于我刚接触语义Web,如果行文中有错误之处,恳请大家批评指正。好了,我们开始第一篇。


     噢,对了,在此我要说明的是,下面的思想归功于Toby Segaran,我只是做了一些本土化工作,但是如果其中引入了错误(或其他问题),那是我的责任,与Toby Segaran无关。


==============================================================================


“People are always asking ’what great technique can I use on this data set?’ when they should be asking ‘what’s the best data set I can get?’ ”       
—— Andreas Weigend, former chief scientist at Amazon
 


引言——先来说一下语义


    自然语言,就是我们在生活中与人交流的语言,她是如此的令人惊奇!你能在毫不费力的情况下让一个进入校园的陌生者找到吉林大学计算机学院的大楼——“青楼”;你可以和你的朋友分享你关于音乐、电影方面的知识;你可以去图书馆,那起一本书,从中习得知识,即使作者生活在几十年前,甚至上百年前(^-^,如果你懂古文的话)。此时也许就有人说了,自然语言有什么神秘的,3岁小孩都能学会。神秘吗?是的,确实神秘,之所以我们会忽略她的神秘,而觉得如此平常,是因为我们就生活在充满自然语言的环境中。有句话说的好:“鱼是最后一个知道水的”。实际上,没有比自然语言更好的API了。


    下面我们来举个简单的例子,下面是两个“主-谓-宾”结构的句子,这是个非常简单的语法结构:
1, 李雷喜欢韩梅。
2, 韩梅喜欢小狗。


    这里的每一个句子都表达了一定的信息。其中词语“李雷”和“韩梅”分别代表了一个人,词语“小狗”代表了一个会“汪汪”叫的动物(注意:不是某个雪饼上的那个东西,你能理解,对吗?如果不知道,请在google上敲入“wangwangxuebing”)。因为你之前知道“喜欢”这个词的含义(额~,你不知道。。。),那么通过读这两句话,你获得了一些关于这个世界的信息。利用这些信息,现在你可以回答一些问题,例如“请问谁喜欢小狗?”(我突然想起了,初中的英语听力,啊,好怀念)这是一个关于语义的例子,其中符号(如“李雷”)代表一个事物或者一个概念,而一个符号组成的序列将会表达一定的含义。


    在一个动作中,语义是把含义传达给结果的过程。一个符号序列可以表达一定的含义(信息),并且这个信息将会影响我们的行为。例如,当你在阅读这一页时,你正在将这页文字所表达的含义和你以前的知识整合在一起,如果我所写文字的语义是清晰的,那么你偶尔会微微一笑,并且会帮助你了解语义网这个研究方向(当然只是微小的一部),你甚至会选择语义Web作为未来的研究方向。然后学习语义Web技术去做一些great things(^-^)。


    虽然以自然语言作为例子,但是我的目的不是介绍自然语言处理的知识,我的目的是介绍如何利用语义信息在计算机之间表达,组合,共享知识,让机器读懂我们人类的知识,让机器帮我们做更多的事(囧,我们真的好懒)。


    如果你编写过一个程序,哪怕它只有一个变量。那么你就接触过语义。作为一个程序员,你知道这个变量代表一个值,并且你编写程序对这些变量的变化作为响应。幸运的是,你可能在你的代码中加入了一些注释,用来解释这个变量所代表的东西,以及如何使用这个变量,这样其他程序员(包括自己)就可以更容易的理解你的代码。变量的值,值的含义,以及程序的动作,这三者之间的关系是非常重要的,但是,它是在系统的设计中隐含的。


    付出一点小小的努力,就可以使你的数据之间的语义关系显式的表达出来,并且可以使你的系统的行为随着数据含义的不同而变化。随着语义的显式表达,其他程序,甚至不是你写的,都可以无缝(这个词好啊)的利用你的数据。类似的,当你的程序也理解语义数据时,那么你的程序就可以处理这些数据,即使这些数据在你设计你的程序时并没有考虑。(是不是有点迷糊呢?呵呵,不要紧,接下来,我来看一些简单的例子,帮助你理解什么是语义数据)


未完待续……

你可能感兴趣的:(Web,搜索引擎,生活,自然语言处理,语言,bbs)