Posts published at 04/10/2007

今天关于输入法网上流行一篇文章,叫谷歌输入法,是个丑闻,但和版权无关。这个事情我已经说了很多话了,不想继续说两家公司了。不过作者说词库属于数据库范畴,所以和版权保护不大一样,在我国不受保护。本来看过就算的,可是让我担心的是这篇文章被keso推荐阅读,也在奇迹上发表了,也就是说非常多人会读到。我觉得在这个问题上我有点不同认识,想说一下。

1. 从技术角度说,词库不是一般意义的数据库。

为什么呢,词库的确是个数据库,但是这个数据库不是把网络上所有词放在一起就行了,如果认真研究谷歌词库的格式,就会发现当中有一个项是词频,还有一个项是注音。因为这两条,这个数据库的意义就不一样了。为什么呢,举个例子吧,假设Google 没有PageRank, 自己把所有网页抓起来,建了一个数据库,那么,这个数据库是符合辛勤采集原则的,因为网页目录仅仅是一个目录,因此很难说Yahoo!对网页目录有版权,或者Google 和其他公司有版权。但是这个词频就让数据库的意义变了。为啥呢,可以想像,到底是PageRank是Google搜索质量的核心呢还是Google的海量数据库呢,答案当然是前者,因为假设Baidu也拿到了PageRank, 理论上Baidu 也能做出一样的质量。那么,附加在网页库上的PageRank 指标能不能被保护呢,要不要被保护呢。当然要,因为这个数据是支撑Google 质量的灵魂。同样,词频是支撑输入法首字正确的灵魂,因此,当一个数据库中包含自己生成的数据的时候,就不是辛勤采集原则了。好比咨询公司的市场调查报告中估计了各个公司以后的发展方向,财务走向,那么这就不是简单把财务报表放在一起的数据库,而是带有自身贡献的受法律保护的作品了。

2. 数据和算法代码的不可分性

输入法这个例子很特殊,而且为了自定义词库扩充,技术上把算法代码和词库分开了。那么,分开的受不受知识产权保护呢,答案是肯定的。一来,sogou 没有单独发布这个官方词库作为一个开放数据库,而是作为sogou 输入法这个产品的部件发布的。二来无论怎么说,这个库有EULA, 谷歌没有遵守。如果举证恰当,这个侵犯著作权的官司谷歌肯定吃亏。三来,只是在这个特例中词库是纯文本易于获得的形式,试想如果sogou 把这个词库封装成dll的话,对他的使用就构成软件反向工程和著作权侵犯了。按照我们国家一般对软件的规定,封装成目标代码的模块和原模块是同一事物。法律也不会因为不同的封装形式作出不同的判定。 因此,从这个意义上说,只是这个判例形式特殊,本质上sogou 的词库的确属于软件产品的一部分,具有不可分性,并不能用法律上不完善的数据库资源来界定。

3. 中国网民相关知识的缺乏

由于中国的开放源代码运动不如国外,盗版软件使用非常多,再加上教育本身不强调公开可获得与公开可利用的区别,造成很多GFan 对这个事情有误解。我举个小例子,假如你使用了国家统计局的一些资料写一篇报告,在美国,你必须自己转述这些话,而不能原样抄,结尾也要给参考文献,尽管这些资料是公开可获得的,你也必须对资料源给出应有的尊重。如果资料源公开且声明版权,那么使用时必须遵循版权声明。以前大家有个错误的观念,认为公开发表的资料是随意可以拿来修改再发布的。开放源代码运动就会告诉你,修改再发布必须要遵循怎样的原则,商业用途和非商业用途的区别在什么地方。再说个例子或许更好理解了,珊瑚虫QQ做的很好,裁剪原来的QQ, 添加新功能,然而,腾讯并没有授予珊瑚虫修改再发布部件的权利,因此这个官司显然会输掉。 现在帮谷歌在版权问题上洗白已经是徒劳了,只希望他们两家好好协商把这个事情处理过去。

提醒大家:sogou 输入法词库不是简单的数据库资料,作为软件部件一样受法律保护,这个不是Google快照那些层次的版权争议,这个是软件著作权层次的,这个上面,谷歌是理亏而且法律上无法反击的,只要sogou 举证到位,谷歌法律上麻烦比较大。

题外话: 作为一个坚定的*nix系统使用者,我常常向我周围的人推荐使用Linux/UNIX, 而他们通常都以不熟,不好用拒绝我,即使我答应帮他们装Linux系统。他们总认为Linux难用,可是事实不是这样的,给发展中国家使用的一百美元笔记本(OLPC)上就是 Linux, 世界上最眩的操作系统 MacOSX 底下也是UNIX/BSD. 有时候 Linux/UNIX 缺少的就是一些日常应用的杀手级程序。实际上杀手应用甚至决定了系统选择: Apache 让很多人再也不用 Windows 架设服务器,iPod 让美国很多人转而投身苹果。同样,我觉得我们支持Linux的人或许可以换一个角度,举出一些 Linux 能做的强大的酷的事情,让更多的人了解这个系统,从而爱上这个系统。其实从我的角度看,系统不酷,而是工作效率高,不过为了吸引一些用户,我不得不从酷的角度去说服别人。因此我准备开一个专栏,专讲在Linux下面可以做在Windows下做不到的酷事情,希望有人因此喜欢上 Linux. 这个专栏的文章都不长,技术都不复杂,以吸引人为主。如果你想感受Linux, 网上现有的怎么装的教程很多,也可以用LiveCD, 不过那不是我这个专栏所能讲清楚的。我的主要目的是吸引对 Linux 没感觉的人到 Linux 平台 :)

好吧,先说我抓音乐的小例子。我来到美国之后,感觉要融入美国文化,首要的就是融入潮流文化. 于是,我开始到网上找哪些音乐电影流行,我就拿下来看。这个当然要被很多人鄙视说俗了,现在流行的是小众小资的东西了。不过既然俗,咱也得俗的有技术含量是吧。一开始,我每天看Google Music Trend, 看到新的歌我就下载,然后用文本文件存我下了哪些歌。因此,第一步,我只需要一个浏览器。然后我就发现人工管理的缺陷的,因此我就想自动从Google Music Trend 中把我的歌生成一个列表。在这一步,我使用了我需要一个Linux 命令叫 wget, 简单的说,

wget some_url

就可以把一个网页或者资源下载到自己机器上。
好,我们先试验这个命令:

wget http://www.google.com/trends/music -O music.list

-O 表示另存为后面的文件,简单吧。

然后,我们再学一个命令叫cat. cat 不是小猫,是把文件的内容输出到屏幕. cat 后面可以接多个文件,具体可以用 cat –help 看帮助。这个地方,我们用 cat filename 输出文件。

cat music.list

怎么样,cat 输出了一个HTML的文件吧。这个HTML文件就是你的浏览器看到的. 然后你要说了,我怎么把这个html文件变成一个格式整齐的列表呢。不着急,下回我告诉你,这次先打一段天书一样的代码(这是一整行内容,注意第一行结束后有一个空格):

cat music.list |tr "\n" " "|egrep -o "song\">[^<]*" |tr ">" "\t"|cut -f 2|sort|uniq >mylist.new

好了,你就发现mylist.new 中全是格式正确的歌曲名了。这段天书怎么理解您无须担心,你可以发现原来在windows下需要copy 20次得到的文本文件一行命令就得到了。那么,学这段天书要多久呢?只要你常来看我的专栏,看三次,每次十分钟,肯定能理解。如果一生做一次,从头学这个天书效率当然不如手工,不过要是天天赶潮流,您就需要考虑用这个命令了。

好了,最后贴出一个喜欢听王小峰推荐歌曲的人要用的一个下载脚本,每次三表同学新歌上线,你轻轻一敲回车,歌曲全到你硬盘,多让人羡慕啊(当然,这个别太传,本来就是偷偷通过他的xml 发现歌曲链接的,传过了三表要发火了)。这个脚本是python 写的,但是因为windows下没有wget, 所以是Linux 专用的 :) 快用这个让美女/闺蜜/帅哥羡慕你吧


#!/usr/bin/python
# Download all the music recommended by wangxiaofeng.net
# Author: Eric You XU
# GPLv2
import os
import commands
os.popen("wget www.wangxiaofeng.net/mp3player.xml -O mp3player.xml")
str="""cat mp3player.xml|egrep -o path=[^3]+mp3|tr "\\"" "\\n"|grep http >wangxiaofeng.list"""
print str
os.popen(str)
f=open("wangxiaofeng.list")
for g in f.read().split('\n'):
print g
a="wget \""+g+"\""
os.popen(a)

注意: 最后三行是有缩进的。可以把这个存成 a.py, 然后 chmod +x a.py. 然后执行 ./a.py 具体的原理我下次讲。如果有问题,请留言。预祝你抓取所有王小峰歌曲成功。

课后作业:

1. 练习用wget 抓一下 baidu 的500个金曲, 链接是: http://list.mp3.baidu.com/topso/mp3topsong.html
2. 通过cat 命令研究一下baidu 的 html 和 Google 的 html. 看看哪家的让你觉得舒服. 下节课我们继续讲怎么处理这两个HTML.

下节课预告:1. 那段天书的原理是什么 2. 我怎么抓baidu 的流行榜单

过几天等有时间我还会给大家介绍优盘上的Linux, 光盘上的Linux 和最酷的Linux XGL桌面 还有给基督徒用的Linux 和给学前儿童用的Linux. 其实Linux远比一般人想像的简单而且酷。

本专栏欢迎投稿,暂无稿费。